{"version":3,"file":"js/chunk-vendors.c740b10a.js","mappings":"qGAAAA,EAAOC,QAAU,EAAjB,M,qCCEA,IAAIC,EAAQ,EAAQ,OAChBC,EAAS,EAAQ,OACjBC,EAAU,EAAQ,OAClBC,EAAW,EAAQ,OACnBC,EAAgB,EAAQ,OACxBC,EAAe,EAAQ,OACvBC,EAAkB,EAAQ,OAC1BC,EAAc,EAAQ,OACtBC,EAAW,EAAQ,OACnBC,EAAS,EAAQ,OAErBX,EAAOC,QAAU,SAAoBW,GACnC,OAAO,IAAIC,SAAQ,SAA4BC,EAASC,GACtD,IAGIC,EAHAC,EAAcL,EAAOM,KACrBC,EAAiBP,EAAOQ,QACxBC,EAAeT,EAAOS,aAE1B,SAASC,IACHV,EAAOW,aACTX,EAAOW,YAAYC,YAAYR,GAG7BJ,EAAOa,QACTb,EAAOa,OAAOC,oBAAoB,QAASV,EAE/C,CAEId,EAAMyB,WAAWV,WACZE,EAAe,gBAGxB,IAAIS,EAAU,IAAIC,eAGlB,GAAIjB,EAAOkB,KAAM,CACf,IAAIC,EAAWnB,EAAOkB,KAAKC,UAAY,GACnCC,EAAWpB,EAAOkB,KAAKE,SAAWC,SAASC,mBAAmBtB,EAAOkB,KAAKE,WAAa,GAC3Fb,EAAegB,cAAgB,SAAWC,KAAKL,EAAW,IAAMC,EAClE,CAEA,IAAIK,EAAW/B,EAAcM,EAAO0B,QAAS1B,EAAO2B,KAMpD,SAASC,IACP,GAAKZ,EAAL,CAIA,IAAIa,EAAkB,0BAA2Bb,EAAUrB,EAAaqB,EAAQc,yBAA2B,KACvGC,EAAgBtB,GAAiC,SAAjBA,GAA6C,SAAjBA,EACvCO,EAAQgB,SAA/BhB,EAAQiB,aACND,EAAW,CACb1B,KAAMyB,EACNG,OAAQlB,EAAQkB,OAChBC,WAAYnB,EAAQmB,WACpB3B,QAASqB,EACT7B,OAAQA,EACRgB,QAASA,GAGXzB,GAAO,SAAkB6C,GACvBlC,EAAQkC,GACR1B,GACF,IAAG,SAAiB2B,GAClBlC,EAAOkC,GACP3B,GACF,GAAGsB,GAGHhB,EAAU,IAvBV,CAwBF,CAmEA,GAnGAA,EAAQsB,KAAKtC,EAAOuC,OAAOC,cAAe/C,EAASgC,EAAUzB,EAAOyC,OAAQzC,EAAO0C,mBAAmB,GAGtG1B,EAAQ2B,QAAU3C,EAAO2C,QA+BrB,cAAe3B,EAEjBA,EAAQY,UAAYA,EAGpBZ,EAAQ4B,mBAAqB,WACtB5B,GAAkC,IAAvBA,EAAQ6B,aAQD,IAAnB7B,EAAQkB,QAAkBlB,EAAQ8B,aAAwD,IAAzC9B,EAAQ8B,YAAYC,QAAQ,WAKjFC,WAAWpB,EACb,EAIFZ,EAAQiC,QAAU,WACXjC,IAILb,EAAON,EAAY,kBAAmBG,EAAQ,eAAgBgB,IAG9DA,EAAU,KACZ,EAGAA,EAAQkC,QAAU,WAGhB/C,EAAON,EAAY,gBAAiBG,EAAQ,KAAMgB,IAGlDA,EAAU,IACZ,EAGAA,EAAQmC,UAAY,WAClB,IAAIC,EAAsBpD,EAAO2C,QAAU,cAAgB3C,EAAO2C,QAAU,cAAgB,mBACxFU,EAAerD,EAAOqD,cAAgBvD,EAASuD,aAC/CrD,EAAOoD,sBACTA,EAAsBpD,EAAOoD,qBAE/BjD,EAAON,EACLuD,EACApD,EACAqD,EAAaC,oBAAsB,YAAc,eACjDtC,IAGFA,EAAU,IACZ,EAKI1B,EAAMiE,uBAAwB,CAEhC,IAAIC,GAAaxD,EAAOyD,iBAAmB7D,EAAgB6B,KAAczB,EAAO0D,eAC9ElE,EAAQmE,KAAK3D,EAAO0D,qBACpBE,EAEEJ,IACFjD,EAAeP,EAAO6D,gBAAkBL,EAE5C,CAGI,qBAAsBxC,GACxB1B,EAAMwE,QAAQvD,GAAgB,SAA0BwD,EAAKC,GAChC,qBAAhB3D,GAAqD,iBAAtB2D,EAAIC,qBAErC1D,EAAeyD,GAGtBhD,EAAQkD,iBAAiBF,EAAKD,EAElC,IAIGzE,EAAM6E,YAAYnE,EAAOyD,mBAC5BzC,EAAQyC,kBAAoBzD,EAAOyD,iBAIjChD,GAAiC,SAAjBA,IAClBO,EAAQP,aAAeT,EAAOS,cAIS,oBAA9BT,EAAOoE,oBAChBpD,EAAQqD,iBAAiB,WAAYrE,EAAOoE,oBAIP,oBAA5BpE,EAAOsE,kBAAmCtD,EAAQuD,QAC3DvD,EAAQuD,OAAOF,iBAAiB,WAAYrE,EAAOsE,mBAGjDtE,EAAOW,aAAeX,EAAOa,UAG/BT,EAAa,SAASoE,GACfxD,IAGLb,GAAQqE,GAAWA,GAAUA,EAAOC,KAAQ,IAAI1E,EAAO,YAAcyE,GACrExD,EAAQ0D,QACR1D,EAAU,KACZ,EAEAhB,EAAOW,aAAeX,EAAOW,YAAYgE,UAAUvE,GAC/CJ,EAAOa,SACTb,EAAOa,OAAO+D,QAAUxE,IAAeJ,EAAOa,OAAOwD,iBAAiB,QAASjE,KAI9EC,IACHA,EAAc,MAIhBW,EAAQ6D,KAAKxE,EACf,GACF,C,qCCjNA,IAAIf,EAAQ,EAAQ,OAChBwF,EAAO,EAAQ,OACfC,EAAQ,EAAQ,OAChBC,EAAc,EAAQ,OACtBlF,EAAW,EAAQ,OAQvB,SAASmF,EAAeC,GACtB,IAAIC,EAAU,IAAIJ,EAAMG,GACpBE,EAAWN,EAAKC,EAAMM,UAAUrE,QAASmE,GAa7C,OAVA7F,EAAMgG,OAAOF,EAAUL,EAAMM,UAAWF,GAGxC7F,EAAMgG,OAAOF,EAAUD,GAGvBC,EAASG,OAAS,SAAgBC,GAChC,OAAOP,EAAeD,EAAYE,EAAeM,GACnD,EAEOJ,CACT,CAGA,IAAIK,EAAQR,EAAenF,GAG3B2F,EAAMV,MAAQA,EAGdU,EAAM1F,OAAS,EAAQ,OACvB0F,EAAMC,YAAc,EAAQ,OAC5BD,EAAME,SAAW,EAAQ,OACzBF,EAAMG,QAAU,iBAGhBH,EAAMI,IAAM,SAAaC,GACvB,OAAO7F,QAAQ4F,IAAIC,EACrB,EACAL,EAAMM,OAAS,EAAQ,OAGvBN,EAAMO,aAAe,EAAQ,OAE7B5G,EAAOC,QAAUoG,EAGjBrG,EAAOC,QAAP,WAAyBoG,C,iCChDzB,SAAS1F,EAAOkG,GACdC,KAAKD,QAAUA,CACjB,CAEAlG,EAAOsF,UAAUc,SAAW,WAC1B,MAAO,UAAYD,KAAKD,QAAU,KAAOC,KAAKD,QAAU,GAC1D,EAEAlG,EAAOsF,UAAUe,YAAa,EAE9BhH,EAAOC,QAAUU,C,qCChBjB,IAAIA,EAAS,EAAQ,OAQrB,SAAS2F,EAAYW,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAIC,UAAU,gCAGtB,IAAIC,EAEJL,KAAKM,QAAU,IAAIvG,SAAQ,SAAyBC,GAClDqG,EAAiBrG,CACnB,IAEA,IAAIuG,EAAQP,KAGZA,KAAKM,QAAQE,MAAK,SAASlC,GACzB,GAAKiC,EAAME,WAAX,CAEA,IAAIC,EACAC,EAAIJ,EAAME,WAAWG,OAEzB,IAAKF,EAAI,EAAGA,EAAIC,EAAGD,IACjBH,EAAME,WAAWC,GAAGpC,GAEtBiC,EAAME,WAAa,IARU,CAS/B,IAGAT,KAAKM,QAAQE,KAAO,SAASK,GAC3B,IAAIC,EAEAR,EAAU,IAAIvG,SAAQ,SAASC,GACjCuG,EAAM9B,UAAUzE,GAChB8G,EAAW9G,CACb,IAAGwG,KAAKK,GAMR,OAJAP,EAAQhC,OAAS,WACfiC,EAAM7F,YAAYoG,EACpB,EAEOR,CACT,EAEAH,GAAS,SAAgBJ,GACnBQ,EAAMQ,SAKVR,EAAMQ,OAAS,IAAIlH,EAAOkG,GAC1BM,EAAeE,EAAMQ,QACvB,GACF,CAKAvB,EAAYL,UAAU6B,iBAAmB,WACvC,GAAIhB,KAAKe,OACP,MAAMf,KAAKe,MAEf,EAMAvB,EAAYL,UAAUV,UAAY,SAAmBwC,GAC/CjB,KAAKe,OACPE,EAASjB,KAAKe,QAIZf,KAAKS,WACPT,KAAKS,WAAWS,KAAKD,GAErBjB,KAAKS,WAAa,CAACQ,EAEvB,EAMAzB,EAAYL,UAAUzE,YAAc,SAAqBuG,GACvD,GAAKjB,KAAKS,WAAV,CAGA,IAAIU,EAAQnB,KAAKS,WAAW5D,QAAQoE,IACrB,IAAXE,GACFnB,KAAKS,WAAWW,OAAOD,EAAO,EAHhC,CAKF,EAMA3B,EAAY6B,OAAS,WACnB,IAAI/C,EACAiC,EAAQ,IAAIf,GAAY,SAAkB8B,GAC5ChD,EAASgD,CACX,IACA,MAAO,CACLf,MAAOA,EACPjC,OAAQA,EAEZ,EAEApF,EAAOC,QAAUqG,C,iCCpHjBtG,EAAOC,QAAU,SAAkB+C,GACjC,SAAUA,IAASA,EAAMgE,WAC3B,C,qCCFA,IAAI9G,EAAQ,EAAQ,OAChBG,EAAW,EAAQ,OACnBgI,EAAqB,EAAQ,OAC7BC,EAAkB,EAAQ,OAC1B1C,EAAc,EAAQ,OACtB2C,EAAY,EAAQ,OAEpBC,EAAaD,EAAUC,WAM3B,SAAS7C,EAAMS,GACbU,KAAKpG,SAAW0F,EAChBU,KAAK2B,aAAe,CAClB7G,QAAS,IAAIyG,EACbzF,SAAU,IAAIyF,EAElB,CAOA1C,EAAMM,UAAUrE,QAAU,SAAiB8G,EAAa9H,GAG3B,kBAAhB8H,GACT9H,EAASA,GAAU,CAAC,EACpBA,EAAO2B,IAAMmG,GAEb9H,EAAS8H,GAAe,CAAC,EAG3B9H,EAASgF,EAAYkB,KAAKpG,SAAUE,GAGhCA,EAAOuC,OACTvC,EAAOuC,OAASvC,EAAOuC,OAAO0B,cACrBiC,KAAKpG,SAASyC,OACvBvC,EAAOuC,OAAS2D,KAAKpG,SAASyC,OAAO0B,cAErCjE,EAAOuC,OAAS,MAGlB,IAAIc,EAAerD,EAAOqD,kBAELO,IAAjBP,GACFsE,EAAUI,cAAc1E,EAAc,CACpC2E,kBAAmBJ,EAAWvE,aAAauE,EAAWK,SACtDC,kBAAmBN,EAAWvE,aAAauE,EAAWK,SACtD3E,oBAAqBsE,EAAWvE,aAAauE,EAAWK,WACvD,GAIL,IAAIE,EAA0B,GAC1BC,GAAiC,EACrClC,KAAK2B,aAAa7G,QAAQ8C,SAAQ,SAAoCuE,GACjC,oBAAxBA,EAAYC,UAA0D,IAAhCD,EAAYC,QAAQtI,KAIrEoI,EAAiCA,GAAkCC,EAAYE,YAE/EJ,EAAwBK,QAAQH,EAAYI,UAAWJ,EAAYK,UACrE,IAEA,IAKIlC,EALAmC,EAA2B,GAO/B,GANAzC,KAAK2B,aAAa7F,SAAS8B,SAAQ,SAAkCuE,GACnEM,EAAyBvB,KAAKiB,EAAYI,UAAWJ,EAAYK,SACnE,KAIKN,EAAgC,CACnC,IAAIQ,EAAQ,CAAClB,OAAiB9D,GAE9BiF,MAAMxD,UAAUmD,QAAQM,MAAMF,EAAOT,GACrCS,EAAQA,EAAMG,OAAOJ,GAErBnC,EAAUvG,QAAQC,QAAQF,GAC1B,MAAO4I,EAAM9B,OACXN,EAAUA,EAAQE,KAAKkC,EAAMI,QAASJ,EAAMI,SAG9C,OAAOxC,CACT,CAGA,IAAIyC,EAAYjJ,EAChB,MAAOmI,EAAwBrB,OAAQ,CACrC,IAAIoC,EAAcf,EAAwBa,QACtCG,EAAahB,EAAwBa,QACzC,IACEC,EAAYC,EAAYD,EAC1B,CAAE,MAAOG,GACPD,EAAWC,GACX,KACF,CACF,CAEA,IACE5C,EAAUkB,EAAgBuB,EAC5B,CAAE,MAAOG,GACP,OAAOnJ,QAAQE,OAAOiJ,EACxB,CAEA,MAAOT,EAAyB7B,OAC9BN,EAAUA,EAAQE,KAAKiC,EAAyBK,QAASL,EAAyBK,SAGpF,OAAOxC,CACT,EAEAzB,EAAMM,UAAUgE,OAAS,SAAgBrJ,GAEvC,OADAA,EAASgF,EAAYkB,KAAKpG,SAAUE,GAC7BP,EAASO,EAAO2B,IAAK3B,EAAOyC,OAAQzC,EAAO0C,kBAAkB4G,QAAQ,MAAO,GACrF,EAGAhK,EAAMwE,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BvB,GAE/EwC,EAAMM,UAAU9C,GAAU,SAASZ,EAAK3B,GACtC,OAAOkG,KAAKlF,QAAQgE,EAAYhF,GAAU,CAAC,EAAG,CAC5CuC,OAAQA,EACRZ,IAAKA,EACLrB,MAAON,GAAU,CAAC,GAAGM,OAEzB,CACF,IAEAhB,EAAMwE,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BvB,GAErEwC,EAAMM,UAAU9C,GAAU,SAASZ,EAAKrB,EAAMN,GAC5C,OAAOkG,KAAKlF,QAAQgE,EAAYhF,GAAU,CAAC,EAAG,CAC5CuC,OAAQA,EACRZ,IAAKA,EACLrB,KAAMA,IAEV,CACF,IAEAlB,EAAOC,QAAU0F,C,qCCjJjB,IAAIzF,EAAQ,EAAQ,OAEpB,SAASmI,IACPvB,KAAKqD,SAAW,EAClB,CAUA9B,EAAmBpC,UAAUmE,IAAM,SAAaf,EAAWC,EAAUe,GAOnE,OANAvD,KAAKqD,SAASnC,KAAK,CACjBqB,UAAWA,EACXC,SAAUA,EACVH,cAAakB,GAAUA,EAAQlB,YAC/BD,QAASmB,EAAUA,EAAQnB,QAAU,OAEhCpC,KAAKqD,SAASzC,OAAS,CAChC,EAOAW,EAAmBpC,UAAUqE,MAAQ,SAAeC,GAC9CzD,KAAKqD,SAASI,KAChBzD,KAAKqD,SAASI,GAAM,KAExB,EAUAlC,EAAmBpC,UAAUvB,QAAU,SAAiB8F,GACtDtK,EAAMwE,QAAQoC,KAAKqD,UAAU,SAAwBM,GACzC,OAANA,GACFD,EAAGC,EAEP,GACF,EAEAzK,EAAOC,QAAUoI,C,qCCnDjB,IAAIqC,EAAgB,EAAQ,OACxBC,EAAc,EAAQ,OAW1B3K,EAAOC,QAAU,SAAuBqC,EAASsI,GAC/C,OAAItI,IAAYoI,EAAcE,GACrBD,EAAYrI,EAASsI,GAEvBA,CACT,C,qCCjBA,IAAIC,EAAe,EAAQ,MAY3B7K,EAAOC,QAAU,SAAqB4G,EAASjG,EAAQkK,EAAMlJ,EAASgB,GACpE,IAAIoH,EAAQ,IAAIe,MAAMlE,GACtB,OAAOgE,EAAab,EAAOpJ,EAAQkK,EAAMlJ,EAASgB,EACpD,C,qCCfA,IAAI1C,EAAQ,EAAQ,OAChB8K,EAAgB,EAAQ,OACxBzE,EAAW,EAAQ,OACnB7F,EAAW,EAAQ,OACnBC,EAAS,EAAQ,OAKrB,SAASsK,EAA6BrK,GAKpC,GAJIA,EAAOW,aACTX,EAAOW,YAAYuG,mBAGjBlH,EAAOa,QAAUb,EAAOa,OAAO+D,QACjC,MAAM,IAAI7E,EAAO,WAErB,CAQAX,EAAOC,QAAU,SAAyBW,GACxCqK,EAA6BrK,GAG7BA,EAAOQ,QAAUR,EAAOQ,SAAW,CAAC,EAGpCR,EAAOM,KAAO8J,EAAcE,KAC1BtK,EACAA,EAAOM,KACPN,EAAOQ,QACPR,EAAOuK,kBAITvK,EAAOQ,QAAUlB,EAAMkL,MACrBxK,EAAOQ,QAAQiK,QAAU,CAAC,EAC1BzK,EAAOQ,QAAQR,EAAOuC,SAAW,CAAC,EAClCvC,EAAOQ,SAGTlB,EAAMwE,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2BvB,UAClBvC,EAAOQ,QAAQ+B,EACxB,IAGF,IAAImI,EAAU1K,EAAO0K,SAAW5K,EAAS4K,QAEzC,OAAOA,EAAQ1K,GAAQ0G,MAAK,SAA6B1E,GAWvD,OAVAqI,EAA6BrK,GAG7BgC,EAAS1B,KAAO8J,EAAcE,KAC5BtK,EACAgC,EAAS1B,KACT0B,EAASxB,QACTR,EAAO2K,mBAGF3I,CACT,IAAG,SAA4BiF,GAe7B,OAdKtB,EAASsB,KACZoD,EAA6BrK,GAGzBiH,GAAUA,EAAOjF,WACnBiF,EAAOjF,SAAS1B,KAAO8J,EAAcE,KACnCtK,EACAiH,EAAOjF,SAAS1B,KAChB2G,EAAOjF,SAASxB,QAChBR,EAAO2K,qBAKN1K,QAAQE,OAAO8G,EACxB,GACF,C,gCC1EA7H,EAAOC,QAAU,SAAsB+J,EAAOpJ,EAAQkK,EAAMlJ,EAASgB,GA6BnE,OA5BAoH,EAAMpJ,OAASA,EACXkK,IACFd,EAAMc,KAAOA,GAGfd,EAAMpI,QAAUA,EAChBoI,EAAMpH,SAAWA,EACjBoH,EAAMpD,cAAe,EAErBoD,EAAMwB,OAAS,WACb,MAAO,CAEL3E,QAASC,KAAKD,QACd4E,KAAM3E,KAAK2E,KAEXC,YAAa5E,KAAK4E,YAClBC,OAAQ7E,KAAK6E,OAEbC,SAAU9E,KAAK8E,SACfC,WAAY/E,KAAK+E,WACjBC,aAAchF,KAAKgF,aACnBC,MAAOjF,KAAKiF,MAEZnL,OAAQkG,KAAKlG,OACbkK,KAAMhE,KAAKgE,KACXhI,OAAQgE,KAAKlE,UAAYkE,KAAKlE,SAASE,OAASgE,KAAKlE,SAASE,OAAS,KAE3E,EACOkH,CACT,C,qCCxCA,IAAI9J,EAAQ,EAAQ,OAUpBF,EAAOC,QAAU,SAAqB+L,EAASC,GAE7CA,EAAUA,GAAW,CAAC,EACtB,IAAIrL,EAAS,CAAC,EAEd,SAASsL,EAAeC,EAAQhE,GAC9B,OAAIjI,EAAMkM,cAAcD,IAAWjM,EAAMkM,cAAcjE,GAC9CjI,EAAMkL,MAAMe,EAAQhE,GAClBjI,EAAMkM,cAAcjE,GACtBjI,EAAMkL,MAAM,CAAC,EAAGjD,GACdjI,EAAMmM,QAAQlE,GAChBA,EAAOmE,QAETnE,CACT,CAGA,SAASoE,EAAoBC,GAC3B,OAAKtM,EAAM6E,YAAYkH,EAAQO,IAEnBtM,EAAM6E,YAAYiH,EAAQQ,SAA/B,EACEN,OAAe1H,EAAWwH,EAAQQ,IAFlCN,EAAeF,EAAQQ,GAAOP,EAAQO,GAIjD,CAGA,SAASC,EAAiBD,GACxB,IAAKtM,EAAM6E,YAAYkH,EAAQO,IAC7B,OAAON,OAAe1H,EAAWyH,EAAQO,GAE7C,CAGA,SAASE,EAAiBF,GACxB,OAAKtM,EAAM6E,YAAYkH,EAAQO,IAEnBtM,EAAM6E,YAAYiH,EAAQQ,SAA/B,EACEN,OAAe1H,EAAWwH,EAAQQ,IAFlCN,OAAe1H,EAAWyH,EAAQO,GAI7C,CAGA,SAASG,EAAgBH,GACvB,OAAIA,KAAQP,EACHC,EAAeF,EAAQQ,GAAOP,EAAQO,IACpCA,KAAQR,EACVE,OAAe1H,EAAWwH,EAAQQ,SADpC,CAGT,CAEA,IAAII,EAAW,CACb,IAAOH,EACP,OAAUA,EACV,KAAQA,EACR,QAAWC,EACX,iBAAoBA,EACpB,kBAAqBA,EACrB,iBAAoBA,EACpB,QAAWA,EACX,eAAkBA,EAClB,gBAAmBA,EACnB,QAAWA,EACX,aAAgBA,EAChB,eAAkBA,EAClB,eAAkBA,EAClB,iBAAoBA,EACpB,mBAAsBA,EACtB,WAAcA,EACd,iBAAoBA,EACpB,cAAiBA,EACjB,UAAaA,EACb,UAAaA,EACb,WAAcA,EACd,YAAeA,EACf,WAAcA,EACd,iBAAoBA,EACpB,eAAkBC,GASpB,OANAzM,EAAMwE,QAAQmI,OAAOC,KAAKd,GAASrC,OAAOkD,OAAOC,KAAKb,KAAW,SAA4BO,GAC3F,IAAIpB,EAAQwB,EAASJ,IAASD,EAC1BQ,EAAc3B,EAAMoB,GACvBtM,EAAM6E,YAAYgI,IAAgB3B,IAAUuB,IAAqB/L,EAAO4L,GAAQO,EACnF,IAEOnM,CACT,C,qCChGA,IAAIH,EAAc,EAAQ,OAS1BT,EAAOC,QAAU,SAAgBa,EAASC,EAAQ6B,GAChD,IAAIoK,EAAiBpK,EAAShC,OAAOoM,eAChCpK,EAASE,QAAWkK,IAAkBA,EAAepK,EAASE,QAGjE/B,EAAON,EACL,mCAAqCmC,EAASE,OAC9CF,EAAShC,OACT,KACAgC,EAAShB,QACTgB,IAPF9B,EAAQ8B,EAUZ,C,qCCtBA,IAAI1C,EAAQ,EAAQ,OAChBQ,EAAW,EAAQ,OAUvBV,EAAOC,QAAU,SAAuBiB,EAAME,EAAS6L,GACrD,IAAIlH,EAAUe,MAAQpG,EAMtB,OAJAR,EAAMwE,QAAQuI,GAAK,SAAmBzC,GACpCtJ,EAAOsJ,EAAGU,KAAKnF,EAAS7E,EAAME,EAChC,IAEOF,CACT,C,qCCnBA,IAAIhB,EAAQ,EAAQ,OAChBgN,EAAsB,EAAQ,OAC9BrC,EAAe,EAAQ,MAEvBsC,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBhM,EAAS4B,IACjC9C,EAAM6E,YAAY3D,IAAYlB,EAAM6E,YAAY3D,EAAQ,mBAC3DA,EAAQ,gBAAkB4B,EAE9B,CAEA,SAASqK,IACP,IAAI/B,EAQJ,OAP8B,qBAAnBzJ,gBAGmB,qBAAZyL,SAAuE,qBAA5CT,OAAO5G,UAAUc,SAASmE,KAAKoC,YAD1EhC,EAAU,EAAQ,QAKbA,CACT,CAEA,SAASiC,EAAgBC,EAAUC,EAAQC,GACzC,GAAIxN,EAAMyN,SAASH,GACjB,IAEE,OADCC,GAAUG,KAAKC,OAAOL,GAChBtN,EAAM4N,KAAKN,EACpB,CAAE,MAAOO,GACP,GAAe,gBAAXA,EAAEtC,KACJ,MAAMsC,CAEV,CAGF,OAAQL,GAAWE,KAAKI,WAAWR,EACrC,CAEA,IAAI9M,EAAW,CAEbuD,aAAc,CACZ2E,mBAAmB,EACnBE,mBAAmB,EACnB5E,qBAAqB,GAGvBoH,QAAS+B,IAETlC,iBAAkB,CAAC,SAA0BjK,EAAME,GAIjD,OAHA8L,EAAoB9L,EAAS,UAC7B8L,EAAoB9L,EAAS,gBAEzBlB,EAAMyB,WAAWT,IACnBhB,EAAM+N,cAAc/M,IACpBhB,EAAMgO,SAAShN,IACfhB,EAAMiO,SAASjN,IACfhB,EAAMkO,OAAOlN,IACbhB,EAAMmO,OAAOnN,GAENA,EAELhB,EAAMoO,kBAAkBpN,GACnBA,EAAKqN,OAEVrO,EAAMsO,kBAAkBtN,IAC1BkM,EAAsBhM,EAAS,mDACxBF,EAAK6F,YAEV7G,EAAMuO,SAASvN,IAAUE,GAAuC,qBAA5BA,EAAQ,iBAC9CgM,EAAsBhM,EAAS,oBACxBmM,EAAgBrM,IAElBA,CACT,GAEAqK,kBAAmB,CAAC,SAA2BrK,GAC7C,IAAI+C,EAAe6C,KAAK7C,cAAgBvD,EAASuD,aAC7C2E,EAAoB3E,GAAgBA,EAAa2E,kBACjDE,EAAoB7E,GAAgBA,EAAa6E,kBACjD4F,GAAqB9F,GAA2C,SAAtB9B,KAAKzF,aAEnD,GAAIqN,GAAsB5F,GAAqB5I,EAAMyN,SAASzM,IAASA,EAAKwG,OAC1E,IACE,OAAOkG,KAAKC,MAAM3M,EACpB,CAAE,MAAO6M,GACP,GAAIW,EAAmB,CACrB,GAAe,gBAAXX,EAAEtC,KACJ,MAAMZ,EAAakD,EAAGjH,KAAM,gBAE9B,MAAMiH,CACR,CACF,CAGF,OAAO7M,CACT,GAMAqC,QAAS,EAETe,eAAgB,aAChBG,eAAgB,eAEhBkK,kBAAmB,EACnBC,eAAgB,EAEhB5B,eAAgB,SAAwBlK,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEA1B,QAAS,CACPiK,OAAQ,CACN,OAAU,uCAKhBnL,EAAMwE,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6BvB,GACpEzC,EAASU,QAAQ+B,GAAU,CAAC,CAC9B,IAEAjD,EAAMwE,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BvB,GACrEzC,EAASU,QAAQ+B,GAAUjD,EAAMkL,MAAM+B,EACzC,IAEAnN,EAAOC,QAAUS,C,oBCrIjBV,EAAOC,QAAU,CACf,QAAW,S,iCCCbD,EAAOC,QAAU,SAAcuK,EAAIqE,GACjC,OAAO,WAEL,IADA,IAAIC,EAAO,IAAIrF,MAAMsF,UAAUrH,QACtBF,EAAI,EAAGA,EAAIsH,EAAKpH,OAAQF,IAC/BsH,EAAKtH,GAAKuH,UAAUvH,GAEtB,OAAOgD,EAAGd,MAAMmF,EAASC,EAC3B,CACF,C,qCCRA,IAAI5O,EAAQ,EAAQ,OAEpB,SAAS8O,EAAOrK,GACd,OAAOzC,mBAAmByC,GACxBuF,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CASAlK,EAAOC,QAAU,SAAkBsC,EAAKc,EAAQC,GAE9C,IAAKD,EACH,OAAOd,EAGT,IAAI0M,EACJ,GAAI3L,EACF2L,EAAmB3L,EAAiBD,QAC/B,GAAInD,EAAMsO,kBAAkBnL,GACjC4L,EAAmB5L,EAAO0D,eACrB,CACL,IAAImI,EAAQ,GAEZhP,EAAMwE,QAAQrB,GAAQ,SAAmBsB,EAAKC,GAChC,OAARD,GAA+B,qBAARA,IAIvBzE,EAAMmM,QAAQ1H,GAChBC,GAAY,KAEZD,EAAM,CAACA,GAGTzE,EAAMwE,QAAQC,GAAK,SAAoBwK,GACjCjP,EAAMkP,OAAOD,GACfA,EAAIA,EAAEE,cACGnP,EAAMuO,SAASU,KACxBA,EAAIvB,KAAKI,UAAUmB,IAErBD,EAAMlH,KAAKgH,EAAOpK,GAAO,IAAMoK,EAAOG,GACxC,IACF,IAEAF,EAAmBC,EAAMI,KAAK,IAChC,CAEA,GAAIL,EAAkB,CACpB,IAAIM,EAAgBhN,EAAIoB,QAAQ,MACT,IAAnB4L,IACFhN,EAAMA,EAAI+J,MAAM,EAAGiD,IAGrBhN,KAA8B,IAAtBA,EAAIoB,QAAQ,KAAc,IAAM,KAAOsL,CACjD,CAEA,OAAO1M,CACT,C,iCC5DAvC,EAAOC,QAAU,SAAqBqC,EAASkN,GAC7C,OAAOA,EACHlN,EAAQ4H,QAAQ,OAAQ,IAAM,IAAMsF,EAAYtF,QAAQ,OAAQ,IAChE5H,CACN,C,qCCXA,IAAIpC,EAAQ,EAAQ,OAEpBF,EAAOC,QACLC,EAAMiE,uBAGJ,WACE,MAAO,CACLsL,MAAO,SAAehE,EAAMzI,EAAO0M,EAASC,EAAMC,EAAQC,GACxD,IAAIC,EAAS,GACbA,EAAO9H,KAAKyD,EAAO,IAAMvJ,mBAAmBc,IAExC9C,EAAM6P,SAASL,IACjBI,EAAO9H,KAAK,WAAa,IAAIgI,KAAKN,GAASO,eAGzC/P,EAAMyN,SAASgC,IACjBG,EAAO9H,KAAK,QAAU2H,GAGpBzP,EAAMyN,SAASiC,IACjBE,EAAO9H,KAAK,UAAY4H,IAGX,IAAXC,GACFC,EAAO9H,KAAK,UAGdkI,SAASJ,OAASA,EAAOR,KAAK,KAChC,EAEA/K,KAAM,SAAckH,GAClB,IAAI0E,EAAQD,SAASJ,OAAOK,MAAM,IAAIC,OAAO,aAAe3E,EAAO,cACnE,OAAQ0E,EAAQE,mBAAmBF,EAAM,IAAM,IACjD,EAEAG,OAAQ,SAAgB7E,GACtB3E,KAAK2I,MAAMhE,EAAM,GAAIuE,KAAKO,MAAQ,MACpC,EAEH,CAlCD,GAqCA,WACE,MAAO,CACLd,MAAO,WAAkB,EACzBlL,KAAM,WAAkB,OAAO,IAAM,EACrC+L,OAAQ,WAAmB,EAE9B,CAND,E,iCCrCJtQ,EAAOC,QAAU,SAAuBsC,GAItC,MAAO,8BAA8BiO,KAAKjO,EAC5C,C,qCCXA,IAAIrC,EAAQ,EAAQ,OAQpBF,EAAOC,QAAU,SAAsBwQ,GACrC,OAAOvQ,EAAMuO,SAASgC,KAAsC,IAAzBA,EAAQ7J,YAC7C,C,qCCVA,IAAI1G,EAAQ,EAAQ,OAEpBF,EAAOC,QACLC,EAAMiE,uBAIJ,WACE,IAEIuM,EAFAC,EAAO,kBAAkBH,KAAKI,UAAUC,WACxCC,EAAiBZ,SAASa,cAAc,KAS5C,SAASC,EAAWzO,GAClB,IAAI0O,EAAO1O,EAWX,OATIoO,IAEFG,EAAeI,aAAa,OAAQD,GACpCA,EAAOH,EAAeG,MAGxBH,EAAeI,aAAa,OAAQD,GAG7B,CACLA,KAAMH,EAAeG,KACrBE,SAAUL,EAAeK,SAAWL,EAAeK,SAASjH,QAAQ,KAAM,IAAM,GAChFkH,KAAMN,EAAeM,KACrBC,OAAQP,EAAeO,OAASP,EAAeO,OAAOnH,QAAQ,MAAO,IAAM,GAC3EoH,KAAMR,EAAeQ,KAAOR,EAAeQ,KAAKpH,QAAQ,KAAM,IAAM,GACpEqH,SAAUT,EAAeS,SACzBC,KAAMV,EAAeU,KACrBC,SAAiD,MAAtCX,EAAeW,SAASC,OAAO,GACxCZ,EAAeW,SACf,IAAMX,EAAeW,SAE3B,CAUA,OARAf,EAAYM,EAAWW,OAAOC,SAASX,MAQhC,SAAyBY,GAC9B,IAAIC,EAAU5R,EAAMyN,SAASkE,GAAeb,EAAWa,GAAcA,EACrE,OAAQC,EAAOX,WAAaT,EAAUS,UAClCW,EAAOV,OAASV,EAAUU,IAChC,CACD,CAlDD,GAqDA,WACE,OAAO,WACL,OAAO,CACT,CACD,CAJD,E,qCC5DJ,IAAIlR,EAAQ,EAAQ,OAEpBF,EAAOC,QAAU,SAA6BmB,EAAS2Q,GACrD7R,EAAMwE,QAAQtD,GAAS,SAAuB4B,EAAOyI,GAC/CA,IAASsG,GAAkBtG,EAAKrI,gBAAkB2O,EAAe3O,gBACnEhC,EAAQ2Q,GAAkB/O,SACnB5B,EAAQqK,GAEnB,GACF,C,qCCTA,IAAIvL,EAAQ,EAAQ,OAIhB8R,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,cAgB5BhS,EAAOC,QAAU,SAAsBmB,GACrC,IACIwD,EACAD,EACA6C,EAHAsK,EAAS,CAAC,EAKd,OAAK1Q,GAELlB,EAAMwE,QAAQtD,EAAQ6Q,MAAM,OAAO,SAAgBC,GAKjD,GAJA1K,EAAI0K,EAAKvO,QAAQ,KACjBiB,EAAM1E,EAAM4N,KAAKoE,EAAKC,OAAO,EAAG3K,IAAI3C,cACpCF,EAAMzE,EAAM4N,KAAKoE,EAAKC,OAAO3K,EAAI,IAE7B5C,EAAK,CACP,GAAIkN,EAAOlN,IAAQoN,EAAkBrO,QAAQiB,IAAQ,EACnD,OAGAkN,EAAOlN,GADG,eAARA,GACakN,EAAOlN,GAAOkN,EAAOlN,GAAO,IAAI+E,OAAO,CAAChF,IAEzCmN,EAAOlN,GAAOkN,EAAOlN,GAAO,KAAOD,EAAMA,CAE3D,CACF,IAEOmN,GAnBgBA,CAoBzB,C,iCC9BA9R,EAAOC,QAAU,SAAgBmS,GAC/B,OAAO,SAAcC,GACnB,OAAOD,EAAS1I,MAAM,KAAM2I,EAC9B,CACF,C,qCCxBA,IAAI7L,EAAU,iBAEVgC,EAAa,CAAC,EAGlB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAU9D,SAAQ,SAASW,EAAMmC,GACrFgB,EAAWnD,GAAQ,SAAmBiN,GACpC,cAAcA,IAAUjN,GAAQ,KAAOmC,EAAI,EAAI,KAAO,KAAOnC,CAC/D,CACF,IAEA,IAAIkN,EAAqB,CAAC,EA0C1B,SAAS5J,EAAc0B,EAASmI,EAAQC,GACtC,GAAuB,kBAAZpI,EACT,MAAM,IAAInD,UAAU,6BAEtB,IAAI4F,EAAOD,OAAOC,KAAKzC,GACnB7C,EAAIsF,EAAKpF,OACb,MAAOF,KAAM,EAAG,CACd,IAAIkL,EAAM5F,EAAKtF,GACXe,EAAYiK,EAAOE,GACvB,GAAInK,EAAJ,CACE,IAAIvF,EAAQqH,EAAQqI,GAChBC,OAAmBnO,IAAVxB,GAAuBuF,EAAUvF,EAAO0P,EAAKrI,GAC1D,IAAe,IAAXsI,EACF,MAAM,IAAIzL,UAAU,UAAYwL,EAAM,YAAcC,EAGxD,MACA,IAAqB,IAAjBF,EACF,MAAM1H,MAAM,kBAAoB2H,EAEpC,CACF,CAtDAlK,EAAWvE,aAAe,SAAsBsE,EAAWqK,EAAS/L,GAClE,SAASgM,EAAcH,EAAKI,GAC1B,MAAO,WAAatM,EAAU,0BAA6BkM,EAAM,IAAOI,GAAQjM,EAAU,KAAOA,EAAU,GAC7G,CAGA,OAAO,SAAS7D,EAAO0P,EAAKK,GAC1B,IAAkB,IAAdxK,EACF,MAAM,IAAIwC,MAAM8H,EAAcH,EAAK,qBAAuBE,EAAU,OAASA,EAAU,MAczF,OAXIA,IAAYL,EAAmBG,KACjCH,EAAmBG,IAAO,EAE1BM,QAAQC,KACNJ,EACEH,EACA,+BAAiCE,EAAU,8CAK1CrK,GAAYA,EAAUvF,EAAO0P,EAAKK,EAC3C,CACF,EAgCA/S,EAAOC,QAAU,CACf0I,cAAeA,EACfH,WAAYA,E,qCC9Ed,IAAI9C,EAAO,EAAQ,OAIfqB,EAAW8F,OAAO5G,UAAUc,SAQhC,SAASsF,EAAQ1H,GACf,OAAO8E,MAAM4C,QAAQ1H,EACvB,CAQA,SAASI,EAAYJ,GACnB,MAAsB,qBAARA,CAChB,CAQA,SAASuJ,EAASvJ,GAChB,OAAe,OAARA,IAAiBI,EAAYJ,IAA4B,OAApBA,EAAIuO,cAAyBnO,EAAYJ,EAAIuO,cAChD,oBAA7BvO,EAAIuO,YAAYhF,UAA2BvJ,EAAIuO,YAAYhF,SAASvJ,EAClF,CAQA,SAASsJ,EAActJ,GACrB,MAA8B,yBAAvBoC,EAASmE,KAAKvG,EACvB,CAQA,SAAShD,EAAWgD,GAClB,MAA8B,sBAAvBoC,EAASmE,KAAKvG,EACvB,CAQA,SAAS2J,EAAkB3J,GACzB,IAAIgO,EAMJ,OAJEA,EAD0B,qBAAhBQ,aAAiCA,YAAkB,OACpDA,YAAYC,OAAOzO,GAEnB,GAAUA,EAAU,QAAMsJ,EAActJ,EAAI4J,QAEhDoE,CACT,CAQA,SAAShF,EAAShJ,GAChB,MAAsB,kBAARA,CAChB,CAQA,SAASoL,EAASpL,GAChB,MAAsB,kBAARA,CAChB,CAQA,SAAS8J,EAAS9J,GAChB,OAAe,OAARA,GAA+B,kBAARA,CAChC,CAQA,SAASyH,EAAczH,GACrB,GAA2B,oBAAvBoC,EAASmE,KAAKvG,GAChB,OAAO,EAGT,IAAIsB,EAAY4G,OAAOwG,eAAe1O,GACtC,OAAqB,OAAdsB,GAAsBA,IAAc4G,OAAO5G,SACpD,CAQA,SAASmJ,EAAOzK,GACd,MAA8B,kBAAvBoC,EAASmE,KAAKvG,EACvB,CAQA,SAASyJ,EAAOzJ,GACd,MAA8B,kBAAvBoC,EAASmE,KAAKvG,EACvB,CAQA,SAAS0J,EAAO1J,GACd,MAA8B,kBAAvBoC,EAASmE,KAAKvG,EACvB,CAQA,SAAS2O,EAAW3O,GAClB,MAA8B,sBAAvBoC,EAASmE,KAAKvG,EACvB,CAQA,SAASwJ,EAASxJ,GAChB,OAAO8J,EAAS9J,IAAQ2O,EAAW3O,EAAI4O,KACzC,CAQA,SAAS/E,EAAkB7J,GACzB,MAA8B,6BAAvBoC,EAASmE,KAAKvG,EACvB,CAQA,SAASmJ,EAAK0F,GACZ,OAAOA,EAAI1F,KAAO0F,EAAI1F,OAAS0F,EAAItJ,QAAQ,aAAc,GAC3D,CAiBA,SAAS/F,IACP,OAAyB,qBAAdyM,WAAoD,gBAAtBA,UAAU6C,SACY,iBAAtB7C,UAAU6C,SACY,OAAtB7C,UAAU6C,WAI/B,qBAAX9B,QACa,qBAAbzB,SAEX,CAcA,SAASxL,EAAQgP,EAAKlJ,GAEpB,GAAY,OAARkJ,GAA+B,qBAARA,EAU3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGLrH,EAAQqH,GAEV,IAAK,IAAIlM,EAAI,EAAGC,EAAIiM,EAAIhM,OAAQF,EAAIC,EAAGD,IACrCgD,EAAGU,KAAK,KAAMwI,EAAIlM,GAAIA,EAAGkM,QAI3B,IAAK,IAAI9O,KAAO8O,EACV7G,OAAO5G,UAAU0N,eAAezI,KAAKwI,EAAK9O,IAC5C4F,EAAGU,KAAK,KAAMwI,EAAI9O,GAAMA,EAAK8O,EAIrC,CAmBA,SAAStI,IACP,IAAIuH,EAAS,CAAC,EACd,SAASiB,EAAYjP,EAAKC,GACpBwH,EAAcuG,EAAO/N,KAASwH,EAAczH,GAC9CgO,EAAO/N,GAAOwG,EAAMuH,EAAO/N,GAAMD,GACxByH,EAAczH,GACvBgO,EAAO/N,GAAOwG,EAAM,CAAC,EAAGzG,GACf0H,EAAQ1H,GACjBgO,EAAO/N,GAAOD,EAAI2H,QAElBqG,EAAO/N,GAAOD,CAElB,CAEA,IAAK,IAAI6C,EAAI,EAAGC,EAAIsH,UAAUrH,OAAQF,EAAIC,EAAGD,IAC3C9C,EAAQqK,UAAUvH,GAAIoM,GAExB,OAAOjB,CACT,CAUA,SAASzM,EAAO2N,EAAGC,EAAGjF,GAQpB,OAPAnK,EAAQoP,GAAG,SAAqBnP,EAAKC,GAEjCiP,EAAEjP,GADAiK,GAA0B,oBAARlK,EACXe,EAAKf,EAAKkK,GAEVlK,CAEb,IACOkP,CACT,CAQA,SAASE,EAASC,GAIhB,OAH8B,QAA1BA,EAAQC,WAAW,KACrBD,EAAUA,EAAQ1H,MAAM,IAEnB0H,CACT,CAEAhU,EAAOC,QAAU,CACfoM,QAASA,EACT4B,cAAeA,EACfC,SAAUA,EACVvM,WAAYA,EACZ2M,kBAAmBA,EACnBX,SAAUA,EACVoC,SAAUA,EACVtB,SAAUA,EACVrC,cAAeA,EACfrH,YAAaA,EACbqK,OAAQA,EACRhB,OAAQA,EACRC,OAAQA,EACRiF,WAAYA,EACZnF,SAAUA,EACVK,kBAAmBA,EACnBrK,qBAAsBA,EACtBO,QAASA,EACT0G,MAAOA,EACPlF,OAAQA,EACR4H,KAAMA,EACNiG,SAAUA,E,2GC3UDjO,EAAgB,CACvBoO,UAAW,oBACXC,gBAAiB,QACjBC,YAAa,KACbC,WAAY,OACZC,gBAAiB,EACjBC,iBAAkB,GAGlBC,SAAS,IAAIC,EAAA,IAAgBC,cAM1B,SAASC,EAAcnB,GAC1B,IAAIoB,EAAM,EACVA,EAAMpB,EAAI9L,OACV,IAAK,IAAIF,EAAIgM,EAAI9L,OAAQF,GAAK,EAAGA,GAAK,EAAG,CACrC,IAAIqN,EAAWrB,EAAIS,WAAWzM,GAC1BqN,EAAW,KAAQA,GAAY,KAC/BD,GAAO,EAEFC,EAAW,MAASA,GAAY,QACrCD,GAAO,GAGPC,GAAY,OAAUA,GAAY,QAClCrN,GAAK,EAEb,CACA,OAAOoN,CACX,CAIO,SAASE,IACZ,IAAIC,EAAW,IAAI/E,KACnB,OAAO+E,EAASC,SACpB,CAIO,SAASC,EAAUjS,GACtB,OAAIkS,OAAOD,UACAC,OAAOD,UAAUjS,GAErBmS,EAAWnS,EACtB,CACA,SAASmS,EAAWnS,GAChB,MAAyB,kBAAVA,GAAsBoS,SAASpS,IAAUqS,KAAKC,MAAMtS,KAAWA,CAClF,CAIA,IAAIuS,EAAQ,CAAC,E,GACoB,WAC7B,SAASC,IACT,CACAA,EAAYC,MAAQ,WAChBF,EAAQ,CAAC,CACb,EACAC,EAAYE,QAAU,SAAU9Q,GAC5B,OAAO2Q,EAAM3Q,IAAQ,IACzB,EACA4Q,EAAYG,QAAU,SAAU/Q,EAAK5B,GACjCuS,EAAM3Q,GAAO5B,CACjB,EACAwS,EAAYI,WAAa,SAAUhR,UACxB2Q,EAAM3Q,EACjB,CAEJ,CAhBgC,G,SC1D5BiR,EAAS,IAAI,IAAO,gBAKpBC,EAA8B,WAK9B,SAASA,EAAalV,GAClBkG,KAAKlG,OAASiM,OAAOkJ,OAAO,CAAC,EAAGnV,GAChCkG,KAAKkP,gBAAkBlP,KAAKlG,OAAOsT,UAAY,UAC/CpN,KAAKmP,aACT,CAkFA,OAjFAH,EAAa7P,UAAUiQ,cAAgB,WACnC,MAAO,OACX,EACAJ,EAAa7P,UAAUgQ,YAAc,WAE5BhB,EAAUnO,KAAKlG,OAAOuT,mBACvB0B,EAAO7L,MAAM,yFACblD,KAAKlG,OAAOuT,gBAAkBrO,EAAcqO,iBAE3Cc,EAAUnO,KAAKlG,OAAOwT,eACvByB,EAAO7L,MAAM,qFACblD,KAAKlG,OAAOwT,YAActO,EAAcsO,aAEvCa,EAAUnO,KAAKlG,OAAOyT,cACvBwB,EAAO7L,MAAM,oFACblD,KAAKlG,OAAOyT,WAAavO,EAAcuO,YAEtCY,EAAUnO,KAAKlG,OAAO0T,mBACvBuB,EAAO7L,MAAM,yFACblD,KAAKlG,OAAO0T,gBAAkBxO,EAAcwO,iBAE5CxN,KAAKlG,OAAOwT,YAActN,KAAKlG,OAAOuT,kBACtC0B,EAAO7L,MAAM,uGACblD,KAAKlG,OAAOwT,YAActO,EAAcsO,cAExCtN,KAAKlG,OAAO0T,gBAAkB,GAAKxN,KAAKlG,OAAO0T,gBAAkB,KACjEuB,EAAO7L,MAAM,8FACblD,KAAKlG,OAAO0T,gBAAkBxO,EAAcwO,kBAE5CY,OAAOpO,KAAKlG,OAAO2T,kBAAoB,GACvCW,OAAOpO,KAAKlG,OAAO2T,kBAAoB,KACvCsB,EAAO7L,MAAM,+FACblD,KAAKlG,OAAO2T,iBAAmBzO,EAAcyO,kBAGjD,IAAI4B,EAAa,QACbrP,KAAKlG,OAAOuT,gBAAkBgC,IAC9BN,EAAO7L,MAAM,6FACblD,KAAKlG,OAAOuT,gBAAkBrO,EAAcqO,gBAEpD,EAQA2B,EAAa7P,UAAUmQ,cAAgB,SAAUxR,EAAK5B,EAAOqH,GACzD,IAAIuK,EAAM,CACNhQ,IAAKA,EACL1D,KAAM8B,EACNqT,UAAWvB,IACXwB,YAAaxB,IACbyB,SAAUlM,EAAQkM,SAClB7G,QAASrF,EAAQqF,QACjBrK,YAAarC,EACbwT,SAAU,GAKd,OAHA5B,EAAI4B,SAAW7B,EAAc/G,KAAKI,UAAU4G,IAE5CA,EAAI4B,SAAW7B,EAAc/G,KAAKI,UAAU4G,IACrCA,CACX,EAOAkB,EAAa7P,UAAUwQ,UAAY,SAAU7V,GACzC,OAAKA,GAGDA,EAAOsT,WACP2B,EAAO5C,KAAK,qCAEhBnM,KAAKlG,OAASiM,OAAOkJ,OAAO,CAAC,EAAGjP,KAAKlG,OAAQA,EAAQA,EAAO8V,OAC5D5P,KAAKmP,cACEnP,KAAKlG,QAPDkG,KAAKlG,MAQpB,EACOkV,CACX,CA5FiC,GCP7Ba,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAG/C,GAI7B,OAHA8C,EAAgB/J,OAAOiK,gBAClB,CAAEC,UAAW,cAAgBtN,OAAS,SAAUoN,EAAG/C,GAAK+C,EAAEE,UAAYjD,CAAG,GAC1E,SAAU+C,EAAG/C,GAAK,IAAK,IAAIkD,KAAKlD,EAAOA,EAAEH,eAAeqD,KAAIH,EAAEG,GAAKlD,EAAEkD,GAAI,EACtEJ,EAAcC,EAAG/C,EAC5B,EACA,OAAO,SAAU+C,EAAG/C,GAEhB,SAASmD,IAAOnQ,KAAKoM,YAAc2D,CAAG,CADtCD,EAAcC,EAAG/C,GAEjB+C,EAAE5Q,UAAkB,OAAN6N,EAAajH,OAAO1G,OAAO2N,IAAMmD,EAAGhR,UAAY6N,EAAE7N,UAAW,IAAIgR,EACnF,CACH,CAZ2C,GAgBxC,EAAS,IAAI,IAAO,SAIpBC,EAA0C,SAAUC,GAMpD,SAASD,EAAyBtW,GAC9B,IAAIwW,EAAQtQ,KACRuQ,EAAczW,EACZiM,OAAOkJ,OAAO,CAAC,EAAGjQ,EAAelF,GACjCkF,EAMN,OALAsR,EAAQD,EAAOjM,KAAKpE,KAAMuQ,IAAgBvQ,KAC1CsQ,EAAMxW,OAAO4T,QAAU6C,EAAY7C,QACnC4C,EAAM1B,QAAU0B,EAAM1B,QAAQhQ,KAAK0R,GACnCA,EAAMzB,QAAUyB,EAAMzB,QAAQjQ,KAAK0R,GACnCA,EAAMxB,WAAawB,EAAMxB,WAAWlQ,KAAK0R,GAClCA,CACX,CA+YA,OA/ZAT,EAAUO,EAA0BC,GAuBpCD,EAAyBjR,UAAUqR,wBAA0B,SAAUC,GACnE,IAAIC,EAAU1Q,KAAK2Q,kBACnB3Q,KAAKlG,OAAO4T,QAAQmB,QAAQ7O,KAAKkP,iBAAkBwB,EAAUD,GAAQxQ,WACzE,EAOAmQ,EAAyBjR,UAAUyR,wBAA0B,SAAUH,GACnE,IAAIC,EAAU1Q,KAAK2Q,kBACnB3Q,KAAKlG,OAAO4T,QAAQmB,QAAQ7O,KAAKkP,iBAAkBwB,EAAUD,GAAQxQ,WACzE,EAUAmQ,EAAyBjR,UAAU0R,aAAe,SAAUC,EAAMC,GAG9D,OAFAD,EAAKtB,YAAcxB,IACnBhO,KAAKlG,OAAO4T,QAAQmB,QAAQkC,EAAajK,KAAKI,UAAU4J,IACjDA,CACX,EASAV,EAAyBjR,UAAU6R,WAAa,SAAUlT,GACtD,IAAImT,EAAOjR,KAAKlG,OAAO4T,QAAQkB,QAAQ9Q,GACnCgT,EAAOhK,KAAKC,MAAMkK,GACtB,OAAIjD,KAAiB8C,EAAKlI,OAI9B,EAQAwH,EAAyBjR,UAAU+R,YAAc,SAAUH,EAAaI,GACpE,IAAIC,EAAWD,GAETrK,KAAKC,MAAM/G,KAAKlG,OAAO4T,QAAQkB,QAAQmC,IAAcrB,SAC3D1P,KAAKwQ,wBAAwBY,GAE7BpR,KAAKlG,OAAO4T,QAAQoB,WAAWiC,EACnC,EASAX,EAAyBjR,UAAUkS,SAAW,SAAUN,EAAaD,GAEjE9Q,KAAK4Q,wBAAwBE,EAAKpB,UAClC,IACI1P,KAAKlG,OAAO4T,QAAQmB,QAAQkC,EAAajK,KAAKI,UAAU4J,GAC5D,CACA,MAAOQ,GAEHtR,KAAKwQ,wBAAwBM,EAAKpB,UAClC,EAAOxM,MAAM,sBAAwBoO,EACzC,CACJ,EASAlB,EAAyBjR,UAAUoS,WAAa,SAAUH,GACtD,IAAII,EAAgBxR,KAAK2Q,kBAAoBS,EAAWpR,KAAKlG,OAAOuT,gBAChEoE,GAAuB,EAAIzR,KAAKlG,OAAO2T,kBAAoBzN,KAAKlG,OAAOuT,gBAC3E,OAAOmE,EAAgBC,EACjBD,EACAC,CACV,EASArB,EAAyBjR,UAAUuS,aAAe,SAAUN,GACxD,OAAOA,EAAWpR,KAAK2Q,kBAAoB3Q,KAAKlG,OAAOuT,eAC3D,EASA+C,EAAyBjR,UAAUwS,eAAiB,WAIhD,IAHA,IAAI3L,EAAO,GACP4L,EAAa,GAERlR,EAAI,EAAGA,EAAIV,KAAKlG,OAAO4T,QAAQ9M,OAAQF,GAAK,EACjDkR,EAAW1Q,KAAKlB,KAAKlG,OAAO4T,QAAQ5P,IAAI4C,IAG5C,IAASA,EAAI,EAAGA,EAAIkR,EAAWhR,OAAQF,GAAK,EAAG,CAC3C,IAAI5C,EAAM8T,EAAWlR,GACsB,IAAvC5C,EAAIjB,QAAQmD,KAAKlG,OAAOsT,YACxBtP,IAAQkC,KAAKkP,kBACTlP,KAAKgR,WAAWlT,GAChBkC,KAAKkR,YAAYpT,GAGjBkI,EAAK9E,KAAKpD,GAGtB,CACA,OAAOkI,CACX,EAUAoK,EAAyBjR,UAAU0S,aAAe,SAAU7L,EAAM8L,GAI9D,IAHA,IAAIC,EAAQ,GACRC,EAAeF,EAEVpR,EAAI,EAAGA,EAAIsF,EAAKpF,OAAQF,GAAK,EAAG,CACrC,IAAI7C,EAAMmC,KAAKlG,OAAO4T,QAAQkB,QAAQ5I,EAAKtF,IAC3C,GAAW,MAAP7C,EAAa,CACb,IAAIiT,EAAOhK,KAAKC,MAAMlJ,GACtBkU,EAAM7Q,KAAK4P,EACf,CACJ,CAGAiB,EAAME,MAAK,SAAUlF,EAAGC,GACpB,OAAID,EAAE0C,SAAWzC,EAAEyC,UACP,EAEH1C,EAAE0C,SAAWzC,EAAEyC,SACb,EAGH1C,EAAEyC,YAAcxC,EAAEwC,aACV,EAGD,CAEnB,IACA,IAAS9O,EAAI,EAAGA,EAAIqR,EAAMnR,OAAQF,GAAK,EAInC,GAFAV,KAAKkR,YAAYa,EAAMrR,GAAG5C,IAAKiU,EAAMrR,GAAGgP,UACxCsC,GAAgBD,EAAMrR,GAAGgP,SACrBsC,GAAgB,EAChB,MAGZ,EAiBA5B,EAAyBjR,UAAU0P,QAAU,SAAU/Q,EAAK5B,EAAOqH,GAC/D,EAAO2O,IAAI,oBAAsBpU,EAAM,cAAgB5B,EAAQ,kBAAoBqH,GACnF,IAAIwN,EAAc/Q,KAAKlG,OAAOsT,UAAYtP,EAE1C,GAAIiT,IAAgB/Q,KAAKlG,OAAOsT,WAC5B2D,IAAgB/Q,KAAKkP,gBAIzB,GAAqB,qBAAVhT,EAAX,CAIA,IAAIiW,EAAmB,CACnB1C,SAAUlM,QAAgC7F,IAArB6F,EAAQkM,SACvBlM,EAAQkM,SACRzP,KAAKlG,OAAO0T,gBAClB5E,QAASrF,QAA+B7F,IAApB6F,EAAQqF,QACtBrF,EAAQqF,QACR5I,KAAKlG,OAAOyT,WAAaS,KAEnC,GAAImE,EAAiB1C,SAAW,GAAK0C,EAAiB1C,SAAW,EAC7D,EAAOtD,KAAK,qFADhB,CAIA,IAAI2E,EAAO9Q,KAAKsP,cAAcyB,EAAa7U,EAAOiW,GAElD,GAAIrB,EAAKpB,SAAW1P,KAAKlG,OAAOwT,YAC5B,EAAOnB,KAAK,kBAAoBrO,EAAM,gDAG1C,IAEI,IAAID,EAAMmC,KAAKlG,OAAO4T,QAAQkB,QAAQmC,GAKtC,GAJIlT,GACAmC,KAAKkR,YAAYH,EAAajK,KAAKC,MAAMlJ,GAAK6R,UAG9C1P,KAAK0R,aAAaZ,EAAKpB,UAAW,CAClC,IAAI0C,EAAYpS,KAAK2R,iBAErB,GAAI3R,KAAK0R,aAAaZ,EAAKpB,UAAW,CAClC,IAAIoC,EAAY9R,KAAKuR,WAAWT,EAAKpB,UACrC1P,KAAK6R,aAAaO,EAAWN,EACjC,CACJ,CAGA9R,KAAKqR,SAASN,EAAaD,EAC/B,CACA,MAAO7J,GACH,EAAOkF,KAAK,mBAAqBlF,EACrC,CA5BA,CAZA,MAFI,EAAOkF,KAAK,mDAJZ,EAAOA,KAAK,gDA+CpB,EAgBAiE,EAAyBjR,UAAUyP,QAAU,SAAU9Q,EAAKyF,GACxD,EAAO2O,IAAI,oBAAsBpU,EAAM,iBAAmByF,GAC1D,IAAIuK,EAAM,KACNiD,EAAc/Q,KAAKlG,OAAOsT,UAAYtP,EAC1C,GAAIiT,IAAgB/Q,KAAKlG,OAAOsT,WAC5B2D,IAAgB/Q,KAAKkP,gBAErB,OADA,EAAO/C,KAAK,iDACL,KAEX,IAEI,GADA2B,EAAM9N,KAAKlG,OAAO4T,QAAQkB,QAAQmC,GACvB,MAAPjD,EAAa,CACb,IAAI9N,KAAKgR,WAAWD,GAKf,CAED,IAAID,EAAOhK,KAAKC,MAAM+G,GAEtB,OADAgD,EAAO9Q,KAAK6Q,aAAaC,EAAMC,GACxBD,EAAK1W,IAChB,CARI4F,KAAKkR,YAAYH,EAAajK,KAAKC,MAAM+G,GAAK4B,UAC9C5B,EAAM,IAQd,CACA,GAAIvK,QAAgC7F,IAArB6F,EAAQ+H,SAAwB,CAC3C,IAAIzN,EAAM0F,EAAQ+H,WAIlB,OAHY,OAARzN,GACAmC,KAAK6O,QAAQ/Q,EAAKD,EAAK0F,GAEpB1F,CACX,CACA,OAAO,IACX,CACA,MAAOoJ,GAEH,OADA,EAAOkF,KAAK,mBAAqBlF,GAC1B,IACX,CACJ,EAOAmJ,EAAyBjR,UAAU2P,WAAa,SAAUhR,GACtD,EAAOoU,IAAI,uBAAyBpU,GACpC,IAAIiT,EAAc/Q,KAAKlG,OAAOsT,UAAYtP,EAC1C,GAAIiT,IAAgB/Q,KAAKlG,OAAOsT,WAC5B2D,IAAgB/Q,KAAKkP,gBAGzB,IACI,IAAIrR,EAAMmC,KAAKlG,OAAO4T,QAAQkB,QAAQmC,GAClClT,GACAmC,KAAKkR,YAAYH,EAAajK,KAAKC,MAAMlJ,GAAK6R,SAEtD,CACA,MAAOzI,GACH,EAAOkF,KAAK,sBAAwBlF,EACxC,CACJ,EAMAmJ,EAAyBjR,UAAUwP,MAAQ,WACvC,EAAOuD,IAAI,eAEX,IADA,IAAIG,EAAe,GACV3R,EAAI,EAAGA,EAAIV,KAAKlG,OAAO4T,QAAQ9M,OAAQF,GAAK,EAAG,CACpD,IAAI5C,EAAMkC,KAAKlG,OAAO4T,QAAQ5P,IAAI4C,GACS,IAAvC5C,EAAIjB,QAAQmD,KAAKlG,OAAOsT,YACxBiF,EAAanR,KAAKpD,EAE1B,CACA,IACI,IAAS4C,EAAI,EAAGA,EAAI2R,EAAazR,OAAQF,GAAK,EAC1CV,KAAKlG,OAAO4T,QAAQoB,WAAWuD,EAAa3R,GAEpD,CACA,MAAOuG,GACH,EAAOkF,KAAK,iBAAmBlF,EACnC,CACJ,EAMAmJ,EAAyBjR,UAAUmT,WAAa,WAE5C,IADA,IAAItM,EAAO,GACFtF,EAAI,EAAGA,EAAIV,KAAKlG,OAAO4T,QAAQ9M,OAAQF,GAAK,EAAG,CACpD,IAAI5C,EAAMkC,KAAKlG,OAAO4T,QAAQ5P,IAAI4C,GACS,IAAvC5C,EAAIjB,QAAQmD,KAAKlG,OAAOsT,YACxBtP,IAAQkC,KAAKkP,iBACblJ,EAAK9E,KAAKpD,EAAIyU,UAAUvS,KAAKlG,OAAOsT,UAAUxM,QAEtD,CACA,OAAOoF,CACX,EAMAoK,EAAyBjR,UAAUwR,gBAAkB,WACjD,IAAI7C,EAAM9N,KAAKlG,OAAO4T,QAAQkB,QAAQ5O,KAAKkP,iBAK3C,OAJKpB,IACD9N,KAAKlG,OAAO4T,QAAQmB,QAAQ7O,KAAKkP,gBAAiB,KAClDpB,EAAM,KAEHM,OAAON,EAClB,EAOAsC,EAAyBjR,UAAUJ,eAAiB,SAAUjF,GAK1D,OAJKA,EAAOsT,WAAatT,EAAOsT,YAAcpO,EAAcoO,YACxD,EAAOlK,MAAM,uDACbpJ,EAAOsT,UAAYY,EAAY/N,YAE5B,IAAImQ,EAAyBtW,EACxC,EACOsW,CACX,CAja6C,CAia3CpB,GAESwD,EAAsB,IAAIpC,EC/arC,IACA,KAAQqC,SAASD,G,0BCfbE,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACX,EAEIE,EAAqB,IACdC,EAAY,CAInBC,YAAa,EACbC,uBAAwB,WACpB,OAAIF,EAAUC,YACH,IAAInK,MAAK,IAAIA,MAAOgF,UAAYkF,EAAUC,aAG1C,IAAInK,IAEnB,EAIAqK,eAAgB,WACZ,OAAOH,EAAUC,WACrB,EACAG,wBAAyB,SAAUC,GAE/B,YADa,IAATA,IAAmBA,EAAOL,EAAUE,0BACjCG,EAAKlL,cAAcnF,QAAQ,iBAAkB,GACxD,EACAsQ,wBAAyB,SAAUC,GAC/B,IAAIC,EAAKlB,EAAOiB,EAAOtK,MAAM,kDAAmD,GAAIwK,EAAOD,EAAG,GAAIE,EAAQF,EAAG,GAAIG,EAAMH,EAAG,GAAII,EAAOJ,EAAG,GAAIK,EAASL,EAAG,GAAIM,EAASN,EAAG,GACxK,OAAO,IAAI1K,KAAKA,KAAKiL,IAAI/F,OAAOyF,GAAOzF,OAAO0F,GAAS,EAAG1F,OAAO2F,GAAM3F,OAAO4F,GAAO5F,OAAO6F,GAAS7F,OAAO8F,IAChH,EACAE,cAAe,SAAUC,GAErB,OAAQ9F,KAAK+F,IAAID,EAAWnG,UAAYkF,EAAUE,yBAAyBpF,YAAciF,CAC7F,EACAoB,iBAAkB,SAAUrR,GACxB,IAAKA,EAAMpH,WAAaoH,EAAMpH,SAASxB,QACnC,OAAO,EAEX,IAAIA,EAAU4I,EAAMpH,SAASxB,QAC7B,OAAOka,QAAQ,CAAC,sBAAuB,6BAA6BC,SAASna,EAAQ,uBAChFA,EAAQmZ,MAAQnZ,EAAQ4O,MACjC,EAIAwL,eAAgB,SAAUC,GACtBvB,EAAUC,YAAcsB,CAC5B,G,iCCxDAC,EAAsC,WAStC,OARAA,EAAW7O,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACOD,EAAShS,MAAM5C,KAAMiI,UAChC,EACI8M,EAAkC,SAAUD,EAAG7N,GAC/C,IAAI4N,EAAI,CAAC,EACT,IAAK,IAAI3E,KAAK4E,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,IAAMjJ,EAAEpK,QAAQqT,GAAK,IAC9E2E,EAAE3E,GAAK4E,EAAE5E,IACb,GAAS,MAAL4E,GAAqD,oBAAjC/O,OAAOiP,sBACtB,KAAItU,EAAI,EAAb,IAAgBwP,EAAInK,OAAOiP,sBAAsBF,GAAIpU,EAAIwP,EAAEtP,OAAQF,IAC3DuG,EAAEpK,QAAQqT,EAAExP,IAAM,GAAKqF,OAAO5G,UAAU8V,qBAAqB7Q,KAAK0Q,EAAG5E,EAAExP,MACvEmU,EAAE3E,EAAExP,IAAMoU,EAAE5E,EAAExP,IAF4B,CAItD,OAAOmU,CACX,EAMI,EAAS,IAAI,IAAO,UACpBK,EAAoB,mBACpBC,EAAmB,mBACnBC,EAAU,SAAUtX,EAAKuX,GACzB,IAAI7K,EAAO,IAAI,SAAS1M,GAExB,OADA0M,EAAK8K,OAAOD,GACL7K,EAAK+K,YAChB,EACI/K,EAAO,SAAU6K,GACjB,IAAIG,EAAMH,GAAO,GACb7K,EAAO,IAAI,SAEf,OADAA,EAAK8K,OAAOE,IACL,OAAMhL,EAAK+K,aACtB,EAKIE,EAAiB,SAAUC,GAC3B,OAAOA,EAAUtS,QAAQ,YAAY,SAAU9B,GAC3C,MAAO,IAAMA,EAAE6L,WAAW,GAAGlN,SAAS,IAAI3D,aAC9C,GACJ,EAMIqZ,EAAkB,SAAUC,GAC5B,OAAKA,GAA0B,IAAjBA,EAAMhV,OAGbgV,EACFzK,MAAM,KACN0K,KAAI,SAAU5O,GACf,IAAI6O,EAAU7O,EAAEkE,MAAM,KACtB,GAAuB,IAAnB2K,EAAQlV,OACR,OAAOqG,EAGP,IAAI8O,EAAgBN,EAAeK,EAAQ,IAC3C,OAAOA,EAAQ,GAAK,IAAMC,CAElC,IACK9D,MAAK,SAAUlF,EAAGC,GACnB,IAAIgJ,EAAQjJ,EAAE5B,MAAM,KAAK,GACrB8K,EAAQjJ,EAAE7B,MAAM,KAAK,GACzB,OAAI6K,IAAUC,EACHlJ,EAAIC,GAAK,EAAI,EAGbgJ,EAAQC,GAAS,EAAI,CAEpC,IACKzN,KAAK,KAxBC,EAyBf,EAYI0N,EAAoB,SAAU5b,GAC9B,OAAKA,GAA2C,IAAhCyL,OAAOC,KAAK1L,GAASsG,OAG7BmF,OAAOC,KAAK1L,GACfub,KAAI,SAAU/X,GACf,MAAO,CACHA,IAAKA,EAAIC,cACT7B,MAAO5B,EAAQwD,GAAOxD,EAAQwD,GAAKkJ,OAAO5D,QAAQ,OAAQ,KAAO,GAEzE,IACK6O,MAAK,SAAUlF,EAAGC,GACnB,OAAOD,EAAEjP,IAAMkP,EAAElP,KAAO,EAAI,CAChC,IACK+X,KAAI,SAAU/E,GACf,OAAOA,EAAKhT,IAAM,IAAMgT,EAAK5U,KACjC,IACKsM,KAAK,MAAQ,KAfP,EAgBf,EAKI2N,EAAiB,SAAU7b,GAC3B,OAAOyL,OAAOC,KAAK1L,GACdub,KAAI,SAAU/X,GACf,OAAOA,EAAIC,aACf,IACKkU,OACAzJ,KAAK,IACd,EAiBI4N,EAAoB,SAAUtb,GAC9B,IAAIub,GAAW,QAAMvb,EAAQW,KAC7B,MAAO,CACHX,EAAQuB,QAAU,IAClBjB,mBAAmBib,EAAS1L,UAAUvH,QAAQ,QAAS,KACvDuS,EAAgBU,EAAST,OACzBM,EAAkBpb,EAAQR,SAC1B6b,EAAerb,EAAQR,SACvBkQ,EAAK1P,EAAQV,OACfoO,KAAK,KACX,EACI8N,EAAqB,SAAUxb,GAC/B,IAAIub,GAAW,QAAMvb,EAAQW,KAAM6O,EAAO+L,EAAS/L,KAC/CiM,EAAUjM,EAAKjB,MAAM,4CACrB2B,GAAUuL,GAAW,IAAI/Q,MAAM,EAAG,GAKtC,MAJkB,OAAdwF,EAAO,KAEPA,EAASA,EAAOwL,WAEb,CACHC,QAAS3b,EAAQ2b,SAAWzL,EAAO,GACnC0L,OAAQ5b,EAAQ4b,QAAU1L,EAAO,GAEzC,EACI2L,EAAmB,SAAUC,EAAOF,EAAQD,GAC5C,MAAO,CAACG,EAAOF,EAAQD,EAAS,gBAAgBjO,KAAK,IACzD,EAeIqO,EAAiB,SAAUC,EAAWV,EAAmBW,EAAQC,GACjE,MAAO,CAACF,EAAWC,EAAQC,EAAOxM,EAAK4L,IAAoB5N,KAAK,KACpE,EAeIyO,EAAkB,SAAUC,EAAYN,EAAOO,GAC/C,EAAOC,MAAMD,GACb,IAAIE,EAAI,OAASH,EAAYI,EAASlC,EAAQiC,EAAGT,GAAQW,EAAWnC,EAAQkC,EAAQH,EAAaT,QAASc,EAAYpC,EAAQmC,EAAUJ,EAAaV,SAAUgB,EAAYrC,EAAQoC,EAAW,gBAC9L,OAAOC,CACX,EACIC,EAAgB,SAAUC,EAAaC,GACvC,OAAO,OAAMxC,EAAQuC,EAAaC,GACtC,EAOIC,EAA2B,SAAUf,EAAWgB,EAAYd,EAAOb,EAAgB4B,GACnF,MAAO,CACHjB,iBAAkCgB,EAAa,IAAMd,EACrD,iBAAmBb,EACnB,aAAe4B,GACjBvP,KAAK,KACX,EACIwP,EAAwB,WACxB,SAASA,IACT,CA4GA,OAvEAA,EAAOC,KAAO,SAAUnd,EAASod,EAAaf,GAG1C,QAFqB,IAAjBA,IAA2BA,EAAe,MAC9Crc,EAAQR,QAAUQ,EAAQR,SAAW,CAAC,EAClCQ,EAAQqd,OAASrd,EAAQV,KACzB,MAAM,IAAI6J,MAAM,kGAGpB,IAAImU,EAAKhF,EAAUE,yBAA0ByD,EAASqB,EAAG7P,cAAcnF,QAAQ,iBAAkB,IAAKwT,EAAQG,EAAO1L,OAAO,EAAG,GAC3HgL,GAAW,QAAMvb,EAAQW,KAC7BX,EAAQR,QAAQ,QAAU+b,EAAS/L,KACnCxP,EAAQR,QAAQ,cAAgByc,EAC5BmB,EAAYG,gBACZvd,EAAQR,QAAQ,wBAA0B4d,EAAYG,eAG1D,IAAIC,EAAclC,EAAkBtb,GACpC,EAAOsc,MAAMkB,GAEb,IAAIC,EAAcpB,GAAgBb,EAAmBxb,GAAUkc,EAAQL,EAAiBC,EAAO2B,EAAY7B,OAAQ6B,EAAY9B,SAAUmB,EAAcf,EAAe3B,EAAmBoD,EAAavB,EAAQC,GAE1MW,EAAcV,EAAgBiB,EAAYhB,WAAYN,EAAO2B,GAAcR,EAAYL,EAAcC,EAAaC,GAElHY,EAAuBX,EAAyB3C,EAAmBgD,EAAYJ,WAAYd,EAAOb,EAAerb,EAAQR,SAAUyd,GAEvI,OADAjd,EAAQR,QAAQ,iBAAmBke,EAC5B1d,CACX,EACAkd,EAAOS,QAAU,SAAUC,EAAcC,EAAYJ,EAAaK,GAC9D,IAAIC,EAAoC,kBAAjBH,EAA4BA,EAAajd,IAAMid,EAClErc,EAAiC,kBAAjBqc,EAA4BA,EAAarc,OAAS,MAClE8b,EAA+B,kBAAjBO,EAA4BA,EAAaP,UAAOza,EAC9D+L,EAAM2J,EAAUE,yBACf/K,cACAnF,QAAQ,iBAAkB,IAC3B0V,EAAQrP,EAAI4B,OAAO,EAAG,GAEtBuI,GAAK,QAAMiF,GAAW,GAAM,GAA2BE,GAAXnF,EAAGrJ,OAAoBwK,EAAOnB,EAAI,CAAC,YAC/EtJ,EAAOyO,EAAUzO,KACjB0O,EAAgB,CAAE1O,KAAMA,GACxB2O,EAAKV,GAAejC,EAAmB,CAAE7a,KAAK,QAAOsd,KAAerC,EAASuC,EAAGvC,OAAQD,EAAUwC,EAAGxC,QACrGyC,EAAkBvC,EAAiBmC,EAAOpC,EAAQD,GAGlD0C,EAAuBR,EAAWN,eAAiB5B,IAAYtB,EAC/DiE,EAAcxE,EAASA,EAASA,EAAS,CAAE,kBAAmBM,EAAmB,mBAAoB,CAACyD,EAAWb,WAAYoB,GAAiB1Q,KAAK,KAAM,aAAciB,EAAI4B,OAAO,EAAG,KAAQ8N,EAC3L,CAAE,uBAAwB,GAAKR,EAAWN,eAC1C,CAAC,GAAMO,EAAa,CAAE,gBAAiB,GAAKA,GAAe,CAAC,GAAK,CAAE,sBAAuB7S,OAAOC,KAAKgT,GAAexQ,KAAK,OAC5H6Q,EAAmBjD,EAAkB,CACrC/Z,OAAQA,EACRZ,KAAK,QAAOmZ,EAASA,EAAS,CAAC,EAAGmE,GAAY,CAAEnD,MAAOhB,EAASA,EAAS,CAAC,EAAGmE,EAAUnD,OAAQwD,MAC/F9e,QAAS0e,EACT5e,KAAM+d,IAENmB,EAAezC,EAAe3B,EAAmBmE,EAAkB5P,EAAKyP,GACxEvB,EAAcV,EAAgB0B,EAAWzB,WAAY4B,EAAO,CAC5DpC,OAAQA,EACRD,QAASA,IAETsB,EAAYL,EAAcC,EAAa2B,GACvCC,EAAwB3E,EAAS,CAAE,kBAAmBmD,GAAcY,EAAWN,eAAiB,CAChG,uBAAwBM,EAAWN,gBAEnCxM,GAAS,QAAO,CAChBxB,SAAU0O,EAAU1O,SACpBmP,SAAS,EACT/O,SAAUsO,EAAUtO,SACpBC,KAAMqO,EAAUrO,KAChBC,SAAUoO,EAAUpO,SACpBiL,MAAOhB,EAASA,EAASA,EAAS,CAAC,EAAGmE,EAAUnD,OAAQwD,GAAcG,KAE1E,OAAO1N,CACX,EACOmM,CACX,CA/G2B,G,oBC5NvB,EAAsC,WAStC,OARA,EAAWjS,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,EAASjS,MAAM5C,KAAMiI,UAChC,EACIwR,EAAwC,SAAU1R,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI6G,EAA4C,SAAUhS,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EACI,EAAkC,SAAUsa,EAAG7N,GAC/C,IAAI4N,EAAI,CAAC,EACT,IAAK,IAAI3E,KAAK4E,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,IAAMjJ,EAAEpK,QAAQqT,GAAK,IAC9E2E,EAAE3E,GAAK4E,EAAE5E,IACb,GAAS,MAAL4E,GAAqD,oBAAjC/O,OAAOiP,sBACtB,KAAItU,EAAI,EAAb,IAAgBwP,EAAInK,OAAOiP,sBAAsBF,GAAIpU,EAAIwP,EAAEtP,OAAQF,IAC3DuG,EAAEpK,QAAQqT,EAAExP,IAAM,GAAKqF,OAAO5G,UAAU8V,qBAAqB7Q,KAAK0Q,EAAG5E,EAAExP,MACvEmU,EAAE3E,EAAExP,IAAMoU,EAAE5E,EAAExP,IAF4B,CAItD,OAAOmU,CACX,EAII,EAAS,IAAI,IAAO,cAcpB8F,GAA4B,WAI5B,SAASA,EAAWpX,GAChBvD,KAAK4a,QAAU,YACf5a,KAAK6a,SAAW,cAChB7a,KAAK8a,oBAAiBpd,EAetBsC,KAAK+a,gBAAkB,KACvB/a,KAAKgb,YAAcA,EAAA,GACnBhb,KAAKib,SAAW1X,EAChB,EAAO6T,MAAM,cAAepX,KAAKib,UACL,MAAxBjb,KAAK+a,kBACL/a,KAAK+a,gBAAkB,IAAIG,QAEnC,CAuTA,OAvSAP,EAAWxb,UAAUgc,KAAO,SAAUC,EAAc/e,EAAQgf,GACxD,OAAO5B,EAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAIsb,EAAY7f,EAAKib,EAAQD,EAAS8E,EAAehf,EAAQif,EAAgBzR,EAAW0R,EAAYC,EAAeC,EAAmB/H,EAAIqF,EAAYF,EAClJzI,EAAQtQ,KACZ,OAAO+Z,EAAY/Z,MAAM,SAAU4b,GAC/B,OAAQA,EAAGxB,OACP,KAAK,EAyDD,OAxDA,EAAOhD,MAAM/a,EAAQ+e,GACrB1E,EAAS,YACTD,EAAU,cACV8E,OAAgB7d,EACY,kBAAjB0d,GACPE,EAAatb,KAAK6b,UAAUT,GAC5B3f,EAAM2f,IAGL3f,EAAM2f,EAAaU,SAAUP,EAAgBH,EAAaG,cAAe7E,EAAS0E,EAAa1E,OAAQD,EAAU2E,EAAa3E,QAC/H6E,EAAatb,KAAK6b,UAAUT,EAAaU,WAE7Cvf,EAAS,CACLF,OAAQA,EACRZ,IAAKA,EACL6O,KAAMgR,EAAWhR,KACjBzB,KAAMyS,EAAWzS,KACjBvO,QAAS,CAAC,EACVF,KAAM,KACNG,aAAc,OACdkC,QAAS,EACThC,YAAa,MAEjB+gB,EAAiB,CAAC,EACdO,EAAA,GAASC,gBACTjS,EAAYgS,EAAA,GAAShS,WAAa,oBAClCyR,EAAiB,CACb,aAAczR,IAGtB0R,EAAa1V,OAAOkJ,OAAO,CAAC,EAAGoM,GAC/BK,EAAgBD,EAAW3f,SACvB2f,EAAWtD,OACa,oBAAb8D,UACPR,EAAWtD,gBAAgB8D,UAC3BT,EAAe,gBAAkB,sBACjCjf,EAAOnC,KAAOqhB,EAAWtD,OAGzBqD,EAAe,gBAAkB,kCACjCjf,EAAOnC,KAAO0M,KAAKI,UAAUuU,EAAWtD,QAG5CsD,EAAWlhB,eACXgC,EAAOhC,aAAekhB,EAAWlhB,cAEjCkhB,EAAWle,kBACXhB,EAAO,mBAAqBkf,EAAWle,iBAEvCke,EAAWhf,UACXF,EAAOE,QAAUgf,EAAWhf,SAE5Bgf,EAAWS,mBACX3f,EAAO9B,YAAcghB,EAAWS,iBAAiB3b,OAErDhE,EAAO,qBAAuBkf,EAAWU,kBACV,oBAAlBZ,EAAsC,CAAC,EAAa,GAC1D,CAAC,EAAaA,KACzB,KAAK,EAED,OADA3H,EAAKgI,EAAGvB,OACD,CAAC,EAAa,GACzB,KAAK,EACDzG,OAAKlW,EACLke,EAAGxB,MAAQ,EACf,KAAK,EAOD,OANAuB,EAAoB/H,EACpBrX,EAAOjC,QAAU,EAAS,EAAS,EAAS,CAAC,EAAGkhB,GAAiBG,GAAoBF,EAAWnhB,SAChG2e,GAAK,QAAMxd,GAAK,GAAM,GAAgBwd,EAAG1O,OAAQwO,EAAY,EAAOE,EAAI,CAAC,WACzE1c,EAAOd,KAAM,QAAO,EAAS,EAAS,CAAC,EAAGsd,GAAY,CAAEnD,MAAO,EAAS,EAAS,CAAC,EAAGmD,EAAUnD,OAAS6F,EAAWW,uBAAyB,CAAC,MAG9F,qBAApC7f,EAAOjC,QAAQ,kBACtBiC,EAAOjC,QAAUyL,OAAOC,KAAKzJ,EAAOjC,SAAS+hB,QAAO,SAAUC,EAAKjF,GAI/D,OAHI9a,EAAOjC,QAAQ+c,KACfiF,EAAIjF,GAAK9a,EAAOjC,QAAQ+c,IAErBiF,CAEX,GAAG,CAAC,GACG,CAAC,EAActc,KAAKuc,SAAShgB,EAAQmf,KAGzC,CAAC,EAAc1b,KAAKgb,YAAYwB,MAAMhc,MAAK,SAAUic,GACpD,OAAOnM,EAAMoM,QAAQ,EAAS,CAAC,EAAGngB,GAASkgB,EAAaf,EAAe,CACnEhF,OAAQA,EACRD,QAASA,IACVkG,OAAM,SAAUzZ,GACf,GAAIkQ,EAAUmB,iBAAiBrR,GAAQ,CACnC,IAAI5I,EAAU4I,EAAMpH,SAASxB,QACzBsiB,EAAatiB,IAAYA,EAAQmZ,MAAQnZ,EAAQ4O,MACjD2T,EAAe,IAAI3T,KAAK0T,GACxBE,EAAc1J,EAAUM,wBAAwBnX,EAAOjC,QAAQ,eAEnE,GAAI8Y,EAAUgB,cAAcyI,GAExB,OADAzJ,EAAUsB,eAAemI,EAAa3O,UAAY4O,EAAY5O,WACvDoC,EAAM6K,KAAKC,EAAc/e,EAAQgf,EAEhD,CACA,MAAMnY,CACV,GACJ,IAAG,SAAU/G,GAET,OADA,EAAOib,MAAM,0DACN9G,EAAMiM,SAAShgB,EAAQmf,EAClC,KAEhB,GACJ,GACJ,EAOAf,EAAWxb,UAAUqd,IAAM,SAAUpB,EAAcC,GAC/C,OAAOrb,KAAKmb,KAAKC,EAAc,MAAOC,EAC1C,EAOAV,EAAWxb,UAAU4d,IAAM,SAAU3B,EAAcC,GAC/C,OAAOrb,KAAKmb,KAAKC,EAAc,MAAOC,EAC1C,EAOAV,EAAWxb,UAAU6d,MAAQ,SAAU5B,EAAcC,GACjD,OAAOrb,KAAKmb,KAAKC,EAAc,QAASC,EAC5C,EAOAV,EAAWxb,UAAU8d,KAAO,SAAU7B,EAAcC,GAChD,OAAOrb,KAAKmb,KAAKC,EAAc,OAAQC,EAC3C,EAOAV,EAAWxb,UAAU+d,IAAM,SAAU9B,EAAcC,GAC/C,OAAOrb,KAAKmb,KAAKC,EAAc,SAAUC,EAC7C,EAOAV,EAAWxb,UAAUge,KAAO,SAAU/B,EAAcC,GAChD,OAAOrb,KAAKmb,KAAKC,EAAc,OAAQC,EAC3C,EAMAV,EAAWxb,UAAUb,OAAS,SAAUxD,EAASiF,GAC7C,IAAIsB,EAASrB,KAAK+a,gBAAgByB,IAAI1hB,GACtC,QAAIuG,IACAA,EAAO/C,OAAOyB,IACP,EAGf,EAMA4a,EAAWxb,UAAUie,eAAiB,SAAUtiB,GAC5C,OAAOkF,KAAK+a,gBAAgBsC,IAAIviB,EACpC,EAMA6f,EAAWxb,UAAUM,SAAW,SAAUyD,GACtC,OAAO,aAAeA,EAC1B,EAKAyX,EAAWxb,UAAUme,oBAAsB,WACvC,OAAO,gBAAkBjc,QAC7B,EAMAsZ,EAAWxb,UAAUoe,6BAA+B,SAAUjd,EAASkd,GACnExd,KAAK+a,gBAAgB0C,IAAInd,EAASkd,EACtC,EAMA7C,EAAWxb,UAAU2c,SAAW,SAAU4B,GACtC,IAAIpN,EAAQtQ,KACR2d,EAAoB3d,KAAKib,SAAS2C,UAClC9hB,EAAW,GACf,OAAK6G,MAAM4C,QAAQoY,IAGnBA,EAAkB/f,SAAQ,SAAUyK,GAC5BA,EAAE1D,OAAS+Y,IACX5hB,EAAWuM,EAAEyT,SACW,kBAAbzT,EAAEqO,OACTpG,EAAMsK,QAAUvS,EAAEqO,OAEoB,kBAA1BpG,EAAM2K,SAASvE,SAC3BpG,EAAMsK,QAAUtK,EAAM2K,SAASvE,QAEV,kBAAdrO,EAAEoO,QACTnG,EAAMuK,SAAWxS,EAAEoO,SAAW,cAG9BnG,EAAMuK,SAAW,cAEU,oBAApBxS,EAAEkT,cACTjL,EAAMwK,eAAiBzS,EAAEkT,cAGzBjL,EAAMwK,oBAAiBpd,EAGnC,IACO5B,GAzBIA,CA0Bf,EAEA6e,EAAWxb,UAAUud,QAAU,SAAUngB,EAAQkgB,EAAaf,EAAe9H,GACzE,IAAI6C,EAAU7C,EAAG6C,QAASC,EAAS9C,EAAG8C,OAClCmH,EAA0BthB,EAAO4f,kBAAmB2B,EAAc,EAAOvhB,EAAQ,CAAC,sBAClFwhB,EAAkBrH,GAAU1W,KAAK4a,SAAW5a,KAAKib,SAASvE,OAC1DsH,EAAmBvH,GAAWzW,KAAK6a,UAAY7a,KAAKib,SAASxE,QAC7DwH,EAAQ,CACR/G,WAAYuF,EAAYyB,gBACxBpG,WAAY2E,EAAY0B,YACxB9F,cAAeoE,EAAY2B,cAE3BC,EAAe,CACf3H,OAAQqH,EACRtH,QAASuH,GAET7B,EAAoBpW,OAAOkJ,OAAOoP,EAAcR,GAChDS,EAAgBtG,EAAOC,KAAK6F,EAAaG,EAAO9B,GAMpD,OALImC,EAAclkB,OACdkkB,EAAcnG,KAAOmG,EAAclkB,MAEvC,EAAOgd,MAAM,mBAAoBkH,UAC1BA,EAAchkB,QAAQ,QACtB,IAAMgkB,GACR9d,MAAK,SAAU1E,GAAY,OAAQ4f,EAAgB5f,EAAWA,EAAS1B,IAAO,IAC9EuiB,OAAM,SAAUzZ,GAEjB,MADA,EAAOkU,MAAMlU,GACPA,CACV,GACJ,EACAyX,EAAWxb,UAAUod,SAAW,SAAUhgB,EAAQmf,GAE9C,YADsB,IAAlBA,IAA4BA,GAAgB,GACzC,IAAMnf,GACRiE,MAAK,SAAU1E,GAAY,OAAQ4f,EAAgB5f,EAAWA,EAAS1B,IAAO,IAC9EuiB,OAAM,SAAUzZ,GAEjB,MADA,EAAOkU,MAAMlU,GACPA,CACV,GACJ,EACAyX,EAAWxb,UAAU0c,UAAY,SAAUpgB,GACvC,IAAI2M,EAAQ3M,EAAI0P,MAAM,KACtB,MAAO,CACHb,KAAMlC,EAAM,GACZS,KAAM,IAAMT,EAAM5C,MAAM,GAAGgD,KAAK,KAExC,EACOmS,CACX,CArV+B,GCvF3B,GAAsC,WAStC,OARA,GAAW5U,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,GAASjS,MAAM5C,KAAMiI,UAChC,EACI,GAAwC,SAAUF,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI,GAA4C,SAAUnL,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EACI,GAAkC,SAAUsa,EAAG7N,GAC/C,IAAI4N,EAAI,CAAC,EACT,IAAK,IAAI3E,KAAK4E,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,IAAMjJ,EAAEpK,QAAQqT,GAAK,IAC9E2E,EAAE3E,GAAK4E,EAAE5E,IACb,GAAS,MAAL4E,GAAqD,oBAAjC/O,OAAOiP,sBACtB,KAAItU,EAAI,EAAb,IAAgBwP,EAAInK,OAAOiP,sBAAsBF,GAAIpU,EAAIwP,EAAEtP,OAAQF,IAC3DuG,EAAEpK,QAAQqT,EAAExP,IAAM,GAAKqF,OAAO5G,UAAU8V,qBAAqB7Q,KAAK0Q,EAAG5E,EAAExP,MACvEmU,EAAE3E,EAAExP,IAAMoU,EAAE5E,EAAExP,IAF4B,CAItD,OAAOmU,CACX,EAeI,GAAS,IAAI,IAAO,WAIpB0J,GAA8B,WAK9B,SAASA,EAAahb,GAClBvD,KAAKwe,KAAO,KACZxe,KAAKgb,YAAcA,EAAA,GACnBhb,KAAKib,SAAW1X,EAChB,GAAO6T,MAAM,cAAepX,KAAKib,SACrC,CA+PA,OA9PAsD,EAAapf,UAAUiQ,cAAgB,WACnC,MAAO,SACX,EAMAmP,EAAapf,UAAUwQ,UAAY,SAAUpM,GACzC,IAAIqQ,EAAKrQ,GAAW,CAAC,EAAG0V,EAAKrF,EAAG6K,IAAKA,OAAa,IAAPxF,EAAgB,CAAC,EAAIA,EAAIyF,EAAe,GAAO9K,EAAI,CAAC,QAC3FhI,EAAM,GAAS,GAAS,CAAC,EAAG8S,GAAeD,GAE/C,GADA,GAAOrH,MAAM,qBAAsB,CAAExL,IAAKA,IACtCA,EAAI,sBAAuB,CAC3B,GAAIA,EAAI,0BAA2B,CAC/B,IAAI+S,EAAS/S,EAAI,0BACjBA,EAAIgS,UACkB,kBAAXe,EAAsB7X,KAAKC,MAAM4X,GAAUA,CAC1D,CACA/S,EAAM7F,OAAOkJ,OAAO,CAAC,EAAGrD,EAAK,CACzB8K,OAAQ9K,EAAI,sBACZ+H,OAAQ,CAAC,GAEjB,CAmBA,OAlBIhR,MAAM4C,QAAQqG,EAAIgS,WAElBhS,EAAIgS,UAAUhgB,SAAQ,SAAUke,GACU,qBAA3BA,EAASP,eACkB,oBAA3BO,EAASP,gBAChB,GAAOpP,KAAK,YAAc2P,EAASnX,KAAO,wCAC1CmX,EAASP,mBAAgB7d,EAEjC,IAEKsC,KAAKib,UAAYtY,MAAM4C,QAAQvF,KAAKib,SAAS2C,WAClDhS,EAAIgS,UAAY5d,KAAKib,SAAS2C,UAG9BhS,EAAIgS,UAAY,GAEpB5d,KAAKib,SAAWlV,OAAOkJ,OAAO,CAAC,EAAGjP,KAAKib,SAAUrP,GACjD5L,KAAKjB,iBACEiB,KAAKib,QAChB,EAKAsD,EAAapf,UAAUJ,eAAiB,WAKpC,OAJA,GAAOqY,MAAM,4BACbpX,KAAKwe,KAAO,IAAI7D,GAAW3a,KAAKib,UAEhCjb,KAAKwe,KAAKxD,YAAchb,KAAKgb,aACtB,CACX,EAQAuD,EAAapf,UAAUqd,IAAM,SAAUkB,EAAS7U,EAAMwS,GAClD,IACI,IAAIuD,EAAU5e,KAAK6e,gBAAgBnB,EAAS7U,GACxCqT,EAAmBlc,KAAKwe,KAAKlB,sBAC7B7B,EAAa1V,OAAOkJ,OAAO,CAAC,EAAGoM,GACnCI,EAAWS,iBAAmBA,EAC9B,IAAI4C,EAAkB9e,KAAKwe,KAAKhC,IAAIoC,EAASnD,GAE7C,OADAzb,KAAKwe,KAAKjB,6BAA6BuB,EAAiB5C,GACjD4C,CACX,CACA,MAAO3iB,GACH,OAAOpC,QAAQE,OAAOkC,EAAI4D,QAC9B,CACJ,EAQAwe,EAAapf,UAAU8d,KAAO,SAAUS,EAAS7U,EAAMwS,GACnD,IACI,IAAIuD,EAAU5e,KAAK6e,gBAAgBnB,EAAS7U,GACxCqT,EAAmBlc,KAAKwe,KAAKlB,sBAC7B7B,EAAa1V,OAAOkJ,OAAO,CAAC,EAAGoM,GACnCI,EAAWS,iBAAmBA,EAC9B,IAAI4C,EAAkB9e,KAAKwe,KAAKvB,KAAK2B,EAASnD,GAE9C,OADAzb,KAAKwe,KAAKjB,6BAA6BuB,EAAiB5C,GACjD4C,CACX,CACA,MAAO3iB,GACH,OAAOpC,QAAQE,OAAOkC,EAAI4D,QAC9B,CACJ,EAQAwe,EAAapf,UAAU4d,IAAM,SAAUW,EAAS7U,EAAMwS,GAClD,IACI,IAAIuD,EAAU5e,KAAK6e,gBAAgBnB,EAAS7U,GACxCqT,EAAmBlc,KAAKwe,KAAKlB,sBAC7B7B,EAAa1V,OAAOkJ,OAAO,CAAC,EAAGoM,GACnCI,EAAWS,iBAAmBA,EAC9B,IAAI4C,EAAkB9e,KAAKwe,KAAKzB,IAAI6B,EAASnD,GAE7C,OADAzb,KAAKwe,KAAKjB,6BAA6BuB,EAAiB5C,GACjD4C,CACX,CACA,MAAO3iB,GACH,OAAOpC,QAAQE,OAAOkC,EAAI4D,QAC9B,CACJ,EAQAwe,EAAapf,UAAU6d,MAAQ,SAAUU,EAAS7U,EAAMwS,GACpD,IACI,IAAIuD,EAAU5e,KAAK6e,gBAAgBnB,EAAS7U,GACxCqT,EAAmBlc,KAAKwe,KAAKlB,sBAC7B7B,EAAa1V,OAAOkJ,OAAO,CAAC,EAAGoM,GACnCI,EAAWS,iBAAmBA,EAC9B,IAAI4C,EAAkB9e,KAAKwe,KAAKxB,MAAM4B,EAASnD,GAE/C,OADAzb,KAAKwe,KAAKjB,6BAA6BuB,EAAiB5C,GACjD4C,CACX,CACA,MAAO3iB,GACH,OAAOpC,QAAQE,OAAOkC,EAAI4D,QAC9B,CACJ,EAQAwe,EAAapf,UAAU+d,IAAM,SAAUQ,EAAS7U,EAAMwS,GAClD,IACI,IAAIuD,EAAU5e,KAAK6e,gBAAgBnB,EAAS7U,GACxCqT,EAAmBlc,KAAKwe,KAAKlB,sBAC7B7B,EAAa1V,OAAOkJ,OAAO,CAAC,EAAGoM,GACnCI,EAAWS,iBAAmBA,EAC9B,IAAI4C,EAAkB9e,KAAKwe,KAAKtB,IAAI0B,EAASnD,GAE7C,OADAzb,KAAKwe,KAAKjB,6BAA6BuB,EAAiB5C,GACjD4C,CACX,CACA,MAAO3iB,GACH,OAAOpC,QAAQE,OAAOkC,EAAI4D,QAC9B,CACJ,EAQAwe,EAAapf,UAAUge,KAAO,SAAUO,EAAS7U,EAAMwS,GACnD,IACI,IAAIuD,EAAU5e,KAAK6e,gBAAgBnB,EAAS7U,GACxCqT,EAAmBlc,KAAKwe,KAAKlB,sBAC7B7B,EAAa1V,OAAOkJ,OAAO,CAAC,EAAGoM,GACnCI,EAAWS,iBAAmBA,EAC9B,IAAI4C,EAAkB9e,KAAKwe,KAAKrB,KAAKyB,EAASnD,GAE9C,OADAzb,KAAKwe,KAAKjB,6BAA6BuB,EAAiB5C,GACjD4C,CACX,CACA,MAAO3iB,GACH,OAAOpC,QAAQE,OAAOkC,EAAI4D,QAC9B,CACJ,EAMAwe,EAAapf,UAAUM,SAAW,SAAUyD,GACxC,OAAOlD,KAAKwe,KAAK/e,SAASyD,EAC9B,EAMAqb,EAAapf,UAAUb,OAAS,SAAUxD,EAASiF,GAC/C,OAAOC,KAAKwe,KAAKlgB,OAAOxD,EAASiF,EACrC,EAMAwe,EAAapf,UAAUie,eAAiB,SAAUtiB,GAC9C,OAAOkF,KAAKwe,KAAKpB,eAAetiB,EACpC,EAMAyjB,EAAapf,UAAU2c,SAAW,SAAU4B,GACxC,OAAO,GAAU1d,UAAM,OAAQ,GAAQ,WACnC,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,MAAO,CAAC,EAAc5T,KAAKwe,KAAK1C,SAAS4B,GAC7C,GACJ,GACJ,EAOAa,EAAapf,UAAU0f,gBAAkB,SAAUnB,EAAS7U,GACxD,IAAI8U,EAAoB3d,KAAKib,SAAS2C,UACtC,IAAKjb,MAAM4C,QAAQoY,GACf,MAAM,IAAI1Z,MAAM,+BAEpB,IAAI8a,EAAYpB,EAAkBqB,MAAK,SAAUC,GAAO,OAAOA,EAAIta,OAAS+Y,CAAS,IACrF,IAAKqB,EACD,MAAM,IAAI9a,MAAM,OAASyZ,EAAU,mBAEvC,IAAI5hB,EAAW,CACXggB,SAAUiD,EAAUjD,SAAWjT,GAoBnC,MAlBgC,kBAArBkW,EAAUrI,OACjB5a,EAAS4a,OAASqI,EAAUrI,OAES,kBAAzB1W,KAAKib,SAASvE,SAC1B5a,EAAS4a,OAAS1W,KAAKib,SAASvE,QAEH,kBAAtBqI,EAAUtI,QACjB3a,EAAS2a,QAAUsI,EAAUtI,SAAW,cAGxC3a,EAAS2a,QAAU,cAEgB,oBAA5BsI,EAAUxD,cACjBzf,EAASyf,cAAgBwD,EAAUxD,cAGnCzf,EAASyf,mBAAgB7d,EAEtB5B,CACX,EACOyiB,CACX,CA1QiC,GA4QtBW,GAAU,IAAIX,GAAa,MCxVtC,SAASY,GAAQvS,GAAmV,OAAtOuS,GAArD,oBAAXrM,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiBnG,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXkG,QAAyBlG,EAAIR,cAAgB0G,QAAUlG,IAAQkG,OAAO3T,UAAY,gBAAkByN,CAAK,EAAYuS,GAAQvS,EAAM,CAM1W,SAASwS,GAAaljB,GACnC,MAAyB,UAAlBijB,GAAQjjB,IAAgC,OAAVA,CACvC,CDiVA,KAAQuW,SAASyM,IEvV8B,oBAAXpM,QAA4C,MAAnBA,OAAOC,UAAmBD,OAAOC,SAGzC,oBAAXD,QAAiD,MAAxBA,OAAOuM,eAAwBvM,OAAOuM,cAHlG,IAKIC,GAAyC,oBAAXxM,QAA+C,MAAtBA,OAAOyM,YAAsBzM,OAAOyM,YAAc,gBCC7G,SAASC,GAAYne,EAAQoe,GAClC,IAGIpW,EAHAqW,EAAa,eACbtU,EAAO,EACPuU,EAASF,EAAW,EAGxB,OAAQpW,EAAQqW,EAAWE,KAAKve,EAAO8W,QAAU9O,EAAMlI,MAAQse,EAC7DrU,GAAQ,EACRuU,EAASF,EAAW,GAAKpW,EAAMlI,MAAQkI,EAAM,GAAGzI,QAGlD,MAAO,CACLwK,KAAMA,EACNuU,OAAQA,EAEZ,CClBO,SAASE,GAAc/U,GAC5B,OAAOgV,GAAoBhV,EAASzJ,OAAQme,GAAY1U,EAASzJ,OAAQyJ,EAASiV,OACpF,CAKO,SAASD,GAAoBze,EAAQ2e,GAC1C,IAAIC,EAAwB5e,EAAO6e,eAAeP,OAAS,EACvDxH,EAAOgI,GAAWF,GAAyB5e,EAAO8W,KAClDiI,EAAYJ,EAAe5U,KAAO,EAClCiV,EAAahf,EAAO6e,eAAe9U,KAAO,EAC1CkV,EAAUN,EAAe5U,KAAOiV,EAChCE,EAAuC,IAAxBP,EAAe5U,KAAa6U,EAAwB,EACnEO,EAAYR,EAAeL,OAASY,EACpCE,EAAc,GAAG5d,OAAOxB,EAAOsD,KAAM,KAAK9B,OAAOyd,EAAS,KAAKzd,OAAO2d,EAAW,MACjFE,EAAQvI,EAAKhN,MAAM,gBACnBwV,EAAeD,EAAMN,GAEzB,GAAIO,EAAa/f,OAAS,IAAK,CAK7B,IAJA,IAAIggB,EAAerS,KAAKC,MAAMgS,EAAY,IACtCK,EAAmBL,EAAY,GAC/BM,EAAW,GAENpgB,EAAI,EAAGA,EAAIigB,EAAa/f,OAAQF,GAAK,GAC5CogB,EAAS5f,KAAKyf,EAAanb,MAAM9E,EAAGA,EAAI,KAG1C,OAAO+f,EAAcM,GAAmB,CAAC,CAAC,GAAGle,OAAOyd,GAAUQ,EAAS,KAAKje,OAAOie,EAAStb,MAAM,EAAGob,EAAe,GAAG/K,KAAI,SAAUmL,GACnI,MAAO,CAAC,GAAIA,EACd,IAAI,CAAC,CAAC,IAAKb,GAAWU,EAAmB,GAAK,KAAM,CAAC,GAAIC,EAASF,EAAe,MACnF,CAEA,OAAOH,EAAcM,GAAmB,CACxC,CAAC,GAAGle,OAAOyd,EAAU,GAAII,EAAMN,EAAY,IAAK,CAAC,GAAGvd,OAAOyd,GAAUK,GAAe,CAAC,GAAIR,GAAWK,EAAY,GAAK,KAAM,CAAC,GAAG3d,OAAOyd,EAAU,GAAII,EAAMN,EAAY,KACxK,CAEA,SAASW,GAAmBL,GAC1B,IAAIO,EAAgBP,EAAMQ,QAAO,SAAUC,GACjCA,EAAK,GAAb,IACI/V,EAAO+V,EAAK,GAChB,YAAgBzjB,IAAT0N,CACT,IACIgW,EAAS7S,KAAK8S,IAAIze,MAAM2L,KAAM0S,EAAcpL,KAAI,SAAUyL,GAC5D,IAAIC,EAASD,EAAM,GACnB,OAAOC,EAAO3gB,MAChB,KACA,OAAOqgB,EAAcpL,KAAI,SAAU2L,GACjC,IAAID,EAASC,EAAM,GACfpW,EAAOoW,EAAM,GACjB,OAAOC,GAAQL,EAAQG,IAAWnW,EAAO,MAAQA,EAAO,KAC1D,IAAG5C,KAAK,KACV,CAEA,SAAS2X,GAAWuB,GAClB,OAAO/e,MAAM+e,EAAM,GAAGlZ,KAAK,IAC7B,CAEA,SAASiZ,GAAQC,EAAKhV,GACpB,OAAOyT,GAAWuB,EAAMhV,EAAI9L,QAAU8L,CACxC,CCjEA,SAAS,GAAQE,GAAmV,OAAtO,GAArD,oBAAXkG,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiBnG,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXkG,QAAyBlG,EAAIR,cAAgB0G,QAAUlG,IAAQkG,OAAO3T,UAAY,gBAAkByN,CAAK,EAAY,GAAQA,EAAM,CAEzX,SAAS+U,GAAQC,EAAQC,GAAkB,IAAI7b,EAAOD,OAAOC,KAAK4b,GAAS,GAAI7b,OAAOiP,sBAAuB,CAAE,IAAI8M,EAAU/b,OAAOiP,sBAAsB4M,GAAaC,IAAgBC,EAAUA,EAAQZ,QAAO,SAAUa,GAAO,OAAOhc,OAAOic,yBAAyBJ,EAAQG,GAAKE,UAAY,KAAIjc,EAAK9E,KAAK0B,MAAMoD,EAAM8b,EAAU,CAAE,OAAO9b,CAAM,CAEpV,SAASkc,GAAc7c,GAAU,IAAK,IAAI3E,EAAI,EAAGA,EAAIuH,UAAUrH,OAAQF,IAAK,CAAE,IAAIW,EAAyB,MAAhB4G,UAAUvH,GAAauH,UAAUvH,GAAK,CAAC,EAAOA,EAAI,EAAKihB,GAAQ5b,OAAO1E,IAAS,GAAMzD,SAAQ,SAAUE,GAAOqkB,GAAgB9c,EAAQvH,EAAKuD,EAAOvD,GAAO,IAAeiI,OAAOqc,0BAA6Brc,OAAOsc,iBAAiBhd,EAAQU,OAAOqc,0BAA0B/gB,IAAmBsgB,GAAQ5b,OAAO1E,IAASzD,SAAQ,SAAUE,GAAOiI,OAAOuc,eAAejd,EAAQvH,EAAKiI,OAAOic,yBAAyB3gB,EAAQvD,GAAO,GAAM,CAAE,OAAOuH,CAAQ,CAErhB,SAAS8c,GAAgBvV,EAAK9O,EAAK5B,GAAiK,OAApJ4B,KAAO8O,EAAO7G,OAAOuc,eAAe1V,EAAK9O,EAAK,CAAE5B,MAAOA,EAAO+lB,YAAY,EAAMM,cAAc,EAAMC,UAAU,IAAkB5V,EAAI9O,GAAO5B,EAAgB0Q,CAAK,CAEhN,SAAS6V,GAAgBvjB,EAAUwjB,GAAe,KAAMxjB,aAAoBwjB,GAAgB,MAAM,IAAItiB,UAAU,oCAAwC,CAExJ,SAASuiB,GAAkBtd,EAAQud,GAAS,IAAK,IAAIliB,EAAI,EAAGA,EAAIkiB,EAAMhiB,OAAQF,IAAK,CAAE,IAAImiB,EAAaD,EAAMliB,GAAImiB,EAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWN,cAAe,EAAU,UAAWM,IAAYA,EAAWL,UAAW,GAAMzc,OAAOuc,eAAejd,EAAQwd,EAAW/kB,IAAK+kB,EAAa,CAAE,CAE5T,SAASC,GAAaJ,EAAaK,EAAYC,GAAmJ,OAAhID,GAAYJ,GAAkBD,EAAYvjB,UAAW4jB,GAAiBC,GAAaL,GAAkBD,EAAaM,GAAqBN,CAAa,CAEtN,SAASO,GAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/iB,UAAU,sDAAyD8iB,EAAS/jB,UAAY4G,OAAO1G,OAAO8jB,GAAcA,EAAWhkB,UAAW,CAAEiN,YAAa,CAAElQ,MAAOgnB,EAAUV,UAAU,EAAMD,cAAc,KAAeY,GAAYC,GAAgBF,EAAUC,EAAa,CAEhY,SAASE,GAAaC,GAAW,IAAIC,EAA4BC,KAA6B,OAAO,WAAkC,IAAsC3X,EAAlC4X,EAAQC,GAAgBJ,GAAkB,GAAIC,EAA2B,CAAE,IAAII,EAAYD,GAAgB1jB,MAAMoM,YAAaP,EAAS+X,QAAQC,UAAUJ,EAAOxb,UAAW0b,EAAY,MAAS9X,EAAS4X,EAAM7gB,MAAM5C,KAAMiI,WAAc,OAAO6b,GAA2B9jB,KAAM6L,EAAS,CAAG,CAExa,SAASiY,GAA2BC,EAAM3f,GAAQ,OAAIA,GAA2B,WAAlB,GAAQA,IAAsC,oBAATA,EAA8C4f,GAAuBD,GAAtC3f,CAA6C,CAEhL,SAAS4f,GAAuBD,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIE,eAAe,6DAAgE,OAAOF,CAAM,CAErK,SAASG,GAAiBC,GAAS,IAAIC,EAAwB,oBAARC,IAAqB,IAAIA,SAAQ3mB,EAA8nB,OAAnnBwmB,GAAmB,SAA0BC,GAAS,GAAc,OAAVA,IAAmBG,GAAkBH,GAAQ,OAAOA,EAAO,GAAqB,oBAAVA,EAAwB,MAAM,IAAI/jB,UAAU,sDAAyD,GAAsB,qBAAXgkB,EAAwB,CAAE,GAAIA,EAAO/G,IAAI8G,GAAQ,OAAOC,EAAO5H,IAAI2H,GAAQC,EAAO3G,IAAI0G,EAAOI,EAAU,CAAE,SAASA,IAAY,OAAOC,GAAWL,EAAOlc,UAAWyb,GAAgB1jB,MAAMoM,YAAc,CAAkJ,OAAhJmY,EAAQplB,UAAY4G,OAAO1G,OAAO8kB,EAAMhlB,UAAW,CAAEiN,YAAa,CAAElQ,MAAOqoB,EAAStC,YAAY,EAAOO,UAAU,EAAMD,cAAc,KAAkBa,GAAgBmB,EAASJ,EAAQ,EAAUD,GAAiBC,EAAQ,CAEtvB,SAASK,GAAWC,EAAQzc,EAAMmc,GAAqV,OAAzSK,GAA/BhB,KAA4CI,QAAQC,UAAiC,SAAoBY,EAAQzc,EAAMmc,GAAS,IAAIpX,EAAI,CAAC,MAAOA,EAAE7L,KAAK0B,MAAMmK,EAAG/E,GAAO,IAAI0a,EAAcgC,SAAS9lB,KAAKgE,MAAM6hB,EAAQ1X,GAAQ7N,EAAW,IAAIwjB,EAAsE,OAAnDyB,GAAOf,GAAgBlkB,EAAUilB,EAAMhlB,WAAmBD,CAAU,EAAYslB,GAAW5hB,MAAM,KAAMqF,UAAY,CAEja,SAASub,KAA8B,GAAuB,qBAAZI,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUc,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAiF,OAA3E1b,KAAK/J,UAAUc,SAASmE,KAAKwf,QAAQC,UAAU3a,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOjC,GAAK,OAAO,CAAO,CAAE,CAEnU,SAASqd,GAAkB5gB,GAAM,OAAgE,IAAzDghB,SAASzkB,SAASmE,KAAKV,GAAI7G,QAAQ,gBAAyB,CAEpG,SAASumB,GAAgBzQ,EAAGzC,GAA+G,OAA1GkT,GAAkBrd,OAAOiK,gBAAkB,SAAyB2C,EAAGzC,GAAsB,OAAjByC,EAAE1C,UAAYC,EAAUyC,CAAG,EAAUyQ,GAAgBzQ,EAAGzC,EAAI,CAEzK,SAASwT,GAAgB/Q,GAAwJ,OAAnJ+Q,GAAkB3d,OAAOiK,eAAiBjK,OAAOwG,eAAiB,SAAyBoG,GAAK,OAAOA,EAAE1C,WAAalK,OAAOwG,eAAeoG,EAAI,EAAU+Q,GAAgB/Q,EAAI,CAarM,IAAIkS,GAA4B,SAAUC,GAC/C7B,GAAU4B,EAAcC,GAExB,IAAIzU,EAASgT,GAAawB,GA2C1B,SAASA,EAAa9kB,EAASglB,EAAO1jB,EAAQ2jB,EAAWnc,EAAMoc,EAAeC,GAC5E,IAAIC,EAAgBC,EAAiBC,EAEjC/U,EAEJmS,GAAgBziB,KAAM6kB,GAEtBvU,EAAQD,EAAOjM,KAAKpE,KAAMD,GAC1BuQ,EAAM3L,KAAO,eACb2L,EAAM2U,cAAkC,OAAlBA,QAA4C,IAAlBA,EAA2BA,OAAgBvnB,EAE3F4S,EAAMyU,MAAQO,GAAiB3iB,MAAM4C,QAAQwf,GAASA,EAAQA,EAAQ,CAACA,QAASrnB,GAGhF,IAFA,IAAI6nB,EAAgB,GAEXC,EAAM,EAAGhE,EAAwC,QAA/BiE,EAAcnV,EAAMyU,aAAmC,IAAhBU,EAAyBA,EAAc,GAAID,EAAMhE,EAAM5gB,OAAQ4kB,IAAO,CACtI,IAAIC,EAEAC,EAAQlE,EAAMgE,GACdG,EAAMD,EAAMC,IAEL,MAAPA,GACFJ,EAAcrkB,KAAKykB,EAEvB,CAEAJ,EAAgBD,GAAiBC,GAEjCjV,EAAMjP,OAAoB,OAAXA,QAA8B,IAAXA,EAAoBA,EAA8C,QAApC8jB,EAAiBI,SAA8C,IAAnBJ,OAA4B,EAASA,EAAe,GAAG9jB,OACnKiP,EAAM0U,UAA0B,OAAdA,QAAoC,IAAdA,EAAuBA,EAAkD,QAArCI,EAAkBG,SAA+C,IAApBH,OAA6B,EAASA,EAAgBvP,KAAI,SAAU8P,GAC3L,OAAOA,EAAI5F,KACb,IACAzP,EAAMsV,UAAYZ,GAAa3jB,EAAS2jB,EAAUnP,KAAI,SAAUgQ,GAC9D,OAAOrG,GAAYne,EAAQwkB,EAC7B,IAA2C,QAArCR,EAAkBE,SAA+C,IAApBF,OAA6B,EAASA,EAAgBxP,KAAI,SAAU8P,GACrH,OAAOnG,GAAYmG,EAAItkB,OAAQskB,EAAI5F,MACrC,IACAzP,EAAMzH,KAAgB,OAATA,QAA0B,IAATA,EAAkBA,OAAOnL,EACvD,IAAIooB,EAAuC,OAAlBb,QAA4C,IAAlBA,OAA2B,EAASA,EAAcC,WAwCrG,OAtCkB,MAAdA,GAAsB9F,GAAa0G,GACrCxV,EAAM4U,WAAahD,GAAc,CAAC,EAAG4D,GAErCxV,EAAM4U,WAA4B,OAAfA,QAAsC,IAAfA,EAAwBA,EAAa,CAAC,EAKlFnf,OAAOsc,iBAAiB2B,GAAuB1T,GAAQ,CACrDvQ,QAAS,CACPkiB,YAAY,GAEd2D,UAAW,CACT3D,WAA+B,MAAnB3R,EAAMsV,WAEpB/c,KAAM,CACJoZ,WAA0B,MAAd3R,EAAMzH,MAEpBqc,WAAY,CACVjD,WAAgC,MAApB3R,EAAM4U,YAAsBnf,OAAOC,KAAKsK,EAAM4U,YAAYtkB,OAAS,GAEjF+D,KAAM,CACJsd,YAAY,GAEd8C,MAAO,CACL9C,YAAY,GAEd5gB,OAAQ,CACN4gB,YAAY,GAEd+C,UAAW,CACT/C,YAAY,GAEdgD,cAAe,CACbhD,YAAY,KAIM,OAAlBgD,QAA4C,IAAlBA,GAA4BA,EAAchgB,OACtEc,OAAOuc,eAAe0B,GAAuB1T,GAAQ,QAAS,CAC5DpU,MAAO+oB,EAAchgB,MACrBud,UAAU,EACVD,cAAc,IAETuB,GAA2BxT,KAIhCrM,MAAM8hB,kBACR9hB,MAAM8hB,kBAAkB/B,GAAuB1T,GAAQuU,GAEvD9e,OAAOuc,eAAe0B,GAAuB1T,GAAQ,QAAS,CAC5DpU,MAAO+H,QAAQgB,MACfud,UAAU,EACVD,cAAc,IAIXjS,EACT,CAgBA,OAdAwS,GAAa+B,EAAc,CAAC,CAC1B/mB,IAAK,WACL5B,MAAO,WACL,OAAO8pB,GAAWhmB,KACpB,GAGC,CACDlC,IAAKwhB,GACL9C,IAAK,WACH,MAAO,QACT,KAGKqI,CACT,CAjKuC,CAiKvBX,GAAiBjgB,QAEjC,SAASqhB,GAAiBW,GACxB,YAAiBvoB,IAAVuoB,GAAwC,IAAjBA,EAAMrlB,YAAelD,EAAYuoB,CACjE,CAOO,SAASD,GAAW9iB,GACzB,IAAIgjB,EAAShjB,EAAMnD,QAEnB,GAAImD,EAAM6hB,MACR,IAAK,IAAIoB,EAAM,EAAGC,EAAgBljB,EAAM6hB,MAAOoB,EAAMC,EAAcxlB,OAAQulB,IAAO,CAChF,IAAIE,EAAOD,EAAcD,GAErBE,EAAKV,MACPO,GAAU,OAASrG,GAAcwG,EAAKV,KAE1C,MACK,GAAIziB,EAAM7B,QAAU6B,EAAM0iB,UAC/B,IAAK,IAAIU,EAAM,EAAGC,EAAoBrjB,EAAM0iB,UAAWU,EAAMC,EAAkB3lB,OAAQ0lB,IAAO,CAC5F,IAAIxb,EAAWyb,EAAkBD,GACjCJ,GAAU,OAASpG,GAAoB5c,EAAM7B,OAAQyJ,EACvD,CAGF,OAAOob,CACT,CCtOO,SAASM,GAAYnlB,EAAQoe,EAAU7a,GAC5C,OAAO,IAAIigB,GAAa,iBAAiBhiB,OAAO+B,QAAclH,EAAW2D,EAAQ,CAACoe,GACpF,CCLO,IAAIgH,GAAO1gB,OAAO2gB,OAAO,CAE9BC,KAAM,OAENC,SAAU,WACVC,qBAAsB,sBACtBC,oBAAqB,qBACrBC,cAAe,eACfC,MAAO,QACPC,SAAU,WAEVC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,oBAAqB,qBAErBC,SAAU,WACVC,IAAK,WACLC,MAAO,aACPC,OAAQ,cACRC,QAAS,eACTC,KAAM,YACNC,KAAM,YACNC,KAAM,YACNC,OAAQ,cACRC,aAAc,cAEdC,UAAW,YAEXC,WAAY,YACZC,UAAW,WACXC,cAAe,cAEfC,kBAAmB,mBACnBC,0BAA2B,0BAE3BC,uBAAwB,uBACxBC,uBAAwB,uBACxBC,iBAAkB,kBAClBC,uBAAwB,uBACxBC,0BAA2B,0BAC3BC,sBAAuB,sBACvBC,qBAAsB,qBACtBC,sBAAuB,sBACvBC,6BAA8B,4BAE9BC,qBAAsB,sBAEtBC,iBAAkB,kBAElBC,sBAAuB,sBACvBC,sBAAuB,sBACvBC,yBAA0B,yBAC1BC,qBAAsB,qBACtBC,oBAAqB,oBACrBC,4BAA6B,6BCzDhB,SAASC,GAAUC,EAAWxpB,GAC3C,IAAIypB,EAAmBhV,QAAQ+U,GAE/B,IAAKC,EACH,MAAM,IAAIvlB,MAAiB,MAAXlE,EAAkBA,EAAU,kCAEhD,CCLA,IAAI0pB,GAA8C,oBAAX3W,QAA+C,oBAAfA,OAAO4W,IAAqB5W,OAAO4W,IAAI,mCAAgChsB,EAC9I,MCIe,SAASisB,GAAcC,GACpC,IAAIlmB,EAAKkmB,EAAYzqB,UAAUuF,OACjB,oBAAPhB,GAAqB4lB,GAAU,GACtCM,EAAYzqB,UAAU0qB,QAAUnmB,EAE5B,KACFkmB,EAAYzqB,UAAU,IAA6BuE,EAEvD,CCRO,IAAIomB,GAAwB,WAoBjC,SAASA,EAASC,EAAYC,EAAU3oB,GACtCrB,KAAK+f,MAAQgK,EAAWhK,MACxB/f,KAAKiqB,IAAMD,EAASC,IACpBjqB,KAAK+pB,WAAaA,EAClB/pB,KAAKgqB,SAAWA,EAChBhqB,KAAKqB,OAASA,CAChB,CAEA,IAAI6oB,EAASJ,EAAS3qB,UAStB,OAPA+qB,EAAOxlB,OAAS,WACd,MAAO,CACLqb,MAAO/f,KAAK+f,MACZkK,IAAKjqB,KAAKiqB,IAEd,EAEOH,CACT,CAtCmC,GAwCnCH,GAAcG,IAMP,IAAIK,GAAqB,WA8B9B,SAASA,EAAMC,EAAMrK,EAAOkK,EAAK7e,EAAMuU,EAAQ0K,EAAMnuB,GACnD8D,KAAKoqB,KAAOA,EACZpqB,KAAK+f,MAAQA,EACb/f,KAAKiqB,IAAMA,EACXjqB,KAAKoL,KAAOA,EACZpL,KAAK2f,OAASA,EACd3f,KAAK9D,MAAQA,EACb8D,KAAKqqB,KAAOA,EACZrqB,KAAKkT,KAAO,IACd,CAEA,IAAIoX,EAAUH,EAAMhrB,UAWpB,OATAmrB,EAAQ5lB,OAAS,WACf,MAAO,CACL0lB,KAAMpqB,KAAKoqB,KACXluB,MAAO8D,KAAK9D,MACZkP,KAAMpL,KAAKoL,KACXuU,OAAQ3f,KAAK2f,OAEjB,EAEOwK,CACT,CArDgC,GA4DzB,SAASI,GAAOC,GACrB,OAAoB,MAAbA,GAA+C,kBAAnBA,EAAUJ,IAC/C,CAPAT,GAAcQ,ICvGP,IAAI,GAAYpkB,OAAO2gB,OAAO,CACnC+D,IAAK,QACLC,IAAK,QACLC,KAAM,IACNC,OAAQ,IACRC,IAAK,IACLC,QAAS,IACTC,QAAS,IACTC,OAAQ,MACRC,MAAO,IACPC,OAAQ,IACRC,GAAI,IACJC,UAAW,IACXC,UAAW,IACXC,QAAS,IACTC,KAAM,IACNC,QAAS,IACT7E,KAAM,OACNW,IAAK,MACLC,MAAO,QACPC,OAAQ,SACRiE,aAAc,cACdC,QAAS,YC1BX,SAAS,GAAQ9e,GAAmV,OAAtO,GAArD,oBAAXkG,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiBnG,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXkG,QAAyBlG,EAAIR,cAAgB0G,QAAUlG,IAAQkG,OAAO3T,UAAY,gBAAkByN,CAAK,EAAY,GAAQA,EAAM,CAIzX,IAAI+e,GAAmB,GACnBC,GAAsB,EAKX,SAAS/B,GAAQ3tB,GAC9B,OAAO2vB,GAAY3vB,EAAO,GAC5B,CAEA,SAAS2vB,GAAY3vB,EAAO4vB,GAC1B,OAAQ,GAAQ5vB,IACd,IAAK,SACH,OAAO4K,KAAKI,UAAUhL,GAExB,IAAK,WACH,OAAOA,EAAMyI,KAAO,aAAa9B,OAAO3G,EAAMyI,KAAM,KAAO,aAE7D,IAAK,SACH,OAAc,OAAVzI,EACK,OAGF6vB,GAAkB7vB,EAAO4vB,GAElC,QACE,OAAOE,OAAO9vB,GAEpB,CAEA,SAAS6vB,GAAkB7vB,EAAO+vB,GAChC,IAA6C,IAAzCA,EAAqBpvB,QAAQX,GAC/B,MAAO,aAGT,IAAI4vB,EAAa,GAAGjpB,OAAOopB,EAAsB,CAAC/vB,IAC9CgwB,EAAkBC,GAAYjwB,GAElC,QAAwBwB,IAApBwuB,EAA+B,CACjC,IAAIE,EAAcF,EAAgB9nB,KAAKlI,GAEvC,GAAIkwB,IAAgBlwB,EAClB,MAA8B,kBAAhBkwB,EAA2BA,EAAcP,GAAYO,EAAaN,EAEpF,MAAO,GAAInpB,MAAM4C,QAAQrJ,GACvB,OAAOmwB,GAAYnwB,EAAO4vB,GAG5B,OAAOQ,GAAapwB,EAAO4vB,EAC7B,CAEA,SAASQ,GAAa1K,EAAQkK,GAC5B,IAAI9lB,EAAOD,OAAOC,KAAK4b,GAEvB,GAAoB,IAAhB5b,EAAKpF,OACP,MAAO,KAGT,GAAIkrB,EAAWlrB,OAASgrB,GACtB,MAAO,IAAMW,GAAa3K,GAAU,IAGtC,IAAI4K,EAAaxmB,EAAK6P,KAAI,SAAU/X,GAClC,IAAI5B,EAAQ2vB,GAAYjK,EAAO9jB,GAAMguB,GACrC,OAAOhuB,EAAM,KAAO5B,CACtB,IACA,MAAO,KAAOswB,EAAWhkB,KAAK,MAAQ,IACxC,CAEA,SAAS6jB,GAAYpG,EAAO6F,GAC1B,GAAqB,IAAjB7F,EAAMrlB,OACR,MAAO,KAGT,GAAIkrB,EAAWlrB,OAASgrB,GACtB,MAAO,UAOT,IAJA,IAAIlK,EAAMnT,KAAKke,IAAId,GAAkB1F,EAAMrlB,QACvC8rB,EAAYzG,EAAMrlB,OAAS8gB,EAC3B3P,EAAQ,GAEHrR,EAAI,EAAGA,EAAIghB,IAAOhhB,EACzBqR,EAAM7Q,KAAK2qB,GAAY5F,EAAMvlB,GAAIorB,IASnC,OANkB,IAAdY,EACF3a,EAAM7Q,KAAK,mBACFwrB,EAAY,GACrB3a,EAAM7Q,KAAK,OAAO2B,OAAO6pB,EAAW,gBAG/B,IAAM3a,EAAMvJ,KAAK,MAAQ,GAClC,CAEA,SAAS2jB,GAAYvK,GACnB,IAAIsK,EAAkBtK,EAAOoK,OAAO,KAEpC,MAA+B,oBAApBE,EACFA,EAGqB,oBAAnBtK,EAAOiI,QACTjI,EAAOiI,aADhB,CAGF,CAEA,SAAS0C,GAAa3K,GACpB,IAAI+K,EAAM5mB,OAAO5G,UAAUc,SAASmE,KAAKwd,GAAQxe,QAAQ,aAAc,IAAIA,QAAQ,KAAM,IAEzF,GAAY,WAARupB,GAAkD,oBAAvB/K,EAAOxV,YAA4B,CAChE,IAAIzH,EAAOid,EAAOxV,YAAYzH,KAE9B,GAAoB,kBAATA,GAA8B,KAATA,EAC9B,OAAOA,CAEX,CAEA,OAAOgoB,CACT,CC3He,SAASC,GAAUrD,EAAWxpB,GAC3C,IAAIypB,EAAmBhV,QAAQ+U,GAE/B,IAAKC,EACH,MAAM,IAAIvlB,MAAMlE,EAEpB,CCIA,OAEA,SAAoB7D,EAAOkQ,GACzB,OAAOlQ,aAAiBkQ,CAC1B,ECdA,SAAS,GAAkB/G,EAAQud,GAAS,IAAK,IAAIliB,EAAI,EAAGA,EAAIkiB,EAAMhiB,OAAQF,IAAK,CAAE,IAAImiB,EAAaD,EAAMliB,GAAImiB,EAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWN,cAAe,EAAU,UAAWM,IAAYA,EAAWL,UAAW,GAAMzc,OAAOuc,eAAejd,EAAQwd,EAAW/kB,IAAK+kB,EAAa,CAAE,CAE5T,SAAS,GAAaH,EAAaK,EAAYC,GAAmJ,OAAhID,GAAY,GAAkBL,EAAYvjB,UAAW4jB,GAAiBC,GAAa,GAAkBN,EAAaM,GAAqBN,CAAa,CAc/M,IAAImK,GAAsB,WAC/B,SAASA,EAAO1U,GACd,IAAIxT,EAAOsD,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,kBAC3EiY,EAAiBjY,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CACvFmD,KAAM,EACNuU,OAAQ,GAEM,kBAATxH,GAAqByU,GAAU,EAAG,oCAAoC/pB,OAAOgnB,GAAQ1R,GAAO,MACnGnY,KAAKmY,KAAOA,EACZnY,KAAK2E,KAAOA,EACZ3E,KAAKkgB,eAAiBA,EACtBlgB,KAAKkgB,eAAe9U,KAAO,GAAKwhB,GAAU,EAAG,6DAC7C5sB,KAAKkgB,eAAeP,OAAS,GAAKiN,GAAU,EAAG,8DACjD,CAUA,OAPA,GAAaC,EAAQ,CAAC,CACpB/uB,IAAKwhB,GACL9C,IAAK,WACH,MAAO,QACT,KAGKqQ,CACT,CAxBiC,GAgC1B,SAASC,GAASzrB,GACvB,OAAO0rB,GAAW1rB,EAAQwrB,GAC5B,CC/CO,IAAIG,GAAoBjnB,OAAO2gB,OAAO,CAE3CuG,MAAO,QACPC,SAAU,WACVC,aAAc,eACdnG,MAAO,QACPI,oBAAqB,sBACrBF,gBAAiB,kBACjBC,gBAAiB,kBACjBL,oBAAqB,sBAErBsG,OAAQ,SACRC,OAAQ,SACRxF,OAAQ,SACRU,iBAAkB,mBAClB+E,oBAAqB,sBACrBC,UAAW,YACXC,MAAO,QACP7F,KAAM,OACN8F,WAAY,aACZC,aAAc,eACdC,uBAAwB,2BChBnB,SAASC,GAAuBC,GAErC,IAAInN,EAAQmN,EAAU1iB,MAAM,gBAExB2iB,EAAeC,GAA0BF,GAE7C,GAAqB,IAAjBC,EACF,IAAK,IAAIptB,EAAI,EAAGA,EAAIggB,EAAM9f,OAAQF,IAChCggB,EAAMhgB,GAAKggB,EAAMhgB,GAAG8E,MAAMsoB,GAK9B,IAAIE,EAAY,EAEhB,MAAOA,EAAYtN,EAAM9f,QAAUqtB,GAAQvN,EAAMsN,MAC7CA,EAGJ,IAAIE,EAAUxN,EAAM9f,OAEpB,MAAOstB,EAAUF,GAAaC,GAAQvN,EAAMwN,EAAU,MAClDA,EAIJ,OAAOxN,EAAMlb,MAAMwoB,EAAWE,GAAS1lB,KAAK,KAC9C,CAEA,SAASylB,GAAQvhB,GACf,IAAK,IAAIhM,EAAI,EAAGA,EAAIgM,EAAI9L,SAAUF,EAChC,GAAe,MAAXgM,EAAIhM,IAAyB,OAAXgM,EAAIhM,GACxB,OAAO,EAIX,OAAO,CACT,CAMO,SAASqtB,GAA0B7xB,GAQxC,IAPA,IAAIiyB,EAEAC,GAAc,EACdC,GAAc,EACdC,EAAS,EACTR,EAAe,KAEVptB,EAAI,EAAGA,EAAIxE,EAAM0E,SAAUF,EAClC,OAAQxE,EAAMiR,WAAWzM,IACvB,KAAK,GAE6B,KAA5BxE,EAAMiR,WAAWzM,EAAI,MACrBA,EAKN,KAAK,GAEH0tB,GAAc,EACdC,GAAc,EACdC,EAAS,EACT,MAEF,KAAK,EAEL,KAAK,KAEDA,EACF,MAEF,QACMD,IAAgBD,IAAiC,OAAjBN,GAAyBQ,EAASR,KACpEA,EAAeQ,GAGjBD,GAAc,EAIpB,OAA0C,QAAlCF,EAAgBL,SAA4C,IAAlBK,EAA2BA,EAAgB,CAC/F,CASO,SAASI,GAAiBryB,GAC/B,IAAIsyB,EAAcvmB,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAClFwmB,EAAsBxmB,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,IAAmBA,UAAU,GACrFymB,GAAwC,IAAzBxyB,EAAMW,QAAQ,MAC7B8xB,EAA+B,MAAbzyB,EAAM,IAA2B,OAAbA,EAAM,GAC5C0yB,EAA+C,MAA5B1yB,EAAMA,EAAM0E,OAAS,GACxCiuB,EAA+C,OAA5B3yB,EAAMA,EAAM0E,OAAS,GACxCkuB,GAAwBJ,GAAgBE,GAAoBC,GAAoBJ,EAChF5iB,EAAS,GAYb,OAVIijB,GAA0BJ,GAAgBC,IAC5C9iB,GAAU,KAAO2iB,GAGnB3iB,GAAU2iB,EAActyB,EAAMkH,QAAQ,MAAO,KAAOorB,GAAetyB,EAE/D4yB,IACFjjB,GAAU,MAGL,MAAQA,EAAOzI,QAAQ,OAAQ,SAAW,KACnD,CC9GO,IAAI2rB,GAAqB,WAgB9B,SAASA,EAAM1tB,GACb,IAAI2tB,EAAmB,IAAI7E,GAAM,GAAUM,IAAK,EAAG,EAAG,EAAG,EAAG,MAC5DzqB,KAAKqB,OAASA,EACdrB,KAAKivB,UAAYD,EACjBhvB,KAAKO,MAAQyuB,EACbhvB,KAAKoL,KAAO,EACZpL,KAAKkvB,UAAY,CACnB,CAMA,IAAIhF,EAAS6E,EAAM5vB,UA4BnB,OA1BA+qB,EAAOiF,QAAU,WACfnvB,KAAKivB,UAAYjvB,KAAKO,MACtB,IAAIA,EAAQP,KAAKO,MAAQP,KAAKovB,YAC9B,OAAO7uB,CACT,EAOA2pB,EAAOkF,UAAY,WACjB,IAAI7uB,EAAQP,KAAKO,MAEjB,GAAIA,EAAM6pB,OAAS,GAAUM,IAC3B,EAAG,CACD,IAAI2E,EAGJ9uB,EAAuC,QAA9B8uB,EAAc9uB,EAAM2S,YAAkC,IAAhBmc,EAAyBA,EAAc9uB,EAAM2S,KAAOoc,GAAUtvB,KAAMO,EACrH,OAASA,EAAM6pB,OAAS,GAAUsB,SAGpC,OAAOnrB,CACT,EAEOwuB,CACT,CA1DgC,GA+DzB,SAASQ,GAAsBnF,GACpC,OAAOA,IAAS,GAAUO,MAAQP,IAAS,GAAUQ,QAAUR,IAAS,GAAUS,KAAOT,IAAS,GAAUU,SAAWV,IAAS,GAAUW,SAAWX,IAAS,GAAUY,QAAUZ,IAAS,GAAUa,OAASb,IAAS,GAAUc,QAAUd,IAAS,GAAUe,IAAMf,IAAS,GAAUgB,WAAahB,IAAS,GAAUiB,WAAajB,IAAS,GAAUkB,SAAWlB,IAAS,GAAUmB,MAAQnB,IAAS,GAAUoB,OAClZ,CAEA,SAASgE,GAAcxrB,GACrB,OACEyrB,MAAMzrB,GAAQ,GAAU0mB,IACxB1mB,EAAO,IAAS8C,KAAKI,UAAU8kB,OAAO0D,aAAa1rB,IACnD,OAAQnB,QAAQ,KAAOmB,EAAK/D,SAAS,IAAI3D,eAAekJ,OAAO,GAAI,IAEvE,CAUA,SAAS8pB,GAAUK,EAAOtF,GACxB,IAAIhpB,EAASsuB,EAAMtuB,OACf8W,EAAO9W,EAAO8W,KACdyX,EAAazX,EAAKvX,OAClBilB,EAAMwE,EAAKJ,IAEf,MAAOpE,EAAM+J,EAAY,CACvB,IAAI5rB,EAAOmU,EAAKhL,WAAW0Y,GACvBgK,EAAQF,EAAMvkB,KAEd0kB,EAAO,EAAIjK,EAAM8J,EAAMT,UAG3B,OAAQlrB,GACN,KAAK,MAEL,KAAK,EAEL,KAAK,GAEL,KAAK,KAED6hB,EACF,SAEF,KAAK,KAEDA,IACA8J,EAAMvkB,KACRukB,EAAMT,UAAYrJ,EAClB,SAEF,KAAK,GAE8B,KAA7B1N,EAAKhL,WAAW0Y,EAAM,GACxBA,GAAO,IAELA,IAGF8J,EAAMvkB,KACRukB,EAAMT,UAAYrJ,EAClB,SAEF,KAAK,GAEH,OAAO,IAAIsE,GAAM,GAAUQ,KAAM9E,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAE9D,KAAK,GAEH,OAAO0F,GAAY1uB,EAAQwkB,EAAKgK,EAAOC,EAAMzF,GAE/C,KAAK,GAEH,OAAO,IAAIF,GAAM,GAAUS,OAAQ/E,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAEhE,KAAK,GAEH,OAAO,IAAIF,GAAM,GAAUU,IAAKhF,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAE7D,KAAK,GAEH,OAAO,IAAIF,GAAM,GAAUW,QAASjF,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAEjE,KAAK,GAEH,OAAO,IAAIF,GAAM,GAAUY,QAASlF,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAEjE,KAAK,GAEH,GAAiC,KAA7BlS,EAAKhL,WAAW0Y,EAAM,IAA0C,KAA7B1N,EAAKhL,WAAW0Y,EAAM,GAC3D,OAAO,IAAIsE,GAAM,GAAUa,OAAQnF,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAGhE,MAEF,KAAK,GAEH,OAAO,IAAIF,GAAM,GAAUc,MAAOpF,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAE/D,KAAK,GAEH,OAAO,IAAIF,GAAM,GAAUe,OAAQrF,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAEhE,KAAK,GAEH,OAAO,IAAIF,GAAM,GAAUgB,GAAItF,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAE5D,KAAK,GAEH,OAAO,IAAIF,GAAM,GAAUiB,UAAWvF,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAEnE,KAAK,GAEH,OAAO,IAAIF,GAAM,GAAUkB,UAAWxF,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAEnE,KAAK,IAEH,OAAO,IAAIF,GAAM,GAAUmB,QAASzF,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAEjE,KAAK,IAEH,OAAO,IAAIF,GAAM,GAAUoB,KAAM1F,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAE9D,KAAK,IAEH,OAAO,IAAIF,GAAM,GAAUqB,QAAS3F,EAAKA,EAAM,EAAGgK,EAAOC,EAAMzF,GAEjE,KAAK,GAEH,OAAiC,KAA7BlS,EAAKhL,WAAW0Y,EAAM,IAA0C,KAA7B1N,EAAKhL,WAAW0Y,EAAM,GACpDmK,GAAgB3uB,EAAQwkB,EAAKgK,EAAOC,EAAMzF,EAAMsF,GAGlDM,GAAW5uB,EAAQwkB,EAAKgK,EAAOC,EAAMzF,GAE9C,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEH,OAAO6F,GAAW7uB,EAAQwkB,EAAK7hB,EAAM6rB,EAAOC,EAAMzF,GAEpD,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEH,OAAO8F,GAAS9uB,EAAQwkB,EAAKgK,EAAOC,EAAMzF,GAG9C,MAAM7D,GAAYnlB,EAAQwkB,EAAKuK,GAA2BpsB,GAC5D,CAEA,IAAIoH,EAAOukB,EAAMvkB,KACbilB,EAAM,EAAIxK,EAAM8J,EAAMT,UAC1B,OAAO,IAAI/E,GAAM,GAAUO,IAAKkF,EAAYA,EAAYxkB,EAAMilB,EAAKhG,EACrE,CAMA,SAAS+F,GAA2BpsB,GAClC,OAAIA,EAAO,IAAmB,IAATA,GAA4B,KAATA,GAA4B,KAATA,EAClD,wCAAwCnB,OAAO2sB,GAAcxrB,GAAO,KAGhE,KAATA,EAEK,kFAGF,yCAAyCnB,OAAO2sB,GAAcxrB,GAAO,IAC9E,CAQA,SAAS+rB,GAAY1uB,EAAQ0e,EAAO3U,EAAMilB,EAAKhG,GAC7C,IACIrmB,EADAmU,EAAO9W,EAAO8W,KAEdsH,EAAWM,EAEf,GACE/b,EAAOmU,EAAKhL,aAAasS,UACjBgQ,MAAMzrB,KAChBA,EAAO,IAAmB,IAATA,IAEjB,OAAO,IAAImmB,GAAM,GAAUuB,QAAS3L,EAAON,EAAUrU,EAAMilB,EAAKhG,EAAMlS,EAAK3S,MAAMua,EAAQ,EAAGN,GAC9F,CAUA,SAASyQ,GAAW7uB,EAAQ0e,EAAOuQ,EAAWllB,EAAMilB,EAAKhG,GACvD,IAAIlS,EAAO9W,EAAO8W,KACdnU,EAAOssB,EACP7Q,EAAWM,EACXwQ,GAAU,EAOd,GALa,KAATvsB,IAEFA,EAAOmU,EAAKhL,aAAasS,IAGd,KAATzb,GAIF,GAFAA,EAAOmU,EAAKhL,aAAasS,GAErBzb,GAAQ,IAAMA,GAAQ,GACxB,MAAMwiB,GAAYnlB,EAAQoe,EAAU,6CAA6C5c,OAAO2sB,GAAcxrB,GAAO,WAG/Gyb,EAAW+Q,GAAWnvB,EAAQoe,EAAUzb,GACxCA,EAAOmU,EAAKhL,WAAWsS,GA0BzB,GAvBa,KAATzb,IAEFusB,GAAU,EACVvsB,EAAOmU,EAAKhL,aAAasS,GACzBA,EAAW+Q,GAAWnvB,EAAQoe,EAAUzb,GACxCA,EAAOmU,EAAKhL,WAAWsS,IAGZ,KAATzb,GAAwB,MAATA,IAEjBusB,GAAU,EACVvsB,EAAOmU,EAAKhL,aAAasS,GAEZ,KAATzb,GAAwB,KAATA,IAEjBA,EAAOmU,EAAKhL,aAAasS,IAG3BA,EAAW+Q,GAAWnvB,EAAQoe,EAAUzb,GACxCA,EAAOmU,EAAKhL,WAAWsS,IAIZ,KAATzb,GAAeysB,GAAYzsB,GAC7B,MAAMwiB,GAAYnlB,EAAQoe,EAAU,2CAA2C5c,OAAO2sB,GAAcxrB,GAAO,MAG7G,OAAO,IAAImmB,GAAMoG,EAAU,GAAUhJ,MAAQ,GAAUD,IAAKvH,EAAON,EAAUrU,EAAMilB,EAAKhG,EAAMlS,EAAK3S,MAAMua,EAAON,GAClH,CAMA,SAAS+Q,GAAWnvB,EAAQ0e,EAAOuQ,GACjC,IAAInY,EAAO9W,EAAO8W,KACdsH,EAAWM,EACX/b,EAAOssB,EAEX,GAAItsB,GAAQ,IAAMA,GAAQ,GAAI,CAE5B,GACEA,EAAOmU,EAAKhL,aAAasS,SAClBzb,GAAQ,IAAMA,GAAQ,IAG/B,OAAOyb,CACT,CAEA,MAAM+G,GAAYnlB,EAAQoe,EAAU,2CAA2C5c,OAAO2sB,GAAcxrB,GAAO,KAC7G,CAQA,SAASisB,GAAW5uB,EAAQ0e,EAAO3U,EAAMilB,EAAKhG,GAC5C,IAAIlS,EAAO9W,EAAO8W,KACdsH,EAAWM,EAAQ,EACnB2Q,EAAajR,EACbzb,EAAO,EACP9H,EAAQ,GAEZ,MAAOujB,EAAWtH,EAAKvX,SAAW6uB,MAAMzrB,EAAOmU,EAAKhL,WAAWsS,KACtD,KAATzb,GAA4B,KAATA,EAAiB,CAElC,GAAa,KAATA,EAEF,OADA9H,GAASic,EAAK3S,MAAMkrB,EAAYjR,GACzB,IAAI0K,GAAM,GAAU3C,OAAQzH,EAAON,EAAW,EAAGrU,EAAMilB,EAAKhG,EAAMnuB,GAI3E,GAAI8H,EAAO,IAAmB,IAATA,EACnB,MAAMwiB,GAAYnlB,EAAQoe,EAAU,oCAAoC5c,OAAO2sB,GAAcxrB,GAAO,MAKtG,KAFEyb,EAEW,KAATzb,EAAa,CAKf,OAHA9H,GAASic,EAAK3S,MAAMkrB,EAAYjR,EAAW,GAC3Czb,EAAOmU,EAAKhL,WAAWsS,GAEfzb,GACN,KAAK,GACH9H,GAAS,IACT,MAEF,KAAK,GACHA,GAAS,IACT,MAEF,KAAK,GACHA,GAAS,KACT,MAEF,KAAK,GACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IAGD,IAAI6R,EAAW4iB,GAAYxY,EAAKhL,WAAWsS,EAAW,GAAItH,EAAKhL,WAAWsS,EAAW,GAAItH,EAAKhL,WAAWsS,EAAW,GAAItH,EAAKhL,WAAWsS,EAAW,IAEnJ,GAAI1R,EAAW,EAAG,CAChB,IAAI6iB,EAAkBzY,EAAK3S,MAAMia,EAAW,EAAGA,EAAW,GAC1D,MAAM+G,GAAYnlB,EAAQoe,EAAU,yCAAyC5c,OAAO+tB,EAAiB,KACvG,CAEA10B,GAAS8vB,OAAO0D,aAAa3hB,GAC7B0R,GAAY,EACZ,MAGJ,QACE,MAAM+G,GAAYnlB,EAAQoe,EAAU,wCAAwC5c,OAAOmpB,OAAO0D,aAAa1rB,GAAO,QAGhHyb,EACFiR,EAAajR,CACf,CACF,CAEA,MAAM+G,GAAYnlB,EAAQoe,EAAU,uBACtC,CAQA,SAASuQ,GAAgB3uB,EAAQ0e,EAAO3U,EAAMilB,EAAKhG,EAAMsF,GACvD,IAAIxX,EAAO9W,EAAO8W,KACdsH,EAAWM,EAAQ,EACnB2Q,EAAajR,EACbzb,EAAO,EACP0C,EAAW,GAEf,MAAO+Y,EAAWtH,EAAKvX,SAAW6uB,MAAMzrB,EAAOmU,EAAKhL,WAAWsS,IAAY,CAEzE,GAAa,KAATzb,GAAiD,KAAlCmU,EAAKhL,WAAWsS,EAAW,IAA+C,KAAlCtH,EAAKhL,WAAWsS,EAAW,GAEpF,OADA/Y,GAAYyR,EAAK3S,MAAMkrB,EAAYjR,GAC5B,IAAI0K,GAAM,GAAUsB,aAAc1L,EAAON,EAAW,EAAGrU,EAAMilB,EAAKhG,EAAMuD,GAAuBlnB,IAIxG,GAAI1C,EAAO,IAAmB,IAATA,GAA4B,KAATA,GAA4B,KAATA,EACzD,MAAMwiB,GAAYnlB,EAAQoe,EAAU,oCAAoC5c,OAAO2sB,GAAcxrB,GAAO,MAGzF,KAATA,KAEAyb,IACAkQ,EAAMvkB,KACRukB,EAAMT,UAAYzP,GACA,KAATzb,GAE6B,KAAlCmU,EAAKhL,WAAWsS,EAAW,GAC7BA,GAAY,IAEVA,IAGFkQ,EAAMvkB,KACRukB,EAAMT,UAAYzP,GAEX,KAATzb,GAAiD,KAAlCmU,EAAKhL,WAAWsS,EAAW,IAA+C,KAAlCtH,EAAKhL,WAAWsS,EAAW,IAA+C,KAAlCtH,EAAKhL,WAAWsS,EAAW,IACxH/Y,GAAYyR,EAAK3S,MAAMkrB,EAAYjR,GAAY,MAC/CA,GAAY,EACZiR,EAAajR,KAEXA,CAEN,CAEA,MAAM+G,GAAYnlB,EAAQoe,EAAU,uBACtC,CAaA,SAASkR,GAAY5jB,EAAGC,EAAG1L,EAAGyO,GAC5B,OAAO8gB,GAAS9jB,IAAM,GAAK8jB,GAAS7jB,IAAM,EAAI6jB,GAASvvB,IAAM,EAAIuvB,GAAS9gB,EAC5E,CAWA,SAAS8gB,GAAS9jB,GAChB,OAAOA,GAAK,IAAMA,GAAK,GAAKA,EAAI,GAC9BA,GAAK,IAAMA,GAAK,GAAKA,EAAI,GACzBA,GAAK,IAAMA,GAAK,IAAMA,EAAI,IACzB,CACL,CAQA,SAASojB,GAAS9uB,EAAQ0e,EAAO3U,EAAMilB,EAAKhG,GAC1C,IAAIlS,EAAO9W,EAAO8W,KACdyX,EAAazX,EAAKvX,OAClB6e,EAAWM,EAAQ,EACnB/b,EAAO,EAEX,MAAOyb,IAAamQ,IAAeH,MAAMzrB,EAAOmU,EAAKhL,WAAWsS,MAAwB,KAATzb,GAC/EA,GAAQ,IAAMA,GAAQ,IACtBA,GAAQ,IAAMA,GAAQ,IACtBA,GAAQ,IAAMA,GAAQ,OAElByb,EAGJ,OAAO,IAAI0K,GAAM,GAAUxD,KAAM5G,EAAON,EAAUrU,EAAMilB,EAAKhG,EAAMlS,EAAK3S,MAAMua,EAAON,GACvF,CAGA,SAASgR,GAAYzsB,GACnB,OAAgB,KAATA,GAAeA,GAAQ,IAAMA,GAAQ,IAAMA,GAAQ,IAAMA,GAAQ,GAC1E,CCppBO,SAAS+C,GAAM1F,EAAQkC,GAC5B,IAAIoD,EAAS,IAAImqB,GAAOzvB,EAAQkC,GAChC,OAAOoD,EAAOoqB,eAChB,CAiDO,IAAID,GAAsB,WAC/B,SAASA,EAAOzvB,EAAQkC,GACtB,IAAIytB,EAAYlE,GAASzrB,GAAUA,EAAS,IAAIwrB,GAAOxrB,GACvDrB,KAAKixB,OAAS,IAAIlC,GAAMiC,GACxBhxB,KAAKib,SAAW1X,CAClB,CAMA,IAAI2mB,EAAS4G,EAAO3xB,UA26CpB,OAz6CA+qB,EAAOgH,UAAY,WACjB,IAAI3wB,EAAQP,KAAKmxB,YAAY,GAAUxK,MACvC,MAAO,CACLyD,KAAM3D,GAAKE,KACXzqB,MAAOqE,EAAMrE,MACbypB,IAAK3lB,KAAK2lB,IAAIplB,GAElB,EAOA2pB,EAAO6G,cAAgB,WACrB,IAAIhR,EAAQ/f,KAAKixB,OAAO1wB,MACxB,MAAO,CACL6pB,KAAM3D,GAAKG,SACXwK,YAAapxB,KAAKqxB,KAAK,GAAU5G,IAAKzqB,KAAKsxB,gBAAiB,GAAU5G,KACtE/E,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAaAmK,EAAOoH,gBAAkB,WACvB,GAAItxB,KAAKuxB,KAAK,GAAU5K,MACtB,OAAQ3mB,KAAKixB,OAAO1wB,MAAMrE,OACxB,IAAK,QACL,IAAK,WACL,IAAK,eACH,OAAO8D,KAAKwxB,2BAEd,IAAK,WACH,OAAOxxB,KAAKyxB,0BAEd,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,YACH,OAAOzxB,KAAK0xB,4BAEd,IAAK,SACH,OAAO1xB,KAAK2xB,+BAEX,IAAI3xB,KAAKuxB,KAAK,GAAUjG,SAC7B,OAAOtrB,KAAKwxB,2BACP,GAAIxxB,KAAK4xB,kBACd,OAAO5xB,KAAK0xB,2BACd,CAEA,MAAM1xB,KAAK6xB,YACb,EASA3H,EAAOsH,yBAA2B,WAChC,IAAIzR,EAAQ/f,KAAKixB,OAAO1wB,MAExB,GAAIP,KAAKuxB,KAAK,GAAUjG,SACtB,MAAO,CACLlB,KAAM3D,GAAKI,qBACXiL,UAAW,QACXntB,UAAMjH,EACNq0B,oBAAqB,GACrBC,WAAY,GACZC,aAAcjyB,KAAKkyB,oBACnBvM,IAAK3lB,KAAK2lB,IAAI5F,IAIlB,IACIpb,EADAmtB,EAAY9xB,KAAKmyB,qBAOrB,OAJInyB,KAAKuxB,KAAK,GAAU5K,QACtBhiB,EAAO3E,KAAKkxB,aAGP,CACL9G,KAAM3D,GAAKI,qBACXiL,UAAWA,EACXntB,KAAMA,EACNotB,oBAAqB/xB,KAAKoyB,2BAC1BJ,WAAYhyB,KAAKqyB,iBAAgB,GACjCJ,aAAcjyB,KAAKkyB,oBACnBvM,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAMAmK,EAAOiI,mBAAqB,WAC1B,IAAIG,EAAiBtyB,KAAKmxB,YAAY,GAAUxK,MAEhD,OAAQ2L,EAAep2B,OACrB,IAAK,QACH,MAAO,QAET,IAAK,WACH,MAAO,WAET,IAAK,eACH,MAAO,eAGX,MAAM8D,KAAK6xB,WAAWS,EACxB,EAMApI,EAAOkI,yBAA2B,WAChC,OAAOpyB,KAAKuyB,aAAa,GAAUzH,QAAS9qB,KAAKwyB,wBAAyB,GAAUzH,QACtF,EAMAb,EAAOsI,wBAA0B,WAC/B,IAAIzS,EAAQ/f,KAAKixB,OAAO1wB,MACxB,MAAO,CACL6pB,KAAM3D,GAAKK,oBACX2L,SAAUzyB,KAAK0yB,gBACfn0B,MAAOyB,KAAKmxB,YAAY,GAAUlG,OAAQjrB,KAAK2yB,sBAC/CC,aAAc5yB,KAAK6yB,oBAAoB,GAAU3H,QAAUlrB,KAAK8yB,mBAAkB,QAAQp1B,EAC1Fs0B,WAAYhyB,KAAKqyB,iBAAgB,GACjC1M,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAMAmK,EAAOwI,cAAgB,WACrB,IAAI3S,EAAQ/f,KAAKixB,OAAO1wB,MAExB,OADAP,KAAKmxB,YAAY,GAAUvG,QACpB,CACLR,KAAM3D,GAAKY,SACX1iB,KAAM3E,KAAKkxB,YACXvL,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAMAmK,EAAOgI,kBAAoB,WACzB,IAAInS,EAAQ/f,KAAKixB,OAAO1wB,MACxB,MAAO,CACL6pB,KAAM3D,GAAKM,cACXgM,WAAY/yB,KAAKqxB,KAAK,GAAU/F,QAAStrB,KAAKgzB,eAAgB,GAAUxH,SACxE7F,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EASAmK,EAAO8I,eAAiB,WACtB,OAAOhzB,KAAKuxB,KAAK,GAAUvG,QAAUhrB,KAAKizB,gBAAkBjzB,KAAKkzB,YACnE,EAQAhJ,EAAOgJ,WAAa,WAClB,IAEIC,EACAxuB,EAHAob,EAAQ/f,KAAKixB,OAAO1wB,MACpB6yB,EAAcpzB,KAAKkxB,YAWvB,OAPIlxB,KAAK6yB,oBAAoB,GAAU5H,QACrCkI,EAAQC,EACRzuB,EAAO3E,KAAKkxB,aAEZvsB,EAAOyuB,EAGF,CACLhJ,KAAM3D,GAAKO,MACXmM,MAAOA,EACPxuB,KAAMA,EACNsD,UAAWjI,KAAKqzB,gBAAe,GAC/BrB,WAAYhyB,KAAKqyB,iBAAgB,GACjCJ,aAAcjyB,KAAKuxB,KAAK,GAAUjG,SAAWtrB,KAAKkyB,yBAAsBx0B,EACxEioB,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAMAmK,EAAOmJ,eAAiB,SAAwBC,GAC9C,IAAIxiB,EAAOwiB,EAAUtzB,KAAKuzB,mBAAqBvzB,KAAKwzB,cACpD,OAAOxzB,KAAKuyB,aAAa,GAAUzH,QAASha,EAAM,GAAUia,QAC9D,EAMAb,EAAOsJ,cAAgB,WACrB,IAAIzT,EAAQ/f,KAAKixB,OAAO1wB,MACpBoE,EAAO3E,KAAKkxB,YAEhB,OADAlxB,KAAKmxB,YAAY,GAAUlG,OACpB,CACLb,KAAM3D,GAAKQ,SACXtiB,KAAMA,EACNzI,MAAO8D,KAAK8yB,mBAAkB,GAC9BnN,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAEAmK,EAAOqJ,mBAAqB,WAC1B,IAAIxT,EAAQ/f,KAAKixB,OAAO1wB,MACxB,MAAO,CACL6pB,KAAM3D,GAAKQ,SACXtiB,KAAM3E,KAAKkxB,YACXh1B,OAAQ8D,KAAKmxB,YAAY,GAAUlG,OAAQjrB,KAAK8yB,mBAAkB,IAClEnN,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAWAmK,EAAO+I,cAAgB,WACrB,IAAIlT,EAAQ/f,KAAKixB,OAAO1wB,MACxBP,KAAKmxB,YAAY,GAAUnG,QAC3B,IAAIyI,EAAmBzzB,KAAK0zB,sBAAsB,MAElD,OAAKD,GAAoBzzB,KAAKuxB,KAAK,GAAU5K,MACpC,CACLyD,KAAM3D,GAAKS,gBACXviB,KAAM3E,KAAK2zB,oBACX3B,WAAYhyB,KAAKqyB,iBAAgB,GACjC1M,IAAK3lB,KAAK2lB,IAAI5F,IAIX,CACLqK,KAAM3D,GAAKU,gBACXyM,cAAeH,EAAmBzzB,KAAK6zB,sBAAmBn2B,EAC1Ds0B,WAAYhyB,KAAKqyB,iBAAgB,GACjCJ,aAAcjyB,KAAKkyB,oBACnBvM,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EASAmK,EAAOuH,wBAA0B,WAC/B,IAAIqC,EAEA/T,EAAQ/f,KAAKixB,OAAO1wB,MAKxB,OAJAP,KAAK+zB,cAAc,aAIsH,KAA/F,QAApCD,EAAiB9zB,KAAKib,gBAAyC,IAAnB6Y,OAA4B,EAASA,EAAeE,+BAC7F,CACL5J,KAAM3D,GAAKW,oBACXziB,KAAM3E,KAAK2zB,oBACX5B,oBAAqB/xB,KAAKoyB,2BAC1BwB,eAAgB5zB,KAAK+zB,cAAc,MAAO/zB,KAAK6zB,kBAC/C7B,WAAYhyB,KAAKqyB,iBAAgB,GACjCJ,aAAcjyB,KAAKkyB,oBACnBvM,IAAK3lB,KAAK2lB,IAAI5F,IAIX,CACLqK,KAAM3D,GAAKW,oBACXziB,KAAM3E,KAAK2zB,oBACXC,eAAgB5zB,KAAK+zB,cAAc,MAAO/zB,KAAK6zB,kBAC/C7B,WAAYhyB,KAAKqyB,iBAAgB,GACjCJ,aAAcjyB,KAAKkyB,oBACnBvM,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAMAmK,EAAOyJ,kBAAoB,WACzB,GAAgC,OAA5B3zB,KAAKixB,OAAO1wB,MAAMrE,MACpB,MAAM8D,KAAK6xB,aAGb,OAAO7xB,KAAKkxB,WACd,EAsBAhH,EAAO4I,kBAAoB,SAA2BQ,GACpD,IAAI/yB,EAAQP,KAAKixB,OAAO1wB,MAExB,OAAQA,EAAM6pB,MACZ,KAAK,GAAUgB,UACb,OAAOprB,KAAKi0B,UAAUX,GAExB,KAAK,GAAUhI,QACb,OAAOtrB,KAAKk0B,YAAYZ,GAE1B,KAAK,GAAUhM,IAGb,OAFAtnB,KAAKixB,OAAO9B,UAEL,CACL/E,KAAM3D,GAAKa,IACXprB,MAAOqE,EAAMrE,MACbypB,IAAK3lB,KAAK2lB,IAAIplB,IAGlB,KAAK,GAAUgnB,MAGb,OAFAvnB,KAAKixB,OAAO9B,UAEL,CACL/E,KAAM3D,GAAKc,MACXrrB,MAAOqE,EAAMrE,MACbypB,IAAK3lB,KAAK2lB,IAAIplB,IAGlB,KAAK,GAAUinB,OACf,KAAK,GAAUiE,aACb,OAAOzrB,KAAKm0B,qBAEd,KAAK,GAAUxN,KAGb,OAFA3mB,KAAKixB,OAAO9B,UAEJ5uB,EAAMrE,OACZ,IAAK,OACH,MAAO,CACLkuB,KAAM3D,GAAKgB,QACXvrB,OAAO,EACPypB,IAAK3lB,KAAK2lB,IAAIplB,IAGlB,IAAK,QACH,MAAO,CACL6pB,KAAM3D,GAAKgB,QACXvrB,OAAO,EACPypB,IAAK3lB,KAAK2lB,IAAIplB,IAGlB,IAAK,OACH,MAAO,CACL6pB,KAAM3D,GAAKiB,KACX/B,IAAK3lB,KAAK2lB,IAAIplB,IAGlB,QACE,MAAO,CACL6pB,KAAM3D,GAAKkB,KACXzrB,MAAOqE,EAAMrE,MACbypB,IAAK3lB,KAAK2lB,IAAIplB,IAItB,KAAK,GAAUqqB,OACb,IAAK0I,EACH,OAAOtzB,KAAK0yB,gBAGd,MAGJ,MAAM1yB,KAAK6xB,YACb,EAEA3H,EAAOiK,mBAAqB,WAC1B,IAAI5zB,EAAQP,KAAKixB,OAAO1wB,MAIxB,OAFAP,KAAKixB,OAAO9B,UAEL,CACL/E,KAAM3D,GAAKe,OACXtrB,MAAOqE,EAAMrE,MACbk4B,MAAO7zB,EAAM6pB,OAAS,GAAUqB,aAChC9F,IAAK3lB,KAAK2lB,IAAIplB,GAElB,EAQA2pB,EAAO+J,UAAY,SAAmBX,GACpC,IAAIhjB,EAAQtQ,KAER+f,EAAQ/f,KAAKixB,OAAO1wB,MAEpBuQ,EAAO,WACT,OAAOR,EAAMwiB,kBAAkBQ,EACjC,EAEA,MAAO,CACLlJ,KAAM3D,GAAKmB,KACXyM,OAAQr0B,KAAKs0B,IAAI,GAAUlJ,UAAWta,EAAM,GAAUua,WACtD1F,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAQAmK,EAAOgK,YAAc,SAAqBZ,GACxC,IAAIiB,EAASv0B,KAET+f,EAAQ/f,KAAKixB,OAAO1wB,MAEpBuQ,EAAO,WACT,OAAOyjB,EAAOC,iBAAiBlB,EACjC,EAEA,MAAO,CACLlJ,KAAM3D,GAAKoB,OACX4M,OAAQz0B,KAAKs0B,IAAI,GAAUhJ,QAASxa,EAAM,GAAU0a,SACpD7F,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAMAmK,EAAOsK,iBAAmB,SAA0BlB,GAClD,IAAIvT,EAAQ/f,KAAKixB,OAAO1wB,MACpBoE,EAAO3E,KAAKkxB,YAEhB,OADAlxB,KAAKmxB,YAAY,GAAUlG,OACpB,CACLb,KAAM3D,GAAKqB,aACXnjB,KAAMA,EACNzI,MAAO8D,KAAK8yB,kBAAkBQ,GAC9B3N,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAOAmK,EAAOmI,gBAAkB,SAAyBiB,GAChD,IAAItB,EAAa,GAEjB,MAAOhyB,KAAKuxB,KAAK,GAAUpG,IACzB6G,EAAW9wB,KAAKlB,KAAK00B,eAAepB,IAGtC,OAAOtB,CACT,EAMA9H,EAAOwK,eAAiB,SAAwBpB,GAC9C,IAAIvT,EAAQ/f,KAAKixB,OAAO1wB,MAExB,OADAP,KAAKmxB,YAAY,GAAUhG,IACpB,CACLf,KAAM3D,GAAKsB,UACXpjB,KAAM3E,KAAKkxB,YACXjpB,UAAWjI,KAAKqzB,eAAeC,GAC/B3N,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAUAmK,EAAOyI,mBAAqB,WAC1B,IACIp0B,EADAwhB,EAAQ/f,KAAKixB,OAAO1wB,MAexB,OAZIP,KAAK6yB,oBAAoB,GAAUzH,YACrC7sB,EAAOyB,KAAK2yB,qBACZ3yB,KAAKmxB,YAAY,GAAU9F,WAC3B9sB,EAAO,CACL6rB,KAAM3D,GAAKwB,UACX1pB,KAAMA,EACNonB,IAAK3lB,KAAK2lB,IAAI5F,KAGhBxhB,EAAOyB,KAAK6zB,iBAGV7zB,KAAK6yB,oBAAoB,GAAUlI,MAC9B,CACLP,KAAM3D,GAAKyB,cACX3pB,KAAMA,EACNonB,IAAK3lB,KAAK2lB,IAAI5F,IAIXxhB,CACT,EAMA2rB,EAAO2J,eAAiB,WACtB,IAAI9T,EAAQ/f,KAAKixB,OAAO1wB,MACxB,MAAO,CACL6pB,KAAM3D,GAAKuB,WACXrjB,KAAM3E,KAAKkxB,YACXvL,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAkBAmK,EAAOwH,0BAA4B,WAEjC,IAAIiD,EAAe30B,KAAK4xB,kBAAoB5xB,KAAKixB,OAAO7B,YAAcpvB,KAAKixB,OAAO1wB,MAElF,GAAIo0B,EAAavK,OAAS,GAAUzD,KAClC,OAAQgO,EAAaz4B,OACnB,IAAK,SACH,OAAO8D,KAAK40B,wBAEd,IAAK,SACH,OAAO50B,KAAK60B,4BAEd,IAAK,OACH,OAAO70B,KAAK80B,4BAEd,IAAK,YACH,OAAO90B,KAAK+0B,+BAEd,IAAK,QACH,OAAO/0B,KAAKg1B,2BAEd,IAAK,OACH,OAAOh1B,KAAKi1B,0BAEd,IAAK,QACH,OAAOj1B,KAAKk1B,iCAEd,IAAK,YACH,OAAOl1B,KAAKm1B,2BAIlB,MAAMn1B,KAAK6xB,WAAW8C,EACxB,EAEAzK,EAAO0H,gBAAkB,WACvB,OAAO5xB,KAAKuxB,KAAK,GAAU/J,SAAWxnB,KAAKuxB,KAAK,GAAU9F,aAC5D,EAMAvB,EAAOkL,iBAAmB,WACxB,GAAIp1B,KAAK4xB,kBACP,OAAO5xB,KAAKm0B,oBAEhB,EAMAjK,EAAO0K,sBAAwB,WAC7B,IAAI7U,EAAQ/f,KAAKixB,OAAO1wB,MACpBqE,EAAc5E,KAAKo1B,mBACvBp1B,KAAK+zB,cAAc,UACnB,IAAI/B,EAAahyB,KAAKqyB,iBAAgB,GAClCgD,EAAiBr1B,KAAKqxB,KAAK,GAAU/F,QAAStrB,KAAKs1B,6BAA8B,GAAU9J,SAC/F,MAAO,CACLpB,KAAM3D,GAAK0B,kBACXvjB,YAAaA,EACbotB,WAAYA,EACZqD,eAAgBA,EAChB1P,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAMAmK,EAAOoL,6BAA+B,WACpC,IAAIvV,EAAQ/f,KAAKixB,OAAO1wB,MACpBuxB,EAAY9xB,KAAKmyB,qBACrBnyB,KAAKmxB,YAAY,GAAUlG,OAC3B,IAAI1sB,EAAOyB,KAAK6zB,iBAChB,MAAO,CACLzJ,KAAM3D,GAAK2B,0BACX0J,UAAWA,EACXvzB,KAAMA,EACNonB,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAMAmK,EAAO2K,0BAA4B,WACjC,IAAI9U,EAAQ/f,KAAKixB,OAAO1wB,MACpBqE,EAAc5E,KAAKo1B,mBACvBp1B,KAAK+zB,cAAc,UACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZc,EAAahyB,KAAKqyB,iBAAgB,GACtC,MAAO,CACLjI,KAAM3D,GAAK4B,uBACXzjB,YAAaA,EACbD,KAAMA,EACNqtB,WAAYA,EACZrM,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAQAmK,EAAO4K,0BAA4B,WACjC,IAAI/U,EAAQ/f,KAAKixB,OAAO1wB,MACpBqE,EAAc5E,KAAKo1B,mBACvBp1B,KAAK+zB,cAAc,QACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZqE,EAAav1B,KAAKw1B,4BAClBxD,EAAahyB,KAAKqyB,iBAAgB,GAClCoC,EAASz0B,KAAKy1B,wBAClB,MAAO,CACLrL,KAAM3D,GAAK6B,uBACX1jB,YAAaA,EACbD,KAAMA,EACN4wB,WAAYA,EACZvD,WAAYA,EACZyC,OAAQA,EACR9O,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAQAmK,EAAOsL,0BAA4B,WACjC,IAAIE,EAEJ,IAAK11B,KAAK0zB,sBAAsB,cAC9B,MAAO,GAGT,IAAiJ,KAAtG,QAArCgC,EAAkB11B,KAAKib,gBAA0C,IAApBya,OAA6B,EAASA,EAAgBC,oCAA8C,CACrJ,IAAIC,EAAQ,GAEZ51B,KAAK6yB,oBAAoB,GAAUhI,KAEnC,GACE+K,EAAM10B,KAAKlB,KAAK6zB,wBACT7zB,KAAK6yB,oBAAoB,GAAUhI,MAAQ7qB,KAAKuxB,KAAK,GAAU5K,OAExE,OAAOiP,CACT,CAEA,OAAO51B,KAAK61B,cAAc,GAAUhL,IAAK7qB,KAAK6zB,eAChD,EAMA3J,EAAOuL,sBAAwB,WAC7B,IAAIK,EAGJ,OAAwI,KAA7F,QAArCA,EAAkB91B,KAAKib,gBAA0C,IAApB6a,OAA6B,EAASA,EAAgBC,4BAAuC/1B,KAAKuxB,KAAK,GAAUjG,UAAYtrB,KAAKixB,OAAO7B,YAAYhF,OAAS,GAAUoB,SACzNxrB,KAAKixB,OAAO9B,UAEZnvB,KAAKixB,OAAO9B,UAEL,IAGFnvB,KAAKuyB,aAAa,GAAUjH,QAAStrB,KAAKg2B,qBAAsB,GAAUxK,QACnF,EAOAtB,EAAO8L,qBAAuB,WAC5B,IAAIjW,EAAQ/f,KAAKixB,OAAO1wB,MACpBqE,EAAc5E,KAAKo1B,mBACnBzwB,EAAO3E,KAAKkxB,YACZlpB,EAAOhI,KAAKi2B,oBAChBj2B,KAAKmxB,YAAY,GAAUlG,OAC3B,IAAI1sB,EAAOyB,KAAK2yB,qBACZX,EAAahyB,KAAKqyB,iBAAgB,GACtC,MAAO,CACLjI,KAAM3D,GAAK8B,iBACX3jB,YAAaA,EACbD,KAAMA,EACNsD,UAAWD,EACXzJ,KAAMA,EACNyzB,WAAYA,EACZrM,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAMAmK,EAAO+L,kBAAoB,WACzB,OAAOj2B,KAAKuyB,aAAa,GAAUzH,QAAS9qB,KAAKk2B,mBAAoB,GAAUnL,QACjF,EAOAb,EAAOgM,mBAAqB,WAC1B,IAAInW,EAAQ/f,KAAKixB,OAAO1wB,MACpBqE,EAAc5E,KAAKo1B,mBACnBzwB,EAAO3E,KAAKkxB,YAChBlxB,KAAKmxB,YAAY,GAAUlG,OAC3B,IACI2H,EADAr0B,EAAOyB,KAAK2yB,qBAGZ3yB,KAAK6yB,oBAAoB,GAAU3H,UACrC0H,EAAe5yB,KAAK8yB,mBAAkB,IAGxC,IAAId,EAAahyB,KAAKqyB,iBAAgB,GACtC,MAAO,CACLjI,KAAM3D,GAAK+B,uBACX5jB,YAAaA,EACbD,KAAMA,EACNpG,KAAMA,EACNq0B,aAAcA,EACdZ,WAAYA,EACZrM,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAOAmK,EAAO6K,6BAA+B,WACpC,IAAIhV,EAAQ/f,KAAKixB,OAAO1wB,MACpBqE,EAAc5E,KAAKo1B,mBACvBp1B,KAAK+zB,cAAc,aACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZqE,EAAav1B,KAAKw1B,4BAClBxD,EAAahyB,KAAKqyB,iBAAgB,GAClCoC,EAASz0B,KAAKy1B,wBAClB,MAAO,CACLrL,KAAM3D,GAAKgC,0BACX7jB,YAAaA,EACbD,KAAMA,EACN4wB,WAAYA,EACZvD,WAAYA,EACZyC,OAAQA,EACR9O,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAOAmK,EAAO8K,yBAA2B,WAChC,IAAIjV,EAAQ/f,KAAKixB,OAAO1wB,MACpBqE,EAAc5E,KAAKo1B,mBACvBp1B,KAAK+zB,cAAc,SACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZc,EAAahyB,KAAKqyB,iBAAgB,GAClCuD,EAAQ51B,KAAKm2B,wBACjB,MAAO,CACL/L,KAAM3D,GAAKiC,sBACX9jB,YAAaA,EACbD,KAAMA,EACNqtB,WAAYA,EACZ4D,MAAOA,EACPjQ,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAQAmK,EAAOiM,sBAAwB,WAC7B,OAAOn2B,KAAK6yB,oBAAoB,GAAU3H,QAAUlrB,KAAK61B,cAAc,GAAUtK,KAAMvrB,KAAK6zB,gBAAkB,EAChH,EAOA3J,EAAO+K,wBAA0B,WAC/B,IAAIlV,EAAQ/f,KAAKixB,OAAO1wB,MACpBqE,EAAc5E,KAAKo1B,mBACvBp1B,KAAK+zB,cAAc,QACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZc,EAAahyB,KAAKqyB,iBAAgB,GAClCgC,EAASr0B,KAAKo2B,4BAClB,MAAO,CACLhM,KAAM3D,GAAKkC,qBACX/jB,YAAaA,EACbD,KAAMA,EACNqtB,WAAYA,EACZqC,OAAQA,EACR1O,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAMAmK,EAAOkM,0BAA4B,WACjC,OAAOp2B,KAAKuyB,aAAa,GAAUjH,QAAStrB,KAAKq2B,yBAA0B,GAAU7K,QACvF,EAQAtB,EAAOmM,yBAA2B,WAChC,IAAItW,EAAQ/f,KAAKixB,OAAO1wB,MACpBqE,EAAc5E,KAAKo1B,mBACnBzwB,EAAO3E,KAAKkxB,YACZc,EAAahyB,KAAKqyB,iBAAgB,GACtC,MAAO,CACLjI,KAAM3D,GAAKmC,sBACXhkB,YAAaA,EACbD,KAAMA,EACNqtB,WAAYA,EACZrM,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAOAmK,EAAOgL,+BAAiC,WACtC,IAAInV,EAAQ/f,KAAKixB,OAAO1wB,MACpBqE,EAAc5E,KAAKo1B,mBACvBp1B,KAAK+zB,cAAc,SACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZc,EAAahyB,KAAKqyB,iBAAgB,GAClCoC,EAASz0B,KAAKs2B,6BAClB,MAAO,CACLlM,KAAM3D,GAAKoC,6BACXjkB,YAAaA,EACbD,KAAMA,EACNqtB,WAAYA,EACZyC,OAAQA,EACR9O,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAMAmK,EAAOoM,2BAA6B,WAClC,OAAOt2B,KAAKuyB,aAAa,GAAUjH,QAAStrB,KAAKk2B,mBAAoB,GAAU1K,QACjF,EAgBAtB,EAAOyH,yBAA2B,WAChC,IAAIgD,EAAe30B,KAAKixB,OAAO7B,YAE/B,GAAIuF,EAAavK,OAAS,GAAUzD,KAClC,OAAQgO,EAAaz4B,OACnB,IAAK,SACH,OAAO8D,KAAKu2B,uBAEd,IAAK,SACH,OAAOv2B,KAAKw2B,2BAEd,IAAK,OACH,OAAOx2B,KAAKy2B,2BAEd,IAAK,YACH,OAAOz2B,KAAK02B,8BAEd,IAAK,QACH,OAAO12B,KAAK22B,0BAEd,IAAK,OACH,OAAO32B,KAAK42B,yBAEd,IAAK,QACH,OAAO52B,KAAK62B,gCAIlB,MAAM72B,KAAK6xB,WAAW8C,EACxB,EAQAzK,EAAOqM,qBAAuB,WAC5B,IAAIxW,EAAQ/f,KAAKixB,OAAO1wB,MACxBP,KAAK+zB,cAAc,UACnB/zB,KAAK+zB,cAAc,UACnB,IAAI/B,EAAahyB,KAAKqyB,iBAAgB,GAClCgD,EAAiBr1B,KAAKuyB,aAAa,GAAUjH,QAAStrB,KAAKs1B,6BAA8B,GAAU9J,SAEvG,GAA0B,IAAtBwG,EAAWpxB,QAA0C,IAA1By0B,EAAez0B,OAC5C,MAAMZ,KAAK6xB,aAGb,MAAO,CACLzH,KAAM3D,GAAKsC,iBACXiJ,WAAYA,EACZqD,eAAgBA,EAChB1P,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAOAmK,EAAOsM,yBAA2B,WAChC,IAAIzW,EAAQ/f,KAAKixB,OAAO1wB,MACxBP,KAAK+zB,cAAc,UACnB/zB,KAAK+zB,cAAc,UACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZc,EAAahyB,KAAKqyB,iBAAgB,GAEtC,GAA0B,IAAtBL,EAAWpxB,OACb,MAAMZ,KAAK6xB,aAGb,MAAO,CACLzH,KAAM3D,GAAKuC,sBACXrkB,KAAMA,EACNqtB,WAAYA,EACZrM,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EASAmK,EAAOuM,yBAA2B,WAChC,IAAI1W,EAAQ/f,KAAKixB,OAAO1wB,MACxBP,KAAK+zB,cAAc,UACnB/zB,KAAK+zB,cAAc,QACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZqE,EAAav1B,KAAKw1B,4BAClBxD,EAAahyB,KAAKqyB,iBAAgB,GAClCoC,EAASz0B,KAAKy1B,wBAElB,GAA0B,IAAtBF,EAAW30B,QAAsC,IAAtBoxB,EAAWpxB,QAAkC,IAAlB6zB,EAAO7zB,OAC/D,MAAMZ,KAAK6xB,aAGb,MAAO,CACLzH,KAAM3D,GAAKwC,sBACXtkB,KAAMA,EACN4wB,WAAYA,EACZvD,WAAYA,EACZyC,OAAQA,EACR9O,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EASAmK,EAAOwM,4BAA8B,WACnC,IAAI3W,EAAQ/f,KAAKixB,OAAO1wB,MACxBP,KAAK+zB,cAAc,UACnB/zB,KAAK+zB,cAAc,aACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZqE,EAAav1B,KAAKw1B,4BAClBxD,EAAahyB,KAAKqyB,iBAAgB,GAClCoC,EAASz0B,KAAKy1B,wBAElB,GAA0B,IAAtBF,EAAW30B,QAAsC,IAAtBoxB,EAAWpxB,QAAkC,IAAlB6zB,EAAO7zB,OAC/D,MAAMZ,KAAK6xB,aAGb,MAAO,CACLzH,KAAM3D,GAAKyC,yBACXvkB,KAAMA,EACN4wB,WAAYA,EACZvD,WAAYA,EACZyC,OAAQA,EACR9O,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAQAmK,EAAOyM,wBAA0B,WAC/B,IAAI5W,EAAQ/f,KAAKixB,OAAO1wB,MACxBP,KAAK+zB,cAAc,UACnB/zB,KAAK+zB,cAAc,SACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZc,EAAahyB,KAAKqyB,iBAAgB,GAClCuD,EAAQ51B,KAAKm2B,wBAEjB,GAA0B,IAAtBnE,EAAWpxB,QAAiC,IAAjBg1B,EAAMh1B,OACnC,MAAMZ,KAAK6xB,aAGb,MAAO,CACLzH,KAAM3D,GAAK0C,qBACXxkB,KAAMA,EACNqtB,WAAYA,EACZ4D,MAAOA,EACPjQ,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAQAmK,EAAO0M,uBAAyB,WAC9B,IAAI7W,EAAQ/f,KAAKixB,OAAO1wB,MACxBP,KAAK+zB,cAAc,UACnB/zB,KAAK+zB,cAAc,QACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZc,EAAahyB,KAAKqyB,iBAAgB,GAClCgC,EAASr0B,KAAKo2B,4BAElB,GAA0B,IAAtBpE,EAAWpxB,QAAkC,IAAlByzB,EAAOzzB,OACpC,MAAMZ,KAAK6xB,aAGb,MAAO,CACLzH,KAAM3D,GAAK2C,oBACXzkB,KAAMA,EACNqtB,WAAYA,EACZqC,OAAQA,EACR1O,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAQAmK,EAAO2M,8BAAgC,WACrC,IAAI9W,EAAQ/f,KAAKixB,OAAO1wB,MACxBP,KAAK+zB,cAAc,UACnB/zB,KAAK+zB,cAAc,SACnB,IAAIpvB,EAAO3E,KAAKkxB,YACZc,EAAahyB,KAAKqyB,iBAAgB,GAClCoC,EAASz0B,KAAKs2B,6BAElB,GAA0B,IAAtBtE,EAAWpxB,QAAkC,IAAlB6zB,EAAO7zB,OACpC,MAAMZ,KAAK6xB,aAGb,MAAO,CACLzH,KAAM3D,GAAK4C,4BACX1kB,KAAMA,EACNqtB,WAAYA,EACZyC,OAAQA,EACR9O,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAOAmK,EAAOiL,yBAA2B,WAChC,IAAIpV,EAAQ/f,KAAKixB,OAAO1wB,MACpBqE,EAAc5E,KAAKo1B,mBACvBp1B,KAAK+zB,cAAc,aACnB/zB,KAAKmxB,YAAY,GAAUhG,IAC3B,IAAIxmB,EAAO3E,KAAKkxB,YACZlpB,EAAOhI,KAAKi2B,oBACZa,EAAa92B,KAAK0zB,sBAAsB,cAC5C1zB,KAAK+zB,cAAc,MACnB,IAAInO,EAAY5lB,KAAK+2B,0BACrB,MAAO,CACL3M,KAAM3D,GAAKqC,qBACXlkB,YAAaA,EACbD,KAAMA,EACNsD,UAAWD,EACX8uB,WAAYA,EACZlR,UAAWA,EACXD,IAAK3lB,KAAK2lB,IAAI5F,GAElB,EAQAmK,EAAO6M,wBAA0B,WAC/B,OAAO/2B,KAAK61B,cAAc,GAAUtK,KAAMvrB,KAAKg3B,uBACjD,EA8BA9M,EAAO8M,uBAAyB,WAC9B,IAAIjX,EAAQ/f,KAAKixB,OAAO1wB,MACpBoE,EAAO3E,KAAKkxB,YAEhB,QAAsCxzB,IAAlCsvB,GAAkBroB,EAAKzI,OACzB,OAAOyI,EAGT,MAAM3E,KAAK6xB,WAAW9R,EACxB,EAOAmK,EAAOvE,IAAM,SAAaoE,GACxB,IAAIkN,EAEJ,IAAyH,KAA9E,QAArCA,EAAkBj3B,KAAKib,gBAA0C,IAApBgc,OAA6B,EAASA,EAAgBC,YACvG,OAAO,IAAIpN,GAASC,EAAY/pB,KAAKixB,OAAOhC,UAAWjvB,KAAKixB,OAAO5vB,OAEvE,EAMA6oB,EAAOqH,KAAO,SAAcnH,GAC1B,OAAOpqB,KAAKixB,OAAO1wB,MAAM6pB,OAASA,CACpC,EAOAF,EAAOiH,YAAc,SAAqB/G,GACxC,IAAI7pB,EAAQP,KAAKixB,OAAO1wB,MAExB,GAAIA,EAAM6pB,OAASA,EAGjB,OAFApqB,KAAKixB,OAAO9B,UAEL5uB,EAGT,MAAMimB,GAAYxmB,KAAKixB,OAAO5vB,OAAQd,EAAMwf,MAAO,YAAYld,OAAOs0B,GAAiB/M,GAAO,YAAYvnB,OAAOu0B,GAAa72B,GAAQ,KACxI,EAOA2pB,EAAO2I,oBAAsB,SAA6BzI,GACxD,IAAI7pB,EAAQP,KAAKixB,OAAO1wB,MAExB,GAAIA,EAAM6pB,OAASA,EAGjB,OAFApqB,KAAKixB,OAAO9B,UAEL5uB,CAIX,EAOA2pB,EAAO6J,cAAgB,SAAuB73B,GAC5C,IAAIqE,EAAQP,KAAKixB,OAAO1wB,MAExB,GAAIA,EAAM6pB,OAAS,GAAUzD,MAAQpmB,EAAMrE,QAAUA,EAGnD,MAAMsqB,GAAYxmB,KAAKixB,OAAO5vB,OAAQd,EAAMwf,MAAO,aAAcld,OAAO3G,EAAO,aAAc2G,OAAOu0B,GAAa72B,GAAQ,MAFzHP,KAAKixB,OAAO9B,SAIhB,EAOAjF,EAAOwJ,sBAAwB,SAA+Bx3B,GAC5D,IAAIqE,EAAQP,KAAKixB,OAAO1wB,MAExB,OAAIA,EAAM6pB,OAAS,GAAUzD,MAAQpmB,EAAMrE,QAAUA,IACnD8D,KAAKixB,OAAO9B,WAEL,EAIX,EAMAjF,EAAO2H,WAAa,SAAoBwF,GACtC,IAAI92B,EAAoB,OAAZ82B,QAAgC,IAAZA,EAAqBA,EAAUr3B,KAAKixB,OAAO1wB,MAC3E,OAAOimB,GAAYxmB,KAAKixB,OAAO5vB,OAAQd,EAAMwf,MAAO,cAAcld,OAAOu0B,GAAa72B,GAAQ,KAChG,EAQA2pB,EAAOoK,IAAM,SAAagD,EAAUC,EAASC,GAC3Cx3B,KAAKmxB,YAAYmG,GACjB,IAAIvS,EAAQ,GAEZ,OAAQ/kB,KAAK6yB,oBAAoB2E,GAC/BzS,EAAM7jB,KAAKq2B,EAAQnzB,KAAKpE,OAG1B,OAAO+kB,CACT,EASAmF,EAAOqI,aAAe,SAAsB+E,EAAUC,EAASC,GAC7D,GAAIx3B,KAAK6yB,oBAAoByE,GAAW,CACtC,IAAIvS,EAAQ,GAEZ,GACEA,EAAM7jB,KAAKq2B,EAAQnzB,KAAKpE,cAChBA,KAAK6yB,oBAAoB2E,IAEnC,OAAOzS,CACT,CAEA,MAAO,EACT,EAQAmF,EAAOmH,KAAO,SAAciG,EAAUC,EAASC,GAC7Cx3B,KAAKmxB,YAAYmG,GACjB,IAAIvS,EAAQ,GAEZ,GACEA,EAAM7jB,KAAKq2B,EAAQnzB,KAAKpE,cAChBA,KAAK6yB,oBAAoB2E,IAEnC,OAAOzS,CACT,EAQAmF,EAAO2L,cAAgB,SAAuB4B,EAAeF,GAC3Dv3B,KAAK6yB,oBAAoB4E,GACzB,IAAI1S,EAAQ,GAEZ,GACEA,EAAM7jB,KAAKq2B,EAAQnzB,KAAKpE,aACjBA,KAAK6yB,oBAAoB4E,IAElC,OAAO1S,CACT,EAEO+L,CACT,CAv7CiC,GA47CjC,SAASsG,GAAa72B,GACpB,IAAIrE,EAAQqE,EAAMrE,MAClB,OAAOi7B,GAAiB52B,EAAM6pB,OAAkB,MAATluB,EAAgB,KAAM2G,OAAO3G,EAAO,KAAQ,GACrF,CAMA,SAASi7B,GAAiB/M,GACxB,OAAOmF,GAAsBnF,GAAQ,IAAKvnB,OAAOunB,EAAM,KAAQA,CACjE,CCngDO,IAAIsN,GAAoB,CAC7BC,KAAM,GACNC,SAAU,CAAC,eACXC,oBAAqB,CAAC,OAAQ,sBAAuB,aAAc,gBACnEC,mBAAoB,CAAC,WAAY,OAAQ,eAAgB,cACzDC,SAAU,CAAC,QACXC,aAAc,CAAC,cACfC,MAAO,CAAC,QAAS,OAAQ,YAAa,aAAc,gBACpDC,SAAU,CAAC,OAAQ,SACnBC,eAAgB,CAAC,OAAQ,cACzBC,eAAgB,CAAC,gBAAiB,aAAc,gBAChDC,mBAAoB,CAAC,OAErB,sBAAuB,gBAAiB,aAAc,gBACtDC,SAAU,GACVC,WAAY,GACZC,YAAa,GACbC,aAAc,GACdC,UAAW,GACXC,UAAW,GACXC,UAAW,CAAC,UACZC,YAAa,CAAC,UACdC,YAAa,CAAC,OAAQ,SACtBC,UAAW,CAAC,OAAQ,aACpBC,UAAW,CAAC,QACZC,SAAU,CAAC,QACXC,YAAa,CAAC,QACdC,iBAAkB,CAAC,cAAe,aAAc,kBAChDC,wBAAyB,CAAC,QAC1BC,qBAAsB,CAAC,cAAe,OAAQ,cAC9CC,qBAAsB,CAAC,cAAe,OAAQ,aAAc,aAAc,UAC1EC,gBAAiB,CAAC,cAAe,OAAQ,YAAa,OAAQ,cAC9DC,qBAAsB,CAAC,cAAe,OAAQ,OAAQ,eAAgB,cACtEC,wBAAyB,CAAC,cAAe,OAAQ,aAAc,aAAc,UAC7EC,oBAAqB,CAAC,cAAe,OAAQ,aAAc,SAC3DC,mBAAoB,CAAC,cAAe,OAAQ,aAAc,UAC1DC,oBAAqB,CAAC,cAAe,OAAQ,cAC7CC,0BAA2B,CAAC,cAAe,OAAQ,aAAc,UACjEC,oBAAqB,CAAC,cAAe,OAAQ,YAAa,aAC1DC,gBAAiB,CAAC,aAAc,kBAChCC,oBAAqB,CAAC,OAAQ,cAC9BC,oBAAqB,CAAC,OAAQ,aAAc,aAAc,UAC1DC,uBAAwB,CAAC,OAAQ,aAAc,aAAc,UAC7DC,mBAAoB,CAAC,OAAQ,aAAc,SAC3CC,kBAAmB,CAAC,OAAQ,aAAc,UAC1CC,yBAA0B,CAAC,OAAQ,aAAc,WAExCC,GAAQv0B,OAAO2gB,OAAO,CAAC,GAwF3B,SAAS6T,GAAMC,EAAMC,GAC1B,IAAIC,EAAczyB,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAKyvB,GAGlFzyB,OAAQvH,EACRi9B,EAAUh4B,MAAM4C,QAAQi1B,GACxBx0B,EAAO,CAACw0B,GACRr5B,GAAS,EACTy5B,EAAQ,GACRvU,OAAO3oB,EACPI,OAAMJ,EACNm9B,OAASn9B,EACTmL,EAAO,GACPiyB,EAAY,GACZC,EAAUP,EAGd,EAAG,CACDr5B,IACA,IAAI65B,EAAY75B,IAAU6E,EAAKpF,OAC3Bq6B,EAAWD,GAA8B,IAAjBJ,EAAMh6B,OAElC,GAAIo6B,EAAW,CAKb,GAJAl9B,EAA2B,IAArBg9B,EAAUl6B,YAAelD,EAAYmL,EAAKA,EAAKjI,OAAS,GAC9DylB,EAAOwU,EACPA,EAASC,EAAUpgB,MAEfugB,EAAU,CACZ,GAAIN,EACFtU,EAAOA,EAAK7gB,YACP,CAGL,IAFA,IAAI01B,EAAQ,CAAC,EAEJ1V,EAAM,EAAG2V,EAAgBp1B,OAAOC,KAAKqgB,GAAOb,EAAM2V,EAAcv6B,OAAQ4kB,IAAO,CACtF,IAAInO,EAAI8jB,EAAc3V,GACtB0V,EAAM7jB,GAAKgP,EAAKhP,EAClB,CAEAgP,EAAO6U,CACT,CAIA,IAFA,IAAIE,EAAa,EAERC,EAAK,EAAGA,EAAKT,EAAMh6B,OAAQy6B,IAAM,CACxC,IAAIC,EAAUV,EAAMS,GAAI,GACpBE,EAAYX,EAAMS,GAAI,GAEtBV,IACFW,GAAWF,GAGTT,GAAyB,OAAdY,GACblV,EAAKjlB,OAAOk6B,EAAS,GACrBF,KAEA/U,EAAKiV,GAAWC,CAEpB,CACF,CAEAp6B,EAAQ8D,EAAM9D,MACd6E,EAAOf,EAAMe,KACb40B,EAAQ31B,EAAM21B,MACdD,EAAU11B,EAAM01B,QAChB11B,EAAQA,EAAMolB,IAChB,KAAO,CAIL,GAHAvsB,EAAM+8B,EAASF,EAAUx5B,EAAQ6E,EAAK7E,QAASzD,EAC/C2oB,EAAOwU,EAASA,EAAO/8B,GAAOi9B,EAEjB,OAAT1U,QAA0B3oB,IAAT2oB,EACnB,SAGEwU,GACFhyB,EAAK3H,KAAKpD,EAEd,CAEA,IA2CM09B,EA3CF3vB,OAAS,EAEb,IAAKlJ,MAAM4C,QAAQ8gB,GAAO,CACxB,IAAKkE,GAAOlE,GACV,MAAM,IAAIpiB,MAAM,qBAAqBpB,OAAOgnB,GAAQxD,GAAO,MAG7D,IAAIoV,EAAUC,GAAWjB,EAASpU,EAAK+D,KAAM4Q,GAE7C,GAAIS,EAAS,CAGX,GAFA5vB,EAAS4vB,EAAQr3B,KAAKq2B,EAASpU,EAAMvoB,EAAK+8B,EAAQhyB,EAAMiyB,GAEpDjvB,IAAWyuB,GACb,MAGF,IAAe,IAAXzuB,GACF,IAAKmvB,EAAW,CACdnyB,EAAK6R,MACL,QACF,OACK,QAAehd,IAAXmO,IACT+uB,EAAM15B,KAAK,CAACpD,EAAK+N,KAEZmvB,GAAW,CACd,IAAIzQ,GAAO1e,GAEJ,CACLhD,EAAK6R,MACL,QACF,CAJE2L,EAAOxa,CAKX,CAEJ,CACF,CAMA,QAJenO,IAAXmO,GAAwBovB,GAC1BL,EAAM15B,KAAK,CAACpD,EAAKuoB,IAGf2U,EACFnyB,EAAK6R,WAILzV,EAAQ,CACN01B,QAASA,EACTx5B,MAAOA,EACP6E,KAAMA,EACN40B,MAAOA,EACPvQ,KAAMplB,GAER01B,EAAUh4B,MAAM4C,QAAQ8gB,GACxBrgB,EAAO20B,EAAUtU,EAA4D,QAApDmV,EAAwBd,EAAYrU,EAAK+D,aAA6C,IAA1BoR,EAAmCA,EAAwB,GAChJr6B,GAAS,EACTy5B,EAAQ,GAEJC,GACFC,EAAU55B,KAAK25B,GAGjBA,EAASxU,CAEb,YAAmB3oB,IAAVuH,GAMT,OAJqB,IAAjB21B,EAAMh6B,SACRm6B,EAAUH,EAAMA,EAAMh6B,OAAS,GAAG,IAG7Bm6B,CACT,CA4DO,SAASW,GAAWjB,EAASrQ,EAAM4Q,GACxC,IAAIW,EAAclB,EAAQrQ,GAE1B,GAAIuR,EAAa,CACf,IAAKX,GAAoC,oBAAhBW,EAEvB,OAAOA,EAGT,IAAIC,EAAsBZ,EAAYW,EAAYE,MAAQF,EAAYG,MAEtE,GAAmC,oBAAxBF,EAET,OAAOA,CAEX,KAAO,CACL,IAAIG,EAAkBf,EAAYP,EAAQoB,MAAQpB,EAAQqB,MAE1D,GAAIC,EAAiB,CACnB,GAA+B,oBAApBA,EAET,OAAOA,EAGT,IAAIC,EAAsBD,EAAgB3R,GAE1C,GAAmC,oBAAxB4R,EAET,OAAOA,CAEX,CACF,CACF,CCvXO,SAASC,GAAMC,GACpB,OAAO3B,GAAM2B,EAAK,CAChBL,MAAOM,IAEX,CACA,IAAIC,GAAkB,GAElBD,GAAqB,CACvBxE,KAAM,SAActR,GAClB,OAAOA,EAAKnqB,KACd,EACA67B,SAAU,SAAkB1R,GAC1B,MAAO,IAAMA,EAAK1hB,IACpB,EAEAizB,SAAU,SAAkBvR,GAC1B,OAAO7d,GAAK6d,EAAK+K,YAAa,QAAU,IAC1C,EACAyG,oBAAqB,SAA6BxR,GAChD,IAAI5L,EAAK4L,EAAKyL,UACVntB,EAAO0hB,EAAK1hB,KACZ03B,EAAUC,GAAK,IAAK9zB,GAAK6d,EAAK0L,oBAAqB,MAAO,KAC1DC,EAAaxpB,GAAK6d,EAAK2L,WAAY,KACnCC,EAAe5L,EAAK4L,aAGxB,OAAQttB,GAASqtB,GAAeqK,GAAkB,UAAP5hB,EAAgCjS,GAAK,CAACiS,EAAIjS,GAAK,CAAC7D,EAAM03B,IAAWrK,EAAYC,GAAe,KAA3EA,CAC9D,EACA6F,mBAAoB,SAA4B3W,GAC9C,IAAIsR,EAAWtR,EAAKsR,SAChBl0B,EAAO4iB,EAAK5iB,KACZq0B,EAAezR,EAAKyR,aACpBZ,EAAa7Q,EAAK6Q,WACtB,OAAOS,EAAW,KAAOl0B,EAAO+9B,GAAK,MAAO1J,GAAgB0J,GAAK,IAAK9zB,GAAKwpB,EAAY,KACzF,EACAgG,aAAc,SAAsB1W,GAClC,IAAIyR,EAAazR,EAAMyR,WACvB,OAAOqB,GAAMrB,EACf,EACAkF,MAAO,SAAezW,GACpB,IAAI2R,EAAQ3R,EAAM2R,MACdxuB,EAAO6c,EAAM7c,KACbqD,EAAOwZ,EAAMvZ,UACb+pB,EAAaxQ,EAAMwQ,WACnBC,EAAezQ,EAAMyQ,aACrB1Q,EAAS+a,GAAK,GAAInJ,EAAO,MAAQxuB,EACjC43B,EAAWhb,EAAS+a,GAAK,IAAK9zB,GAAKR,EAAM,MAAO,KAMpD,OAJIu0B,EAAS37B,OAASw7B,KACpBG,EAAWhb,EAAS+a,GAAK,MAAOhO,GAAO9lB,GAAKR,EAAM,OAAQ,QAGrDQ,GAAK,CAAC+zB,EAAU/zB,GAAKwpB,EAAY,KAAMC,GAAe,IAC/D,EACAiG,SAAU,SAAkBxS,GAC1B,IAAI/gB,EAAO+gB,EAAM/gB,KACbzI,EAAQwpB,EAAMxpB,MAClB,OAAOyI,EAAO,KAAOzI,CACvB,EAEAi8B,eAAgB,SAAwBqE,GACtC,IAAI73B,EAAO63B,EAAM73B,KACbqtB,EAAawK,EAAMxK,WACvB,MAAO,MAAQrtB,EAAO23B,GAAK,IAAK9zB,GAAKwpB,EAAY,KACnD,EACAoG,eAAgB,SAAwBqE,GACtC,IAAI7I,EAAgB6I,EAAM7I,cACtB5B,EAAayK,EAAMzK,WACnBC,EAAewK,EAAMxK,aACzB,OAAOzpB,GAAK,CAAC,MAAO8zB,GAAK,MAAO1I,GAAgBprB,GAAKwpB,EAAY,KAAMC,GAAe,IACxF,EACAoG,mBAAoB,SAA4BqE,GAC9C,IAAI/3B,EAAO+3B,EAAM/3B,KACbivB,EAAgB8I,EAAM9I,cACtB7B,EAAsB2K,EAAM3K,oBAC5BC,EAAa0K,EAAM1K,WACnBC,EAAeyK,EAAMzK,aACzB,MAEE,YAAYpvB,OAAO8B,GAAM9B,OAAOy5B,GAAK,IAAK9zB,GAAKupB,EAAqB,MAAO,KAAM,KAAO,MAAMlvB,OAAO+wB,EAAe,KAAK/wB,OAAOy5B,GAAK,GAAI9zB,GAAKwpB,EAAY,KAAM,MAAQC,CAE5K,EAEAqG,SAAU,SAAkBqE,GAC1B,IAAIzgC,EAAQygC,EAAMzgC,MAClB,OAAOA,CACT,EACAq8B,WAAY,SAAoBqE,GAC9B,IAAI1gC,EAAQ0gC,EAAM1gC,MAClB,OAAOA,CACT,EACAs8B,YAAa,SAAqBqE,EAAQ/+B,GACxC,IAAI5B,EAAQ2gC,EAAO3gC,MACf4gC,EAAgBD,EAAOzI,MAC3B,OAAO0I,EAAgBvO,GAAiBryB,EAAe,gBAAR4B,EAAwB,GAAK,MAAQgJ,KAAKI,UAAUhL,EACrG,EACAu8B,aAAc,SAAsBsE,GAClC,IAAI7gC,EAAQ6gC,EAAO7gC,MACnB,OAAOA,EAAQ,OAAS,OAC1B,EACAw8B,UAAW,WACT,MAAO,MACT,EACAC,UAAW,SAAmBqE,GAC5B,IAAI9gC,EAAQ8gC,EAAO9gC,MACnB,OAAOA,CACT,EACA08B,UAAW,SAAmBqE,GAC5B,IAAI5I,EAAS4I,EAAO5I,OACpB,MAAO,IAAM7rB,GAAK6rB,EAAQ,MAAQ,GACpC,EACAwE,YAAa,SAAqBqE,GAChC,IAAIzI,EAASyI,EAAOzI,OACpB,MAAO,IAAMjsB,GAAKisB,EAAQ,MAAQ,GACpC,EACAqE,YAAa,SAAqBqE,GAChC,IAAIx4B,EAAOw4B,EAAOx4B,KACdzI,EAAQihC,EAAOjhC,MACnB,OAAOyI,EAAO,KAAOzI,CACvB,EAEA68B,UAAW,SAAmBqE,GAC5B,IAAIz4B,EAAOy4B,EAAOz4B,KACdqD,EAAOo1B,EAAOn1B,UAClB,MAAO,IAAMtD,EAAO23B,GAAK,IAAK9zB,GAAKR,EAAM,MAAO,IAClD,EAEAgxB,UAAW,SAAmBqE,GAC5B,IAAI14B,EAAO04B,EAAO14B,KAClB,OAAOA,CACT,EACAs0B,SAAU,SAAkBqE,GAC1B,IAAI/+B,EAAO++B,EAAO/+B,KAClB,MAAO,IAAMA,EAAO,GACtB,EACA26B,YAAa,SAAqBqE,GAChC,IAAIh/B,EAAOg/B,EAAOh/B,KAClB,OAAOA,EAAO,GAChB,EAEA46B,iBAAkBqE,IAAe,SAAUC,GACzC,IAAIzL,EAAayL,EAAOzL,WACpBqD,EAAiBoI,EAAOpI,eAC5B,OAAO7sB,GAAK,CAAC,SAAUA,GAAKwpB,EAAY,KAAMoC,GAAMiB,IAAkB,IACxE,IACA+D,wBAAyB,SAAiCsE,GACxD,IAAI5L,EAAY4L,EAAO5L,UACnBvzB,EAAOm/B,EAAOn/B,KAClB,OAAOuzB,EAAY,KAAOvzB,CAC5B,EACA86B,qBAAsBmE,IAAe,SAAUG,GAC7C,IAAIh5B,EAAOg5B,EAAOh5B,KACdqtB,EAAa2L,EAAO3L,WACxB,OAAOxpB,GAAK,CAAC,SAAU7D,EAAM6D,GAAKwpB,EAAY,MAAO,IACvD,IACAsH,qBAAsBkE,IAAe,SAAUI,GAC7C,IAAIj5B,EAAOi5B,EAAOj5B,KACd4wB,EAAaqI,EAAOrI,WACpBvD,EAAa4L,EAAO5L,WACpByC,EAASmJ,EAAOnJ,OACpB,OAAOjsB,GAAK,CAAC,OAAQ7D,EAAM23B,GAAK,cAAe9zB,GAAK+sB,EAAY,QAAS/sB,GAAKwpB,EAAY,KAAMoC,GAAMK,IAAU,IAClH,IACA8E,gBAAiBiE,IAAe,SAAUK,GACxC,IAAIl5B,EAAOk5B,EAAOl5B,KACdqD,EAAO61B,EAAO51B,UACd1J,EAAOs/B,EAAOt/B,KACdyzB,EAAa6L,EAAO7L,WACxB,OAAOrtB,GAAQm5B,GAAkB91B,GAAQs0B,GAAK,MAAOhO,GAAO9lB,GAAKR,EAAM,OAAQ,OAASs0B,GAAK,IAAK9zB,GAAKR,EAAM,MAAO,MAAQ,KAAOzJ,EAAO+9B,GAAK,IAAK9zB,GAAKwpB,EAAY,KACvK,IACAwH,qBAAsBgE,IAAe,SAAUO,GAC7C,IAAIp5B,EAAOo5B,EAAOp5B,KACdpG,EAAOw/B,EAAOx/B,KACdq0B,EAAemL,EAAOnL,aACtBZ,EAAa+L,EAAO/L,WACxB,OAAOxpB,GAAK,CAAC7D,EAAO,KAAOpG,EAAM+9B,GAAK,KAAM1J,GAAepqB,GAAKwpB,EAAY,MAAO,IACrF,IACAyH,wBAAyB+D,IAAe,SAAUQ,GAChD,IAAIr5B,EAAOq5B,EAAOr5B,KACd4wB,EAAayI,EAAOzI,WACpBvD,EAAagM,EAAOhM,WACpByC,EAASuJ,EAAOvJ,OACpB,OAAOjsB,GAAK,CAAC,YAAa7D,EAAM23B,GAAK,cAAe9zB,GAAK+sB,EAAY,QAAS/sB,GAAKwpB,EAAY,KAAMoC,GAAMK,IAAU,IACvH,IACAiF,oBAAqB8D,IAAe,SAAUS,GAC5C,IAAIt5B,EAAOs5B,EAAOt5B,KACdqtB,EAAaiM,EAAOjM,WACpB4D,EAAQqI,EAAOrI,MACnB,OAAOptB,GAAK,CAAC,QAAS7D,EAAM6D,GAAKwpB,EAAY,KAAM4D,GAA0B,IAAjBA,EAAMh1B,OAAe,KAAO4H,GAAKotB,EAAO,OAAS,IAAK,IACpH,IACA+D,mBAAoB6D,IAAe,SAAUU,GAC3C,IAAIv5B,EAAOu5B,EAAOv5B,KACdqtB,EAAakM,EAAOlM,WACpBqC,EAAS6J,EAAO7J,OACpB,OAAO7rB,GAAK,CAAC,OAAQ7D,EAAM6D,GAAKwpB,EAAY,KAAMoC,GAAMC,IAAU,IACpE,IACAuF,oBAAqB4D,IAAe,SAAUW,GAC5C,IAAIx5B,EAAOw5B,EAAOx5B,KACdqtB,EAAamM,EAAOnM,WACxB,OAAOxpB,GAAK,CAAC7D,EAAM6D,GAAKwpB,EAAY,MAAO,IAC7C,IACA6H,0BAA2B2D,IAAe,SAAUY,GAClD,IAAIz5B,EAAOy5B,EAAOz5B,KACdqtB,EAAaoM,EAAOpM,WACpByC,EAAS2J,EAAO3J,OACpB,OAAOjsB,GAAK,CAAC,QAAS7D,EAAM6D,GAAKwpB,EAAY,KAAMoC,GAAMK,IAAU,IACrE,IACAqF,oBAAqB0D,IAAe,SAAUa,GAC5C,IAAI15B,EAAO05B,EAAO15B,KACdqD,EAAOq2B,EAAOp2B,UACd6uB,EAAauH,EAAOvH,WACpBlR,EAAYyY,EAAOzY,UACvB,MAAO,cAAgBjhB,GAAQm5B,GAAkB91B,GAAQs0B,GAAK,MAAOhO,GAAO9lB,GAAKR,EAAM,OAAQ,OAASs0B,GAAK,IAAK9zB,GAAKR,EAAM,MAAO,OAAS8uB,EAAa,cAAgB,IAAM,OAAStuB,GAAKod,EAAW,MAC3M,IACAmU,gBAAiB,SAAyBuE,GACxC,IAAItM,EAAasM,EAAOtM,WACpBqD,EAAiBiJ,EAAOjJ,eAC5B,OAAO7sB,GAAK,CAAC,gBAAiBA,GAAKwpB,EAAY,KAAMoC,GAAMiB,IAAkB,IAC/E,EACA2E,oBAAqB,SAA6BuE,GAChD,IAAI55B,EAAO45B,EAAO55B,KACdqtB,EAAauM,EAAOvM,WACxB,OAAOxpB,GAAK,CAAC,gBAAiB7D,EAAM6D,GAAKwpB,EAAY,MAAO,IAC9D,EACAiI,oBAAqB,SAA6BuE,GAChD,IAAI75B,EAAO65B,EAAO75B,KACd4wB,EAAaiJ,EAAOjJ,WACpBvD,EAAawM,EAAOxM,WACpByC,EAAS+J,EAAO/J,OACpB,OAAOjsB,GAAK,CAAC,cAAe7D,EAAM23B,GAAK,cAAe9zB,GAAK+sB,EAAY,QAAS/sB,GAAKwpB,EAAY,KAAMoC,GAAMK,IAAU,IACzH,EACAyF,uBAAwB,SAAgCuE,GACtD,IAAI95B,EAAO85B,EAAO95B,KACd4wB,EAAakJ,EAAOlJ,WACpBvD,EAAayM,EAAOzM,WACpByC,EAASgK,EAAOhK,OACpB,OAAOjsB,GAAK,CAAC,mBAAoB7D,EAAM23B,GAAK,cAAe9zB,GAAK+sB,EAAY,QAAS/sB,GAAKwpB,EAAY,KAAMoC,GAAMK,IAAU,IAC9H,EACA0F,mBAAoB,SAA4BuE,GAC9C,IAAI/5B,EAAO+5B,EAAO/5B,KACdqtB,EAAa0M,EAAO1M,WACpB4D,EAAQ8I,EAAO9I,MACnB,OAAOptB,GAAK,CAAC,eAAgB7D,EAAM6D,GAAKwpB,EAAY,KAAM4D,GAA0B,IAAjBA,EAAMh1B,OAAe,KAAO4H,GAAKotB,EAAO,OAAS,IAAK,IAC3H,EACAwE,kBAAmB,SAA2BuE,GAC5C,IAAIh6B,EAAOg6B,EAAOh6B,KACdqtB,EAAa2M,EAAO3M,WACpBqC,EAASsK,EAAOtK,OACpB,OAAO7rB,GAAK,CAAC,cAAe7D,EAAM6D,GAAKwpB,EAAY,KAAMoC,GAAMC,IAAU,IAC3E,EACAgG,yBAA0B,SAAkCuE,GAC1D,IAAIj6B,EAAOi6B,EAAOj6B,KACdqtB,EAAa4M,EAAO5M,WACpByC,EAASmK,EAAOnK,OACpB,OAAOjsB,GAAK,CAAC,eAAgB7D,EAAM6D,GAAKwpB,EAAY,KAAMoC,GAAMK,IAAU,IAC5E,GAGF,SAAS+I,GAAeqB,GACtB,OAAO,SAAUxY,GACf,OAAO7d,GAAK,CAAC6d,EAAKzhB,YAAai6B,EAAGxY,IAAQ,KAC5C,CACF,CAOA,SAAS7d,GAAKs2B,GACZ,IAAIC,EAEAC,EAAY/2B,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GACpF,OAEwB,QAFhB82B,EAAuC,OAAfD,QAAsC,IAAfA,OAAwB,EAASA,EAAW5d,QAAO,SAAU+d,GAClH,OAAOA,CACT,IAAGz2B,KAAKw2B,UAAkD,IAA1BD,EAAmCA,EAAwB,EAC7F,CAOA,SAAS3K,GAAMnO,GACb,OAAOqW,GAAK,MAAOhO,GAAO9lB,GAAKyd,EAAO,OAAQ,MAChD,CAMA,SAASqW,GAAKvc,EAAOmf,GACnB,IAAIjV,EAAMhiB,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC9E,OAAsB,MAAfi3B,GAAuC,KAAhBA,EAAqBnf,EAAQmf,EAAcjV,EAAM,EACjF,CAEA,SAASqE,GAAO5hB,GACd,OAAO4vB,GAAK,KAAM5vB,EAAItJ,QAAQ,MAAO,QACvC,CAEA,SAAS+7B,GAAYzyB,GACnB,OAA8B,IAAvBA,EAAI7P,QAAQ,KACrB,CAEA,SAASihC,GAAkBgB,GACzB,OAAqB,MAAdA,GAAsBA,EAAWM,KAAKD,GAC/C,CCxSA,ICJWE,GASAC,GDLPC,GAA8B,qBAAXzsB,QAAgD,oBAAfA,OAAO4W,IAIpD8V,GAAuCD,GAC5CzsB,OAAO4W,IAAI,wCACX,yCACK+V,GAAgDF,GACrDzsB,OAAO4W,IAAI,iDACX,kDACKgW,GAAoB,mB,uBExB3BC,GAAa,KAEjB,M,oCCJI,GAAsC,WAStC,OARA,GAAW55B,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,GAASjS,MAAM5C,KAAMiI,UAChC,EAEI,GAAS,IAAI,IAAO,0BACpB23B,GAAwC,WACxC,SAASA,EAAuBr8B,QACZ,IAAZA,IAAsBA,EAAU,CAAC,GACrCvD,KAAK6/B,QAAUt8B,CACnB,CAiBA,OAhBAq8B,EAAuBzgC,UAAUwQ,UAAY,SAAU7V,GAInD,YAHe,IAAXA,IAAqBA,EAAS,CAAC,GACnCkG,KAAK6/B,QAAU,GAAS,GAAS,CAAC,EAAG/lC,GAASkG,KAAK6/B,SACnD,GAAOzoB,MAAM,aAAepX,KAAK8/B,kBAAmB9/B,KAAK6/B,SAClD7/B,KAAKuD,OAChB,EACAq8B,EAAuBzgC,UAAU4gC,YAAc,WAC3C,MAAO,QACX,EACAh6B,OAAOuc,eAAesd,EAAuBzgC,UAAW,UAAW,CAC/Dqd,IAAK,WACD,OAAO,GAAS,CAAC,EAAGxc,KAAK6/B,QAC7B,EACA5d,YAAY,EACZM,cAAc,IAEXqd,CACX,CAtB2C,G,aFA3C,SAAWP,GACPA,EAAY,qBAAuB,oBACnCA,EAAY,qBAAuB,oBACnCA,EAAY,oCAAsC,2CAClDA,EAAY,oBAAsB,mBAClCA,EAAY,sBAAwB,oBACvC,EAND,CAMGA,KAAgBA,GAAc,CAAC,IAGlC,SAAWC,GAIPA,EAAgB,aAAe,YAI/BA,EAAgB,2BAA6B,0BAI7CA,EAAgB,uBAAyB,sBAIzCA,EAAgB,qCAAuC,oCAIvDA,EAAgB,cAAgB,aAIhCA,EAAgB,8BAAgC,6BAIhDA,EAAgB,gBAAkB,eAIlCA,EAAgB,6BAA+B,2BAClD,CAjCD,CAiCGA,KAAoBA,GAAkB,CAAC,IGvD1C,ICGWU,GAqDAC,GAMAC,GD9DPC,GAAsC,SAASxtB,GAC/C,IAAImC,EAAsB,oBAAXhC,QAAyBA,OAAOC,SAAUF,EAAIiC,GAAKnC,EAAEmC,GAAIpU,EAAI,EAC5E,GAAImS,EAAG,OAAOA,EAAEzO,KAAKuO,GACrB,GAAIA,GAAyB,kBAAbA,EAAE/R,OAAqB,MAAO,CAC1CsS,KAAM,WAEF,OADIP,GAAKjS,GAAKiS,EAAE/R,SAAQ+R,OAAI,GACrB,CAAEzW,MAAOyW,GAAKA,EAAEjS,KAAMlG,MAAOmY,EACxC,GAEJ,MAAM,IAAIvS,UAAU0U,EAAI,0BAA4B,kCACxD,EAGIsrB,GAAuC,WACvC,SAASA,IACT,CA6CA,OA5CAA,EAAsBjhC,UAAUkhC,eAAiB,SAAUC,GACvD,IAAI,WAAgB/V,OAChB,OAAO,GAAWgW,KAAK,CAAC,CAAEC,QAAQ,KAEtC,IAAIC,GAAY,WAAgB1c,KAAOlZ,OACvC,OAAO,IAAI,IAAW,SAAU61B,GAC5BA,EAASxtB,KAAK,CAAEstB,OAAQC,EAAU32B,UAAU62B,SAC5C,IAAIC,EAAe,WAAc,OAAOF,EAASxtB,KAAK,CAAEstB,QAAQ,GAAS,EACrEK,EAAgB,WAAc,OAAOH,EAASxtB,KAAK,CAAEstB,QAAQ,GAAU,EAI3E,OAHAC,EAAUtiC,iBAAiB,SAAUyiC,GACrCH,EAAUtiC,iBAAiB,UAAW0iC,GACtCT,EAAsBU,WAAW5/B,KAAKw/B,GAC/B,WACHD,EAAU7lC,oBAAoB,SAAUgmC,GACxCH,EAAU7lC,oBAAoB,UAAWimC,GACzCT,EAAsBU,WAAaV,EAAsBU,WAAW5f,QAAO,SAAU6f,GAAa,OAAOA,IAAcL,CAAU,GACrI,CACJ,GACJ,EAEAN,EAAsBY,kBAAoB,SAAUhlC,GAChD,IAAIilC,EAAKrtB,EACLstB,EAAU,SAAUR,GACpB,GAAIA,EAASS,OAET,OADAf,EAAsBU,WAAaV,EAAsBU,WAAW5f,QAAO,SAAU6f,GAAa,OAAOA,IAAcL,CAAU,IAC1H,WAEXA,EAASxtB,KAAKlX,EAClB,EACA,IACI,IAAK,IAAIid,EAAKknB,GAASC,EAAsBU,YAAallB,EAAK3C,EAAG/F,QAAS0I,EAAGphB,KAAMohB,EAAK3C,EAAG/F,OAAQ,CAChG,IAAIwtB,EAAW9kB,EAAG1f,MAClBglC,EAAQR,EACZ,CACJ,CACA,MAAOU,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQxlB,IAAOA,EAAGphB,OAASoZ,EAAKqF,EAAGooB,SAASztB,EAAGxP,KAAK6U,EACpD,CACA,QAAU,GAAIgoB,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CACJ,EACAk9B,EAAsBU,WAAa,GAC5BV,CACX,CAhD0C,GAiD1C,ME7DWkB,GAAsB,WAAc,OAAO,IAAIC,IAAelB,gBAAkB,ECWvF,GAAsC,WAStC,OARA,GAAWt6B,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,GAASjS,MAAM5C,KAAMiI,UAChC,EAIWu5B,GAAoB,CAC3BC,kBAAmB,CAAEC,eAAgB,aACrCC,WAAY,CAAED,eAAgB,WAC9BE,uBAAwB,CAAEC,gBAAiB,aAC3CC,kBAAmB,CACfC,wBAAyB,eACzBF,gBAAiB,gBAErBG,mBAAoB,CAAED,wBAAyB,gBAC/CE,mBAAoB,CAChBF,wBAAyB,YACzBF,gBAAiB,cAErBK,OAAQ,CAAEL,gBAAiB,gBAC3BM,OAAQ,CAAEC,aAAc,aACxBC,QAAS,CAAED,aAAc,iBAEzBE,GAAwC,WACxC,SAASA,IACL,IAAIhyB,EAAQtQ,KACZA,KAAKuiC,oCAAiC7kC,EACtCsC,KAAKwiC,uBAAyB,CAC1BJ,aAAc,YACdP,gBAAiB,eACjBE,wBAAyB,eACzBL,eAAgB,WAEpB1hC,KAAKyiC,iCACD,IAAI,IAAW,SAAUC,GACrBA,EAAwBxvB,KAAK5C,EAAMkyB,wBACnClyB,EAAMqyB,+BAAiCD,CAC3C,GACR,CA0FA,OAtFAJ,EAAuBnjC,UAAUyjC,wBAA0B,WACvD,IAAItyB,EAAQtQ,UAEgCtC,IAAxCsC,KAAKuiC,iCACLviC,KAAKuiC,+BAAiCjB,KAAsB7iC,WAAU,SAAUmV,GAC5E,IAAI4sB,EAAS5sB,EAAG4sB,OAChBlwB,EAAMuyB,OAAOrC,EAASgB,GAAkBW,OAASX,GAAkBa,QACvE,IAER,EAIAC,EAAuBnjC,UAAU2jC,yBAA2B,WACxD,IAAIlvB,EAC2C,QAA9CA,EAAK5T,KAAKuiC,sCAAmD,IAAP3uB,GAAyBA,EAAGlZ,cACnFsF,KAAKuiC,oCAAiC7kC,CAC1C,EACAqI,OAAOuc,eAAeggB,EAAuBnjC,UAAW,4BAA6B,CAMjFqd,IAAK,WACD,IACIumB,EADAzyB,EAAQtQ,KAMZ,OAAOA,KAAKyiC,iCACP5sB,KAAI,SAAU3Z,GACf,OAAOoU,EAAM0yB,2BAA2B9mC,EAC5C,IACKglB,QAAO,SAAU+hB,GAClB,IAAIC,EAAYD,IAAYF,EAE5B,OADAA,EAAWE,EACJC,CACX,GACJ,EACAjhB,YAAY,EACZM,cAAc,IAKlB+f,EAAuBnjC,UAAU0jC,OAAS,SAAUM,GAEF,cAA1CA,EAAcpB,wBACd/hC,KAAK4iC,0BAE0C,iBAA1CO,EAAcpB,yBACnB/hC,KAAK8iC,2BAGT,IAAIM,EAAkB,GAAS,GAAS,CAAC,EAAGpjC,KAAKwiC,wBAAyBW,GAC1EnjC,KAAKwiC,uBAAyB,GAAS,CAAC,EAAGY,GAC3CpjC,KAAK2iC,+BAA+BzvB,KAAKlT,KAAKwiC,uBAClD,EAIAF,EAAuBnjC,UAAU6jC,2BAA6B,SAAUpvB,GACpE,IAAIiuB,EAAkBjuB,EAAGiuB,gBAAiBO,EAAexuB,EAAGwuB,aAAcL,EAA0BnuB,EAAGmuB,wBAAyBL,EAAiB9tB,EAAG8tB,eACpJ,MAAwB,cAApBG,GAAoD,iBAAjBO,EAC5B9C,GAAgB+D,wBACH,cAApBxB,GAC4B,iBAA5BE,EACOzC,GAAgBgE,2BACH,iBAApBzB,GAC4B,cAA5BE,GACiB,iBAAjBK,EACO9C,GAAgBiE,kCACH,iBAApB1B,GAC4B,cAA5BE,EACOzC,GAAgBkE,oBACH,cAApB3B,GAAsD,cAAnBH,EAC5BpC,GAAgBmE,0BAEH,eAApB5B,EACOvC,GAAgBoE,WACH,iBAApB7B,EACOvC,GAAgBqE,aACpBrE,GAAgBsE,SAC3B,EACOtB,CACX,CA1G2C,GF3ChCuB,GAAe,IACfC,GAAsB,CAAC,IAAK,IAAK,KACjCC,GAA0B,yBAErC,SAAW/D,GAKPA,EAAc,uBAAyB,kBAKvCA,EAAc,wBAA0B,mBAKxCA,EAAc,sBAAwB,iBAKtCA,EAAc,aAAe,QAK7BA,EAAc,iBAAmB,YAKjCA,EAAc,YAAc,OAK5BA,EAAc,6BAA+B,KAK7CA,EAAc,YAAc,OAK5BA,EAAc,gBAAkB,WAKhCA,EAAc,aAAe,OAChC,EAnDD,CAmDGA,KAAkBA,GAAgB,CAAC,IAEtC,SAAWC,GACPA,EAAoBA,EAAoB,WAAa,GAAK,UAC1DA,EAAoBA,EAAoB,aAAe,GAAK,YAC5DA,EAAoBA,EAAoB,UAAY,GAAK,QAC5D,CAJD,CAIGA,KAAwBA,GAAsB,CAAC,IAElD,SAAWC,GACPA,EAAcA,EAAc,UAAY,GAAK,SAC7CA,EAAcA,EAAc,SAAW,GAAK,QAC5CA,EAAcA,EAAc,cAAgB,GAAK,YACpD,CAJD,CAIGA,KAAkBA,GAAgB,CAAC,IAC/B,IAAI8D,GAAoC,qBAAXlxB,QAAgD,oBAAfA,OAAO4W,IACtE5W,OAAO4W,IAAI,mBACX,oBACKua,GAA+B,CACtCC,OAAQ,oCACR,mBAAoB,UACpB,eAAgB,mCAKTC,GAA0B,KAI1BC,GAAoB,KAIpBC,GAA6B,IAI7BC,GAAmC,KG3F1C,GAAwC,WACxC,IAAIx0B,EAAgB,SAAUC,EAAG/C,GAI7B,OAHA8C,EAAgB/J,OAAOiK,gBAClB,CAAEC,UAAW,cAAgBtN,OAAS,SAAUoN,EAAG/C,GAAK+C,EAAEE,UAAYjD,CAAG,GAC1E,SAAU+C,EAAG/C,GAAK,IAAK,IAAIkD,KAAKlD,EAAOA,EAAEH,eAAeqD,KAAIH,EAAEG,GAAKlD,EAAEkD,GAAI,EACtEJ,EAAcC,EAAG/C,EAC5B,EACA,OAAO,SAAU+C,EAAG/C,GAEhB,SAASmD,IAAOnQ,KAAKoM,YAAc2D,CAAG,CADtCD,EAAcC,EAAG/C,GAEjB+C,EAAE5Q,UAAkB,OAAN6N,EAAajH,OAAO1G,OAAO2N,IAAMmD,EAAGhR,UAAY6N,EAAE7N,UAAW,IAAIgR,EACnF,CACH,CAZ2C,GAaxC,GAAsC,WAStC,OARA,GAAWpK,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,GAASjS,MAAM5C,KAAMiI,UAChC,EACI,GAAwC,SAAUF,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI,GAA4C,SAAUnL,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EACI,GAAkC,SAAUsa,EAAG7N,GAC/C,IAAI4N,EAAI,CAAC,EACT,IAAK,IAAI3E,KAAK4E,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,IAAMjJ,EAAEpK,QAAQqT,GAAK,IAC9E2E,EAAE3E,GAAK4E,EAAE5E,IACb,GAAS,MAAL4E,GAAqD,oBAAjC/O,OAAOiP,sBACtB,KAAItU,EAAI,EAAb,IAAgBwP,EAAInK,OAAOiP,sBAAsBF,GAAIpU,EAAIwP,EAAEtP,OAAQF,IAC3DuG,EAAEpK,QAAQqT,EAAExP,IAAM,GAAKqF,OAAO5G,UAAU8V,qBAAqB7Q,KAAK0Q,EAAG5E,EAAExP,MACvEmU,EAAE3E,EAAExP,IAAMoU,EAAE5E,EAAExP,IAF4B,CAItD,OAAOmU,CACX,EAoBI,GAAS,IAAI,IAAO,sBACjB,SAAS0vB,GAAerjB,EAAQsjB,GAInC,IAHA,IAAIC,EAAcvjB,EAAO/V,MAAM,KAC3BvK,EAAS6jC,EAAY7jC,OACrB8jC,EAAaF,EAAMr5B,MAAM,KACpBzK,EAAI,EAAGA,EAAIE,IAAUF,EAAG,CAC7B,IAAIikC,EAAOF,EAAY/jC,GACnBkkC,EAAQF,EAAWhkC,GACvB,GAAa,MAATikC,EACA,OAAOD,EAAW9jC,QAAUA,EAChC,GAAa,MAAT+jC,GAAgBA,IAASC,EACzB,OAAO,CACf,CACA,OAAOhkC,IAAW8jC,EAAW9jC,MACjC,CACA,IAAIikC,GAA8B,WAC9B,SAASA,IACL7kC,KAAKJ,SAAW,IAAIykB,GACxB,CA4BA,OA3BAwgB,EAAa1lC,UAAUqd,IAAM,SAAUsoB,EAAUC,GAC7C,OAAO,GAAU/kC,UAAM,OAAQ,GAAQ,WACnC,IAAIglC,EAAeC,EACnB,OAAO,GAAYjlC,MAAM,SAAU4T,GAE/B,OADAoxB,EAAgBhlC,KAAKJ,SAAS4c,IAAIsoB,GAC9BE,EACO,CAAC,EAAcA,GAEtBD,GACAE,EAAaF,EAAcD,GAC3B9kC,KAAKJ,SAAS6d,IAAIqnB,EAAUG,GACrB,CAAC,EAAcA,IAEnB,CAAC,OAAcvnC,EAC1B,GACJ,GACJ,EACAqI,OAAOuc,eAAeuiB,EAAa1lC,UAAW,aAAc,CACxDqd,IAAK,WACD,OAAO7Z,MAAM49B,KAAKvgC,KAAKJ,SAASoG,OACpC,EACAic,YAAY,EACZM,cAAc,IAElBsiB,EAAa1lC,UAAUqK,OAAS,SAAUs7B,GACtC9kC,KAAKJ,SAASslC,OAAOJ,EACzB,EACOD,CACX,CAhCiC,GAiC7BM,GAAsB,SAAUC,EAAOhrC,EAAM2F,GAC7CslC,GAAA,GAAIC,SAAS,SAAU,CAAEF,MAAOA,EAAOhrC,KAAMA,EAAM2F,QAASA,GAAW,SAAUikC,GACrF,EACIuB,GAAgC,qBAAXzyB,OAAyBA,OAAO,SAAW,UAChE0yB,GAAoC,SAAUn1B,GAE9C,SAASm1B,EAAmBjiC,QACR,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAI+M,EAAQD,EAAOjM,KAAKpE,KAAM,GAAS,GAAS,CAAC,EAAGuD,GAAU,CAAEuhC,SAAUvhC,EAAQuhC,WAAY,EAAAW,GAAA,UAAczlC,KAY5G,OAXAsQ,EAAMo1B,cAAgB,IAAIb,GAC1Bv0B,EAAMq1B,uBAAyB,IAAIrD,GACnChyB,EAAMs1B,gBAAkB,IAAIvhB,IAC5B/T,EAAMu1B,mBAAqB,IAAIxhB,IAE/B/T,EAAMq1B,uBAAuBG,0BAA0BrnC,WAAU,SAAUsnC,GACvEZ,GAAoBpB,GAAyB,CACzCiC,SAAU11B,EACVuxB,gBAAiBkE,GAClB,uBAAyBA,EAChC,IACOz1B,CACX,CA2QA,OA3RA,GAAUk1B,EAAoBn1B,GAiB9BtK,OAAOuc,eAAekjB,EAAmBrmC,UAAW,WAAY,CAC5Dqd,IAAK,WACD,OAAOxc,KAAKuD,QAAQuhC,QACxB,EACA7iB,YAAY,EACZM,cAAc,IAElBxc,OAAOuc,eAAekjB,EAAmBrmC,UAAW,WAAY,CAC5Dqd,IAAK,WACD,OAAOxc,KAAKuD,QAAQ0iC,mBACxB,EACAhkB,YAAY,EACZM,cAAc,IAElBxc,OAAOuc,eAAekjB,EAAmBrmC,UAAW,eAAgB,CAChEqd,IAAK,WACD,OAAOxc,KAAK0lC,aAChB,EACAzjB,YAAY,EACZM,cAAc,IAElBxc,OAAOuc,eAAekjB,EAAmBrmC,UAAW,eAAgB,CAChEqd,IAAK,WACD,OAAQxc,KAAKuD,QACR2iC,4DACT,EACAjkB,YAAY,EACZM,cAAc,IAElBijB,EAAmBrmC,UAAUgnC,iBAAmB,SAAUjqC,GACtD,MAAwB,kBAAVA,GAAsBA,EAAMqpC,GAC9C,EACAC,EAAmBrmC,UAAU2gC,gBAAkB,WAC3C,MAAO,oBACX,EACA0F,EAAmBrmC,UAAUinC,aAAe,SAAUxyB,GAClD,IAAItD,EAAQtQ,KACR8kC,EAAWlxB,EAAGkxB,SAAUuB,EAAYzyB,EAAGyyB,UAAWr+B,EAAO,GAAO4L,EAAI,CAAC,WAAY,cACrF,GAAkB,IAAdyyB,EAAiB,CACjB,GAAOl6B,KAAK24B,EAAUh+B,KAAKI,UAAU,GAAS,CAAEm/B,UAAWA,GAAar+B,GAAO,KAAM,IACrF,IAAIs+B,EAAmB,GACvB,IAAKxB,EACD,OAEJ,IAAIyB,EAAoBvmC,KAAK6lC,mBAAmBrpB,IAAIsoB,GACpD,IAAKyB,EACD,OAEJA,EAAkB3oC,SAAQ,SAAU8iC,GAChCA,EAASx9B,MAAM,6BAA+BmjC,GAE9C/1B,EAAMs1B,gBAAgBhoC,SAAQ,SAAU4oC,EAAkBC,GACtDD,EAAiBtB,OAAOxE,GACM,IAA1B8F,EAAiBr1B,MACjBm1B,EAAiBplC,KAAKulC,EAE9B,GACJ,IAEAzmC,KAAK6lC,mBAAmBX,OAAOJ,GAE/BwB,EAAiB1oC,SAAQ,SAAU4mC,GAC/Bl0B,EAAMs1B,gBAAgBV,OAAOV,EACjC,GACJ,CACJ,EACAgB,EAAmBrmC,UAAUunC,UAAY,SAAU9yB,GAC/C,IAAInY,EAAMmY,EAAGnY,IAAKqpC,EAAWlxB,EAAGkxB,SAChC,OAAO,GAAU9kC,UAAM,OAAQ,GAAQ,WACnC,IAAI2mC,EACAr2B,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EAcD,OAbA,GAAOhD,MAAM,2BAA4B0tB,GACzC9kC,KAAK2lC,uBAAuB9C,OAAOrB,GAAkBS,oBACrD0E,EAAS,IAAI,UAAYlrC,EAAKqpC,GAE9B6B,EAAOC,iBAAmB,SAAUhzB,GAChC,IAAI4wB,EAAQ5wB,EAAGizB,gBAAiBC,EAAMlzB,EAAGmzB,cACzCz2B,EAAM02B,WAAWxC,EAAOsC,EAC5B,EACAH,EAAOM,iBAAmB,SAAUrzB,GAChC,IAAIyyB,EAAYzyB,EAAGyyB,UAAWr+B,EAAO,GAAO4L,EAAI,CAAC,cACjDtD,EAAM81B,aAAa,GAAS,CAAEtB,SAAUA,EAAUuB,UAAWA,GAAar+B,IAC1EsI,EAAMq1B,uBAAuB9C,OAAOrB,GAAkBU,OAC1D,EACO,CAAC,EAAa,IAAInoC,SAAQ,SAAUC,EAASC,GAC5C0sC,EAAOO,QAAQ,CACXC,OAAQ72B,EAAM82B,aACdC,YAAa,EACbC,UAAW,WAAc,OAAOttC,EAAQ2sC,EAAS,EACjDY,UAAW,WACPttC,IACAqW,EAAMq1B,uBAAuB9C,OAAOrB,GAAkBM,kBAC1D,GAER,KACR,KAAK,EAGD,OAFA7oB,EAAGoB,OACHra,KAAK2lC,uBAAuB9C,OAAOrB,GAAkBI,wBAC9C,CAAC,EAAc+E,GAElC,GACJ,GACJ,EACAnB,EAAmBrmC,UAAU+nC,QAAU,SAAUpC,EAAUvhC,GAEvD,YADgB,IAAZA,IAAsBA,EAAU,CAAC,GAC9B,GAAUvD,UAAM,OAAQ,GAAQ,WACnC,IAAIsQ,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAAG,MAAO,CAAC,EAAapa,KAAKwnC,aAAahrB,IAAIsoB,GAAU,SAAUA,GAC/D,OAAOx0B,EAAMo2B,UAAU,GAAS,GAAS,CAAC,EAAGnjC,GAAU,CAAEuhC,SAAUA,IACvE,KACJ,KAAK,EAAG,MAAO,CAAC,EAAclxB,EAAGyG,QAEzC,GACJ,GACJ,EACAmrB,EAAmBrmC,UAAUsoC,WAAa,SAAU3C,GAChD,OAAO,GAAU9kC,UAAM,OAAQ,GAAQ,WACnC,IAAI2mC,EACJ,OAAO,GAAY3mC,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAAG,MAAO,CAAC,EAAapa,KAAKwnC,aAAahrB,IAAIsoB,IACnD,KAAK,EAOD,OANA6B,EAAS/yB,EAAGyG,OACRssB,GAAUA,EAAOe,gBACjBf,EAAOc,aACPznC,KAAK2lC,uBAAuB9C,OAAOrB,GAAkBU,SAEzDliC,KAAKwnC,aAAah+B,OAAOs7B,GAClB,CAAC,GAEpB,GACJ,GACJ,EACAU,EAAmBrmC,UAAUwoC,QAAU,SAAUC,EAAQd,GACrD,OAAO,GAAU9mC,UAAM,OAAQ,GAAQ,WACnC,IAAI6nC,EAAc9nC,EAAStE,EAAKkrC,EAChC,OAAO,GAAY3mC,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAGD,OAFAytB,EAAe,GAAGhlC,OAAO+kC,GACzB7nC,EAAU+G,KAAKI,UAAU4/B,GAClB,CAAC,EAAa9mC,KAAK8b,UAC9B,KAAK,EAED,OADArgB,EAAMmY,EAAGyG,OACF,CAAC,EAAara,KAAKknC,QAAQlnC,KAAK8kC,SAAU,CAAErpC,IAAKA,KAC5D,KAAK,EAID,OAHAkrC,EAAS/yB,EAAGyG,OACZ,GAAOjD,MAAM,yBAA0BywB,EAAar/B,KAAK,KAAMzI,GAC/D8nC,EAAajqC,SAAQ,SAAU4mC,GAAS,OAAOmC,EAAOhoC,KAAK6lC,EAAOzkC,EAAU,IACrE,CAAC,GAEpB,GACJ,GACJ,EACAylC,EAAmBrmC,UAAU6nC,WAAa,SAAUxC,EAAOsC,GACvD,IACI,IAAIgB,EAA0B,GAC9B9nC,KAAK4lC,gBAAgBhoC,SAAQ,SAAU4oC,EAAkBC,GACjDlC,GAAekC,EAAejC,IAC9BsD,EAAwB5mC,KAAKslC,EAErC,IACA,IAAIuB,EAAkBjhC,KAAKC,MAAM+/B,GACF,kBAApBiB,IACPA,EAAgBxC,IAAef,GAEnCsD,EAAwBlqC,SAAQ,SAAUoqC,GACtCA,EAAkBpqC,SAAQ,SAAU8iC,GAAY,OAAOA,EAASxtB,KAAK60B,EAAkB,GAC3F,GACJ,CACA,MAAO7kC,GACH,GAAOiJ,KAAK,yBAA0BjJ,EAAO4jC,EACjD,CACJ,EACAtB,EAAmBrmC,UAAUV,UAAY,SAAUmpC,EAAQrkC,GACvD,IAAI+M,EAAQtQ,UACI,IAAZuD,IAAsBA,EAAU,CAAC,GACrC,IAAIskC,EAAe,GAAGhlC,OAAO+kC,GAE7B,OADA,GAAOxwB,MAAM,0BAA2BywB,EAAar/B,KAAK,MACnD,IAAI,IAAW,SAAUk4B,GAW5B,IAAIiG,EAVJkB,EAAajqC,SAAQ,SAAU4mC,GAE3B,IAAIwD,EAAoB13B,EAAMs1B,gBAAgBppB,IAAIgoB,GAC7CwD,IACDA,EAAoB,IAAIC,IACxB33B,EAAMs1B,gBAAgBnoB,IAAI+mB,EAAOwD,IAErCA,EAAkBE,IAAIxH,EAC1B,IAGA,IAAI9sB,EAAKrQ,EAAQuhC,SAAUA,OAAkB,IAAPlxB,EAAgBtD,EAAMw0B,SAAWlxB,EAEnEu0B,EAAuB73B,EAAMu1B,mBAAmBrpB,IAAIsoB,GAwCxD,OAvCKqD,IACDA,EAAuB,IAAIF,KAE/BE,EAAqBD,IAAIxH,GACzBpwB,EAAMu1B,mBAAmBpoB,IAAIqnB,EAAUqD,GACvC,WAAsB,GAAU73B,OAAO,OAAQ,GAAQ,WACnD,IAAIsD,EAAInY,EAAKwd,EAAIgoB,EACjB,OAAO,GAAYjhC,MAAM,SAAU4b,GAC/B,OAAQA,EAAGxB,OACP,KAAK,EAED,OADAxG,EAAKrQ,EAAQ9H,SACA,IAAPmY,EAAuB,CAAC,EAAa,GACpC,CAAC,EAAa5T,KAAK8b,UAC9B,KAAK,EAED,OADA7C,EAAK2C,EAAGvB,OACD,CAAC,EAAa,GACzB,KAAK,EACDpB,EAAKrF,EACLgI,EAAGxB,MAAQ,EACf,KAAK,EACD3e,EAAMwd,EACN2C,EAAGxB,MAAQ,EACf,KAAK,EAED,OADAwB,EAAGtB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKknC,QAAQpC,EAAU,CAAErpC,IAAKA,KACvD,KAAK,EAKD,OAJAkrC,EAAS/qB,EAAGvB,OACZwtB,EAAajqC,SAAQ,SAAU4mC,GAC3BmC,EAAOloC,UAAU+lC,EACrB,IACO,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAvD,EAAMrlB,EAAGvB,OACTqmB,EAASx9B,MAAM+9B,GACR,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAK,CAjCL,GAkCO,WACH,IAAIrtB,EAAIqF,EAuBR,OAtBA,GAAO7B,MAAM,8BAA+BywB,EAAar/B,KAAK,MAC1Dm+B,IACkD,QAAjD/yB,EAAKtD,EAAMu1B,mBAAmBrpB,IAAIsoB,UAA8B,IAAPlxB,GAAyBA,EAAGsxB,OAAOxE,GAEQ,KAA9C,QAAjDznB,EAAK3I,EAAMu1B,mBAAmBrpB,IAAIsoB,UAA8B,IAAP7rB,OAAgB,EAASA,EAAG9H,QACvFb,EAAMq1B,uBAAuB9C,OAAOrB,GAAkBQ,oBACtD1xB,EAAMm3B,WAAW3C,GACjBx0B,EAAMu1B,mBAAmBX,OAAOJ,IAEpC+C,EAAajqC,SAAQ,SAAU4mC,GAC3B,IAAIwD,EAAoB13B,EAAMs1B,gBAAgBppB,IAAIgoB,IAC9C,IAAIyD,IACRD,EAAkB9C,OAAOxE,GAEM,IAA3BsH,EAAkB72B,OAClBb,EAAMs1B,gBAAgBV,OAAOV,GACzBmC,EAAOe,eACPf,EAAOjsC,YAAY8pC,GAG/B,KAEG,IACX,CACJ,GACJ,EACOgB,CACX,CA7RuC,CA6RrC5F,IC3aE,GAAwC,WACxC,IAAI9vB,EAAgB,SAAUC,EAAG/C,GAI7B,OAHA8C,EAAgB/J,OAAOiK,gBAClB,CAAEC,UAAW,cAAgBtN,OAAS,SAAUoN,EAAG/C,GAAK+C,EAAEE,UAAYjD,CAAG,GAC1E,SAAU+C,EAAG/C,GAAK,IAAK,IAAIkD,KAAKlD,EAAOA,EAAEH,eAAeqD,KAAIH,EAAEG,GAAKlD,EAAEkD,GAAI,EACtEJ,EAAcC,EAAG/C,EAC5B,EACA,OAAO,SAAU+C,EAAG/C,GAEhB,SAASmD,IAAOnQ,KAAKoM,YAAc2D,CAAG,CADtCD,EAAcC,EAAG/C,GAEjB+C,EAAE5Q,UAAkB,OAAN6N,EAAajH,OAAO1G,OAAO2N,IAAMmD,EAAGhR,UAAY6N,EAAE7N,UAAW,IAAIgR,EACnF,CACH,CAZ2C,GAaxC,GAAwC,SAAUpI,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI,GAA4C,SAAUnL,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EACI,GAAkC,SAAUsa,EAAG7N,GAC/C,IAAI4N,EAAI,CAAC,EACT,IAAK,IAAI3E,KAAK4E,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,IAAMjJ,EAAEpK,QAAQqT,GAAK,IAC9E2E,EAAE3E,GAAK4E,EAAE5E,IACb,GAAS,MAAL4E,GAAqD,oBAAjC/O,OAAOiP,sBACtB,KAAItU,EAAI,EAAb,IAAgBwP,EAAInK,OAAOiP,sBAAsBF,GAAIpU,EAAIwP,EAAEtP,OAAQF,IAC3DuG,EAAEpK,QAAQqT,EAAExP,IAAM,GAAKqF,OAAO5G,UAAU8V,qBAAqB7Q,KAAK0Q,EAAG5E,EAAExP,MACvEmU,EAAE3E,EAAExP,IAAMoU,EAAE5E,EAAExP,IAF4B,CAItD,OAAOmU,CACX,EACI,GAAkC,SAAUlC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACX,EACIm1B,GAAsC,WACtC,IAAK,IAAIn1B,EAAK,GAAIvS,EAAI,EAAGA,EAAIuH,UAAUrH,OAAQF,IAAKuS,EAAKA,EAAGpQ,OAAO,GAAOoF,UAAUvH,KACpF,OAAOuS,CACX,EAII,GAAS,IAAI,IAAO,sBAIpBo1B,GAAoC,SAAUh4B,GAE9C,SAASg4B,IACL,IAAI/3B,EAAmB,OAAXD,GAAmBA,EAAOzN,MAAM5C,KAAMiI,YAAcjI,KAGhE,OAFAsQ,EAAMg4B,aAAe,IAAIjkB,IACzB/T,EAAMi4B,YAAc,IAAIlkB,IACjB/T,CACX,CA6LA,OAnMA,GAAU+3B,EAAoBh4B,GAO9BtK,OAAOuc,eAAe+lB,EAAmBlpC,UAAW,WAAY,CAC5Dqd,IAAK,WACD,MAAM,IAAIvY,MAAM,gBACpB,EACAge,YAAY,EACZM,cAAc,IAElB8lB,EAAmBlpC,UAAU2gC,gBAAkB,WAC3C,MAAO,oBACX,EACAuI,EAAmBlpC,UAAUwoC,QAAU,SAAUC,EAAQd,EAAKvjC,GAC1D,OAAO,GAAUvD,UAAM,OAAQ,GAAQ,WACnC,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,MAAM,IAAI3P,MAAM,0BACpB,GACJ,GACJ,EACAokC,EAAmBlpC,UAAUqpC,SAAW,SAAU1D,GAC9C,IAAIx0B,EAAQtQ,KACRyoC,EAAkB9lC,MAAM49B,KAAKvgC,KAAKsoC,aAAaI,WAC9CxnB,QAAO,SAAUtN,GAClB,IAAIqF,EAAK,GAAOrF,EAAI,GAAItS,EAAI2X,EAAG,GAC/B,OAAO3X,EAAEwjC,WAAaA,CAC1B,IACKjvB,KAAI,SAAUjC,GACf,IAAIqF,EAAK,GAAOrF,EAAI,GAAIiB,EAAIoE,EAAG,GAC/B,OAAOpE,CACX,IACA4zB,EAAgB7qC,SAAQ,SAAUiX,GAAK,OAAOvE,EAAMq4B,iBAAiB9zB,EAAI,GAC7E,EACAwzB,EAAmBlpC,UAAUwpC,iBAAmB,SAAUnE,GACtDxkC,KAAKsoC,aAAapD,OAAOV,GACzBxkC,KAAKuoC,YAAYrD,OAAOV,EAC5B,EACA6D,EAAmBlpC,UAAUinC,aAAe,SAAUxyB,GAClD,IAAItD,EAAQtQ,KACR8kC,EAAWlxB,EAAGkxB,SAAUuB,EAAYzyB,EAAGyyB,UAAWr+B,EAAO,GAAO4L,EAAI,CAAC,WAAY,cACrF,GAAkB,IAAdyyB,EAAiB,CACjB,IAAIoC,EAAkB9lC,MAAM49B,KAAKvgC,KAAKsoC,aAAaI,WAC9CxnB,QAAO,SAAUtN,GAClB,IAAIqF,EAAK,GAAOrF,EAAI,GAAItS,EAAI2X,EAAG,GAC/B,OAAO3X,EAAEwjC,WAAaA,CAC1B,IACKjvB,KAAI,SAAUjC,GACf,IAAIqF,EAAK,GAAOrF,EAAI,GAAIiB,EAAIoE,EAAG,GAC/B,OAAOpE,CACX,IACA4zB,EAAgB7qC,SAAQ,SAAU4mC,GAC1Bl0B,EAAMs1B,gBAAgBvoB,IAAImnB,KAC1Bl0B,EAAMs1B,gBAAgBppB,IAAIgoB,GAAO5mC,SAAQ,SAAUgrC,GAC1CA,EAAIzH,QACLyH,EAAI1lC,MAAM8E,EAElB,IACAsI,EAAMs1B,gBAAgBV,OAAOV,GAErC,IACAxkC,KAAKwoC,SAAS1D,EAClB,CACJ,EACAuD,EAAmBlpC,UAAUsoC,WAAa,SAAU3C,GAChD,OAAO,GAAU9kC,UAAM,OAAQ,GAAQ,WAEnC,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAAG,MAAO,CAAC,EAAapa,KAAKwnC,aAAahrB,IAAIsoB,GAAU,WAAc,OAAO,IAAM,KACxF,KAAK,EAED,OADSlxB,EAAGyG,OACL,CAAC,EAAahK,EAAOlR,UAAUsoC,WAAWrjC,KAAKpE,KAAM8kC,IAChE,KAAK,EAGD,OAFAlxB,EAAGyG,OACHra,KAAKwoC,SAAS1D,GACP,CAAC,GAEpB,GACJ,GACJ,EACAuD,EAAmBlpC,UAAUV,UAAY,SAAUmpC,EAAQrkC,GACvD,IAAI+M,EAAQtQ,UACI,IAAZuD,IAAsBA,EAAU,CAAC,GACrC,IAAIsI,EAAS,IAAI,IAAW,SAAU60B,GAClC,IAAImH,EAAe,GAAGhlC,OAAO+kC,GAkF7B,OAjFA,GAAOxwB,MAAM,0BAA2BywB,EAAar/B,KAAK,MAC1D,WAAsB,GAAU8H,OAAO,OAAQ,GAAQ,WACnD,IAAIsD,EAAIi1B,EAAiBC,EAAkBC,EAAYlzB,EACnDvF,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EA8BD,OA5BAytB,EAAajqC,SAAQ,SAAUiX,GACtBvE,EAAMs1B,gBAAgBvoB,IAAIxI,IAC3BvE,EAAMs1B,gBAAgBnoB,IAAI5I,EAAG,IAAIozB,KAErC33B,EAAMs1B,gBAAgBppB,IAAI3H,GAAGqzB,IAAIxH,EACrC,IACA9sB,EAAKrQ,EAAQslC,gBAAiBA,OAAyB,IAAPj1B,EAAgB,GAAKA,EAAIk1B,EAAmBvlC,EAAQulC,iBACpGC,EAAahjC,OAAO2iC,QAAQI,GAAkBjzB,KAAI,SAAUjC,GACxD,IAAIqF,EAAK,GAAOrF,EAAI,GAAIuf,EAAQla,EAAG,GAAI5Q,EAAI4Q,EAAG,GAC9C,MAAO,CAAC5Q,EAAEm8B,MAAOrR,EACrB,IAEAnzB,KAAKuoC,YAAc,IAAIlkB,IAAI+jB,GAASzlC,MAAM49B,KAAKvgC,KAAKuoC,YAAYG,WAAYK,IAC5ElzB,EAAM9P,OAAO2iC,QAAQb,EAAaxrB,QAAO,SAAUC,EAAK0sB,GACpD,IAAIC,EAAyBJ,EAAgB7pB,MAAK,SAAU1d,GAAK,OAAOA,EAAEsmC,OAAO/qC,QAAQmsC,IAAS,CAAG,IACrG,GAAIC,EAAwB,CACxB,IAAInE,EAAWmE,EAAuBtC,OAAQlrC,EAAMwtC,EAAuBxtC,IACtE6gB,EAAIwoB,KACLxoB,EAAIwoB,GAAY,CACZrpC,IAAKA,EACLmsC,OAAQ,IAAIK,MAGpB3rB,EAAIwoB,GAAU8C,OAAOM,IAAIc,EAC7B,CACA,OAAO1sB,CACX,GAAG,CAAC,IAEG,CAAC,EAAaviB,QAAQ4F,IAAIkW,EAAIA,KAAI,SAAUjC,GAC3C,IAAIqF,EAAK,GAAOrF,EAAI,GAAIkxB,EAAW7rB,EAAG,GAAI2C,EAAK3C,EAAG,GAAIxd,EAAMmgB,EAAGngB,IAAKmsC,EAAShsB,EAAGgsB,OAChF,OAAO,GAAUt3B,OAAO,OAAQ,GAAQ,WACpC,IAAIq2B,EAAQuC,EACR54B,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAUmpC,GAC/B,OAAQA,EAAG/uB,OACP,KAAK,EACDusB,EAAS,KACTwC,EAAG/uB,MAAQ,EACf,KAAK,EAED,OADA+uB,EAAG7uB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKknC,QAAQpC,EAAU,CACpCA,SAAUA,EACVrpC,IAAKA,KAEjB,KAAK,EAED,OADAkrC,EAASwC,EAAG9uB,OACL,CAAC,EAAa,GACzB,KAAK,EAID,OAHA6uB,EAAQC,EAAG9uB,OACXqmB,EAASx9B,MAAM,CAAEnD,QAAS,oBAAqBmD,MAAOgmC,IACtDxI,EAAS0I,WACF,CAAC,OAAc1rC,GAC1B,KAAK,EASD,OANAkqC,EAAOhqC,SAAQ,SAAU4mC,GACjBmC,EAAOe,gBACPf,EAAOloC,UAAU+lC,GACjBl0B,EAAMg4B,aAAa7qB,IAAI+mB,EAAOmC,GAEtC,IACO,CAAC,EAAcA,GAElC,GACJ,GACJ,MACR,KAAK,EAGD,OADA1tB,EAAGoB,OACI,CAAC,GAEpB,GACJ,GAAK,CA/EL,GAgFO,WACH,GAAOjD,MAAM,8BAA+BywB,EAAar/B,KAAK,MAC9Dq/B,EAAajqC,SAAQ,SAAUiX,GAC3B,IAAI8xB,EAASr2B,EAAMg4B,aAAa9rB,IAAI3H,GAChC8xB,GAAUA,EAAOe,gBACjBf,EAAOjsC,YAAYma,GACnBvE,EAAMg4B,aAAapD,OAAOrwB,GACrBlS,MAAM49B,KAAKjwB,EAAMg4B,aAAajU,UAAU+K,MAAK,SAAU99B,GAAK,OAAOA,IAAMqlC,CAAQ,KAClFr2B,EAAMm3B,WAAWd,EAAO7B,WAGhCx0B,EAAMs1B,gBAAgBV,OAAOrwB,EACjC,GACJ,CACJ,IACA,OAAO,GAAW0rB,KAAK10B,GAAQgK,KAAI,SAAU3Z,GACzC,IAAIsoC,EAAQl0B,EAAM61B,iBAAiBjqC,GAC/Bi3B,EAAQ7iB,EAAMi4B,YAAY/rB,IAAIgoB,GAKlC,OAJAtoC,EAAM9B,KAAO2L,OAAO2iC,QAAQxsC,EAAM9B,MAAMiiB,QAAO,SAAUzP,EAAKgH,GAC1D,IAAIqF,EAAK,GAAOrF,EAAI,GAAIy1B,EAAUpwB,EAAG,GAAIpb,EAAMob,EAAG,GAClD,OAASrM,EAAKumB,GAASkW,GAAYxrC,EAAM+O,CAC7C,GAAG,CAAC,GACG1Q,CACX,GACJ,EACOmsC,CACX,CArMuC,CAqMrC7C,I,YC/QE,GAAS,IAAI,IAAO,QAIpB,GAAsB,WAMtB,SAAS8D,EAAK/lC,GAIVvD,KAAKib,SAAW,KAIhBjb,KAAKupC,MAAQ,KAIbvpC,KAAKwpC,MAAQ,CAAC,EACdxpC,KAAKib,SAAWlV,OAAOkJ,OAAO,CAAC,EAAG1L,GAClCvD,KAAKupC,MAAQvpC,KAAKib,SAASwuB,UACtBzpC,KAAKupC,OACY,qBAAX1+B,QACPA,QACAA,OAAOf,YACP9J,KAAKupC,MAAQ1+B,OAAOf,UAAU2/B,UAElC,GAAOryB,MAAMpX,KAAKupC,MACtB,CA4EA,OAtEAD,EAAKnqC,UAAUuqC,YAAc,SAAUC,GACnC3pC,KAAKupC,MAAQI,CACjB,EAOAL,EAAKnqC,UAAUqd,IAAM,SAAU1e,EAAK8rC,GAEhC,QADe,IAAXA,IAAqBA,OAASlsC,IAC7BsC,KAAKupC,MACN,MAAyB,qBAAXK,EAAyBA,EAAS9rC,EAEpD,IAAI6rC,EAAO3pC,KAAKupC,MACZ1rC,EAAMmC,KAAK6pC,cAAc/rC,EAAK6rC,GAClC,OAAI9rC,IAGA8rC,EAAK9sC,QAAQ,KAAO,IACpBgB,EAAMmC,KAAK6pC,cAAc/rC,EAAK6rC,EAAKx+B,MAAM,KAAK,KAE9CtN,IAGqB,qBAAX+rC,EAAyBA,EAAS9rC,GACpD,EAQAwrC,EAAKnqC,UAAU0qC,cAAgB,SAAU/rC,EAAK2rC,EAAUG,GAEpD,QADe,IAAXA,IAAqBA,EAAS,OAC7BH,EACD,OAAOG,EAEX,IAAIE,EAAY9pC,KAAKwpC,MAAMC,GAC3B,OAAKK,EAGEA,EAAUhsC,GAFN8rC,CAGf,EAOAN,EAAKnqC,UAAU4qC,2BAA6B,SAAUN,EAAUO,GAC5D,IAAIF,EAAY9pC,KAAKwpC,MAAMC,GACtBK,IACDA,EAAY9pC,KAAKwpC,MAAMC,GAAY,CAAC,GAExC1jC,OAAOkJ,OAAO66B,EAAWE,EAC7B,EAOAV,EAAKnqC,UAAU8qC,gBAAkB,SAAUD,GACvC,IAAI15B,EAAQtQ,KACZ+F,OAAOC,KAAKgkC,GAAcn0B,KAAI,SAAU/X,GACpCwS,EAAMy5B,2BAA2BjsC,EAAKksC,EAAalsC,GACvD,GACJ,EACOwrC,CACX,CAzGyB,GCFrB,GAAS,IAAI,IAAO,QACpBzJ,GAAU,KACVqK,GAAQ,KAIRZ,GAAsB,WACtB,SAASA,IACT,CAgFA,OAzEAA,EAAK35B,UAAY,SAAU7V,GAEvB,OADA,GAAOsd,MAAM,kBACRtd,GAGL+lC,GAAU95B,OAAOkJ,OAAO,CAAC,EAAG4wB,GAAS/lC,EAAOwvC,MAAQxvC,GACpDwvC,EAAKvqC,iBACE8gC,IAJIA,EAKf,EACAyJ,EAAKl6B,cAAgB,WACjB,MAAO,MACX,EAMAk6B,EAAKvqC,eAAiB,WAClB,GAAOqY,MAAM,wBACT8yB,KAGJA,GAAQ,IAAI,GAAUrK,IAC1B,EAMAyJ,EAAKI,YAAc,SAAUC,GAEzB,OADAL,EAAKn6B,cACE+6B,GAAMR,YAAYC,EAC7B,EAOAL,EAAK9sB,IAAM,SAAU1e,EAAK8rC,GACtB,OAAKN,EAAKn6B,cAGH+6B,GAAM1tB,IAAI1e,EAAK8rC,GAFO,qBAAXA,EAAyB9rC,EAAM8rC,CAGrD,EAQAN,EAAKS,2BAA6B,SAAUN,EAAUO,GAElD,OADAV,EAAKn6B,cACE+6B,GAAMH,2BAA2BN,EAAUO,EACtD,EAQAV,EAAKW,gBAAkB,SAAUD,GAE7B,OADAV,EAAKn6B,cACE+6B,GAAMD,gBAAgBD,EACjC,EACAV,EAAKn6B,YAAc,WAIf,OAHK+6B,KACDA,GAAQ,IAAI,GAAUrK,MAEnB,CACX,EACOyJ,CACX,CAnFyB,GAqFzB,KAAQ72B,SAAS62B,IAIjB,IC5GWa,GC8BAC,GAAY,CACnBrgC,UAAWgS,EAAA,GAAShS,W,UCdxB,I,SAAesgC,EAAI,GCnBf,GAAwC,WACxC,IAAIv6B,EAAgB,SAAUC,EAAG/C,GAI7B,OAHA8C,EAAgB/J,OAAOiK,gBAClB,CAAEC,UAAW,cAAgBtN,OAAS,SAAUoN,EAAG/C,GAAK+C,EAAEE,UAAYjD,CAAG,GAC1E,SAAU+C,EAAG/C,GAAK,IAAK,IAAIkD,KAAKlD,EAAOA,EAAEH,eAAeqD,KAAIH,EAAEG,GAAKlD,EAAEkD,GAAI,EACtEJ,EAAcC,EAAG/C,EAC5B,EACA,OAAO,SAAU+C,EAAG/C,GAEhB,SAASmD,IAAOnQ,KAAKoM,YAAc2D,CAAG,CADtCD,EAAcC,EAAG/C,GAEjB+C,EAAE5Q,UAAkB,OAAN6N,EAAajH,OAAO1G,OAAO2N,IAAMmD,EAAGhR,UAAY6N,EAAE7N,UAAW,IAAIgR,EACnF,CACH,CAZ2C,GAaxC,GAAsC,WAStC,OARA,GAAWpK,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,GAASjS,MAAM5C,KAAMiI,UAChC,EACI,GAAwC,SAAUF,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI,GAA4C,SAAUnL,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EACI,GAAkC,SAAUmY,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACX,EAyBI,GAAS,IAAI,IAAO,8BACpBq3B,GAAmB,SAAUlF,EAAOhrC,EAAM2F,GAC1CslC,GAAA,GAAIC,SAAS,MAAO,CAAEF,MAAOA,EAAOhrC,KAAMA,EAAM2F,QAASA,GAAW,SAAUikC,GAClF,EACIuG,GAAwB,wFACxBC,GAAmB,YACnBC,GAA4C,SAAUp6B,GAEtD,SAASo6B,EAA2BlnC,QAChB,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAI+M,EAAQD,EAAOjM,KAAKpE,KAAMuD,IAAYvD,KAa1C,OAZAsQ,EAAMo6B,aAAexK,GAAcgC,OACnC5xB,EAAMq6B,iBAAmBtG,GACzB/zB,EAAMs6B,wBAA0B,IAAIvmB,IACpC/T,EAAMu6B,aAAe,GACrBv6B,EAAMq1B,uBAAyB,IAAIrD,GAEnChyB,EAAMq1B,uBAAuBG,0BAA0BrnC,WAAU,SAAU6gC,GACvEgL,GAAiBvG,GAAyB,CACtCiC,SAAU11B,EACVuxB,gBAAiBvC,GAClB,uBAAyBA,EAChC,IACOhvB,CACX,CA2vBA,OA5wBA,GAAUm6B,EAA4Bp6B,GAkBtCo6B,EAA2BtrC,UAAU2rC,gBAAkB,SAAUrvC,EAAK4O,GAClE,OAAO,IAAI0gC,UAAUtvC,EAAK4O,EAC9B,EACAogC,EAA2BtrC,UAAU2gC,gBAAkB,WACnD,MAAO,4BACX,EACA2K,EAA2BtrC,UAAUunC,UAAY,WAC7C,MAAM,IAAIziC,MAAM,gBACpB,EACAwmC,EAA2BtrC,UAAUwoC,QAAU,SAAUqD,EAASC,EAAMhwB,GACpE,OAAO,GAAUjb,UAAM,OAAQ,GAAQ,WACnC,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,MAAM,IAAI3P,MAAM,0BACpB,GACJ,GACJ,EAEAwmC,EAA2BtrC,UAAU+rC,eAAiB,SAAUzvC,GAC5D,OAA4C,OAArCA,EAAI4N,MAAMkhC,GACrB,EACAE,EAA2BtrC,UAAUV,UAAY,SAAUusC,EAASznC,GAChE,IAAI+M,EAAQtQ,KACRmrC,EAAqC,OAAZ5nC,QAAgC,IAAZA,OAAqB,EAASA,EAAQ4nC,uBACvF,OAAO,IAAI,IAAW,SAAUzK,GAC5B,GAAKn9B,GAAY4nC,EAQZ,CACD,IAAIC,GAAmB,EAAA3F,GAAA,MAcvB,OAbAn1B,EAAM+6B,yCAAyC,CAC3C9nC,QAASA,EACTm9B,SAAUA,EACV4K,eAAgBF,IACjBzuB,OAAM,SAAUxgB,GACfukC,EAASx9B,MAAM,CACXqoC,OAAQ,CACJ,GAAS,CAAC,EAAG,IAAI1mB,GAAawa,GAAYmM,iCAAmC,KAAOrvC,OAG5FmU,EAAMq1B,uBAAuB9C,OAAOrB,GAAkBU,QACtDxB,EAAS0I,UACb,IACO,WAAc,OAAO,GAAU94B,OAAO,OAAQ,GAAQ,WACzD,IAAIm7B,EAAmBvC,EACvB,OAAO,GAAYlpC,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAGD,OAFAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,EAAG,IAEhB,CAAC,EAAalB,KAAK0rC,kCAAkCN,IAChE,KAAK,EAID,GAFAx3B,EAAGyG,OACHoxB,GAAqBzrC,KAAK4qC,wBAAwBpuB,IAAI4uB,IAAqB,CAAC,GAAGK,mBAC1EA,EAED,MAAO,CAAC,GAEZ,GAAIA,IAAsBxL,GAAoB0L,UAI1C,MAAM,IAAI1nC,MAAM,gCAEpB,OALIjE,KAAK4rC,2BAA2BR,GAK7B,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAlC,EAAQt1B,EAAGyG,OACX,GAAOjD,MAAM,6BAA+B8xB,GACrC,CAAC,EAAa,GACzB,KAAK,EAED,OADAlpC,KAAK6rC,4BAA4BT,GAC1B,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,CACR,CAxDI1K,EAASx9B,MAAM,CACXqoC,OAAQ,CACJ,GAAS,CAAC,EAAG,IAAI1mB,GAAa,yDAGtC6b,EAAS0I,UAoDjB,GACJ,EACArjC,OAAOuc,eAAemoB,EAA2BtrC,UAAW,eAAgB,CACxEqd,IAAK,WACD,OAAQxc,KAAKuD,QACR2iC,4DACT,EACAjkB,YAAY,EACZM,cAAc,IAElBkoB,EAA2BtrC,UAAUksC,yCAA2C,SAAUz3B,GACtF,IACIqF,EAAI2C,EADJrY,EAAUqQ,EAAGrQ,QAASm9B,EAAW9sB,EAAG8sB,SAAU4K,EAAiB13B,EAAG03B,eAEtE,OAAO,GAAUtrC,UAAM,OAAQ,GAAQ,WACnC,IAAImrC,EAAwBW,EAAoBl2B,EAAOm2B,EAAWC,EAAQt1B,EAAQyyB,EAAI8C,EAAiBC,EAAIC,EAAmBV,EAAmBrxC,EAAMgyC,EAAYC,EAAWC,EAAIC,EAAIC,EAAqBC,EAAqBC,EAAO3sC,EAAS4sC,EAA8BC,EAAIC,EAA4BC,EAC1SC,EACAz8B,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAUgtC,GAC/B,OAAQA,EAAG5yB,OACP,KAAK,EAiBD,OAhBA+wB,EAAyB5nC,EAAQ4nC,uBAAwBW,EAAqBvoC,EAAQuoC,mBAAoBl2B,EAAQrS,EAAQqS,MAAOm2B,EAAYxoC,EAAQwoC,UAAWC,EAASzoC,EAAQyoC,OAAQt1B,EAASnT,EAAQmT,OAAQyyB,EAAK5lC,EAAQ0oC,gBAAiBA,OAAyB,IAAP9C,EAAgB,WAAc,MAAO,CAAG,CAAG,EAAIA,EAAI+C,EAAK3oC,EAAQ4oC,kBAAmBA,OAA2B,IAAPD,EAAgB,CAAC,EAAIA,EAC9XT,EAAoBxL,GAAoBgN,QACxC7yC,EAAO,CACHwb,MAAOA,EACPm2B,UAAWA,GAGf/rC,KAAK4qC,wBAAwBntB,IAAI6tB,EAAgB,CAC7C5K,SAAUA,EACV9qB,MAAiB,OAAVA,QAA4B,IAAVA,EAAmBA,EAAQ,GACpDm2B,UAAyB,OAAdA,QAAoC,IAAdA,EAAuBA,EAAY,CAAC,EACrEN,kBAAmBA,EACnByB,uBAAmBxvC,IAEvB0uC,EAAatlC,KAAKI,UAAU9M,GAC5BkyC,EAAK,CAAC,CAAC,GACA,CAAC,EAAatsC,KAAKmtC,4BAA4B,CAC9CnB,OAAQA,EACRb,uBAAwBA,EACxBW,mBAAoBA,EACpBniC,QAASyiC,EACTgB,aAAc,GACd12B,OAAQA,EACRy1B,kBAAmBA,KAE/B,KAAK,EAED,OADAI,EAAK,CAAC,GAAS3pC,WAAM,EAAQ0pC,EAAGzpC,OAAO,CAAEmqC,EAAG3yB,WACrC,CAAC,EAAa4xB,KACzB,KAAK,EACDI,EAAY,GAASzpC,WAAM,EAAQ,CAAC,GAASA,WAAM,EAAQ,CAAC,GAASA,WAAM,EAAQ2pC,EAAG1pC,OAAO,CAAEmqC,EAAG3yB,UAAY8xB,KAAsBY,EAAK,CAAC,EAAGA,EAAGrN,IAAqB0K,GAAUrgC,UAAWgjC,KAC1LP,EAAsB,CAClB/oC,GAAI6nC,EACJ3hC,QAAS,CACLvP,KAAMgyC,EACNlnB,WAAY,CACRmoB,cAAe,GAAS,CAAC,EAAGhB,KAGpC9tC,KAAMyhC,GAAcsN,WAExBb,EAAsB3lC,KAAKI,UAAUslC,GACrCQ,EAAG5yB,MAAQ,EACf,KAAK,EAGD,OAFA4yB,EAAG1yB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACtBlB,KAAK2lC,uBAAuB9C,OAAOrB,GAAkBS,oBAC9C,CAAC,EAAajiC,KAAKutC,+BAA+B,CACjDvB,OAAQA,EACRb,uBAAwBA,EACxBW,mBAAoBA,EACpBp1B,OAAQA,EACRy1B,kBAAmBA,KAE/B,KAAK,EAED,OADAa,EAAG3yB,OACI,CAAC,EAAa,GACzB,KAAK,EAgBD,OAfAqyB,EAAQM,EAAG3yB,OACX,GAAOjD,MAAM,CAAEjb,IAAKuwC,IACpB3sC,EAAsC,QAA3BkZ,EAAKyzB,EAAM,kBAA+B,IAAPzzB,EAAgBA,EAAK,GACnEjZ,KAAK2lC,uBAAuB9C,OAAOrB,GAAkBU,QACrDxB,EAASx9B,MAAM,CACXqoC,OAAQ,CACJ,GAAS,CAAC,EAAG,IAAI1mB,GAAawa,GAAYyC,kBAAoB,KAAO/hC,OAG7E2gC,EAAS0I,WACTuD,GAAgC3sC,KAAK4qC,wBAAwBpuB,IAAI8uB,IAAmB,CAAC,GAAGuB,2BAE5C,oBAAjCF,GACPA,IAEG,CAAC,GACZ,KAAK,EAiBD,OAhBAC,EAAiE,QAA3DhxB,EAAK5b,KAAK4qC,wBAAwBpuB,IAAI8uB,UAAoC,IAAP1vB,EAAgBA,EAAK,CAAC,EAAGixB,EAA6BD,EAAGC,2BAA4BC,EAA4BF,EAAGE,0BAE7L9sC,KAAK4qC,wBAAwBntB,IAAI6tB,EAAgB,CAC7C5K,SAAUA,EACV+K,kBAAmBA,EACnB71B,MAAiB,OAAVA,QAA4B,IAAVA,EAAmBA,EAAQ,GACpDm2B,UAAyB,OAAdA,QAAoC,IAAdA,EAAuBA,EAAY,CAAC,EACrEe,0BAA2BA,EAC3BD,2BAA4BA,EAC5BK,kBAAmBpwC,YAAW,WAC1BwT,EAAMk9B,6BAA6BppC,KAAKkM,EAAOg7B,EACnD,GAAGlH,MAEHpkC,KAAKytC,mBACLztC,KAAKytC,kBAAkB9uC,KAAK8tC,GAEzB,CAAC,GAEpB,GACJ,GACJ,EAEAhC,EAA2BtrC,UAAUusC,kCAAoC,SAAUJ,GAC/E,OAAO,GAAUtrC,UAAM,OAAQ,GAAQ,WACnC,IAAI0tC,EAAsBjC,EACtBn7B,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAE/B,OADA85B,EAAuB1tC,KAAK4qC,wBAAwBpuB,IAAI8uB,GACpDoC,IACAjC,EAAoBiC,EAAqBjC,kBAErCA,IAAsBxL,GAAoBgN,SACnC,CAAC,EAAc,IAAIlzC,SAAQ,SAAU4zC,EAAKC,GACzC,IAAIlN,EAAWgN,EAAqBhN,SAAU+K,EAAoBiC,EAAqBjC,kBAAmBM,EAAY2B,EAAqB3B,UAAWn2B,EAAQ83B,EAAqB93B,MACnLtF,EAAMs6B,wBAAwBntB,IAAI6tB,EAAgB,CAC9C5K,SAAUA,EACV+K,kBAAmBA,EACnBM,UAAWA,EACXn2B,MAAOA,EACPk3B,0BAA2Ba,EAC3Bd,2BAA4Be,GAEpC,KAGL,CAAC,EACZ,GACJ,GACJ,EACAnD,EAA2BtrC,UAAUysC,2BAA6B,SAAUN,GACxE,IACI,GAAItrC,KAAKytC,mBACLztC,KAAKytC,kBAAkB9wC,aAAeouC,UAAU8C,MAChD7tC,KAAK0qC,eAAiBxK,GAAc4N,MAAO,CAE3C,IAAIC,EAAqB,CACrBtqC,GAAI6nC,EACJ/sC,KAAMyhC,GAAcgO,UAEpBvB,EAAsB3lC,KAAKI,UAAU6mC,GACzC/tC,KAAKytC,kBAAkB9uC,KAAK8tC,EAChC,CACJ,CACA,MAAOtwC,GAEH,GAAOib,MAAM,CAAEjb,IAAKA,GACxB,CACJ,EACAsuC,EAA2BtrC,UAAU0sC,4BAA8B,SAAUP,GACzEtrC,KAAK4qC,wBAAwB1F,OAAOoG,GAEpCxuC,WAAWkD,KAAKiuC,uBAAuBrvC,KAAKoB,MAAO,IACvD,EACAyqC,EAA2BtrC,UAAU8uC,uBAAyB,WAC1D,KAAIjuC,KAAK4qC,wBAAwBz5B,KAAO,GAIxC,GAAKnR,KAAKytC,kBAKV,GADAztC,KAAK2lC,uBAAuB9C,OAAOrB,GAAkBQ,oBACjDhiC,KAAKytC,kBAAkBS,eAAiB,EAExCpxC,WAAWkD,KAAKiuC,uBAAuBrvC,KAAKoB,MAAO,SAElD,CACD,GAAOoX,MAAM,wBACTpX,KAAKmuC,oBACLC,aAAapuC,KAAKmuC,oBAElBnuC,KAAKquC,yBACLD,aAAapuC,KAAKquC,yBAEtB,IAAIC,EAAatuC,KAAKytC,kBAEtBa,EAAWC,QAAU,KACrBD,EAAWtxC,QAAU,KACrBsxC,EAAWE,MAAM,KACjBxuC,KAAKytC,uBAAoB/vC,EACzBsC,KAAK0qC,aAAexK,GAAcgC,OAClCliC,KAAK2lC,uBAAuB9C,OAAOrB,GAAkBU,OACzD,MAxBIliC,KAAK0qC,aAAexK,GAAcgC,MAyB1C,EACAuI,EAA2BtrC,UAAUsvC,mCAAqC,SAAU1uC,GAChF,IAAIuQ,EAAQtQ,KACZ,GAAOoX,MAAM,mDAAqDrX,EAAQ3F,MAC1E,IAAIwZ,EAAK9M,KAAKC,MAAMhH,EAAQ3F,MAAO6e,EAAKrF,EAAGnQ,GAAIA,OAAY,IAAPwV,EAAgB,GAAKA,EAAItP,EAAUiK,EAAGjK,QAASpL,EAAOqV,EAAGrV,KACzGqd,EAAK5b,KAAK4qC,wBAAwBpuB,IAAI/Y,IAAO,CAAC,EAAG0lC,EAAKvtB,EAAG8kB,SAAUA,OAAkB,IAAPyI,EAAgB,KAAOA,EAAI+C,EAAKtwB,EAAGhG,MAAOA,OAAe,IAAPs2B,EAAgB,GAAKA,EAAII,EAAK1wB,EAAGmwB,UAAWA,OAAmB,IAAPO,EAAgB,CAAC,EAAIA,EAAIY,EAAoBtxB,EAAGsxB,kBAAmBJ,EAA4BlxB,EAAGkxB,0BAA2BD,EAA6BjxB,EAAGixB,2BAEzV,GADA,GAAOz1B,MAAM,CAAE3T,GAAIA,EAAIi9B,SAAUA,EAAU9qB,MAAOA,EAAOm2B,UAAWA,IAChExtC,IAASyhC,GAAc0O,UAAY/kC,GAAWA,EAAQvP,KAClDsmC,EACAA,EAASxtB,KAAKvJ,GAGd,GAAOyN,MAAM,8BAAgC3T,OALrD,CASA,GAAIlF,IAASyhC,GAAc2O,cAAe,CACtC,GAAOv3B,MAAM,0BAA4BtQ,KAAKI,UAAU,CAAE0O,MAAOA,EAAOm2B,UAAWA,KAC1C,oBAA9Be,GACPA,IAEAI,GACAkB,aAAalB,GACjB5C,GAAiBjL,GAAYuP,iBAAkB,CAAEh5B,MAAOA,EAAOm2B,UAAWA,GAAa,2CACvF,IAAIN,EAAoBxL,GAAoB0L,UAa5C,OAZIjL,GACA1gC,KAAK4qC,wBAAwBntB,IAAIha,EAAI,CACjCi9B,SAAUA,EACV9qB,MAAOA,EACPm2B,UAAWA,EACXmB,uBAAmBxvC,EACnB+tC,kBAAmBA,EACnBqB,0BAA2BA,EAC3BD,2BAA4BA,SAGpC7sC,KAAK2lC,uBAAuB9C,OAAOrB,GAAkBI,uBAEzD,CACA,GAAIrjC,IAASyhC,GAAc6O,0BAUvB,OATI7uC,KAAKmuC,oBACLC,aAAapuC,KAAKmuC,oBAClBnuC,KAAKquC,yBACLD,aAAapuC,KAAKquC,yBACtBruC,KAAKmuC,mBAAqBrxC,YAAW,WAAc,OAAOwT,EAAMw+B,iBAAiBzP,GAAY0P,mBAAqB,GAAG/uC,KAAK2qC,kBAC1H3qC,KAAKquC,wBAA0BvxC,YAAW,WACtCwT,EAAMq1B,uBAAuB9C,OAAOrB,GAAkBC,kBAC1D,GAAG6C,SACHtkC,KAAK2lC,uBAAuB9C,OAAOrB,GAAkBG,YAGzD,GAAIpjC,IAASyhC,GAAcgP,UAAW,CAC9BvD,EAAoBxL,GAAoBgP,OACxCvO,IACA1gC,KAAK4qC,wBAAwBntB,IAAIha,EAAI,CACjCi9B,SAAUA,EACV9qB,MAAOA,EACPm2B,UAAWA,EACXmB,kBAAmBA,EACnBJ,0BAA2BA,EAC3BD,2BAA4BA,EAC5BpB,kBAAmBA,IAEvB/K,EAASx9B,MAAM,CACXqoC,OAAQ,CACJ,GAAS,CAAC,EAAG,IAAI1mB,GAAawa,GAAYyC,kBAAoB,KAAOh7B,KAAKI,UAAUyC,QAGxFujC,GACAkB,aAAalB,GACjBxM,EAAS0I,WACiC,oBAA/ByD,GACPA,IAGZ,CA5DA,CA6DJ,EACApC,EAA2BtrC,UAAU2vC,iBAAmB,SAAUhI,GAC9D,GAAO1vB,MAAM,qBAAuB0vB,GACpC9mC,KAAK4qC,wBAAwBhtC,SAAQ,SAAUgW,GAC3C,IAAI8sB,EAAW9sB,EAAG8sB,SACdA,IAAaA,EAASS,QACtBT,EAASx9B,MAAM,CACXqoC,OAAQ,CAAC,GAAS,CAAC,EAAG,IAAI1mB,GAAaiiB,MAGnD,IACA9mC,KAAK4qC,wBAAwBj8B,QACzB3O,KAAKytC,oBACLztC,KAAK2lC,uBAAuB9C,OAAOrB,GAAkBU,QACrDliC,KAAKytC,kBAAkBe,SAE3BxuC,KAAK0qC,aAAexK,GAAcgC,MACtC,EACAuI,EAA2BtrC,UAAUquC,6BAA+B,SAAUlC,GAC1E,IAAIoC,EAAuB1tC,KAAK4qC,wBAAwBpuB,IAAI8uB,GAC5D,GAAIoC,EAAsB,CACtB,IAAIhN,EAAWgN,EAAqBhN,SAAU9qB,EAAQ83B,EAAqB93B,MAAOm2B,EAAY2B,EAAqB3B,UACnH,IAAKrL,EACD,OAEJ1gC,KAAK4qC,wBAAwBntB,IAAI6tB,EAAgB,CAC7C5K,SAAUA,EACV9qB,MAAOA,EACPm2B,UAAWA,EACXN,kBAAmBxL,GAAoBgP,SAEvCvO,IAAaA,EAASS,SACtBT,EAASx9B,MAAM,CACXqoC,OAAQ,CACJ,GAAS,CAAC,EAAG,IAAI1mB,GAAa,wBAA0B/d,KAAKI,UAAU,CACnE0O,MAAOA,EACPm2B,UAAWA,SAKvBrL,EAAS0I,YAEb,GAAOhyB,MAAM,2BAA4BtQ,KAAKI,UAAU,CAAE0O,MAAOA,EAAOm2B,UAAWA,IACvF,CACJ,EACAtB,EAA2BtrC,UAAUouC,+BAAiC,SAAU35B,GAC5E,IAAItD,EAAQtQ,KACRmrC,EAAyBv3B,EAAGu3B,uBAAwBW,EAAqBl4B,EAAGk4B,mBAAoBE,EAASp4B,EAAGo4B,OAAQt1B,EAAS9C,EAAG8C,OAAQy1B,EAAoBv4B,EAAGu4B,kBACnK,GAAInsC,KAAK0qC,eAAiBxK,GAAc4N,MAGxC,OAAO,IAAI/zC,SAAQ,SAAU4zC,EAAKC,GAAO,OAAO,GAAUt9B,OAAO,OAAQ,GAAQ,WAC7E,IAAIy2B,EAAemI,EAAct7B,EAAIqF,EAAIk2B,EAAUC,EAAWC,EAAsBhlC,EAAUilC,EAAgBC,EAC9G,OAAO,GAAYvvC,MAAM,SAAU4b,GAC/B,OAAQA,EAAGxB,OACP,KAAK,EAED,GADApa,KAAK6qC,aAAa3pC,KAAK,CAAEysC,IAAKA,EAAKC,IAAKA,IAClC5tC,KAAK0qC,eAAiBxK,GAAcgC,OAAS,MAAO,CAAC,EAAa,GACxEtmB,EAAGxB,MAAQ,EACf,KAAK,EAKD,OAJAwB,EAAGtB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACtBlB,KAAK0qC,aAAexK,GAAcsP,WAClCzI,EAAgB,KAChB9tB,GAAMrF,EAAK9M,MAAMI,UACV,CAAC,EAAalH,KAAKmtC,4BAA4B,CAC9CrB,mBAAoBA,EACpBniC,QAASo9B,EACTqG,aAAc,WACdpB,OAAQA,EACRb,uBAAwBA,EACxBz0B,OAAQA,EACRy1B,kBAAmBA,KAE/B,KAAK,EAmBD,OAlBA+C,EAAej2B,EAAGrW,MAAMgR,EAAI,CAACgI,EAAGvB,SAChC80B,EAAW,MAAO5O,KAAK2O,GAAcjvC,SAAS,UAC9CmvC,EAAY,MAAO7O,KAAKwG,GAAe9mC,SAAS,UAChDovC,EAAkD,OAA3BlE,QAA8D,IAA3BA,EAAoCA,EAAyB,GAEnHkE,EADArvC,KAAKkrC,eAAemE,GAEhBA,EAAqBxsC,OAAO2nC,IAGT6E,EAClBjsC,QAAQ,cAAe,wBACvBA,QAAQ,YAAa,YAE9BiH,EAAWrK,KAAKonC,aAAe,SAAW,QAC1CiI,EAAuBA,EAClBjsC,QAAQ,WAAYiH,GACpBjH,QAAQ,UAAWiH,GACxBilC,EAAiBD,EAAuB,WAAaF,EAAW,YAAcC,EACvE,CAAC,EAAapvC,KAAKyvC,8BAA8BH,IAC5D,KAAK,EASD,OARA1zB,EAAGvB,OACHra,KAAK6qC,aAAajtC,SAAQ,SAAUgW,GAChC,IAAI+5B,EAAM/5B,EAAG+5B,IACb,GAAOv2B,MAAM,mCACbu2B,GACJ,IACA3tC,KAAK0qC,aAAexK,GAAc4N,MAClC9tC,KAAK6qC,aAAe,GACb,CAAC,EAAa,GACzB,KAAK,EAaD,OAZA0E,EAAQ3zB,EAAGvB,OACXra,KAAK6qC,aAAajtC,SAAQ,SAAUgW,GAChC,IAAIg6B,EAAMh6B,EAAGg6B,IACb,OAAOA,EAAI2B,EACf,IACAvvC,KAAK6qC,aAAe,GAChB7qC,KAAKytC,mBACLztC,KAAKytC,kBAAkB9wC,aAAeouC,UAAU8C,MAChD7tC,KAAKytC,kBAAkBe,MAAM,MAEjCxuC,KAAKytC,uBAAoB/vC,EACzBsC,KAAK0qC,aAAexK,GAAcgC,OAC3B,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,GACR,EACAuI,EAA2BtrC,UAAUswC,8BAAgC,SAAUH,GAC3E,OAAO,GAAUtvC,UAAM,OAAQ,GAAQ,WACnC,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAED,OADA,GAAOhD,MAAM,sCACN,CAAC,GAAa,SAAyBpX,KAAK0vC,qBAAqB9wC,KAAKoB,MAAO,CAACsvC,GAAiBzL,KAC1G,KAAK,EAED,OADAjwB,EAAGyG,OACI,CAAC,GAEpB,GACJ,GACJ,EACAowB,EAA2BtrC,UAAUuwC,qBAAuB,SAAUJ,GAClE,OAAO,GAAUtvC,UAAM,OAAQ,GAAQ,WACnC,IAAI2vC,EAAO/7B,EAAIg8B,EAAWvJ,EACtB/1B,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EACD,GAAOhD,MAAM,0BAA4Bk4B,GACzCr2B,EAAGmB,MAAQ,EACf,KAAK,EAED,OADAnB,EAAGqB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAa,WACb,OAAO,IAAInH,SAAQ,SAAU4zC,EAAKC,GAC9B,IAAIiC,EAAYv/B,EAAMw6B,gBAAgBwE,EAAgB,cACtDO,EAAU7yC,QAAU,WAChB,GAAOoa,MAAM,6BACjB,EACAy4B,EAAUtB,QAAU,WAChBj+B,EAAMq1B,uBAAuB9C,OAAOrB,GAAkBM,mBACtD8L,EAAI,IAAI3pC,MAAM,8BAClB,EACA4rC,EAAUC,OAAS,WAEf,OADAx/B,EAAMm9B,kBAAoBoC,EACnBlC,GACX,CACJ,GACH,CAfgB,IAgBzB,KAAK,EAGD,OAFA10B,EAAGoB,OAEI,CAAC,EAAa,WACb,OAAO,IAAItgB,SAAQ,SAAU4zC,EAAKC,GAC9B,GAAIt9B,EAAMm9B,kBAAmB,CACzB,IAAIsC,GAAU,EACdz/B,EAAMm9B,kBAAkBzwC,QAAU,SAAUkG,GACxC,GAAOkU,MAAM,mBAAqBtQ,KAAKI,UAAUhE,GACrD,EACAoN,EAAMm9B,kBAAkBc,QAAU,SAAUnJ,GACxC,GAAOhuB,MAAM,oBAAsBguB,EAAMrkC,QACzC6sC,EAAI,IAAI3pC,MAAM6C,KAAKI,UAAUk+B,IACjC,EACA90B,EAAMm9B,kBAAkBuC,UAAY,SAAUjwC,GAC1C,GAAOqX,MAAM,kDAAoDrX,EAAQ3F,KAAO,KAChF,IAAIA,EAAO0M,KAAKC,MAAMhH,EAAQ3F,MAC1BmE,EAAOnE,EAAKmE,KAAMqV,EAAKxZ,EAAKuP,QAASsP,QAAa,IAAPrF,EAAgB,CAAC,EAAIA,GAAIq8B,oBAAqBA,OAA6B,IAAPh3B,EAAgBorB,GAA6BprB,EAChK,GAAI1a,IAASyhC,GAAckQ,mBAgBvB,OAfAH,GAAU,EACNz/B,EAAMm9B,oBACNn9B,EAAMq6B,iBAAmBsF,EACzB3/B,EAAMm9B,kBAAkBuC,UACpB1/B,EAAMm+B,mCAAmC7vC,KAAK0R,GAClDA,EAAMm9B,kBAAkBzwC,QAAU,SAAUb,GACxC,GAAOib,MAAMjb,GACbmU,EAAMw+B,iBAAiBzP,GAAY8Q,kBACvC,EACA7/B,EAAMm9B,kBAAkBc,QAAU,SAAUnJ,GACxC,GAAOhuB,MAAM,oBAAsBguB,EAAMrkC,QACzCuP,EAAMw+B,iBAAiBzP,GAAY8Q,kBACvC,QAEJxC,EAAI,0CAGR,GAAIpvC,IAASyhC,GAAcoQ,qBAAsB,CAC7C,IAAIx0B,EAAKxhB,EAAKuP,QAASw/B,QAAa,IAAPvtB,EAAgB,CAAC,EAAIA,GAAI2vB,OAAQW,EAAK,QAAc,IAAP/C,EAAgB,GAAKA,EAAI,GAAImD,EAAKJ,EAAG,GAAIK,OAAY,IAAPD,EAAgB,CAAC,EAAIA,EAAIM,EAAKL,EAAGqD,UAAWA,OAAmB,IAAPhD,EAAgB,GAAKA,EAAIG,EAAKR,EAAGlG,UAAWA,OAAmB,IAAP0G,EAAgB,EAAIA,EAC5Pa,EAAI,CAAEgC,UAAWA,EAAWvJ,UAAWA,GAC3C,CACJ,EACA,IAAIgK,EAAU,CACV9xC,KAAMyhC,GAAcsQ,qBAExBhgC,EAAMm9B,kBAAkB9uC,KAAKmI,KAAKI,UAAUmpC,IAC5C,IAAIE,EAAe,SAAUC,GACpBA,IACDlgC,EAAMq1B,uBAAuB9C,OAAOrB,GAAkBM,mBACtD8L,EAAI,IAAI3pC,MAAM,0EAA4EkgC,GAA0B,QAE5H,EACArnC,YAAW,WAAc,OAAOyzC,EAAaR,EAAU,GAAG5L,GAC9D,CACJ,GACH,CAnDgB,IAoDzB,KAAK,EAGD,OADAlrB,EAAGoB,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,MAFAs1B,EAAQ12B,EAAGoB,OACXzG,EAAK+7B,EAAOC,EAAYh8B,EAAGg8B,UAAWvJ,EAAYzyB,EAAGyyB,UACjDvC,GAAoBrvB,SAAS4xB,GACvB,IAAI,MAAkBuJ,GAEvBA,EACC,IAAI3rC,MAAM2rC,GAGVD,EAGd,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EACAlF,EAA2BtrC,UAAUguC,4BAA8B,SAAUv5B,GACzE,IAAIk4B,EAAqBl4B,EAAGk4B,mBAAoBniC,EAAUiK,EAAGjK,QAASyjC,EAAex5B,EAAGw5B,aAAcjC,EAAyBv3B,EAAGu3B,uBAAwBa,EAASp4B,EAAGo4B,OAAQt1B,EAAS9C,EAAG8C,OAAQy1B,EAAoBv4B,EAAGu4B,kBACzN,OAAO,GAAUnsC,UAAM,OAAQ,GAAQ,WACnC,IAAIywC,EAAeC,EAASpmC,EAAMuB,EAClC,OAAO,GAAY7L,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EAQD,OAPAq2B,EAAgB,CACZE,QAAS3wC,KAAK4wC,yBAAyBhyC,KAAKoB,MAC5C6wC,QAAS7wC,KAAK8wC,sBAAsBlyC,KAAKoB,MACzC+wC,eAAgB/wC,KAAKgxC,yBAAyBpyC,KAAKoB,MACnDixC,0BAA2BjxC,KAAKkxC,sBAAsBtyC,KAAKoB,MAC3DmxC,WAAYnxC,KAAKoxC,mBAEdtF,GAAuB2E,EAAc3E,GAA6B,CAAC,EAAa,IACvF,GAAO10B,MAAM,uBAAyB00B,EAAqB,kBACpD,CAAC,EAAc,KAC1B,KAAK,EAID,OAHA4E,EAAUD,EAAc3E,GACxBxhC,EAAO,KAAqC,OAA3B6gC,QAA8D,IAA3BA,EAAoCA,EAAyB,IAAI7gC,KACrH,GAAO8M,MAAM,uBAAyB00B,GAC/B,CAAC,EAAa4E,EAAQ,CACrB/mC,QAASA,EACTyjC,aAAcA,EACdjC,uBAAwBA,EACxBa,OAAQA,EACRt1B,OAAQA,EACRpM,KAAMA,EACN6hC,kBAAmBA,KAE/B,KAAK,EAED,OADAtgC,EAASoN,EAAGoB,OACL,CAAC,EAAcxO,GAElC,GACJ,GACJ,EACA4+B,EAA2BtrC,UAAU+xC,sBAAwB,SAAUt9B,GACnE,IAAItJ,EAAOsJ,EAAGtJ,KACd,OAAO,GAAUtK,UAAM,OAAQ,GAAQ,WACnC,IAAIqxC,EACJ,OAAO,GAAYrxC,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EAAG,MAAO,CAAC,EAAa,GAAKk3B,kBAClC,KAAK,EAED,OADAD,EAAUp4B,EAAGoB,OACN,CAAC,EAAc,CACdhf,cAAeg2C,EAAQE,iBAAiBC,cACxClnC,KAAMA,IAG1B,GACJ,GACJ,EACAmgC,EAA2BtrC,UAAU6xC,yBAA2B,SAAUp9B,GACtE,IAAItJ,EAAOsJ,EAAGtJ,KACd,OAAO,GAAUtK,UAAM,OAAQ,GAAQ,WACnC,IAAIO,EAAOkxC,EAAeC,EAC1B,OAAO,GAAY1xC,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EAAG,MAAO,CAAC,EAAa,EAAMxL,QAAQ,kBAC3C,KAAK,EAED,OADA6iC,EAAgBx4B,EAAGoB,OACdo3B,GACLlxC,EAAQkxC,EAAclxC,MACf,CAAC,EAAa,IAFM,CAAC,EAAa,GAG7C,KAAK,EAAG,MAAO,CAAC,EAAa,GAAKoxC,4BAClC,KAAK,EACDD,EAAcz4B,EAAGoB,OACbq3B,IACAnxC,EAAQmxC,EAAYnxC,OAExB0Y,EAAGmB,MAAQ,EACf,KAAK,EACD,IAAK7Z,EACD,MAAM,IAAI0D,MAAM,oBAEpB,MAAO,CAAC,EAAc,CACd5I,cAAekF,EACf+J,KAAMA,IAG1B,GACJ,GACJ,EACAmgC,EAA2BtrC,UAAUyxC,yBAA2B,SAAUh9B,GACtE,IAAIo4B,EAASp4B,EAAGo4B,OAAQ1hC,EAAOsJ,EAAGtJ,KAClC,OAAO,GAAUtK,UAAM,OAAQ,GAAQ,WACnC,IAAIoY,EAAIw5B,EACR,OAAO,GAAY5xC,MAAM,SAAUiZ,GAG/B,OAFAb,EAAK,IAAIlP,KACT0oC,EAAQx5B,EAAG7P,cAAcnF,QAAQ,iBAAkB,IAC5C,CAAC,EAAc,CACdkH,KAAMA,EACN,aAAcsnC,EACd,YAAa5F,GAEzB,GACJ,GACJ,EACAvB,EAA2BtrC,UAAU2xC,sBAAwB,SAAUl9B,GACnE,IAAIjK,EAAUiK,EAAGjK,QAASyjC,EAAex5B,EAAGw5B,aAAcjC,EAAyBv3B,EAAGu3B,uBAAwBz0B,EAAS9C,EAAG8C,OAC1H,OAAO,GAAU1W,UAAM,OAAQ,GAAQ,WACnC,IAAIqe,EAAcwzB,EAAe5zB,EAAOnjB,EAASwjB,EACjD,OAAO,GAAYte,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EAKD,OAJAiE,EAAe,CACX3H,OAAQA,EACRD,QAAS,WAEN,CAAC,EAAazW,KAAK8xC,sBAC9B,KAAK,EAED,GADAD,EAAgB54B,EAAGoB,QACdw3B,EACD,MAAM,IAAI5tC,MAAM,kBAEpB,MAAO,CAAC,EAAa+W,EAAA,GAAYwB,MAAMhc,MAAK,SAAUic,GAC9C,IAAI7I,EAAK6I,EAAayB,EAAkBtK,EAAGsK,gBAAiBC,EAAcvK,EAAGuK,YAAaC,EAAexK,EAAGwK,aAC5G,MAAO,CACHlH,WAAYgH,EACZpG,WAAYqG,EACZ9F,cAAe+F,EAEvB,KACR,KAAK,EASD,OARAH,EAAQhF,EAAGoB,OACXvf,EAAU,CACNW,IAAK,GAAK0vC,EAAyBiC,EACnChzC,KAAMuP,EACNtN,OAAQ,OACR/B,QAAS,GAAS,CAAC,EAAG2pC,KAE1B3lB,EAAgBtG,EAAOC,KAAKnd,EAASmjB,EAAOI,GACrC,CAAC,EAAcC,EAAchkB,SAEhD,GACJ,GACJ,EACAmwC,EAA2BtrC,UAAUiyC,kBAAoB,SAAUx9B,GAC/D,IAAItJ,EAAOsJ,EAAGtJ,KAAM6hC,EAAoBv4B,EAAGu4B,kBAC3C,IAAKA,IAAsBA,EAAkB,iBACzC,MAAM,IAAIloC,MAAM,2BAEpB,MAAO,CACH5I,cAAe8wC,EAAkB9wC,cACjCiP,KAAMA,EAEd,EAIAmgC,EAA2BtrC,UAAU2yC,mBAAqB,WACtD,OAAO92B,EAAA,GAAYwB,MACdhc,MAAK,SAAUic,GAChB,IAAKA,EACD,OAAO,EACX,IAAIs1B,EAAO/2B,EAAA,GAAYg3B,MAAMv1B,GAE7B,OADA,GAAOrF,MAAM,iDAAkD26B,IACxD,CACX,IACKp1B,OAAM,SAAUxgB,GAEjB,OADA,GAAOgQ,KAAK,2BAA4BhQ,IACjC,CACX,GACJ,EACOsuC,CACX,CA9wB+C,CA8wB7C7K,ICx3BE,GAAwC,SAAU73B,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI,GAA4C,SAAUnL,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EAiBI,IAAS,WAAgB+vB,OACzB,GAAS,IAAI,IAAO,UACpB0nB,GAA6B,WAM7B,SAASA,EAAY1uC,GACjBvD,KAAKib,SAAuB,OAAZ1X,QAAgC,IAAZA,EAAqBA,EAAU,CAAC,EACpE,GAAO6T,MAAM,iBAAkBpX,KAAKib,UACpCjb,KAAKkyC,YAAc,GACnBlyC,KAAKvB,UAAYuB,KAAKvB,UAAUG,KAAKoB,KACzC,CA0HA,OAzHA+F,OAAOuc,eAAe2vB,EAAY9yC,UAAW,qBAAsB,CAI/Dqd,IAAK,WAID,OAHKxc,KAAKmyC,sBACNnyC,KAAKmyC,oBAAsB,IAAI9J,GAAmBroC,KAAKib,WAEpDjb,KAAKmyC,mBAChB,EACAlwB,YAAY,EACZM,cAAc,IAElBxc,OAAOuc,eAAe2vB,EAAY9yC,UAAW,6BAA8B,CAIvEqd,IAAK,WAID,OAHKxc,KAAKoyC,8BACNpyC,KAAKoyC,4BAA8B,IAAI3H,GAA2BzqC,KAAKib,WAEpEjb,KAAKoyC,2BAChB,EACAnwB,YAAY,EACZM,cAAc,IAElB0vB,EAAY9yC,UAAUiQ,cAAgB,WAClC,MAAO,QACX,EAOA6iC,EAAY9yC,UAAUwQ,UAAY,SAAUpM,GACxC,IAAI+M,EAAQtQ,KACR4L,EAAMrI,EAAUA,EAAQ8uC,QAAU9uC,EAAU,CAAC,EAIjD,OAHA,GAAO6T,MAAM,mBAAoB,CAAExL,IAAKA,IACxC5L,KAAKib,SAAWlV,OAAOkJ,OAAO,CAAC,EAAGjP,KAAKib,SAAUrP,GACjD5L,KAAKkyC,YAAYr8B,KAAI,SAAUy8B,GAAa,OAAOA,EAAU3iC,UAAUW,EAAM2K,SAAW,IACjFjb,KAAKib,QAChB,EAKAg3B,EAAY9yC,UAAUozC,aAAe,SAAUD,GAC3C,OAAO,GAAUtyC,UAAM,OAAQ,GAAQ,WACnC,IAAIlG,EACJ,OAAO,GAAYkG,MAAM,SAAU4T,GAC/B,OAAI0+B,GAAyC,WAA5BA,EAAUvS,eACvB//B,KAAKkyC,YAAYhxC,KAAKoxC,GACtBx4C,EAASw4C,EAAU3iC,UAAU3P,KAAKib,UAC3B,CAAC,EAAcnhB,IAEnB,CAAC,EACZ,GACJ,GACJ,EAKAm4C,EAAY9yC,UAAUqzC,gBAAkB,SAAUC,GAC9CzyC,KAAKkyC,YAAclyC,KAAKkyC,YAAYhxB,QAAO,SAAUoxB,GAAa,OAAOA,EAAUxS,oBAAsB2S,CAAc,GAC3H,EACAR,EAAY9yC,UAAUuzC,kBAAoB,SAAUD,GAChD,OAAIA,IAAiBjT,GACVx/B,KAAK2yC,mBAEZF,IAAiBhT,GACVz/B,KAAK4yC,2BAET5yC,KAAKkyC,YAAYlzB,MAAK,SAAUszB,GAAa,OAAOA,EAAUxS,oBAAsB2S,CAAc,GAC7G,EACAR,EAAY9yC,UAAU0zC,aAAe,SAAUtvC,QAC3B,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIkvC,EAAelvC,EAAQyiC,SAC3B,IAAKyM,EACD,OAAOzyC,KAAKkyC,YAEhB,IAAIlM,EAAWhmC,KAAK0yC,kBAAkBD,GACtC,IAAKzM,EACD,MAAM,IAAI/hC,MAAM,iCAAmCwuC,GAEvD,MAAO,CAACzM,EACZ,EACAiM,EAAY9yC,UAAUwoC,QAAU,SAAUC,EAAQd,EAAKvjC,GACnD,OAAO,GAAUvD,UAAM,OAAQ,GAAQ,WACnC,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,MAAO,CAAC,EAAc7Z,QAAQ4F,IAAIK,KAAK6yC,aAAatvC,GAASsS,KAAI,SAAUmwB,GACnE,OAAOA,EAAS2B,QAAQC,EAAQd,EAAKvjC,EACzC,KACR,GACJ,GACJ,EACA0uC,EAAY9yC,UAAUV,UAAY,SAAUmpC,EAAQrkC,GAChD,GAAI,IAAUvD,KAAKib,UAAYjb,KAAKib,SAAS63B,IACzC,MAAM,IAAI7uC,MAAM,mEAEpB,GAAOmT,MAAM,oBAAqB7T,GAClC,IAAIwvC,EAAY/yC,KAAK6yC,aAAatvC,GAClC,OAAO,IAAI,IAAW,SAAUm9B,GAC5B,IAAIsS,EAAcD,EAAUl9B,KAAI,SAAUmwB,GAAY,MAAO,CACzDA,SAAUA,EACViN,WAAYjN,EAASvnC,UAAUmpC,EAAQrkC,GACvC,IACA2vC,EAAgBF,EAAYn9B,KAAI,SAAUjC,GAC1C,IAAIoyB,EAAWpyB,EAAGoyB,SAAUiN,EAAar/B,EAAGq/B,WAC5C,OAAOA,EAAWx0C,UAAU,CACxBshB,MAAO7T,QAAQhJ,MACfgQ,KAAM,SAAUhX,GAAS,OAAOwkC,EAASxtB,KAAK,CAAE8yB,SAAUA,EAAU9pC,MAAOA,GAAU,EACrFgH,MAAO,SAAUA,GAAS,OAAOw9B,EAASx9B,MAAM,CAAE8iC,SAAUA,EAAU9iC,MAAOA,GAAU,GAE/F,IACA,OAAO,WACH,OAAOgwC,EAAct1C,SAAQ,SAAUu1C,GAAgB,OAAOA,EAAaz4C,aAAe,GAC9F,CACJ,GACJ,EACOu3C,CACX,CAtIgC,GAwIrBI,GAAS,IAAIJ,GACxB,KAAQx/B,SAAS4/B,IJ5LjB,SAAWlI,GACPA,EAAiB,cAAgB,wBACjCA,EAAiB,mBAAqB,kBACtCA,EAAiB,kBAAoB,iBACrCA,EAAiB,oBAAsB,mBACvCA,EAAiB,iBAAmB,yBACvC,CAND,CAMGA,KAAqBA,GAAmB,CAAC,IKT5C,IAAI,GAAsC,WAStC,OARA,GAAWpkC,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,GAASjS,MAAM5C,KAAMiI,UAChC,EACI,GAAwC,SAAUF,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI,GAA4C,SAAUnL,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EACI,GAAkC,SAAUsa,EAAG7N,GAC/C,IAAI4N,EAAI,CAAC,EACT,IAAK,IAAI3E,KAAK4E,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,IAAMjJ,EAAEpK,QAAQqT,GAAK,IAC9E2E,EAAE3E,GAAK4E,EAAE5E,IACb,GAAS,MAAL4E,GAAqD,oBAAjC/O,OAAOiP,sBACtB,KAAItU,EAAI,EAAb,IAAgBwP,EAAInK,OAAOiP,sBAAsBF,GAAIpU,EAAIwP,EAAEtP,OAAQF,IAC3DuG,EAAEpK,QAAQqT,EAAExP,IAAM,GAAKqF,OAAO5G,UAAU8V,qBAAqB7Q,KAAK0Q,EAAG5E,EAAExP,MACvEmU,EAAE3E,EAAExP,IAAMoU,EAAE5E,EAAExP,IAF4B,CAItD,OAAOmU,CACX,EACI,GAAkC,SAAUlC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACX,EAoBI,GAAoB,mBACpB,GAAS,IAAI,IAAO,cAapBmgC,GAAiC,WAKjC,SAASA,EAAgB7vC,GACrBvD,KAAKwe,KAAO,KACZxe,KAAKqqC,KAAO,GACZrqC,KAAK4P,MAAQ,EACb5P,KAAKgb,YAAcA,EAAA,GACnBhb,KAAKib,SAAW1X,EAChB,GAAO6T,MAAM,cAAepX,KAAKib,SACrC,CAkWA,OAjWAm4B,EAAgBj0C,UAAUiQ,cAAgB,WACtC,MAAO,YACX,EAMAgkC,EAAgBj0C,UAAUwQ,UAAY,SAAUpM,GAC5C,IAAIqQ,EAAKrQ,GAAW,CAAC,EAAG0V,EAAKrF,EAAG6K,IAAKA,OAAa,IAAPxF,EAAgB,CAAC,EAAIA,EAAIyF,EAAe,GAAO9K,EAAI,CAAC,QAC3FhI,EAAM,GAAS,GAAS,CAAC,EAAG8S,GAAeD,GAe/C,OAdA,GAAOrH,MAAM,wBAAyB,CAAExL,IAAKA,IACzCA,EAAI,wBACJA,EAAM7F,OAAOkJ,OAAO,CAAC,EAAGrD,EAAK,CACzB8K,OAAQ9K,EAAI,sBACZ+H,OAAQ,CAAC,KAGkB,qBAAxB/H,EAAIqgC,iBACoB,oBAAxBrgC,EAAIqgC,kBACX,GAAO9/B,KAAK,wCACZP,EAAIqgC,qBAAkBvuC,GAE1BsC,KAAKib,SAAWlV,OAAOkJ,OAAO,CAAC,EAAGjP,KAAKib,SAAUrP,GACjD5L,KAAKjB,iBACEiB,KAAKib,QAChB,EAKAm4B,EAAgBj0C,UAAUJ,eAAiB,WAEvC,OADA,GAAOqY,MAAM,wBACTpX,KAAKib,UACLjb,KAAKwe,KAAO,IAAI7D,GAAW3a,KAAKib,UAEhCjb,KAAKwe,KAAKxD,YAAchb,KAAKgb,aACtB,GAGAjhB,QAAQE,OAAO,qBAE9B,EACAm5C,EAAgBj0C,UAAUk0C,iBAAmB,SAAUC,EAA2BnH,GAE9E,YAD0B,IAAtBA,IAAgCA,EAAoB,CAAC,GAClD,GAAUnsC,UAAM,OAAQ,GAAQ,WACnC,IAAI4T,EAAI2/B,EAAgCvH,EAAQF,EAAoBxxC,EAAS2e,EAAI44B,EAAetxC,EAAOkxC,EAAeC,EAAkBL,EACxI,OAAO,GAAYrxC,MAAM,SAAU4b,GAC/B,OAAQA,EAAGxB,OACP,KAAK,EAKD,OAJAxG,EAAK5T,KAAKib,SAAUs4B,EAAiC3/B,EAAG2/B,+BAAgCvH,EAASp4B,EAAG4/B,mBACpG1H,EAAqBwH,GAA6BC,GAAkC,UACpFj5C,EAAU,CAAC,EACX2e,EAAK6yB,EACG7yB,GACJ,IAAK,UAAW,MAAO,CAAC,EAAa,GACrC,IAAK,UAAW,MAAO,CAAC,EAAa,GACrC,IAAK,iBAAkB,MAAO,CAAC,EAAa,GAC5C,IAAK,4BAA6B,MAAO,CAAC,EAAa,IACvD,IAAK,aAAc,MAAO,CAAC,EAAa,IAE5C,MAAO,CAAC,EAAa,IACzB,KAAK,EACD,IAAK+yB,EACD,MAAM,IAAI/nC,MAAMkmC,GAAiBsJ,YAMrC,OAJAn5C,EAAU,CACNe,cAAe,KACf,YAAa2wC,GAEV,CAAC,EAAa,IACzB,KAAK,EAAG,MAAO,CAAC,EAAahsC,KAAK8xC,sBAClC,KAAK,EAED,GADAD,EAAgBj2B,EAAGvB,QACdw3B,EACD,MAAM,IAAI5tC,MAAMkmC,GAAiBuJ,gBAErC,MAAO,CAAC,EAAa,IACzB,KAAK,EAGD,OAFA93B,EAAGtB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,KACtBX,OAAQ,EACD,CAAC,EAAa,EAAMqO,QAAQ,kBACvC,KAAK,EAED,OADA6iC,EAAgB71B,EAAGvB,OACdo3B,GACLlxC,EAAQkxC,EAAclxC,MACf,CAAC,EAAa,IAFM,CAAC,EAAa,GAG7C,KAAK,EAAG,MAAO,CAAC,EAAa,GAAKoxC,4BAClC,KAAK,EACDD,EAAc91B,EAAGvB,OACbq3B,IACAnxC,EAAQmxC,EAAYnxC,OAExBqb,EAAGxB,MAAQ,EACf,KAAK,EACD,IAAK7Z,EACD,MAAM,IAAI0D,MAAMkmC,GAAiBwJ,kBAKrC,OAHAr5C,EAAU,CACNe,cAAekF,GAEZ,CAAC,EAAa,IACzB,KAAK,EAED,MADMqb,EAAGvB,OACH,IAAIpW,MAAMkmC,GAAiByJ,iBACrC,KAAK,GAAI,MAAO,CAAC,EAAa,IAC9B,KAAK,GAED,OADAh4B,EAAGtB,KAAKpZ,KAAK,CAAC,GAAI,GAAI,CAAE,KACjB,CAAC,EAAalB,KAAKqqC,KAAKiH,kBACnC,KAAK,GAKD,OAJAD,EAAUz1B,EAAGvB,OACb/f,EAAU,CACNe,cAAeg2C,EAAQE,iBAAiBC,eAErC,CAAC,EAAa,IACzB,KAAK,GAED,MADM51B,EAAGvB,OACH,IAAIpW,MAAMkmC,GAAiByJ,iBACrC,KAAK,GAAI,MAAO,CAAC,EAAa,IAC9B,KAAK,GACD,IAAKzH,EAAkB9wC,cACnB,MAAM,IAAI4I,MAAMkmC,GAAiB0J,eAKrC,OAHAv5C,EAAU,CACNe,cAAe8wC,EAAkB9wC,eAE9B,CAAC,EAAa,IACzB,KAAK,GAID,OAHAf,EAAU,CACNe,cAAe,MAEZ,CAAC,EAAa,IACzB,KAAK,GAAI,MAAO,CAAC,EAAcf,GAEvC,GACJ,GACJ,EAKA84C,EAAgBj0C,UAAU20C,wBAA0B,SAAUhiB,GAC1D,IAAIiiB,EAAMhtC,GAAM+qB,GACZV,EAAc2iB,EAAI3iB,YAClBxd,EAAK,GAAOwd,EAAa,GAAI4iB,EAAgBpgC,EAAG,GAAGke,UACvD,OAAOkiB,CACX,EAQAZ,EAAgBj0C,UAAU80C,QAAU,SAAUrgC,EAAIu4B,GAC9C,IAAI+H,EAAatgC,EAAGgC,MAAOqD,EAAKrF,EAAGm4B,UAAWA,OAAmB,IAAP9yB,EAAgB,CAAC,EAAIA,EAAIk7B,EAAWvgC,EAAGugC,SAAUC,EAAYxgC,EAAGwgC,UAAWC,EAAkBzgC,EAAGygC,gBACtJz+B,EACE7O,GAD4B,kBAAfmtC,EACPA,EACAjY,GAAMiY,IACdt4B,EAAK,GAAOhG,EAAMwb,YAAYlQ,QAAO,SAAUozB,GAAO,MAAoB,wBAAbA,EAAIlqB,IAAgC,IAAI,GAAI+e,EAAKvtB,EAAG,GAAI24B,OAAsB,IAAPpL,EAAgB,CAAC,EAAIA,EACzJ6K,EAAgBO,EAAaziB,UAC7Bx3B,EAAU6xC,GAAqB,CAAC,EAKpC,OAHIiI,IACA95C,EAAQe,cAAgB+4C,GAEpBJ,GACJ,IAAK,QACL,IAAK,WACDh0C,KAAKw0C,6BACL,IAAIt4B,EAAmBlc,KAAKwe,KAAKlB,sBAC7B7B,EAAa,CAAES,iBAAkBA,GACjC4C,EAAkB9e,KAAKy0C,SAAS,CAAE7+B,MAAOA,EAAOm2B,UAAWA,EAAWoI,SAAUA,EAAUE,gBAAiBA,GAAmB/5C,EAASmhB,GAE3I,OADAzb,KAAKwe,KAAKjB,6BAA6BuB,EAAiB5C,GACjD4C,EACX,IAAK,eACD,OAAO9e,KAAK00C,kBAAkB,CAAE9+B,MAAOA,EAAOm2B,UAAWA,EAAWoI,SAAUA,GAAY75C,GAC9F,QACI,MAAM,IAAI2J,MAAM,2BAA6B+vC,GAEzD,EACAZ,EAAgBj0C,UAAUs1C,SAAW,SAAU7gC,EAAIu4B,EAAmB1wB,GAClE,IAAI7F,EAAQhC,EAAGgC,MAAOm2B,EAAYn4B,EAAGm4B,UAAWoI,EAAWvgC,EAAGugC,SAAUE,EAAkBzgC,EAAGygC,gBAG7F,YAF0B,IAAtBlI,IAAgCA,EAAoB,CAAC,QACtC,IAAf1wB,IAAyBA,EAAa,CAAC,GACpC,GAAUzb,UAAM,OAAQ,GAAQ,WACnC,IAAIiZ,EAAIvC,EAAQy0B,EAAwBvvB,EAAIqwB,EAAiB0I,EAAuBC,EAAsBt6C,EAAS6uC,EAAI+C,EAAII,EAAIC,EAAIK,EAAIG,EAAI50B,EAAMkD,EAAMS,EAAU5Y,EAAOpH,EAAUotC,EAAOqC,EACrLyB,EACJ,OAAO,GAAYhtC,MAAM,SAAU60C,GAC/B,OAAQA,EAAGz6B,OACP,KAAK,EAKD,OAJApa,KAAKw0C,6BACLv7B,EAAKjZ,KAAKib,SAAUvE,EAASuC,EAAG67B,mBAAoB3J,EAAyBlyB,EAAG87B,4BAA6Bn5B,EAAK3C,EAAGgzB,gBAAiBA,OAAyB,IAAPrwB,EAAgB,WAAc,MAAO,CAAG,CAAG,EAAIA,EAAI+4B,EAAwB17B,EAAG+7B,iBAAkBJ,EAAuB37B,EAAGg8B,4BAClR9L,EAAK,CAAC,CAAC,GACP+C,GAAMyI,EACDzI,EACE,CAAC,EAAalsC,KAAKqzC,iBAAiBc,EAAUhI,IADrC,CAAC,EAAa,GAElC,KAAK,EACDD,EAAM2I,EAAGx6B,OACTw6B,EAAGz6B,MAAQ,EACf,KAAK,EAGD,OAFAkyB,EAAK,CAAC,GAAS1pC,WAAM,EAAQumC,EAAGtmC,OAAO,CAAC,MACxC0pC,EAAKoI,EACApI,EACAqI,EACE,CAAC,EAAa50C,KAAKqzC,iBAAiBc,EAAUhI,IADnB,CAAC,EAAa,GADhC,CAAC,EAAa,GAGlC,KAAK,EAED,OADAS,EAAKiI,EAAGx6B,OACD,CAAC,EAAa,GACzB,KAAK,EACDuyB,EAAK,CAAEvxC,cAAe,MACtBw5C,EAAGz6B,MAAQ,EACf,KAAK,EACDmyB,EAAK,EACLsI,EAAGz6B,MAAQ,EACf,KAAK,EAED,OADA2yB,EAAK,CAAC,GAASnqC,WAAM,EAAQ0pC,EAAGzpC,OAAO,CAAC,MACjC,CAAC,EAAaopC,EAAgB,CAAEr2B,MAAOA,EAAOm2B,UAAWA,KACpE,KAAK,EAiBD,GAhBAzxC,EAAU,GAASsI,WAAM,EAAQ,CAAC,GAASA,WAAM,EAAQ,CAAC,GAASA,WAAM,EAAQmqC,EAAGlqC,OAAO,CAAEgyC,EAAGx6B,UAAY8xB,KAAuBwI,IAA0B3H,EAAK,CAAC,EAC3JA,EAAG,KAAqB,QAAoBqH,GAC5CrH,KACR70B,EAAO,CACHvC,MAAOqmB,GAAMrmB,GACbm2B,UAAWA,GAEf1wB,EAAOtV,OAAOkJ,OAAO,CACjB3U,QAASA,EACT6d,KAAMA,EACNgE,kBAAmB,CACf1F,QAAUk+B,EAAoC,cAAZ,UAClCj+B,OAASi+B,EAAiCC,EAATl+B,IAEtC+E,GACHK,EAAW64B,GAAyBxJ,GAC/BrvB,EAED,MADA5Y,EAAQ,IAAI2hB,GAAa,iCACnB,CACFzqB,KAAM,CAAC,EACPmxC,OAAQ,CAACroC,IAGjB2xC,EAAGz6B,MAAQ,EACf,KAAK,EAED,OADAy6B,EAAGv6B,KAAKpZ,KAAK,CAAC,EAAG,GAAI,CAAE,KAChB,CAAC,EAAalB,KAAKwe,KAAKvB,KAAKnB,EAAUT,IAClD,KAAK,EAED,OADAvf,EAAW+4C,EAAGx6B,OACP,CAAC,EAAa,IACzB,KAAK,GAKD,GAJA6uB,EAAQ2L,EAAGx6B,OAIPra,KAAKwe,KAAK/e,SAASypC,GACnB,MAAMA,EAMV,OAJAptC,EAAW,CACP1B,KAAM,CAAC,EACPmxC,OAAQ,CAAC,IAAI1mB,GAAaqkB,EAAMnpC,QAAS,KAAM,KAAM,KAAM,KAAMmpC,KAE9D,CAAC,EAAa,IACzB,KAAK,GAED,GADAqC,EAASzvC,EAASyvC,OACdA,GAAUA,EAAO3qC,OACjB,MAAM9E,EAEV,MAAO,CAAC,EAAcA,GAElC,GACJ,GACJ,EACAs3C,EAAgBj0C,UAAUq1C,2BAA6B,WACnD,OAAO,GAAUx0C,UAAM,OAAQ,GAAQ,WACnC,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,OAAMpa,KAAKwe,KAAa,CAAC,EAAa,GAC/B,CAAC,EAAaxe,KAAKjB,kBAC9B,KAAK,EACD6U,EAAGyG,OACHzG,EAAGwG,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EAMAg5B,EAAgBj0C,UAAUM,SAAW,SAAUyD,GAC3C,OAAOlD,KAAKwe,KAAK/e,SAASyD,EAC9B,EAMAkwC,EAAgBj0C,UAAUb,OAAS,SAAUxD,EAASiF,GAClD,OAAOC,KAAKwe,KAAKlgB,OAAOxD,EAASiF,EACrC,EAMAqzC,EAAgBj0C,UAAUie,eAAiB,SAAUtiB,GACjD,OAAOkF,KAAKwe,KAAKpB,eAAetiB,EACpC,EACAs4C,EAAgBj0C,UAAUu1C,kBAAoB,SAAU9gC,EAAIu4B,GACxD,IAAIv2B,EAAQhC,EAAGgC,MAAOm2B,EAAYn4B,EAAGm4B,UAAWuH,EAA4B1/B,EAAGugC,SAAUC,EAAYxgC,EAAGwgC,eAC9E,IAAtBjI,IAAgCA,EAAoB,CAAC,GACzD,IAAIlzB,EAAKjZ,KAAKib,SAAUvE,EAASuC,EAAG67B,mBAAoB3J,EAAyBlyB,EAAG87B,4BAA6BxB,EAAiCt6B,EAAGs6B,+BAAgCvH,EAAS/yB,EAAGu6B,mBAAoB53B,EAAK3C,EAAGgzB,gBAAiBA,OAAyB,IAAPrwB,EAAgB,WAAc,MAAO,CAAG,CAAG,EAAIA,EAC3SkwB,EAAqBwH,GAA6BC,GAAkC,UACxF,GAAIlB,IAAsC,oBAArBA,GAAO5zC,UACxB,OAAO4zC,GAAO5zC,UAAU,GAAI,CACxBunC,SAAUvG,GACV0L,uBAAwBA,EACxBW,mBAAoBA,EACpBE,OAAQA,EACRp2B,MAAOqmB,GAAMrmB,GACbc,OAAQA,EACRq1B,UAAWA,EACXE,gBAAiBA,EACjBE,kBAAmBA,EACnBiI,UAAWA,IAKf,MADA,GAAOh9B,MAAM,6CACP,IAAInT,MAAM,4CAExB,EAIAmvC,EAAgBj0C,UAAU2yC,mBAAqB,WAC3C,IAAIxhC,EAAQtQ,KACZ,OAAOA,KAAKgb,YAAYwB,MACnBhc,MAAK,SAAUic,GAChB,IAAKA,EACD,OAAO,EACX,IAAIs1B,EAAOzhC,EAAM0K,YAAYg3B,MAAMv1B,GAEnC,OADA,GAAOrF,MAAM,0BAA2B26B,IACjC,CACX,IACKp1B,OAAM,SAAUxgB,GAEjB,OADA,GAAOgQ,KAAK,2BAA4BhQ,IACjC,CACX,GACJ,EACOi3C,CACX,CA/WoC,GAiXzB8B,GAAa,IAAI9B,GAAgB,MAC5C,KAAQ3gC,SAASyiC,IC7djB,IAAI,GAAsC,WAStC,OARA,GAAWnvC,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,GAASjS,MAAM5C,KAAMiI,UAChC,EACI,GAAwC,SAAUF,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI,GAA4C,SAAUnL,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EAkBI,GAAS,IAAI,IAAO,OAMpB26C,GAA0B,WAK1B,SAASA,EAAS5xC,GACdvD,KAAKqqC,KAAOA,EAAA,EACZrqC,KAAK4P,MAAQ,EACb5P,KAAKgb,YAAcA,EAAA,GACnBhb,KAAKib,SAAW1X,EAChBvD,KAAKo1C,SAAW,IAAI72B,GAAahb,GACjCvD,KAAKq1C,YAAc,IAAIjC,GAAgB7vC,GACvC,GAAO6T,MAAM,cAAepX,KAAKib,SACrC,CA6HA,OA5HAk6B,EAASh2C,UAAUiQ,cAAgB,WAC/B,MAAO,KACX,EAMA+lC,EAASh2C,UAAUwQ,UAAY,SAAUpM,GACrCvD,KAAKib,SAAWlV,OAAOkJ,OAAO,CAAC,EAAGjP,KAAKib,SAAU1X,GAEjDvD,KAAKo1C,SAASp6B,YAAchb,KAAKgb,YACjChb,KAAKq1C,YAAYhL,KAAOrqC,KAAKqqC,KAC7BrqC,KAAKq1C,YAAYzlC,MAAQ5P,KAAK4P,MAC9B5P,KAAKq1C,YAAYr6B,YAAchb,KAAKgb,YACpC,IAAIs6B,EAAgBt1C,KAAKo1C,SAASzlC,UAAU3P,KAAKib,UAC7Cs6B,EAAmBv1C,KAAKq1C,YAAY1lC,UAAU3P,KAAKib,UACvD,OAAO,GAAS,GAAS,CAAC,EAAGq6B,GAAgBC,EACjD,EAQAJ,EAASh2C,UAAUqd,IAAM,SAAUkB,EAAS7U,EAAMwS,GAC9C,OAAOrb,KAAKo1C,SAAS54B,IAAIkB,EAAS7U,EAAMwS,EAC5C,EAQA85B,EAASh2C,UAAU8d,KAAO,SAAUS,EAAS7U,EAAMwS,GAC/C,OAAOrb,KAAKo1C,SAASn4B,KAAKS,EAAS7U,EAAMwS,EAC7C,EAQA85B,EAASh2C,UAAU4d,IAAM,SAAUW,EAAS7U,EAAMwS,GAC9C,OAAOrb,KAAKo1C,SAASr4B,IAAIW,EAAS7U,EAAMwS,EAC5C,EAQA85B,EAASh2C,UAAU6d,MAAQ,SAAUU,EAAS7U,EAAMwS,GAChD,OAAOrb,KAAKo1C,SAASp4B,MAAMU,EAAS7U,EAAMwS,EAC9C,EAQA85B,EAASh2C,UAAU+d,IAAM,SAAUQ,EAAS7U,EAAMwS,GAC9C,OAAOrb,KAAKo1C,SAASl4B,IAAIQ,EAAS7U,EAAMwS,EAC5C,EAQA85B,EAASh2C,UAAUge,KAAO,SAAUO,EAAS7U,EAAMwS,GAC/C,OAAOrb,KAAKo1C,SAASj4B,KAAKO,EAAS7U,EAAMwS,EAC7C,EAMA85B,EAASh2C,UAAUM,SAAW,SAAUyD,GACpC,OAAOlD,KAAKo1C,SAAS31C,SAASyD,EAClC,EAOAiyC,EAASh2C,UAAUb,OAAS,SAAUxD,EAASiF,GAC3C,OAAIC,KAAKo1C,SAASh4B,eAAetiB,GACtBkF,KAAKo1C,SAAS92C,OAAOxD,EAASiF,KAEhCC,KAAKq1C,YAAYj4B,eAAetiB,IAC9BkF,KAAKq1C,YAAY/2C,OAAOxD,EAASiF,EAGhD,EAMAo1C,EAASh2C,UAAU2c,SAAW,SAAU4B,GACpC,OAAO,GAAU1d,UAAM,OAAQ,GAAQ,WACnC,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,MAAO,CAAC,EAAc5T,KAAKo1C,SAASt5B,SAAS4B,GACjD,GACJ,GACJ,EAKAy3B,EAASh2C,UAAU20C,wBAA0B,SAAUhiB,GACnD,OAAO9xB,KAAKq1C,YAAYvB,wBAAwBhiB,EACpD,EACAqjB,EAASh2C,UAAU80C,QAAU,SAAU1wC,EAAS4oC,GAC5C,OAAOnsC,KAAKq1C,YAAYpB,QAAQ1wC,EAAS4oC,EAC7C,EACOgJ,CACX,CA3I6B,GA6IlB12B,GAAM,IAAI02B,GAAS,MAC9B,KAAQ1iC,SAASgM,G,qCCxMV,IAAI+2B,EAuBAC,EAqBAC,EApCJ,SAASC,EAAyB/oC,GACrC,IAAI5G,EAAO,CAAC,YACZ,OAAO4G,KAAS5G,EAAKgZ,MAAK,SAAU3H,GAAK,OAAOzK,EAAIC,eAAewK,EAAI,GAC3E,CACO,SAASu+B,EAA+BhpC,GAC3C,IAAI5G,EAAO,CAAC,kBACZ,OAAO4G,KAAS5G,EAAKgZ,MAAK,SAAU3H,GAAK,OAAOzK,EAAIC,eAAewK,EAAI,GAC3E,CACO,SAASw+B,EAAejpC,GAC3B,IAAI5G,EAAO,CAAC,eACZ,OAAO4G,KAAS5G,EAAKgZ,MAAK,SAAU3H,GAAK,OAAOzK,EAAIC,eAAewK,EAAI,GAC3E,CACO,SAASy+B,EAAoBC,GAChC,YAAgCr4C,IAAzBq4C,EAAMC,cACjB,CAmBO,SAASC,EAAuBrpC,GACnC,QAASA,EAAI3R,QACjB,C,iCA1CA,SAAWu6C,GACPA,EAAgC,WAAa,UAC7CA,EAAgC,UAAY,SAC5CA,EAAgC,YAAc,WAC9CA,EAAgC,UAAY,kBAC5CA,EAAgC,SAAW,iBAC9C,CAND,CAMGA,IAAoCA,EAAkC,CAAC,IAiB1E,SAAWC,GACPA,EAAe,YAAc,WAC7BA,EAAe,qBAAuB,oBACtCA,EAAe,iBAAmB,gBAClCA,EAAe,mBAAqB,kBACpCA,EAAe,iBAAmB,gBAClCA,EAAe,aAAe,YAC9BA,EAAe,eAAiB,cAChCA,EAAe,SAAW,QAC1BA,EAAe,cAAgB,aAC/BA,EAAe,0BAA4B,yBAC3CA,EAAe,iBAAmB,gBAClCA,EAAe,WAAa,UAC5BA,EAAe,gBAAkB,eACjCA,EAAe,gBAAkB,eACjCA,EAAe,mBAAqB,iBACvC,CAhBD,CAgBGA,IAAmBA,EAAiB,CAAC,IAKxC,SAAWC,GACPA,EAAkB,WAAa,UAC/BA,EAAkB,WAAa,UAC/BA,EAAkB,kBAAoB,iBACtCA,EAAkB,6BAA+B,4BACjDA,EAAkB,cAAgB,YACrC,CAND,CAMGA,IAAsBA,EAAoB,CAAC,I,oCC/D1C9gC,EAAsC,WAStC,OARAA,EAAW7O,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACOD,EAAShS,MAAM5C,KAAMiI,UAChC,EAEI8G,EAAS,IAAI,IAAO,UACbmnC,EAAuB,SAAUp8C,GACxC,IAwBIq8C,EAxBAC,EAAgB,CAAC,EAErB,GAAIt8C,EAAO,+BAAgC,CACvC,IAAIu8C,EAAY,CACZC,YAAa,CACTC,MAAOz8C,EAAO,+BACd4c,OAAQ5c,EAAO,qCAGvBs8C,EAAcC,UAAYA,CAC9B,CA6CA,OA3CIv8C,EAAO,iCAAmCA,EAAO,wBACjDs8C,EAAc/L,KAAO,CACjBmM,WAAY18C,EAAO,qBACnB28C,oBAAqB38C,EAAO,gCAC5B4c,OAAQ5c,EAAO,sBACf48C,eAAgB58C,EAAO,gCACvB68C,mBAAoB78C,EAAO,sBAC3B88C,gBAAqD,WAApC98C,EAAO,yBACxB+8C,yBAA0B/8C,EAAO,4CAA8C,SAMnFq8C,EADAr8C,EAAO,4BACS,CACZg9C,MAAO,CACHC,OAAQj9C,EAAO,4BACf4c,OAAQ5c,EAAO,mCACfk9C,2CAA4Cl9C,EAAO,wEAK3CA,EAASA,EAAOm9C,SAAWn9C,EAAS,CAAC,EAGrDA,EAAO,aACPs8C,EAAcc,QAAUtiC,EAASA,EAAS,CAAC,EAAG9a,EAAO,YAAa,CAAE4c,OAAQ5c,EAAO,yBAGnFA,EAAO,SACPs8C,EAAce,IAAMpxC,OAAOkJ,OAAO,CAAC,EAAGnV,EAAOs9C,KACzCt9C,EAAOs9C,IAAI,6BACXhB,EAAce,IAAM,CAChBE,sBAAuBv9C,EAAOs9C,IAAI,8BAI9ChB,EAAcC,UAAYtwC,OAAOkJ,OAAO,CAAC,EAAGmnC,EAAcC,UAAWv8C,EAAOu8C,WAC5ED,EAAc/L,KAAOtkC,OAAOkJ,OAAO,CAAC,EAAGmnC,EAAc/L,KAAMvwC,EAAOuwC,MAClE+L,EAAca,QAAUlxC,OAAOkJ,OAAO,CAAC,EAAGknC,GAC1CC,EAAcc,QAAUnxC,OAAOkJ,OAAO,CAAC,EAAGmnC,EAAcc,QAASp9C,EAAOo9C,SACxEnoC,EAAOqI,MAAM,eAAgBtd,EAAQ,mBAAoBs8C,GAClDA,CACX,EAIItlB,EAAwB,WACxB,SAASA,IACT,CAEA,OADAA,EAAOwmB,qBAAuBpB,EACvBplB,CACX,CAL2B,G,WCzEpB,SAASymB,IAEZ,MAA2B,kBAAbnuC,UAAoD,kBAApBA,SAASJ,MAC3D,CAQO,SAASwuC,EAAal+C,EAASiK,GAClC,MAAuB,kBAAZjK,EACA0P,EAAA,EAAa1P,EAASiK,GAEL,kBAAZjK,GAAoC,OAAZA,EAC7BA,EAGA,CAAC,CAEhB,CACO,SAASm+C,EAAgBv7C,EAAOw7C,GAMnC,MAL0B,qBAAfA,IAEPA,GACKx7C,GAAuB,MAAbA,EAAM,IAA2B,MAAbA,EAAM,IAA2B,MAAbA,EAAM,KAEzDw7C,CACZ,CACO,SAASC,EAAWz7C,EAAOqH,QACd,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIq0C,EAAaC,EAAmB37C,GACpC,GAAIu7C,EAAgBG,EAAYr0C,EAAQm0C,YACpC,IACI,OAAO5wC,KAAKC,MAAM6wC,EACtB,CACA,MAAO3wC,GAEP,CAIJ,OAAO/K,CACX,CACA,SAAS27C,EAAmB37C,GAExB,OAAIA,GAAsB,MAAbA,EAAM,IAA2B,MAAbA,EAAM,GAC5BA,EAAMmP,OAAO,GAEjBnP,CACX,CCpDA,IAAI,EAAsC,WAStC,OARA,EAAW6J,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,EAASjS,MAAM5C,KAAMiI,UAChC,EAGI6vC,EAAyB,WACzB,SAASA,EAAQx+C,EAASiK,GACtB,IAAI+M,EAAQtQ,KACZA,KAAK+3C,gBAAkB,GACvB/3C,KAAKg4C,qBAAsB,EAC3Bh4C,KAAK1G,QAAUk+C,EAAal+C,EAASiK,GACrC,IAAIxJ,SAAQ,WACRuW,EAAM0nC,oBAAsBT,GAChC,IAAG56B,OAAM,WAAc,GAC3B,CAuDA,OAtDAm7B,EAAQ34C,UAAU84C,qBAAuB,SAAUC,GAC1Cl4C,KAAKg4C,sBAGVh4C,KAAK1G,QAAU0P,EAAA,EAAaI,SAASJ,OAAQkvC,GACjD,EACAJ,EAAQ34C,UAAUg5C,YAAc,SAAU57C,GACtC,IAAK,IAAImE,EAAI,EAAGA,EAAIV,KAAK+3C,gBAAgBn3C,SAAUF,EAC/CV,KAAK+3C,gBAAgBr3C,GAAGnE,EAEhC,EACAu7C,EAAQ34C,UAAUqd,IAAM,SAAU7X,EAAMpB,EAAS20C,GAG7C,YAFgB,IAAZ30C,IAAsBA,EAAU,CAAC,GACrCvD,KAAKi4C,qBAAqBC,GACnBP,EAAW33C,KAAK1G,QAAQqL,GAAOpB,EAC1C,EACAu0C,EAAQ34C,UAAUi5C,OAAS,SAAU70C,EAAS20C,QAC1B,IAAZ30C,IAAsBA,EAAU,CAAC,GACrCvD,KAAKi4C,qBAAqBC,GAC1B,IAAIrsC,EAAS,CAAC,EACd,IAAK,IAAIwsC,KAAUr4C,KAAK1G,QACpBuS,EAAOwsC,GAAUV,EAAW33C,KAAK1G,QAAQ++C,GAAS90C,GAEtD,OAAOsI,CACX,EACAisC,EAAQ34C,UAAUse,IAAM,SAAU9Y,EAAMzI,EAAOqH,GAC3C,IAAIqQ,EACiB,kBAAV1X,IACPA,EAAQ4K,KAAKI,UAAUhL,IAE3B8D,KAAK1G,QAAU,EAAS,EAAS,CAAC,EAAG0G,KAAK1G,UAAWsa,EAAK,CAAC,EAAGA,EAAGjP,GAAQzI,EAAO0X,IAC5E5T,KAAKg4C,sBACL5uC,SAASJ,OAASA,EAAA,EAAiBrE,EAAMzI,EAAOqH,IAEpDvD,KAAKm4C,YAAY,CAAExzC,KAAMA,EAAMzI,MAAOA,EAAOqH,QAASA,GAC1D,EACAu0C,EAAQ34C,UAAUqK,OAAS,SAAU7E,EAAMpB,GACvC,IAAI+0C,EAAgB/0C,EAAU,EAAS,EAAS,CAAC,EAAGA,GAAU,CAAEqF,QAAS,IAAIM,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAIqvC,OAAQ,IAChHv4C,KAAK1G,QAAU,EAAS,CAAC,EAAG0G,KAAK1G,gBAC1B0G,KAAK1G,QAAQqL,GAChB3E,KAAKg4C,sBACL5uC,SAASJ,OAASA,EAAA,EAAiBrE,EAAM,GAAI2zC,IAEjDt4C,KAAKm4C,YAAY,CAAExzC,KAAMA,EAAMzI,WAAOwB,EAAW6F,QAASA,GAC9D,EACAu0C,EAAQ34C,UAAUq5C,kBAAoB,SAAUltC,GAC5CtL,KAAK+3C,gBAAgB72C,KAAKoK,EAC9B,EACAwsC,EAAQ34C,UAAUs5C,qBAAuB,SAAUntC,GAC/C,IAAIotC,EAAM14C,KAAK+3C,gBAAgBl7C,QAAQyO,GACnCotC,GAAO,GACP14C,KAAK+3C,gBAAgB32C,OAAOs3C,EAAK,EAEzC,EACOZ,CACX,CAjE4B,GAkE5B,IC9EA,I,WCCIa,GAAY,UAAgBA,UAC5BC,EAAkC,WAClC,SAASA,EAAiB35C,QACN,IAAZA,IAAsBA,EAAU,CAAC,GACrCe,KAAK1G,QAAU,IAAI,EACnB0G,KAAKyO,MAAQkqC,EAAY9tC,OAAOguC,aAAe9yC,OAAO1G,OAAO,MAC7DW,KAAK1G,QAAU2F,EAAQ65C,IACjB,IAAI,EAAQ75C,EAAQ65C,IAAIx+C,QAAQ0O,QAChC,IAAI,EACVjD,OAAOkJ,OAAOjP,KAAKyO,MAAOzO,KAAK1G,QAAQ8+C,SAC3C,CA8EA,OA7EAryC,OAAOuc,eAAes2B,EAAiBz5C,UAAW,SAAU,CACxDqd,IAAK,WACD,OAAOzW,OAAO2iC,QAAQ1oC,KAAKyO,OAAO7N,MACtC,EACAqhB,YAAY,EACZM,cAAc,IAElBq2B,EAAiBz5C,UAAUwP,MAAQ,WAC/B,IAAI2B,EAAQtQ,KACZ2C,MAAM49B,KAAK,IAAI59B,MAAM3C,KAAKY,SACrBiV,KAAI,SAAUsE,EAAGzZ,GAAK,OAAO4P,EAAMxS,IAAI4C,EAAI,IAC3C9C,SAAQ,SAAUE,GAAO,OAAOwS,EAAMxB,WAAWhR,EAAM,GAChE,EACA86C,EAAiBz5C,UAAUyP,QAAU,SAAU9Q,GAC3C,OAAOkC,KAAK+4C,aAAaj7C,EAC7B,EACA86C,EAAiBz5C,UAAU45C,aAAe,SAAUj7C,GAChD,OAAOiI,OAAO5G,UAAU0N,eAAezI,KAAKpE,KAAKyO,MAAO3Q,GAClDkC,KAAKyO,MAAM3Q,GACX,IACV,EACA86C,EAAiBz5C,UAAU65C,iBAAmB,SAAUl7C,GACpD,OAAOkC,KAAK1G,QAAQkjB,IAAI1e,EAC5B,EACA86C,EAAiBz5C,UAAUrB,IAAM,SAAUqD,GACvC,OAAO4E,OAAOC,KAAKhG,KAAKyO,OAAOtN,EACnC,EACAy3C,EAAiBz5C,UAAU2P,WAAa,SAAUhR,GAC9CkC,KAAKi5C,gBAAgBn7C,GACrBkC,KAAKk5C,oBAAoBp7C,EAC7B,EACA86C,EAAiBz5C,UAAU85C,gBAAkB,SAAUn7C,UAC5CkC,KAAKyO,MAAM3Q,EACtB,EACA86C,EAAiBz5C,UAAU+5C,oBAAsB,SAAUp7C,GACvDkC,KAAK1G,QAAQkQ,OAAO1L,EAAK,CACrB+K,KAAM,KAEd,EACA+vC,EAAiBz5C,UAAU0P,QAAU,SAAU/Q,EAAK5B,GAChD8D,KAAKm5C,aAAar7C,EAAK5B,GAIvB,IAAIk9C,EAAYt7C,EAAIqN,MAAM,KAAKuP,MAC/B,OAAQ0+B,GAEJ,IAAK,eAEL,IAAK,cAGL,IAAK,eAEL,IAAK,UACDT,EACM34C,KAAKq5C,iBAAiBv7C,EAAK5B,GAC3B8D,KAAKm5C,aAAar7C,EAAK5B,GAOzC,EACA08C,EAAiBz5C,UAAUg6C,aAAe,SAAUr7C,EAAK5B,GACrD8D,KAAKyO,MAAM3Q,GAAO5B,CACtB,EACA08C,EAAiBz5C,UAAUk6C,iBAAmB,SAAUv7C,EAAK5B,GACzD8D,KAAK1G,QAAQmkB,IAAI3f,EAAK5B,EAAO,CACzB2M,KAAM,IAENywC,UAAU,EAEVvwC,OAAqC,cAA7B8B,OAAOC,SAASL,UAEhC,EACOmuC,CACX,CAxFqC,G,WCH9B,SAASW,EAAc7sC,GAC1B,OAAOA,EACFvB,MAAM,IACN0K,KAAI,SAAU2jC,GACf,OAAOA,EACFrsC,WAAW,GACXlN,SAAS,IACTw5C,SAAS,EAAG,IACrB,IACKjxC,KAAK,GACd,CACO,SAASkxC,EAAcC,GAC1B,OAAOA,EACFtwC,MAAM,SACNwM,KAAI,SAAU2jC,GAAQ,OAAOxtB,OAAO0D,aAAakqB,SAASJ,EAAM,IAAM,IACtEhxC,KAAK,GACd,C,IChBWqxC,E,iCCYPC,EAAO,QACAC,EAAY,SAAUt+C,GAC7B,IAAIu+C,EAAcnvC,OAAOzO,KAAKX,EAAKq+C,GACnC,OAAIE,EACOjgD,QAAQC,QAAQggD,GAGhBjgD,QAAQE,QAEvB,ECTWggD,EAAW,SAAUC,GAC5BrvC,OAAOsvC,eAAetrC,QAAQ,cAAeqrC,EACjD,EACWE,EAAW,WAClB,IAAIC,EAAcxvC,OAAOsvC,eAAevrC,QAAQ,eAEhD,OADA/D,OAAOsvC,eAAerrC,WAAW,eAC1BurC,CACX,EACWC,EAAU,SAAUC,GAC3B1vC,OAAOsvC,eAAetrC,QAAQ,iBAAkB0rC,EACpD,EACWC,EAAU,WACjB,IAAIC,EAAiB5vC,OAAOsvC,eAAevrC,QAAQ,kBAEnD,OADA/D,OAAOsvC,eAAerrC,WAAW,kBAC1B2rC,CACX,E,wCCfI,EAAsC,WAStC,OARA,EAAW10C,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,EAASjS,MAAM5C,KAAMiI,UAChC,EACIwR,EAAwC,SAAU1R,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI6G,EAA4C,SAAUhS,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EACIkY,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACX,EAQI+wB,EAAoC,qBAAXlxB,QACH,oBAAfA,OAAO4W,IACZ5W,OAAO4W,IAAI,mBACX,oBACFgxB,EAAoB,SAAUtV,EAAOhrC,EAAM2F,GAC3CslC,EAAA,GAAIC,SAAS,OAAQ,CAAEF,MAAOA,EAAOhrC,KAAMA,EAAM2F,QAASA,GAAW,OAAQikC,EACjF,EACI,GAAS,IAAI,IAAO,SACpB2W,GAAuB,WACvB,SAASA,EAAM/mC,GACX,IAAI9Z,EAAS8Z,EAAG9Z,OAAQ8gD,EAAkBhnC,EAAGgnC,gBAAiB3hC,EAAKrF,EAAGinC,OAAQA,OAAgB,IAAP5hC,EAAgB,GAAKA,EAI5G,GAHAjZ,KAAK86C,WAAahhD,EAAOihD,WAAahB,EACtC/5C,KAAK6/B,QAAU/lC,EACfkG,KAAKg7C,iBAAmBJ,GACnB56C,KAAKi7C,cAAcJ,GACpB,MAAM52C,MAAM,iCAChBjE,KAAKk7C,QAAUL,CACnB,CAoPA,OAnPAF,EAAMx7C,UAAU87C,cAAgB,SAAUJ,GACtC,OAAQl4C,MAAM4C,QAAQs1C,IAAWA,EAAOM,OAAM,SAAUnkC,GAAS,MAAwB,kBAAVA,CAAoB,GACvG,EACA2jC,EAAMx7C,UAAUi8C,YAAc,SAAU7gD,EAAcuO,EAAQktC,EAAgBlR,EAAUkB,EAAUqV,QACzE,IAAjB9gD,IAA2BA,EAAe,aAC7B,IAAbyrC,IAAuBA,EAAWwP,EAAgC8F,SACtE,IAAIC,EAAiBv7C,KAAKw7C,eAAe,IAOrCtB,EAAQmB,EACNE,EAAiB,IAAMhC,EAAc8B,GACrCE,EACN,EAAsBrB,GACtB,IAAIuB,EAAWz7C,KAAK07C,gBAAgB,KACpC,EAAqBD,GACrB,IAAIE,EAAiB37C,KAAK47C,mBAAmBH,GACzCI,EAAwB,OACxBC,EAAe97C,KAAKk7C,QAAQ1yC,KAAK,KACjCuzC,EAAch2C,OAAO2iC,QAAQ,EAAS,EAAS,CAAEsT,aAAchG,EAAgBiG,cAAe1hD,EAAc2hD,UAAWpX,EAAUqX,kBAAmBnW,EAAUhvB,MAAO8kC,EAAc5B,MAAOA,GAA2B,SAAjB3/C,EAA0B,CAAEohD,eAAgBA,GAAmB,CAAC,GAAuB,SAAjBphD,EAA0B,CAAEshD,sBAAuBA,GAA0B,CAAC,IACvVhmC,KAAI,SAAUjC,GACf,IAAIqF,EAAKvG,EAAOkB,EAAI,GAAIyD,EAAI4B,EAAG,GAAI5Q,EAAI4Q,EAAG,GAC1C,OAAO7d,mBAAmBic,GAAK,IAAMjc,mBAAmBiN,EAC5D,IACKG,KAAK,KACN4zC,EAAM,WAAatzC,EAAS,qBAAuBizC,EACvD,GAAO3kC,MAAM,kBAAoBglC,GACjCp8C,KAAK86C,WAAWsB,EAAKpG,EACzB,EACA2E,EAAMx7C,UAAUk9C,gBAAkB,SAAUC,GACxC,OAAO7iC,EAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAIgE,EAAMu4C,EAAoBC,EAAwBC,EAAoBP,EAAWF,EAAcU,EAAeC,EAAgBxkC,EAAMvE,EAAIgpC,EAAcC,EAAeC,EAAU55C,EACnL,OAAO6W,EAAY/Z,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EAWD,OAVApW,IAAQ,QAAMs4C,GAAY1mC,OAAS,IAC9BzK,MAAM,KACN0K,KAAI,SAAUknC,GAAY,OAAOA,EAAS5xC,MAAM,IAAM,IACtDkR,QAAO,SAAU2gC,EAAOppC,GACzB,IAAIqF,EACA2C,EAAKlJ,EAAOkB,EAAI,GAAIyD,EAAIuE,EAAG,GAAIvT,EAAIuT,EAAG,GAC1C,OAAQ,EAAS,EAAS,CAAC,EAAGohC,IAAS/jC,EAAK,CAAC,EAAGA,EAAG5B,GAAKhP,EAAG4Q,GAC/D,GAAG,CAAEjV,UAAMtG,IAAasG,KACxBu4C,GAAqB,QAAMD,GAAY3xC,UAAY,IACnD6xC,GAAyB,QAAMx8C,KAAK6/B,QAAQmW,gBAAgBrrC,UAAY,IACnE3G,GAAQu4C,IAAuBC,GAGpCC,EAAqB,WAAaz8C,KAAK6/B,QAAQ/2B,OAAS,gBACxD4xC,EAAkB,WAAY,CAAC,EAAG,0BAA4B+B,GAC9DP,EAAYpG,EAAoB91C,KAAK6/B,SAC/B7/B,KAAKg7C,iBACLh7C,KAAK6/B,QAAQod,SACnBjB,EAAelG,EAAoB91C,KAAK6/B,SAClC7/B,KAAK6/B,QAAQmW,eACbh2C,KAAK6/B,QAAQqd,YACnBR,EAAgB,IAChBC,EAAiB,EAAS,CAAEQ,WAAY,qBAAsBn5C,KAAMA,EAChEk4C,UAAWA,EACXF,aAAcA,GAAiBU,EAAgB,CAAEA,cAAeA,GAAkB,CAAC,GACvF,GAAOtlC,MAAM,2BAA6BqlC,EAAqB,QAASE,GACxExkC,EAAOpS,OAAO2iC,QAAQiU,GACjB9mC,KAAI,SAAUjC,GACf,IAAIqF,EAAKvG,EAAOkB,EAAI,GAAIyD,EAAI4B,EAAG,GAAI5Q,EAAI4Q,EAAG,GAC1C,OAAO7d,mBAAmBic,GAAK,IAAMjc,mBAAmBiN,EAC5D,IACKG,KAAK,KACH,CAAC,EAAa40C,MAAMX,EAAoB,CACvCpgD,OAAQ,OACR/B,QAAS,CACL,eAAgB,qCAEpB6d,KAAMA,MA1BH,CAAC,GA4BhB,KAAK,EAAG,MAAO,CAAC,EAAcc,EAAGoB,OAAQgjC,QACzC,KAAK,EAED,GADAzpC,EAAKqF,EAAGoB,OAAQuiC,EAAehpC,EAAGgpC,aAAcC,EAAgBjpC,EAAGipC,cAAeC,EAAWlpC,EAAGkpC,SAAU55C,EAAQ0Q,EAAG1Q,MACjHA,EACA,MAAM,IAAIe,MAAMf,GAEpB,MAAO,CAAC,EAAc,CACdo6C,YAAaV,EACbW,aAAcV,EACdW,QAASV,IAG7B,GACJ,GACJ,EACAnC,EAAMx7C,UAAUs+C,oBAAsB,SAAUnB,GAC5C,OAAO7iC,EAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAI4T,EAAIkpC,EAAUF,EAClB,OAAO7iC,EAAY/Z,MAAM,SAAUiZ,GAe/B,OAdArF,IAAM,QAAM0oC,GAAY9xC,MAAQ,KAC3Ba,OAAO,GACPF,MAAM,KACN0K,KAAI,SAAUknC,GAAY,OAAOA,EAAS5xC,MAAM,IAAM,IACtDkR,QAAO,SAAU2gC,EAAOppC,GACzB,IAAIqF,EACA2C,EAAKlJ,EAAOkB,EAAI,GAAIyD,EAAIuE,EAAG,GAAIvT,EAAIuT,EAAG,GAC1C,OAAQ,EAAS,EAAS,CAAC,EAAGohC,IAAS/jC,EAAK,CAAC,EAAGA,EAAG5B,GAAKhP,EAAG4Q,GAC/D,GAAG,CACC6jC,cAAUp/C,EACVk/C,kBAAcl/C,IACdo/C,EAAWlpC,EAAGkpC,SAAUF,EAAehpC,EAAGgpC,aAC9ClC,EAAkB,eAAgB,CAAC,EAAG,mBAAqB4B,GAC3D,GAAOllC,MAAM,mCAAqCklC,EAAa,SACxD,CAAC,EAAc,CACdgB,YAAaV,EACbY,QAASV,EACTS,aAAc,MAE1B,GACJ,GACJ,EACA5C,EAAMx7C,UAAUu+C,mBAAqB,SAAUpB,GAC3C,OAAO7iC,EAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAI29C,EAAWz6C,EAAO06C,EAAmB1D,EAAOtmC,EAAIqF,EAAIgoB,EACxD,OAAOlnB,EAAY/Z,MAAM,SAAU4b,GAC/B,OAAQA,EAAGxB,OACP,KAAK,EAmBD,GAlBAwB,EAAGtB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACtBy8C,EAAYrB,EACN,EAAS,EAAS,CAAC,IAAI,QAAMA,GAAY9xC,MAAQ,KAC9Ca,OAAO,GACPF,MAAM,KACN0K,KAAI,SAAUgoC,GAAS,OAAOA,EAAM1yC,MAAM,IAAM,IAChDkR,QAAO,SAAUC,EAAK1I,GACvB,IAAIqF,EAAKvG,EAAOkB,EAAI,GAAIyD,EAAI4B,EAAG,GAAI5Q,EAAI4Q,EAAG,GAC1C,OAASqD,EAAIjF,GAAKhP,EAAIiU,CAC1B,GAAG,CAAC,MAAM,QAAMggC,GAAY1mC,OAAS,IAChCzK,MAAM,KACN0K,KAAI,SAAUgoC,GAAS,OAAOA,EAAM1yC,MAAM,IAAM,IAChDkR,QAAO,SAAUC,EAAK1I,GACvB,IAAIqF,EAAKvG,EAAOkB,EAAI,GAAIyD,EAAI4B,EAAG,GAAI5Q,EAAI4Q,EAAG,GAC1C,OAASqD,EAAIjF,GAAKhP,EAAIiU,CAC1B,GAAG,CAAC,IACF,CAAC,EACPpZ,EAAQy6C,EAAUz6C,MAAO06C,EAAoBD,EAAUC,kBACnD16C,EACA,MAAM,IAAIe,MAAM25C,GAIpB,OAFA1D,EAAQl6C,KAAK89C,eAAeH,GAC5B,GAAOvmC,MAAM,YAAcpX,KAAK6/B,QAAQtlC,aAAe,cAAgB+hD,GACnC,SAA9Bt8C,KAAK6/B,QAAQtlC,aAAiC,CAAC,EAAa,IAClEqZ,EAAK,CAAC,CAAC,GACA,CAAC,EAAa5T,KAAKq8C,gBAAgBC,KAC9C,KAAK,EAAG,MAAO,CAAC,EAAc,EAAS15C,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQgR,EAAG/Q,OAAO,CAAE+Y,EAAGvB,UAAY,CAAE6/B,MAAOA,MACjH,KAAK,EAED,OADAjhC,EAAK,CAAC,CAAC,GACA,CAAC,EAAajZ,KAAKy9C,oBAAoBnB,IAClD,KAAK,EAAG,MAAO,CAAC,EAAc,EAAS15C,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQqW,EAAGpW,OAAO,CAAE+Y,EAAGvB,UAAY,CAAE6/B,MAAOA,MACjH,KAAK,EAAG,MAAO,CAAC,EAAa,GAC7B,KAAK,EAGD,MAFAjZ,EAAMrlB,EAAGvB,OACT,GAAOnX,MAAM,gCAAiC+9B,GACxCA,EACV,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EACA0Z,EAAMx7C,UAAU2+C,eAAiB,SAAUH,GACvC,GAAKA,EAAL,CAGA,IAAII,EAAa,IACbC,EAAgBL,EAAUzD,MAE9B,GAAI6D,GAAcA,IAAeC,EAC7B,MAAM,IAAI/5C,MAAM,+BAEpB,OAAO+5C,CAPP,CAQJ,EACArD,EAAMx7C,UAAU8+C,QAAU,WACtB,OAAOxkC,EAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAIk+C,EAAqBhC,EAAWiC,EACpC,OAAOpkC,EAAY/Z,MAAM,SAAU4T,GAmB/B,OAlBAsqC,EAAsB,WAAal+C,KAAK6/B,QAAQ/2B,OAAS,WACzDozC,EAAYpG,EAAoB91C,KAAK6/B,SAC/B7/B,KAAKg7C,iBACLh7C,KAAK6/B,QAAQkW,MAAMkH,SACzBkB,EAAcrI,EAAoB91C,KAAK6/B,SACjC7/B,KAAK6/B,QAAQue,gBACbp+C,KAAK6/B,QAAQwe,SACnBH,GAAuBn4C,OAAO2iC,QAAQ,CAClCwT,UAAWA,EACXoC,WAAYljD,mBAAmB+iD,KAE9BtoC,KAAI,SAAUjC,GACf,IAAIqF,EAAKvG,EAAOkB,EAAI,GAAIyD,EAAI4B,EAAG,GAAI5Q,EAAI4Q,EAAG,GAC1C,OAAO5B,EAAI,IAAMhP,CACrB,IACKG,KAAK,KACVkyC,EAAkB,eAAgB,CAAE6D,MAAO,WAAa,oBAAsBL,GAC9E,GAAO9mC,MAAM,oBAAsB8mC,GAC5B,CAAC,EAAcl+C,KAAK86C,WAAWoD,EAAqBC,GAC/D,GACJ,GACJ,EACAxD,EAAMx7C,UAAUq8C,eAAiB,SAAU56C,GAIvC,IAHA,IAAIiL,EAAS,GACTnL,EAAIE,EACJ49C,EAAQ,iEACL99C,EAAI,IAAKA,EACZmL,GAAU2yC,EAAMjwC,KAAKkwC,MAAMlwC,KAAKmwC,UAAYF,EAAM59C,OAAS,KAC/D,OAAOiL,CACX,EACA8uC,EAAMx7C,UAAUy8C,mBAAqB,SAAU53C,GAC3C,OAAOhE,KAAK2+C,WAAW,IAAO36C,GAClC,EACA22C,EAAMx7C,UAAUw/C,WAAa,SAAUC,GACnC,OAAOA,EACF3+C,SAAS,KACTmD,QAAQ,KAAM,IACdA,QAAQ,MAAO,KACfA,QAAQ,MAAO,IACxB,EACAu3C,EAAMx7C,UAAUu8C,gBAAkB,SAAUvqC,GACxC,IAAI0tC,EAAU,qEACVp3C,EAAS,IAAIq3C,WAAW3tC,GAC5B,GAAsB,qBAAXtG,QAA4BA,OAAOk0C,OAC1Cl0C,OAAOk0C,OAAOC,gBAAgBv3C,QAG9B,IAAK,IAAI/G,EAAI,EAAGA,EAAIyQ,EAAMzQ,GAAK,EAC3B+G,EAAO/G,GAAM6N,KAAKmwC,SAAWG,EAAQj+C,OAAU,EAGvD,OAAOZ,KAAKi/C,gBAAgBx3C,EAChC,EACAkzC,EAAMx7C,UAAU8/C,gBAAkB,SAAUx3C,GAGxC,IAFA,IAAIo3C,EAAU,iEACV3E,EAAQ,GACHx5C,EAAI,EAAGA,EAAI+G,EAAOy3C,WAAYx+C,GAAK,EAAG,CAC3C,IAAIS,EAAQsG,EAAO/G,GAAKm+C,EAAQj+C,OAChCs5C,EAAMh5C,KAAK29C,EAAQ19C,GACvB,CACA,OAAO+4C,EAAM1xC,KAAK,GACtB,EACOmyC,CACX,CA9P0B,GA+P1B,MC5UA,YAA0BrvC,GACtB,IAAI,UAAgBqtC,WAAa9tC,OAAOC,SAAU,CAC9C,IAAIrP,EAAMoP,OAAOC,SAASX,KAC1BmB,EAAS,CAAE7P,IAAKA,GACpB,MACK,KAAI,UAAgB8uB,OAKrB,MAAM,IAAItmB,MAAM,gBAEvB,GJxBD,SAAW41C,GACPA,EAAiB,eAAiB,uBAClCA,EAAiB,eAAiB,wBAClCA,EAAiB,eAAiB,+BAClCA,EAAiB,kBAAoB,2BACrCA,EAAiB,oBAAsB,qEACvCA,EAAiB,kBAAoB,2BACrCA,EAAiB,cAAgB,oCACjCA,EAAiB,iBAAmB,yBACpCA,EAAiB,UAAY,+BAC7BA,EAAiB,eAAiB,mBAClCA,EAAiB,mBAAqB,qCACtCA,EAAiB,mBAAqB,sDACtCA,EAAiB,iBAAmB,gBACpCA,EAAiB,iBAAmB,4DACpCA,EAAiB,oBAAsB,wCAC1C,EAhBD,CAgBGA,IAAqBA,EAAmB,CAAC,IKL5C,IAAIhqC,GAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAG/C,GAI7B,OAHA8C,EAAgB/J,OAAOiK,gBAClB,CAAEC,UAAW,cAAgBtN,OAAS,SAAUoN,EAAG/C,GAAK+C,EAAEE,UAAYjD,CAAG,GAC1E,SAAU+C,EAAG/C,GAAK,IAAK,IAAIkD,KAAKlD,EAAOA,EAAEH,eAAeqD,KAAIH,EAAEG,GAAKlD,EAAEkD,GAAI,EACtEJ,EAAcC,EAAG/C,EAC5B,EACA,OAAO,SAAU+C,EAAG/C,GAEhB,SAASmD,IAAOnQ,KAAKoM,YAAc2D,CAAG,CADtCD,EAAcC,EAAG/C,GAEjB+C,EAAE5Q,UAAkB,OAAN6N,EAAajH,OAAO1G,OAAO2N,IAAMmD,EAAGhR,UAAY6N,EAAE7N,UAAW,IAAIgR,EACnF,CACH,CAZ2C,GAexC,GAAS,IAAI,IAAO,aACpBgvC,GAA2B,SAAU9uC,GAErC,SAAS8uC,EAAU5gD,GACf,IAAI+R,EAAQtQ,KACR4T,EAAKwrC,GAAkB7gD,GAAOwB,EAAU6T,EAAG7T,QAASmS,EAAM0B,EAAG1B,IASjE,OARA5B,EAAQD,EAAOjM,KAAKpE,KAAMD,IAAYC,KAGtCsQ,EAAMlE,YAAc+yC,EACpBp5C,OAAOiK,eAAeM,EAAO6uC,EAAUhgD,WACvCmR,EAAM3L,KAAO,YACb2L,EAAM4B,IAAMA,GAAOnS,EACnB,GAAOmD,MAAMoN,EAAM4B,KACZ5B,CACX,CACA,OAdAT,GAAUsvC,EAAW9uC,GAcd8uC,CACX,CAhB8B,CAgB5Bl7C,OAEEo7C,GAAiC,SAAUhvC,GAE3C,SAASgvC,EAAgB9gD,GACrB,IAAI+R,EAAQD,EAAOjM,KAAKpE,KAAMzB,IAASyB,KAMvC,OAHAsQ,EAAMlE,YAAcizC,EACpBt5C,OAAOiK,eAAeM,EAAO+uC,EAAgBlgD,WAC7CmR,EAAM3L,KAAO,kBACN2L,CACX,CACA,OAVAT,GAAUwvC,EAAiBhvC,GAUpBgvC,CACX,CAZoC,CAYlCF,IAESC,GAAoB,CAC3BE,SAAU,CACNv/C,QAAS85C,EAAiB0F,YAC1BrtC,IAAK,+nBAETstC,kBAAmB,CACfz/C,QAAS85C,EAAiB0F,YAC1BrtC,IAAK,soBAETutC,cAAe,CACX1/C,QAAS85C,EAAiB6F,gBAG9BC,gBAAiB,CACb5/C,QAAS85C,EAAiB+F,kBAE9BC,cAAe,CACX9/C,QAAS85C,EAAiBiG,gBAE9BC,UAAW,CACPhgD,QAAS85C,EAAiBmG,YAE9BC,YAAa,CACTlgD,QAAS85C,EAAiBqG,cAC1BhuC,IAAK,kEAETiuC,MAAO,CACHpgD,QAAS85C,EAAiBuG,QAE9BC,WAAY,CACRtgD,QAAS85C,EAAiByG,aAE9BC,uBAAwB,CACpBxgD,QAAS85C,EAAiB2G,iBAE9BC,cAAe,CACX1gD,QAAS85C,EAAiB6G,iBAE9BC,aAAc,CACV5gD,QAAS85C,EAAiB+G,eAE9BC,aAAc,CACV9gD,QAAS85C,EAAiBiH,eAE9BC,gBAAiB,CACbhhD,QAAS85C,EAAiBmH,kBAE9BC,QAAS,CACLlhD,QAAS85C,EAAiB0F,cChG9B,GAAsC,WAStC,OARA,GAAWx5C,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,GAASjS,MAAM5C,KAAMiI,UAChC,EACI,GAAwC,SAAUF,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI,GAA4C,SAAUnL,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EACI,GAAkC,SAAUmY,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACX,EASI,GAAS,IAAI,IAAO,aACpBiuC,GAAmB,gCAEnBC,GAAwB,IACxB,GAAoC,qBAAXruC,QAAgD,oBAAfA,OAAO4W,IAC/D5W,OAAO4W,IAAI,mBACX,oBACF,GAAoB,SAAU0b,EAAOhrC,EAAM2F,GAC3CslC,EAAA,GAAIC,SAAS,OAAQ,CAAEF,MAAOA,EAAOhrC,KAAMA,EAAM2F,QAASA,GAAW,OAAQ,GACjF,EAIIqhD,GAAc,GACdC,GAA4B,KAI5BC,GAA2B,WAK3B,SAASA,EAAUxnD,GACf,IAAIwW,EAAQtQ,KACZA,KAAKuhD,SAAW,KAChBvhD,KAAKwhD,KAAO,KACZxhD,KAAKyhD,qBAAsB,EAC3BzhD,KAAK0hD,qBAAsB,EAC3B1hD,KAAKgb,YAAcA,EAAA,GACnBhb,KAAK2hD,2BAA6B,SAAUr2C,GACxC,IAAIs2C,EAAU,SAAU1+C,EAAO9I,GAO3B,OANIA,EACA,GAAkB,oBAAgBsD,EAAW,uBAG7C,GAAkB,uBAAwBwF,EAAO,gCAE9CoI,EAASpI,EAAO9I,EAC3B,EACA,OAAOwnD,CACX,EACA5hD,KAAK2P,UAAU7V,GACfkG,KAAK6hD,mBAAqB7hD,KAAK6hD,mBAAmBjjD,KAAKoB,MACvDA,KAAK8hD,uBAAyB9hD,KAAK8hD,uBAAuBljD,KAAKoB,MAC/DqlC,EAAA,GAAI0c,OAAO,QAAQ,SAAUnuC,GACzB,IAAIjK,EAAUiK,EAAGjK,QACby7B,EAAQz7B,EAAQy7B,MACpB,OAAQA,GACJ,IAAK,SACD90B,EAAM0xC,SAASnzC,QAAQ,+BAAgC,SACvD,MACJ,IAAK,UACDyB,EAAM0xC,SAASlzC,WAAW,gCAC1B,MACJ,IAAK,kBACDwB,EAAM0xC,SAASnzC,QAAQ,+BAAgC,QACvD,MAEZ,GACJ,CA+0EA,OA90EAyyC,EAAUniD,UAAUiQ,cAAgB,WAChC,MAAO,MACX,EACAkyC,EAAUniD,UAAUwQ,UAAY,SAAU7V,GACtC,IAAIwW,EAAQtQ,KACZ,IAAKlG,EACD,OAAOkG,KAAK6/B,SAAW,CAAC,EAC5B,GAAOzoB,MAAM,kBACb,IAAI6qC,EAAOl8C,OAAOkJ,OAAO,CAAC,EAAGjP,KAAK6/B,QAAS/O,EAAOwmB,qBAAqBx9C,GAAQuwC,KAAMvwC,GACrFkG,KAAK6/B,QAAUoiB,EACf,IAAIruC,EAAK5T,KAAK6/B,QAAS2W,EAAa5iC,EAAG4iC,WAAYC,EAAsB7iC,EAAG6iC,oBAAqByL,EAAgBtuC,EAAGsuC,cAAenM,EAAQniC,EAAGmiC,MAAOr/B,EAAS9C,EAAG8C,OAAQggC,EAAiB9iC,EAAG8iC,eAAgBE,EAAkBhjC,EAAGgjC,gBAAiBuL,EAAkBvuC,EAAGuuC,gBAAiBxL,EAAqB/iC,EAAG+iC,mBAAoByL,EAAiBxuC,EAAGwuC,eAAgBtmC,EAAWlI,EAAGkI,SACvX,GAAK9b,KAAK6/B,QAAQnyB,QAUb,CACD,IAAK1N,KAAKqiD,oBAAoBriD,KAAK6/B,QAAQnyB,SAEvC,MADA,GAAOxK,MAAM,gDACP,IAAIe,MAAM,wBAEpBjE,KAAKgiD,SAAWhiD,KAAK6/B,QAAQnyB,OACjC,MAbQ1N,KAAKgiD,SADLE,EACgB,IAAI,KAAcA,GAElBpoD,EAAOg5C,IACjB,IAAI8F,GACJ,IAAIjrC,EAAA,IAAgBC,aAclC,GAJA5N,KAAKsiD,aAAevoD,QAAQC,UACS,oBAA1BgG,KAAKgiD,SAAS,UACrBhiD,KAAKsiD,aAAetiD,KAAKgiD,SAAS,WAElCxL,EAAY,CACZ,IAAI+L,EAAe,CACfC,WAAYhM,EACZiM,SAAUhM,EACV36B,SAAUA,GAEdymC,EAAatL,QAAUj3C,KAAKgiD,SAC5BhiD,KAAKuhD,SAAW,IAAI,KAAgBgB,EAAcviD,KAAK2hD,2BAC3D,CACA3hD,KAAKgb,YAAYrL,UAAU,CACvBinC,gBAAiBA,EACjBlgC,OAAQigC,GAAsBjgC,EAC9B8/B,WAAYA,EACZE,eAAgBA,EAChByL,gBAAiBA,EACjBz0C,QAAS1N,KAAKgiD,WAIlB,IAAIU,EAAwB3M,EACtBD,EAAoB91C,KAAK6/B,QAAQkW,OAC7BA,EACAA,EAAM4M,gBACVjlD,EACN,GAAIglD,EAAuB,CACvB,IAAIE,EAAoB78C,OAAOkJ,OAAO,CAClC2rC,gBAAiBnE,EACjB+L,WAAYhM,EACZ1tC,OAAQ45C,EAAsB,UAC9B7H,OAAQ6H,EAAsB,SAC9B1M,eAAgB0M,EAAsB,kBACtCtE,gBAAiBsE,EAAsB,mBACvCnoD,aAAcmoD,EAAsB,gBACpCzL,QAASj3C,KAAKgiD,SACdjH,UAAW2H,EAAsB,aACjCN,eAAgBA,GACjBM,EAAsB,YACzB1iD,KAAK6iD,cAAgB,IAAI,GAAM,CAC3BhI,OAAQ+H,EAAkB/H,OAC1B/gD,OAAQ8oD,EACRhI,gBAAiBgI,EAAkBhI,kBAKvC,IAAIkI,EAAqB,CAAC,EAC1BC,IAAY,SAAUnvC,GAClB,IAAInY,EAAMmY,EAAGnY,IACTqnD,EAAmBrnD,KAGvBqnD,EAAmBrnD,IAAO,EAC1B6U,EAAM0yC,oBAAoBvnD,GAC9B,GACJ,CAEA,GADA,GAAkB,aAAc,KAAM,uDACjCuE,KAAK0hD,qBAC8B,oBAA7B1hD,KAAKgiD,SAAS,WAA2B,CAChD,IAAIiB,EAAmBjjD,KAAKkjD,mBAAmB,2BAC3CD,IACA,GAAkB,qBAAsB,KAAMxN,EAAe0N,iBAC7DnjD,KAAKgiD,SAASlzC,WAAW,yBAE7B9O,KAAKgiD,SAASlzC,WAAW,0BAC7B,CACA,OAAO9O,KAAK6/B,OAChB,EAOAyhB,EAAUniD,UAAUikD,OAAS,SAAU7mD,GAGnC,IAFA,IAKIqX,EAAIqF,EAAI2C,EALRtL,EAAQtQ,KACRqjD,EAAc,GACTC,EAAK,EAAGA,EAAKr7C,UAAUrH,OAAQ0iD,IACpCD,EAAYC,EAAK,GAAKr7C,UAAUq7C,GAGpC,IAAKtjD,KAAKuhD,SACN,OAAOvhD,KAAKujD,mBAEhB,IAIInB,EAJAnnD,EAAW,KACXC,EAAW,KACXsoD,EAAa,GACbC,EAAiB,KAEjBC,EAAa,CAAEC,SAAS,GACxBC,EAA2B,CAAC,EAC5BC,EAA2B,CAAC,EAChC,GAAItnD,GAA4B,kBAAXA,EAAqB,CACtCtB,EAAWsB,EACXrB,EAAWmoD,EAAcA,EAAY,GAAK,KAC1C,IAAIS,EAAQT,EAAcA,EAAY,GAAK,KACvCU,EAAeV,EAAcA,EAAY,GAAK,KAC9CS,GACAN,EAAWtiD,KAAK,IAAI,KAAqB,CAAEy2B,KAAM,QAASqsB,MAAOF,KACjEC,GACAP,EAAWtiD,KAAK,IAAI,KAAqB,CACrCy2B,KAAM,eACNqsB,MAAOD,IAEnB,KACK,KAAIxnD,GAA4B,kBAAXA,EAiCtB,OAAOyD,KAAKikD,gBAAgBxO,EAAeyO,aAhC3CjpD,EAAWsB,EAAO,YAClBrB,EAAWqB,EAAO,YACdA,GAAUA,EAAO6lD,eACjBA,EAAiB7lD,EAAO6lD,eAEnBpiD,KAAK6/B,QAAQuiB,iBAClBA,EAAiBpiD,KAAK6/B,QAAQuiB,gBAElC,IAAI+B,EAAU5nD,EAAO,cACjB4nD,GACAp+C,OAAOC,KAAKm+C,GAAStuC,KAAI,SAAU/X,GAC/B0lD,EAAWtiD,KAAK,IAAI,KAAqB,CAAEy2B,KAAM75B,EAAKkmD,MAAOG,EAAQrmD,KACzE,IAEJ,IAAIsmD,EAAyB7nD,EAAO,kBAChC6nD,IACAX,EAAiB,GACjB19C,OAAOC,KAAKo+C,GAAwBvuC,KAAI,SAAU/X,GAC9C2lD,EAAeviD,KAAK,IAAI,KAAqB,CACzCy2B,KAAM75B,EACNkmD,MAAOI,EAAuBtmD,KAEtC,KAEJ4lD,EAA0C,QAA5B9vC,EAAKrX,EAAOmnD,kBAA+B,IAAP9vC,EAAgBA,EAAK,CAAE+vC,SAAS,GAC9ED,EAAWC,UACX3jD,KAAKgiD,SAASnzC,QAAQ,uBAAwB,QAC9C+0C,EAAgE,QAApC3qC,EAAKyqC,EAAWD,sBAAmC,IAAPxqC,EAAgBA,EAAK,CAAC,EAC9F4qC,EAAgE,QAApCjoC,EAAK8nC,EAAWW,sBAAmC,IAAPzoC,EAAgBA,EAAK,CAAC,EAKtG,CACA,OAAK3gB,EAGAC,GAGL,GAAOkc,MAAM,gBAAiBosC,GAC9B,GAAOpsC,MAAM,0BAA2BqsC,GACjC,IAAI1pD,SAAQ,SAAUC,EAASC,GAClCqW,EAAMixC,SAAS6B,OAAOnoD,EAAUC,EAAUsoD,EAAYC,GAAgB,SAAUtnD,EAAK/B,GAC7E+B,GACA,GAAkB,iBAAkBA,EAAKlB,EAAW,qBACpDhB,EAAOkC,KAGP,GAAkB,SAAU/B,EAAMa,EAAW,+BACzCyoD,EAAWC,SACXrzC,EAAMg0C,iBAAiBrpD,EAAUC,EAAU0oD,EAA0BC,EAA0BzpD,GAEnGJ,EAAQI,GAEhB,GAAGgoD,EACP,KAlBWpiD,KAAKikD,gBAAgBxO,EAAe8O,eAHpCvkD,KAAKikD,gBAAgBxO,EAAe+O,cAsBnD,EACAlD,EAAUniD,UAAUmlD,iBAAmB,SAAUrpD,EAAUC,EAAUuoD,EAAgBrB,EAAgBhoD,GACjG4F,KAAK0hD,qBAAsB,EAC3B,IAAI+C,EAAc,IAAI,KAAsB,CACxCC,SAAUzpD,EACV0pD,SAAUzpD,EACV0pD,eAAgBnB,EAChBoB,eAAgBzC,IAEhBhoD,EAAK0qD,cACL9kD,KAAK+kD,yBAAyBN,GAEiB,SAA1CzkD,KAAK6/B,QAAQgX,yBAClB72C,KAAKglD,qBAAqBP,GAG1BzkD,KAAKilD,qBAAqBR,EAElC,EACAnD,EAAUniD,UAAU8lD,qBAAuB,SAAUR,GACjD,IAAIn0C,EAAQtQ,KACRklD,EAAc,SAAUtxC,GACxB,IAAIjK,EAAUiK,EAAGjK,QACK,kBAAlBA,EAAQy7B,OACR90B,EAAMy0C,yBAAyBN,EAAaS,EAEpD,EACA7f,EAAA,GAAI0c,OAAO,OAAQmD,EACvB,EACA5D,EAAUniD,UAAU6lD,qBAAuB,SAAUP,GACjD,IAAIn0C,EAAQtQ,KACZA,KAAKgiD,SAASnzC,QAAQ,0BAA2B,QACjD,IAAIkR,EAAQ7W,KAAKO,MACb07C,EAA8BC,aAAY,WACtCl8C,KAAKO,MAAQsW,EAAQshC,IACrBgE,cAAcF,GACd,GAAkB,qBAAsB,KAAM,oEAC9C70C,EAAM0xC,SAASlzC,WAAW,yBAG1BwB,EAAMy0C,yBAAyBN,EAAa,KAAMU,EAE1D,GAAG,IACP,EACA7D,EAAUniD,UAAU4lD,yBAA2B,SAAUN,EAAaS,EAAaC,GAC/E,OAAO,GAAUnlD,UAAM,OAAQ,GAAQ,WACnC,IAAIwhD,EAAM8D,EACNh1C,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACDonC,EAAOxhD,KAAKulD,kBAAkBd,EAAYe,eAC1C5xC,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAasgD,EAAKiE,iBAAiBhB,EAAazkD,KAAK0lD,cAAclE,GAAM,SAAUtlD,GACnF,GAAkB,aAAcA,EAAOuoD,EAAYe,cAAgB,+BAC/DN,GACA7f,EAAA,GAAI77B,OAAO,OAAQ07C,GAEnBC,IACAE,cAAcF,GACd70C,EAAM0xC,SAASlzC,WAAW,4BAE9BwB,EAAM0xC,SAASlzC,WAAW,uBAC9B,IAAG,SAAU5L,GACT,GAAOA,MAAMA,GACboN,EAAM0xC,SAASlzC,WAAW,uBAC9B,MACR,KAAK,EAED,OADA8E,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAirC,EAAU1xC,EAAGyG,OACb,GAAOnX,MAAMoiD,GACN,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EAQAhE,EAAUniD,UAAUwmD,cAAgB,SAAU1qD,EAAU+I,EAAMT,GAC1D,IAAI+M,EAAQtQ,KACZ,IAAKA,KAAKuhD,SACN,OAAOvhD,KAAKujD,mBAEhB,IAAKtoD,EACD,OAAO+E,KAAKikD,gBAAgBxO,EAAe+O,eAE/C,IAAKxgD,EACD,OAAOhE,KAAKikD,gBAAgBxO,EAAemQ,WAE/C,IAIIxD,EAJAZ,EAAOxhD,KAAKulD,kBAAkBtqD,GAC9B4qD,GAAqBtiD,GAAiD,mBAA/BA,EAAQsiD,oBAC7CtiD,EAAQsiD,mBASd,OANItiD,GAAWA,EAAQ6+C,eACnBA,EAAiB7+C,EAAQ6+C,eAEpBpiD,KAAK6/B,QAAQuiB,iBAClBA,EAAiBpiD,KAAK6/B,QAAQuiB,gBAE3B,IAAIroD,SAAQ,SAAUC,EAASC,GAClCunD,EAAKsE,oBAAoB9hD,EAAM6hD,GAAoB,SAAU1pD,EAAK/B,GAC9D,GAAI+B,EACAlC,EAAOkC,OAEN,CACD,GAAkB,gBAAiB/B,EAAMa,EAAW,oCACpD,IAAIyoD,EAAapzC,EAAM4yC,mBAAmB,wBACtCQ,IAAepzC,EAAMoxC,sBACrB,GAAkB,qBAAsB,KAAMjM,EAAe0N,iBAC7D7yC,EAAM0xC,SAASlzC,WAAW,yBAE9B9U,EAAQI,EACZ,CACJ,GAAGgoD,EACP,GACJ,EACAd,EAAUniD,UAAU+jD,mBAAqB,SAAUhnD,GAC/C,IAAI4U,EAAO9Q,KAAKgiD,SAASpzC,QAAQ1S,GACjC,QAAO4U,GAAgB,SAATA,CAClB,EAOAwwC,EAAUniD,UAAU4mD,aAAe,SAAU9qD,EAAUmnD,GAEnD,QADuB,IAAnBA,IAA6BA,EAAiBpiD,KAAK6/B,QAAQuiB,iBAC1DpiD,KAAKuhD,SACN,OAAOvhD,KAAKujD,mBAEhB,IAAKtoD,EACD,OAAO+E,KAAKikD,gBAAgBxO,EAAe+O,eAE/C,IAAIhD,EAAOxhD,KAAKulD,kBAAkBtqD,GAClC,OAAO,IAAIlB,SAAQ,SAAUC,EAASC,GAClCunD,EAAKwE,wBAAuB,SAAU7pD,EAAK/B,GACnC+B,EACAlC,EAAOkC,GAGPnC,EAAQI,EAEhB,GAAGgoD,EACP,GACJ,EAQAd,EAAUniD,UAAU8mD,OAAS,SAAUC,EAAsBC,EAAI/D,GAE7D,QADuB,IAAnBA,IAA6BA,EAAiBpiD,KAAK6/B,QAAQuiB,iBAC1DpiD,KAAKuhD,SACN,OAAOvhD,KAAKujD,mBAEhB,IAAItoD,EAAW,KACXC,EAAW,KACXuoD,EAAiB,CAAC,EAEtB,GAAoC,kBAAzByC,EACPjrD,EAAWirD,EACXhrD,EAAWirD,MAEV,KAAIlQ,EAAuBiQ,GAS5B,OAAOlmD,KAAKikD,gBAAgBxO,EAAe2Q,iBARzB,qBAAPD,GACP,GAAOh6C,KAAK,oEAEhBlR,EAAWirD,EAAqBjrD,SAChCC,EAAWgrD,EAAqBhrD,SAChCuoD,EAAiByC,EAAqBzC,cAI1C,CACA,IAAKxoD,EACD,OAAO+E,KAAKikD,gBAAgBxO,EAAe+O,eAE/C,IAAIC,EAAc,IAAI,KAAsB,CACxCC,SAAUzpD,EACV0pD,SAAUzpD,EACV0pD,eAAgBnB,EAChBoB,eAAgBzC,IAEpB,OAAIlnD,EACO8E,KAAKqmD,mBAAmB5B,GAGxBzkD,KAAKsmD,sBAAsB7B,EAE1C,EAQAnD,EAAUniD,UAAUumD,cAAgB,SAAUlE,EAAMxnD,EAASC,GACzD,IAAIqW,EAAQtQ,KACRumD,EAAOvmD,KACX,MAAO,CACHsnC,UAAW,SAAU+J,GAAW,OAAO,GAAU/gC,OAAO,OAAQ,GAAQ,WACpE,IAAIyhC,EAAM9Q,EAAKyQ,EAAa8U,EAC5B,OAAO,GAAYxmD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,GAAOhD,MAAMi6B,UACNmQ,EAAK,wBACLA,EAAK,kBACZ5tC,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,EAAG,IAChB,CAAC,EAAalB,KAAKgb,YAAYrM,SAC1C,KAAK,EAED,OADAiF,EAAGyG,OACI,CAAC,EAAara,KAAKgb,YAAYyC,IAAI4zB,EAAS,YACvD,KAAK,EAGD,OAFAU,EAAOn+B,EAAGyG,OACV,GAAOjD,MAAM,qCAAsC26B,GAC5C,CAAC,EAAa,GACzB,KAAK,EAGD,OAFA9Q,EAAMrtB,EAAGyG,OACT,GAAOjD,MAAM,iCAAkC6pB,GACxC,CAAC,EAAa,GACzB,KAAK,EAED,OADArtB,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKymD,uBAC9B,KAAK,EAKD,OAJA/U,EAAc99B,EAAGyG,OACjBksC,EAAK/E,KAAO9P,EACZ,GAAkB,SAAUA,EAAa,UAAY8P,EAAKgE,cAAgB,uBAC1ExrD,EAAQ03C,GACD,CAAC,EAAa,GACzB,KAAK,EAID,OAHA8U,EAAM5yC,EAAGyG,OACT,GAAOnX,MAAM,mCAAoCsjD,GACjDvsD,EAAOusD,GACA,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAChB,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,EACJjf,UAAW,SAAUprC,GACjB,GAAOib,MAAM,iBAAkBjb,GAC/B,GAAkB,iBAAkBA,EAAKqlD,EAAKgE,cAAgB,qBAC9DvrD,EAAOkC,EACX,EACAuqD,gBAAiB,SAAUC,GACvB,GAAOvvC,MAAM,2CACboqC,EAAK,iBAAmB,mBACxBA,EAAK,kBAAoBmF,EACzB3sD,EAAQwnD,EACZ,EACAoF,YAAa,SAAUC,EAAeF,GAClC,GAAOvvC,MAAM,uBACboqC,EAAK,iBAAmBqF,EACxBrF,EAAK,kBAAoBmF,EACzB3sD,EAAQwnD,EACZ,EACAsF,SAAU,SAAUD,EAAeF,GAC/B,GAAOvvC,MAAM,mBAAoByvC,GACjCrF,EAAK,iBAAmBqF,EACxBrF,EAAK,kBAAoBmF,EACzB3sD,EAAQwnD,EACZ,EACAuF,oBAAqB,SAAUC,EAAgBC,GAC3C,GAAO7vC,MAAM,uBACboqC,EAAK,iBAAmB,wBACxBA,EAAK,kBAAoB,CACrBwF,eAAgBA,EAChBC,mBAAoBA,GAExBjtD,EAAQwnD,EACZ,EACA0F,aAAc,SAAUL,EAAeF,GACnC,GAAOvvC,MAAM,uBACboqC,EAAK,iBAAmBqF,EACxBrF,EAAK,kBAAoBmF,EACzB3sD,EAAQwnD,EACZ,EACA2F,cAAe,SAAUN,EAAeF,GACpC,GAAOvvC,MAAM,uBAAwByvC,GACrCrF,EAAK,iBAAmBqF,EACxBrF,EAAK,kBAAoBmF,EACzB3sD,EAAQwnD,EACZ,EAER,EAOAF,EAAUniD,UAAUknD,mBAAqB,SAAU5B,GAC/C,IAAIn0C,EAAQtQ,KACZ,GAAIA,KAAKonD,cACL,MAAM,IAAInjD,MAAM,+CAEpB,IAAIu9C,EAAOxhD,KAAKulD,kBAAkBd,EAAYe,eAU9C,OATAxlD,KAAKonD,cAAgB,IAAIrtD,SAAQ,SAAUC,EAASC,GAChDunD,EAAKiE,iBAAiBhB,EAAan0C,EAAMo1C,cAAclE,GAAM,SAAUtlD,GACnEoU,EAAM82C,cAAgB,KACtBptD,EAAQkC,EACZ,IAAG,SAAUgH,GACToN,EAAM82C,cAAgB,KACtBntD,EAAOiJ,EACX,IACJ,IACOlD,KAAKonD,aAChB,EAOA9F,EAAUniD,UAAUmnD,sBAAwB,SAAU7B,GAClD,IAAIn0C,EAAQtQ,KACRwhD,EAAOxhD,KAAKulD,kBAAkBd,EAAYe,eAE9C,OADAhE,EAAK6F,0BAA0B,eACxB,IAAIttD,SAAQ,SAAUC,EAASC,GAClCunD,EAAK8F,aAAa7C,EAAan0C,EAAMo1C,cAAclE,EAAMxnD,EAASC,GACtE,GACJ,EASAqnD,EAAUniD,UAAUooD,cAAgB,SAAU/F,GAC1C,OAAO,IAAIznD,SAAQ,SAAU4zC,EAAKC,GAC9B4T,EAAK+F,eAAc,SAAUprD,EAAKqrD,GAC9B,GAAIrrD,EAGA,OAFA,GAAOib,MAAM,yBAA0Bjb,QACvCyxC,EAAIzxC,GAGR,GAAOib,MAAM,0BAA2BowC,GACxC7Z,EAAI6Z,EAER,GACJ,GACJ,EAMAlG,EAAUniD,UAAUsoD,gBAAkB,SAAUjG,EAAMjlD,GAClD,IAAI+T,EAAQtQ,KACRumD,EAAOvmD,KACX,OAAO,IAAIjG,SAAQ,SAAU4zC,EAAKC,GAC9B,IAAIwU,EAAiB9xC,EAAMuvB,QAAQuiB,eAC/BsF,IAAcnrD,GAASA,EAAOmrD,YAClClG,EAAKmG,aAAY,SAAUxrD,EAAK/B,GAAQ,OAAO,GAAUkW,OAAO,OAAQ,GAAQ,WAC5E,IAAIs3C,EAAgBC,EACpB,OAAO,GAAY7nD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,IAAKje,EAAK,MAAO,CAAC,EAAa,GAE/B,GADA,GAAOib,MAAM,+BAAgCjb,IACxC6D,KAAK8nD,iBAAiB3rD,GAAM,MAAO,CAAC,EAAa,GACtDyX,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAK+nD,sBAAsBvG,IACpD,KAAK,EAED,OADA5tC,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAutC,EAAiBh0C,EAAGyG,OACpBuzB,EAAI,IAAI3pC,MAAM,8BAAgC9H,EAAI4D,QAAU,4CAA8C6nD,EAAe7nD,UAClH,CAAC,GACZ,KAAK,EAED,OADA6tC,EAAIzxC,GACG,CAAC,GACZ,KAAK,EAED,OADA0rD,EAAUtB,EAAKyB,wBAAwB5tD,GAClCytD,GAKDla,EAAIka,GACG,CAAC,KALRja,EAAI,oBACG,CAAC,IAQxB,GACJ,GAAI,GAAG,CAAE8Z,YAAaA,EAAatF,eAAgBA,GACvD,GACJ,EACAd,EAAUniD,UAAU6oD,wBAA0B,SAAU5tD,GACpD,IAAI0T,EAAM,KACNm6C,EAAe7tD,EAAK8tD,oBAGxB,GAAID,EACAn6C,EAAMm6C,MAEL,CAED,IAAIE,EAAU/tD,EAAKguD,mBACnB,GAAKD,EAauB,IAAnBA,EAAQvnD,OACbkN,EAAM,QAGN,GAAOsJ,MAAM,mCAAoChd,OAjBvC,CAKV,IAAIiuD,EAAajuD,EAAKiuD,WAElBv6C,EADAu6C,EACM,UAGA,OAEd,CAOJ,CACA,OAAOv6C,CACX,EACAwzC,EAAUniD,UAAUmpD,aAAe,SAAU9G,EAAMjlD,GAC/C,IAAI+T,EAAQtQ,KACZ,OAAO,IAAIjG,SAAQ,SAAU4zC,EAAKC,GAC9B4T,EAAKmG,aAAY,SAAUxrD,EAAK/B,GAAQ,OAAO,GAAUkW,OAAO,OAAQ,GAAQ,WAC5E,IAAIi4C,EACJ,OAAO,GAAYvoD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,IAAKje,EAAK,MAAO,CAAC,EAAa,GAE/B,GADA,GAAOib,MAAM,2BAA4Bjb,IACpC6D,KAAK8nD,iBAAiB3rD,GAAM,MAAO,CAAC,EAAa,GACtDyX,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAK+nD,sBAAsBvG,IACpD,KAAK,EAED,OADA5tC,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAkuC,EAAiB30C,EAAGyG,OACpBuzB,EAAI,IAAI3pC,MAAM,8BAAgC9H,EAAI4D,QAAU,4CAA8CwoD,EAAexoD,UAClH,CAAC,GACZ,KAAK,EAED,OADA6tC,EAAIzxC,GACG,CAAC,GACZ,KAAK,EACDwxC,EAAIvzC,GACJwZ,EAAGwG,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,GAAG7d,EACX,GACJ,EAOA+kD,EAAUniD,UAAUqpD,gBAAkB,SAAUhH,EAAMiH,GAClD,OAAO,GAAUzoD,UAAM,OAAQ,GAAQ,WACnC,IAAIoiD,EAAgBsG,EAAUC,EAAgBC,EAAiBh1C,EAAIu0C,EAASU,EACxEv4C,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EAED,OADAgoC,EAAiBpiD,KAAK6/B,QAAQuiB,eACvB,CAAC,EAAapiD,KAAKsoD,aAAa9G,EAAM,CACrCkG,aAAa,EACbtF,eAAgBA,KAE5B,KAAK,EAKD,OAJAsG,EAAWzvC,EAAGoB,OACdsuC,EAAiB,KACjBC,EAAkB,KAClBh1C,EAAK60C,EACG70C,GACJ,IAAK,OAAQ,MAAO,CAAC,EAAa,GAClC,IAAK,qBAAsB,MAAO,CAAC,EAAa,GAChD,IAAK,MAAO,MAAO,CAAC,EAAa,GACjC,IAAK,UAAW,MAAO,CAAC,EAAa,GACrC,IAAK,QAAS,MAAO,CAAC,EAAa,GAEvC,MAAO,CAAC,EAAa,GACzB,KAAK,EAKD,OAJAg1C,EAAkB,CACdE,cAAc,EACdC,SAAS,GAEN,CAAC,EAAa,GACzB,KAAK,EAKD,OAJAJ,EAAiB,CACbG,cAAc,EACdC,SAAS,GAEN,CAAC,EAAa,GACzB,KAAK,EAED,OADAZ,EAAUO,EAAS,sBACZ,CAAC,EAAa1oD,KAAKgoD,wBAAwBU,IACtD,KAAK,EAED,GADAG,EAAiB5vC,EAAGoB,OACG,UAAnBwuC,EACA,MAAO,CAAC,EAAc9uD,QAAQC,QAAQ,2BAErC,GAAuB,YAAnB6uD,EACLF,EAAiB,CACbG,cAAc,EACdC,SAAS,OAGZ,IAAuB,uBAAnBF,EAOL,MAAO,CAAC,EAAc7oD,KAAKikD,gBAAgBxO,EAAeuT,aAN1DJ,EAAkB,CACdE,cAAc,EACdC,SAAS,EAKjB,CAoBA,OAjBIZ,GAA8B,IAAnBA,EAAQvnD,QAEnBunD,EAAQvqD,SAAQ,SAAUiqD,GACN,YAAZA,EACAc,EAAiB,CACbG,cAAc,EACdC,SAAS,GAGI,uBAAZlB,IACLe,EAAkB,CACdE,cAAc,EACdC,SAAS,GAGrB,IAEG,CAAC,EAAa,GACzB,KAAK,EAED,OADA,GAAO3xC,MAAM,+BACN,CAAC,EAAcpX,KAAKikD,gBAAgBxO,EAAewT,QAC9D,KAAK,EAED,MAAO,CAAC,EAAc,IAAIlvD,SAAQ,SAAU4zC,EAAKC,GACzC4T,EAAK0H,qBAAqBP,EAAgBC,GAAiB,SAAUzsD,EAAK0P,GACtE,GAAI1P,EAEA,OADA,GAAOib,MAAM,gCAAiCjb,GACvCyxC,EAAIzxC,GAEf,GAAOib,MAAM,uBAAwBvL,GACrC,GAAOuL,MAAM,2CAEboqC,EAAKmG,aAAY,SAAUxrD,EAAK/B,GAAQ,OAAO,GAAUkW,OAAO,OAAQ,GAAQ,WAC5E,IAAI64C,EACJ,OAAO,GAAYnpD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,IAAKje,EAAK,MAAO,CAAC,EAAa,GAE/B,GADA,GAAOib,MAAM,2BAA4Bjb,IACpC6D,KAAK8nD,iBAAiB3rD,GAAM,MAAO,CAAC,EAAa,GACtDyX,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAK+nD,sBAAsBvG,IACpD,KAAK,EAED,OADA5tC,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFA8uC,EAAiBv1C,EAAGyG,OACpBuzB,EAAI,IAAI3pC,MAAM,8BAAgC9H,EAAI4D,QAAU,4CAA8CopD,EAAeppD,UAClH,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,EAAc6tC,EAAIzxC,IAClC,KAAK,EAAG,MAAO,CAAC,EAAcwxC,EAAI9hC,IAE1C,GACJ,GAAI,GAAG,CACH67C,aAAa,EACbtF,eAAgBA,GAExB,GACJ,KAEhB,GACJ,GACJ,EAOAd,EAAUniD,UAAUiqD,WAAa,SAAU5H,GACvC,OAAO,IAAIznD,SAAQ,SAAU4zC,EAAKC,GAC9B4T,EAAK6H,YAAW,SAAUltD,EAAK/B,GAC3B,GAAI+B,EAGA,OAFA,GAAOib,MAAM,qBAAsBjb,QACnCyxC,EAAIzxC,GAGR,GAAOib,MAAM,sBAAuBhd,GACpCuzC,EAAIvzC,EAER,GACJ,GACJ,EAOAknD,EAAUniD,UAAUmqD,UAAY,SAAU9H,GACtC,OAAO,IAAIznD,SAAQ,SAAU4zC,EAAKC,GAC9B4T,EAAK+H,WAAU,SAAUptD,EAAK/B,GAC1B,GAAI+B,EAGA,OAFA,GAAOib,MAAM,oBAAqBjb,QAClCyxC,EAAIzxC,GAGR,GAAOib,MAAM,qBAAsBhd,GACnCuzC,EAAIvzC,EAER,GACJ,GACJ,EAMAknD,EAAUniD,UAAUqqD,UAAY,SAAUhI,GACtC,OAAO,IAAIznD,SAAQ,SAAU4zC,EAAKC,GAC9B4T,EAAKiI,uBAAuB,CACxBliB,UAAW,SAAUprC,GACjB,GAAOib,MAAM,gCAAiCjb,GAC9CyxC,EAAIzxC,EAER,EACAutD,oBAAqB,SAAUC,GAC3B,GAAOvyC,MAAM,gCAAiCuyC,GAC9Chc,EAAIgc,EAER,GAER,GACJ,EAOArI,EAAUniD,UAAUyqD,gBAAkB,SAAUpI,EAAMqI,GAElD,OADA,GAAOzyC,MAAM,0BAA2BoqC,EAAMqI,GACvC,IAAI9vD,SAAQ,SAAU4zC,EAAKC,GAC9B4T,EAAKsI,oBAAoBD,EAAiB,iBAAkB,CACxDtiB,UAAW,SAAUprC,GACjB,GAAOib,MAAM,yBAA0Bjb,GACvCyxC,EAAIzxC,EAER,EACAmrC,UAAW,SAAUltC,GACjB,GAAkB,SAAUonD,EAAM,UAAYA,EAAKgE,cAAgB,uBACnE,GAAOpuC,MAAM,0BAA2Bhd,GACxCuzC,EAAIvzC,EAER,GAER,GACJ,EAMAknD,EAAUniD,UAAU4qD,cAAgB,SAAUvI,EAAMx9C,EAAM6jD,EAASzF,GAC/D,IAAI9xC,EAAQtQ,KAEZ,QADuB,IAAnBoiD,IAA6BA,EAAiBpiD,KAAK6/B,QAAQuiB,iBAC1Dp+C,EACD,OAAOhE,KAAKikD,gBAAgBxO,EAAemQ,WAE/C,IAAIW,EAAOvmD,KACX,OAAO,IAAIjG,SAAQ,SAAUC,EAASC,GAClCunD,EAAKwI,YAAYhmD,EAAM,CACnBsjC,UAAW,SAAU+J,GAAW,OAAO,GAAU/gC,OAAO,OAAQ,GAAQ,WACpE,IAAIyhC,EAAMkY,EACV,OAAO,GAAYjqD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,GAAOhD,MAAMi6B,GACbz9B,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,EAAG,IAChB,CAAC,EAAalB,KAAKgb,YAAYrM,SAC1C,KAAK,EAED,OADAiF,EAAGyG,OACI,CAAC,EAAara,KAAKgb,YAAYyC,IAAI4zB,EAAS,YACvD,KAAK,EAGD,OAFAU,EAAOn+B,EAAGyG,OACV,GAAOjD,MAAM,qCAAsC26B,GAC5C,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAkY,EAAMr2C,EAAGyG,OACT,GAAOjD,MAAM,iCAAkC6yC,GACxC,CAAC,EAAa,GACzB,KAAK,EAID,OAHA1D,EAAK/E,KAAOA,EACZ,GAAkB,SAAUA,EAAM,UAAYA,EAAKgE,cAAgB,uBACnExrD,EAAQwnD,GACD,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,EACJja,UAAW,SAAUprC,GACjB,GAAOib,MAAM,yBAA0Bjb,GACvClC,EAAOkC,EACX,GACD0rD,EAASzF,EAChB,GACJ,EACAd,EAAUniD,UAAU+qD,oBAAsB,SAAU1I,EAAMtmD,EAAU+rD,EAAoB7E,GACpF,IAAI9xC,EAAQtQ,KAGZ,QAF2B,IAAvBinD,IAAiCA,EAAqB,CAAC,QACpC,IAAnB7E,IAA6BA,EAAiBpiD,KAAK6/B,QAAQuiB,iBAC1DlnD,EACD,OAAO8E,KAAKikD,gBAAgBxO,EAAe8O,eAE/C,IAAIgC,EAAOvmD,KACX,OAAO,IAAIjG,SAAQ,SAAUC,EAASC,GAClCunD,EAAK2I,6BAA6BjvD,EAAU+rD,EAAoB,CAC5D3f,UAAW,SAAU+J,GAAW,OAAO,GAAU/gC,OAAO,OAAQ,GAAQ,WACpE,IAAIyhC,EAAMqY,EACV,OAAO,GAAYpqD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,GAAOhD,MAAMi6B,GACbz9B,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,EAAG,IAChB,CAAC,EAAalB,KAAKgb,YAAYrM,SAC1C,KAAK,EAED,OADAiF,EAAGyG,OACI,CAAC,EAAara,KAAKgb,YAAYyC,IAAI4zB,EAAS,YACvD,KAAK,EAGD,OAFAU,EAAOn+B,EAAGyG,OACV,GAAOjD,MAAM,qCAAsC26B,GAC5C,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAqY,EAAMx2C,EAAGyG,OACT,GAAOjD,MAAM,iCAAkCgzC,GACxC,CAAC,EAAa,GACzB,KAAK,EAID,OAHA7D,EAAK/E,KAAOA,EACZ,GAAkB,SAAUA,EAAM,UAAYA,EAAKgE,cAAgB,uBACnExrD,EAAQwnD,GACD,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,EACJja,UAAW,SAAUprC,GACjB,GAAOib,MAAM,8BAA+Bjb,GAC5C,GAAkB,8BAA+BA,EAAKmU,EAAMkxC,KAAO,6CACnEvnD,EAAOkC,EACX,EACAyqD,YAAa,SAAUC,EAAeF,GAClC,GAAOvvC,MAAM,uBACboqC,EAAK,iBAAmBqF,EACxBrF,EAAK,kBAAoBmF,EACzB3sD,EAAQwnD,EACZ,EACAsF,SAAU,SAAUD,EAAeF,GAC/B,GAAOvvC,MAAM,mBAAoByvC,GACjCrF,EAAK,iBAAmBqF,EACxBrF,EAAK,kBAAoBmF,EACzB3sD,EAAQwnD,EACZ,EACA0F,aAAc,SAAUL,EAAeF,GACnC,GAAOvvC,MAAM,mBAAoByvC,GACjCrF,EAAK,iBAAmBqF,EACxBrF,EAAK,kBAAoBmF,EACzB3sD,EAAQwnD,EACZ,GACDY,EACP,GACJ,EAMAd,EAAUniD,UAAUkrD,0BAA4B,SAAU7I,EAAM8I,EAAoBlI,GAChF,IAAI9xC,EAAQtQ,KAEZ,QADuB,IAAnBoiD,IAA6BA,EAAiBpiD,KAAK6/B,QAAQuiB,iBAC1DpiD,KAAKuhD,SACN,OAAOvhD,KAAKujD,mBAEhB,IAAK+G,EACD,OAAOtqD,KAAKikD,gBAAgBxO,EAAe8U,wBAG/C,OAAO,IAAIxwD,SAAQ,SAAUC,EAASC,GAClCunD,EAAK6I,0BAA0BC,EAAoBh6C,EAAMo1C,cAAclE,EAAMxnD,EAASC,GAASmoD,EACnG,GACJ,EAMAd,EAAUniD,UAAUqrD,qBAAuB,SAAUhJ,EAAMiJ,GACvD,IAAIlE,EAAOvmD,KACX,OAAO,IAAIjG,SAAQ,SAAUC,EAASC,GAClCssD,EAAKmE,YAAYlJ,GAAMhhD,MAAK,SAAU6wC,GAClCmQ,EAAKmJ,iBAAiBF,GAAgB,SAAUtuD,EAAK0P,GACjD,OAAI1P,EACOlC,EAAOkC,GAGPnC,EAAQ6R,EAEvB,GACJ,GACJ,GACJ,EAMAy1C,EAAUniD,UAAUyrD,WAAa,WAC7B,OAAO,GAAU5qD,UAAM,OAAQ,GAAQ,WACnC,IAAI6qD,EAAKC,EACLx6C,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKsiD,cAC9B,KAAK,EAED,OADA1uC,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,MAFAwwC,EAAMj3C,EAAGyG,OACT,GAAOjD,MAAM,wCAAyCyzC,GAChD,IAAI5mD,MAAM4mD,GACpB,KAAK,EAGD,OAFAC,EAAqB9qD,KAAK6iD,eACoC,SAA1D7iD,KAAKgiD,SAASpzC,QAAQ,gCACnB,CAAC,EAAc,IAAI7U,SAAQ,SAAU4zC,EAAKC,GAAO,OAAO,GAAUt9B,OAAO,OAAQ,GAAQ,WACxF,IAAIy6C,EACAz6C,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,GAAI5T,KAAKuhD,SAAU,CAEf,GADAwJ,EAAS/qD,KAAKuhD,SAASyJ,kBAClBD,EAED,OADA,GAAO3zC,MAAM,qCACN,CAAC,EAAcw2B,EAAI,IAAI3pC,MAAM,sBAGpC8mD,EAAOE,YAAW,SAAU9uD,EAAKk1C,GAAW,OAAO,GAAU/gC,OAAO,OAAQ,GAAQ,WAChF,IAAI46C,EACA56C,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,IAAKje,EAAK,MAAO,CAAC,EAAa,GAE/B,GADA,GAAOib,MAAM,iCAAkCjb,IAC1C6D,KAAK8nD,iBAAiB3rD,GAAM,MAAO,CAAC,EAAa,GACtDyX,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAK+nD,sBAAsBgD,IACpD,KAAK,EAED,OADAn3C,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFA6wC,EAAiBt3C,EAAGyG,OACpBuzB,EAAI,IAAI3pC,MAAM,8BAAgC9H,EAAI4D,QAAU,4CAA8CmrD,EAAenrD,UAClH,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,EAAc6tC,EAAIzxC,IAClC,KAAK,EACD4uD,EAAOH,YAAW,SAAUzuD,EAAK0P,GAC7B,GAAI1P,EACAyxC,EAAIzxC,OAEH,CACD,GAAkB,cAAe0P,EAAQ,4CACzCk/C,EAAO9M,UACP3tC,EAAMkxC,KAAO,KACb,IACIlxC,EAAM66C,kBACV,CACA,MAAOlkD,GAEH,GAAOmQ,MAAM,+BACjB,CACI0zC,EACAx6C,EAAM86C,qBAAqBzd,EAAKC,IAGhC,GAAkB,UAAWt9B,EAAMkxC,KAAM,8BACzC7T,EAAI9hC,GAEZ,CACJ,IACA+H,EAAGwG,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,GAEZ,MAEI,GAAOhD,MAAM,wBACbw2B,EAAI,IAAI3pC,MAAM,qCAElB,MAAO,CAAC,EACZ,GACJ,GAAI,KAEpB,GACJ,GACJ,EAMAq9C,EAAUniD,UAAUksD,qBAAuB,SAAU7J,EAAMgC,EAAYpB,QAC5C,IAAnBA,IAA6BA,EAAiBpiD,KAAK6/B,QAAQuiB,gBAC/D,IAAIkJ,EAAgB,GAChB/E,EAAOvmD,KACX,OAAO,IAAIjG,SAAQ,SAAUC,EAASC,GAClCssD,EAAKmE,YAAYlJ,GAAMhhD,MAAK,SAAU6wC,GAClC,IAAK,IAAIvzC,KAAO0lD,EACZ,GAAY,QAAR1lD,GAAiBA,EAAIjB,QAAQ,aAAe,EAAG,CAC/C,IAAI0uD,EAAO,CACP5zB,KAAM75B,EACNkmD,MAAOR,EAAW1lD,IAEtBwtD,EAAcpqD,KAAKqqD,EACvB,CAEJ/J,EAAKgK,iBAAiBF,GAAe,SAAUnvD,EAAK0P,GAChD,OAAI1P,EACOlC,EAAOkC,GAGPnC,EAAQ6R,EAEvB,GAAGu2C,EACP,GACJ,GACJ,EAMAd,EAAUniD,UAAU6nD,eAAiB,SAAUxF,GAC3C,IAAIlxC,EAAQtQ,KACZ,OAAO,IAAIjG,SAAQ,SAAUC,EAASC,GAClCqW,EAAMo6C,YAAYlJ,GAAMhhD,MAAK,SAAU6wC,GACnCmQ,EAAKiK,mBAAkB,SAAUtvD,EAAKqnD,GAC9BrnD,EACAlC,EAAOkC,GAGPnC,EAAQwpD,EAEhB,GACJ,GACJ,GACJ,EACAlC,EAAUniD,UAAUusD,gBAAkB,SAAUlK,GAC5C,IAAI+E,EAAOvmD,KACX,OAAOA,KAAKgnD,eAAexF,GAAMhhD,MAAK,SAAUgjD,GAC5C,IAAImI,EAAQpF,EAAKqF,mBAAmBpI,GAChCqI,EAAa,CAAC,EACdC,EAAW,CAAC,EAiBhB,OAhBIH,EAAM,WACFA,EAAM,kBACNG,EAAS,SAAWH,EAAM,SAG1BE,EAAW,SAAWF,EAAM,UAGhCA,EAAM,kBACFA,EAAM,yBACNG,EAAS,gBAAkBH,EAAM,gBAGjCE,EAAW,gBAAkBF,EAAM,iBAGpC,CACHG,SAAUA,EACVD,WAAYA,EAEpB,GACJ,EACAvK,EAAUniD,UAAU4sD,mBAAqB,SAAU5vD,GAC/C,MAAuB,kBAARA,GACX4J,OAAO5G,UAAU0N,eAAezI,KAAKjI,EAAK,UAClD,EAEAmlD,EAAUniD,UAAU6sD,oBAAsB,SAAU7vD,GAChD,OAAQ6D,KAAK+rD,mBAAmB5vD,IACZ,kCAAhBA,EAAI4D,OACZ,EACAuhD,EAAUniD,UAAU8sD,2BAA6B,SAAU9vD,GACvD,OAAQ6D,KAAK+rD,mBAAmB5vD,IACZ,mCAAhBA,EAAI4D,OACZ,EACAuhD,EAAUniD,UAAU+sD,oBAAsB,SAAU/vD,GAChD,OAAO6D,KAAK+rD,mBAAmB5vD,IAAwB,sBAAhBA,EAAI4D,OAC/C,EACAuhD,EAAUniD,UAAUgtD,wBAA0B,SAAUhwD,GACpD,OAAQ6D,KAAK+rD,mBAAmB5vD,IAAwB,yBAAhBA,EAAI4D,OAChD,EACAuhD,EAAUniD,UAAUitD,2BAA6B,SAAUjwD,GACvD,OAAQ6D,KAAK+rD,mBAAmB5vD,IACZ,8BAAhBA,EAAI4D,OACZ,EACAuhD,EAAUniD,UAAU2rD,mBAAqB,WACrC,OAAQ9qD,KAAK6iD,eACiD,SAA1D7iD,KAAKgiD,SAASpzC,QAAQ,+BAC9B,EACA0yC,EAAUniD,UAAU2oD,iBAAmB,SAAU3rD,GAC7C,OAAQ6D,KAAKksD,oBAAoB/vD,IAC7B6D,KAAKmsD,wBAAwBhwD,IAC7B6D,KAAKgsD,oBAAoB7vD,IACzB6D,KAAKisD,2BAA2B9vD,IAChC6D,KAAKosD,2BAA2BjwD,EACxC,EACAmlD,EAAUniD,UAAU4oD,sBAAwB,SAAUvG,GAClD,OAAO,GAAUxhD,UAAM,OAAQ,GAAQ,WACnC,IACIsQ,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACDonC,EAAKvD,UACLj+C,KAAKwhD,KAAO,KACZ5tC,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKmrD,oBAC9B,KAAK,EAED,OADAv3C,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFMzG,EAAGyG,OACT,GAAOjD,MAAM,gCACN,CAAC,EAAa,GACzB,KAAK,EACD,OAAIpX,KAAK8qD,qBACE,CAAC,EAAc,IAAI/wD,SAAQ,SAAU4zC,EAAKC,GACzCt9B,EAAM86C,qBAAqBzd,EAAKC,EACpC,MAGJ,GAAkB,UAAW5tC,KAAKwhD,KAAM,8BAErC,CAAC,IAEpB,GACJ,GACJ,EAKAF,EAAUniD,UAAUsnD,oBAAsB,SAAUlqD,GAChD,IAAI+T,EAAQtQ,KACZ,OAAKA,KAAKuhD,SAGH,IAAIxnD,SAAQ,SAAU4zC,EAAKC,GAC9Bt9B,EAAMgyC,aACD9hD,MAAK,WAAc,OAAO,GAAU8P,OAAO,OAAQ,GAAQ,WAC5D,IAAIkxC,EAAMY,EACN9xC,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,OAAKpa,KAAKqsD,qBACV,GAAOj1C,MAAM,uDACN,CAAC,EAAa,IAAIrd,SAAQ,SAAU4zC,GACnC,IAAI2e,EAAYxvD,YAAW,WACvB,GAAOsa,MAAM,oCACbiuB,EAAA,GAAI77B,OAAO,OAAQ+iD,GACnB5e,GACJ,GAAGwT,IAEH,SAASoL,EAAqB34C,GAC1B,IAAIjK,EAAUiK,EAAGjK,QACby7B,EAAQz7B,EAAQy7B,MACN,oBAAVA,GACU,4BAAVA,IACA,GAAOhuB,MAAM,0BAA4BguB,GACzCgJ,aAAake,GACbjnB,EAAA,GAAI77B,OAAO,OAAQ+iD,GACnB5e,IAER,CAXAtI,EAAA,GAAI0c,OAAO,OAAQwK,EAYvB,MApBkC,CAAC,EAAa,GAqBxD,KAAK,EACD34C,EAAGyG,OACHzG,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAonC,EAAOxhD,KAAKuhD,SAASyJ,iBAChBxJ,GAKLY,EAAiBpiD,KAAK6/B,QAAQuiB,eAE9BZ,EAAKyJ,YAAW,SAAU9uD,EAAKk1C,GAAW,OAAO,GAAU/gC,OAAO,OAAQ,GAAQ,WAC9E,IAAIk8C,EAAgB9E,EAAatF,EAAgBxuC,EAAIoD,EACjD1G,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EACD,IAAKje,EAAK,MAAO,CAAC,EAAa,GAE/B,GADA,GAAOib,MAAM,iCAAkCjb,IAC1C6D,KAAK8nD,iBAAiB3rD,GAAM,MAAO,CAAC,EAAa,GACtD8c,EAAGmB,MAAQ,EACf,KAAK,EAED,OADAnB,EAAGqB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAK+nD,sBAAsBvG,IACpD,KAAK,EAED,OADAvoC,EAAGoB,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAmyC,EAAiBvzC,EAAGoB,OACpBuzB,EAAI,IAAI3pC,MAAM,8BAAgC9H,EAAI4D,QAAU,4CAA8CysD,EAAezsD,UAClH,CAAC,GACZ,KAAK,EAED,OADA6tC,EAAIzxC,GACG,CAAC,GACZ,KAAK,EAED,OADAurD,IAAcnrD,GAASA,EAAOmrD,YACzBA,EACE,CAAC,EAAa1nD,KAAKgb,YAAYrM,SADb,CAAC,EAAa,GAE3C,KAAK,EACDsK,EAAGoB,OACHpB,EAAGmB,MAAQ,EACf,KAAK,EAGD,OAFAgoC,EAAiBpiD,KAAK6/B,QAAQuiB,eAC9BxuC,EAAKy9B,EAAQE,iBAAiBkb,gBAAgBz1C,MAAOA,OAAe,IAAPpD,EAAgB,GAAKA,EAC9EoD,EAAM7L,MAAM,KAAKsJ,SAASysC,KAC1BM,EAAKmG,aAAY,SAAUxrD,EAAK/B,GAAQ,OAAO,GAAUkW,OAAO,OAAQ,GAAQ,WAC5E,IAAIo8C,EAAgBzE,EAAcqD,EAAe5qD,EAAGisD,EAAWC,EAAepJ,EAC9E,OAAO,GAAYxjD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,IAAKje,EAAK,MAAO,CAAC,EAAa,GAE/B,GADA,GAAOib,MAAM,2BAA4Bjb,IACpC6D,KAAK8nD,iBAAiB3rD,GAAM,MAAO,CAAC,EAAa,GACtDyX,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAK+nD,sBAAsBvG,IACpD,KAAK,EAED,OADA5tC,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAqyC,EAAiB94C,EAAGyG,OACpBuzB,EAAI,IAAI3pC,MAAM,8BAAgC9H,EAAI4D,QAAU,4CAA8C2sD,EAAe3sD,UAClH,CAAC,GACZ,KAAK,EAED,OADA6tC,EAAIzxC,GACG,CAAC,EAAa,GACzB,KAAK,EACDwxC,EAAI6T,GACJ5tC,EAAGwG,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,GAChB,KAAK,EAGD,IAFA6tC,EAAe7tD,EAAK8tD,qBAAuB,QAC3CoD,EAAgB,GACX5qD,EAAI,EAAGA,EAAItG,EAAKyyD,eAAejsD,OAAQF,IACxCisD,EAAY,CACRh1B,KAAMv9B,EAAKyyD,eAAensD,GAAGi3B,KAC7BqsB,MAAO5pD,EAAKyyD,eAAensD,GAAGsjD,OAElC4I,EAAgB,IAAI,KAAqBD,GACzCrB,EAAcpqD,KAAK0rD,GAIvB,OAFApJ,EAAaxjD,KAAK4rD,mBAAmBN,GACrCvlD,OAAOkJ,OAAOuyC,EAAM,CAAEgC,WAAYA,EAAYyE,aAAcA,IACrD,CAAC,EAActa,EAAI6T,IAEtC,GACJ,GAAI,GAAG,CAAEkG,YAAaA,EAAatF,eAAgBA,IAOhD,CAAC,KAJJ,GAAOhrC,MAAM,2CAA6C8pC,GAA7C,6CAEN,CAAC,EAAcvT,EAAI6T,KAI1C,GACJ,GAAI,GAAG,CAAEY,eAAgBA,IAClB,CAAC,KA7FJ,GAAOhrC,MAAM,qCACbw2B,EAAI,mBACG,CAAC,IA6FxB,GACJ,GAAI,IACCjxB,OAAM,SAAU1V,GAEjB,OADA,GAAOmQ,MAAM,wCAAyCnQ,GAC/C2mC,EAAI3mC,EACf,GACJ,IA1IWjH,KAAKujD,kBA2IpB,EACAjC,EAAUniD,UAAUktD,kBAAoB,WACpC,OAAOrsD,KAAKyhD,mBAChB,EAMAH,EAAUniD,UAAUwyC,yBAA2B,SAAUp1C,GACrD,OAAO,GAAUyD,UAAM,OAAQ,GAAQ,WACnC,IAAI8sD,EAAeC,EAAKtb,EAAe+P,EAAMwL,EAC7C,OAAO,GAAYhtD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,GAAOhD,MAAM,sCACb01C,EAAgB,KAChBl5C,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKsiD,cAC9B,KAAK,EAED,OADA1uC,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,MAFA0yC,EAAMn5C,EAAGyG,OACT,GAAOjD,MAAM,wCAAyC21C,GAChDA,EACV,KAAK,EACD,IACItb,EAAgB3qC,KAAKC,MAAM/G,KAAKgiD,SAASpzC,QAAQ,8BAC7C6iC,IACAqb,EAAgB,GAAS,GAAS,CAAC,EAAGrb,EAAc+P,MAAO,CAAEjhD,MAAOkxC,EAAclxC,QAE1F,CACA,MAAO0G,GACH,GAAOmQ,MAAM,+CACjB,CACA,OAAK01C,GACL9sD,KAAKwhD,KAAOsL,EACZ,GAAO11C,MAAM,2CAA4CpX,KAAKwhD,MACvD,CAAC,EAAcxhD,KAAKwhD,OAHA,CAAC,EAAa,GAI7C,KAAK,EACD,GAAOpqC,MAAM,2CACboqC,EAAO,KACP5tC,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKymD,oBAAoBlqD,IAClD,KAAK,EAED,OADAilD,EAAO5tC,EAAGyG,OACH,CAAC,EAAa,GACzB,KAAK,EAOD,OANA2yC,EAAMp5C,EAAGyG,OACG,gBAAR2yC,GACA,GAAO9pD,MAAM,kJAGjB,GAAOkU,MAAM,6CAA8C41C,GACpD,CAAC,EAAcjzD,QAAQE,OAAO,kCACzC,KAAK,EAED,OADA+F,KAAKwhD,KAAOA,EACL,CAAC,EAAcxhD,KAAKwhD,MAEvC,GACJ,GACJ,EAKAF,EAAUniD,UAAUmyC,eAAiB,WACjC,IAAIiV,EAAOvmD,KAGX,OAFA,GAAOoX,MAAM,2BAERpX,KAAKuhD,SAGH,IAAIxnD,SAAQ,SAAU4zC,EAAKC,GAC9B2Y,EACKE,sBACAjmD,MAAK,SAAUghD,GAChB+E,EACKmE,YAAYlJ,GACZhhD,MAAK,SAAU6wC,GAChB1D,EAAI0D,EAER,IACK10B,OAAM,SAAU1V,GACjB,GAAOmQ,MAAM,oCAAqCnQ,GAClD2mC,EAAI3mC,EAER,GACJ,IACK0V,OAAM,SAAU1V,GACjB,GAAOmQ,MAAM,iCAAkCnQ,GAC/C2mC,EAAI3mC,EAER,GACJ,IAvBWlN,QAAQE,OAAO,IAAIgK,MAAM,sCAwBxC,EAMAq9C,EAAUniD,UAAUurD,YAAc,SAAUlJ,GACxC,IAAIlxC,EAAQtQ,KACZ,IAAKwhD,EAED,OADA,GAAOpqC,MAAM,oBACNpX,KAAKikD,gBAAgBxO,EAAewX,eAE/C,IAAI7K,EAAiBpiD,KAAK6/B,QAAQuiB,eAClC,OAAO,IAAIroD,SAAQ,SAAU4zC,EAAKC,GAC9B,GAAOx2B,MAAM,sCAAuCoqC,GACpDA,EAAKyJ,YAAW,SAAU9uD,EAAKk1C,GAAW,OAAO,GAAU/gC,OAAO,OAAQ,GAAQ,WAC9E,IAAI48C,EACJ,OAAO,GAAYltD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,IAAKje,EAAK,MAAO,CAAC,EAAa,GAE/B,GADA,GAAOib,MAAM,sCAAuCoqC,IAC/CxhD,KAAK8nD,iBAAiB3rD,GAAM,MAAO,CAAC,EAAa,GACtDyX,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAK+nD,sBAAsBvG,IACpD,KAAK,EAED,OADA5tC,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFA6yC,EAAiBt5C,EAAGyG,OACpBuzB,EAAI,IAAI3pC,MAAM,8BAAgC9H,EAAI4D,QAAU,4CAA8CmtD,EAAentD,UAClH,CAAC,GACZ,KAAK,EAED,OADA6tC,EAAIzxC,GACG,CAAC,GACZ,KAAK,EAGD,OAFA,GAAOib,MAAM,kCAAmCi6B,GAChD1D,EAAI0D,GACG,CAAC,GAEpB,GACJ,GAAI,GAAG,CAAE+Q,eAAgBA,GAC7B,GACJ,EAKAd,EAAUniD,UAAU2iD,uBAAyB,WACzC,OAAO,GAAU9hD,UAAM,OAAQ,GAAQ,WACnC,IAAImtD,EAAK1b,EACLnhC,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,GAAOhD,MAAM,oCACbxD,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKsiD,cAC9B,KAAK,EAED,OADA1uC,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,MAFA8yC,EAAMv5C,EAAGyG,OACT,GAAOjD,MAAM,wCAAyC+1C,GAChDA,EACV,KAAK,EACD1b,EAAgB,KAChB,IACIA,EAAgB3qC,KAAKC,MAAM/G,KAAKgiD,SAASpzC,QAAQ,6BACrD,CACA,MAAO3H,GACH,GAAOmQ,MAAM,wDAAyDnQ,EAC1E,CACA,OAAIwqC,EAEO,CAAC,EAAczxC,KAAKgb,YAAYoyC,sBAAsB3b,IAGtD,CAAC,EAAczxC,KAAKsxC,iBAClB9wC,MAAK,SAAU6wC,GAEhB,OADA,GAAOj6B,MAAM,0BAA2Bi6B,GACjC/gC,EAAM0K,YAAYyC,IAAI4zB,EAAS,UAC1C,IACK10B,OAAM,WAEP,OADA,GAAOvF,MAAM,6BACN9G,EAAM0K,YAAYyC,IAAI,KAAM,QACvC,KAIpB,GACJ,GACJ,EACA6jC,EAAUniD,UAAU0iD,mBAAqB,WAErC,OADA,GAAOzqC,MAAM,+BACNpX,KAAKgb,YAAYwB,KAC5B,EAOA8kC,EAAUniD,UAAUkuD,oBAAsB,SAAU7L,EAAM+J,EAAMnJ,GAE5D,YADuB,IAAnBA,IAA6BA,EAAiBpiD,KAAK6/B,QAAQuiB,gBACxD,IAAIroD,SAAQ,SAAUC,EAASC,GAClCunD,EAAK8L,6BAA6B/B,EAAM,CACpCjkB,UAAW,SAAUimB,GACjB,OAAOvzD,EAAQuzD,EACnB,EACAhmB,UAAW,SAAUprC,GACjB,OAAOlC,EAAOkC,EAClB,GACDimD,EACP,GACJ,EAQAd,EAAUniD,UAAUquD,0BAA4B,SAAUhM,EAAM+J,EAAMvnD,GAClE,OAAKA,EAGE,IAAIjK,SAAQ,SAAUC,EAASC,GAClCunD,EAAKiM,gBAAgBlC,EAAMvnD,EAAM,CAC7BsjC,UAAW,SAAUltC,GACjBJ,EAAQI,EAEZ,EACAmtC,UAAW,SAAUprC,GACjBlC,EAAOkC,EAEX,GAER,IAbW6D,KAAKikD,gBAAgBxO,EAAemQ,UAcnD,EACAtE,EAAUniD,UAAUuuD,2BAA6B,SAAUnC,GACvD,IAAIhF,EAAOvmD,KACX,OAAOumD,EACFE,sBACAjmD,MAAK,SAAUghD,GAAQ,OAAO+E,EAAK8G,oBAAoB7L,EAAM+J,EAAO,GAC7E,EAOAjK,EAAUniD,UAAUwuD,iCAAmC,SAAUpC,EAAMvnD,GACnE,IAAIuiD,EAAOvmD,KACX,OAAOumD,EACFE,sBACAjmD,MAAK,SAAUghD,GAAQ,OAAO+E,EAAKiH,0BAA0BhM,EAAM+J,EAAMvnD,EAAO,GACzF,EACAs9C,EAAUniD,UAAUyuD,uBAAyB,SAAU3hD,EAAMu1C,GACzD,OAAO,GAAUxhD,UAAM,OAAQ,GAAQ,WACnC,IAAI6tD,EAAM/C,EACNx6C,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKsiD,cAC9B,KAAK,EAED,OADA1uC,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,MAFAwzC,EAAOj6C,EAAGyG,OACV,GAAOjD,MAAM,wCAAyCy2C,GAChDA,EACV,KAAK,EAGD,OAFA/C,EAAqB9qD,KAAK6iD,eACoC,SAA1D7iD,KAAKgiD,SAASpzC,QAAQ,gCACnB,CAAC,EAAc,IAAI7U,SAAQ,SAAU4zC,EAAKC,GACzC,GAAI3hC,GAAQA,EAAK6hD,OAAQ,CACrB,GAAO12C,MAAM,uBAAwBoqC,GAGrC,IAAIY,EAAiB9xC,EAAMuvB,QAAQuiB,eACnCZ,EAAKyJ,YAAW,SAAU9uD,EAAK0P,GAAU,OAAO,GAAUyE,OAAO,OAAQ,GAAQ,WAC7E,IAAIy9C,EACAz9C,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,IAAKje,EAAK,MAAO,CAAC,EAAa,GAE/B,GADA,GAAOib,MAAM,iCAAkCjb,IAC1C6D,KAAK8nD,iBAAiB3rD,GAAM,MAAO,CAAC,EAAa,GACtDyX,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAK+nD,sBAAsBvG,IACpD,KAAK,EAED,OADA5tC,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFA0zC,EAAiBn6C,EAAGyG,OACpBuzB,EAAI,IAAI3pC,MAAM,8BAAgC9H,EAAI4D,QAAU,4CAA8CguD,EAAehuD,UAClH,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,EAAc6tC,EAAIzxC,IAClC,KAAK,EAgBD,OAfAqlD,EAAKwM,cAAc,CACf1mB,UAAW,SAAUltC,GAEjB,GADA,GAAOgd,MAAM,4BACT0zC,EAIA,OAAOnd,IAHPr9B,EAAM86C,qBAAqBzd,EAAKC,EAKxC,EACArG,UAAW,SAAUprC,GAEjB,OADA,GAAOib,MAAM,yBAA0Bjb,GAChCyxC,EAAIzxC,EACf,IAEG,CAAC,GAEpB,GACJ,GAAI,GAAG,CAAEimD,eAAgBA,GAC7B,MAEI,GAAOhrC,MAAM,gBAAiBoqC,GAC9BA,EAAKvD,SAAQ,WACT,IAAI6M,EAIA,OAAOnd,IAHPr9B,EAAM86C,qBAAqBzd,EAAKC,EAKxC,GAER,KAEhB,GACJ,GACJ,EACA0T,EAAUniD,UAAUisD,qBAAuB,SAAUpxD,EAASC,GAC1D,IAAI0+C,GAAY,UAAgBA,UAC5BA,EACA34C,KAAKiuD,6BAA6Bh0D,GAGlC+F,KAAKkuD,uBAAuBl0D,EAEpC,EACAsnD,EAAUniD,UAAU+uD,uBAAyB,SAAUl0D,GACnDgG,KAAK6iD,cAAc5E,UACnBjkD,GACJ,EACAsnD,EAAUniD,UAAU8uD,6BAA+B,SAAUh0D,GACzD+F,KAAK6iD,cAAc5E,UAEnBnhD,YAAW,WAAc,OAAO7C,EAAOgK,MAAM,wBAA0B,GAAG,IAC9E,EAMAq9C,EAAUniD,UAAU8+C,QAAU,SAAUhyC,GACpC,OAAO,GAAUjM,UAAM,OAAQ,GAAQ,WACnC,IAAUwhD,EACV,OAAO,GAAYxhD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKmrD,oBAC9B,KAAK,EAED,OADAv3C,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,OAFOzG,EAAGyG,OACV,GAAOjD,MAAM,gCACN,CAAC,EAAa,GACzB,KAAK,EACD,OAAKpX,KAAKuhD,UACVC,EAAOxhD,KAAKuhD,SAASyJ,iBAChBxJ,EACE,CAAC,EAAaxhD,KAAK4tD,uBAAuB3hD,EAAMu1C,IADrC,CAAC,EAAa,IAFL,CAAC,EAAa,GAI7C,KAAK,EAED,OADA5tC,EAAGyG,OACI,CAAC,EAAa,GACzB,KAAK,EACD,GAAOjD,MAAM,2BACbxD,EAAGwG,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAa,GAC7B,KAAK,EACD,GAAOhD,MAAM,wBACbxD,EAAGwG,MAAQ,EACf,KAAK,EASD,OAFA,GAAkB,UAAWpa,KAAKwhD,KAAM,8BACxCxhD,KAAKwhD,KAAO,KACL,CAAC,GAEpB,GACJ,GACJ,EACAF,EAAUniD,UAAUgsD,iBAAmB,WACnC,OAAO,GAAUnrD,UAAM,OAAQ,GAAQ,WACnC,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAEL,MAAO,CAAC,EAAapa,KAAKgb,YAAYrM,SACtC,KAAK,EAGD,OADAiF,EAAGyG,OACI,CAAC,GAEpB,GACJ,GACJ,EAQAinC,EAAUniD,UAAUgvD,eAAiB,SAAU3M,EAAM4M,EAAaC,EAAajM,GAC3E,IAAI9xC,EAAQtQ,KAEZ,YADuB,IAAnBoiD,IAA6BA,EAAiBpiD,KAAK6/B,QAAQuiB,gBACxD,IAAIroD,SAAQ,SAAUC,EAASC,GAClCqW,EAAMo6C,YAAYlJ,GAAMhhD,MAAK,SAAU6wC,GACnCmQ,EAAK2M,eAAeC,EAAaC,GAAa,SAAUlyD,EAAK/B,GACzD,OAAI+B,GACA,GAAOib,MAAM,0BAA2Bjb,GACjClC,EAAOkC,IAGPnC,EAAQI,EAEvB,GAAGgoD,EACP,GACJ,GACJ,EAMAd,EAAUniD,UAAUmvD,eAAiB,SAAUrzD,EAAUmnD,GAErD,QADuB,IAAnBA,IAA6BA,EAAiBpiD,KAAK6/B,QAAQuiB,iBAC1DpiD,KAAKuhD,SACN,OAAOvhD,KAAKujD,mBAEhB,IAAKtoD,EACD,OAAO+E,KAAKikD,gBAAgBxO,EAAe+O,eAE/C,IAAIhD,EAAOxhD,KAAKulD,kBAAkBtqD,GAClC,OAAO,IAAIlB,SAAQ,SAAUC,EAASC,GAClCunD,EAAK8M,eAAe,CAChBhnB,UAAW,WACPttC,GAEJ,EACAutC,UAAW,SAAUprC,GACjB,GAAOib,MAAM,0BAA2Bjb,GACxC,GAAkB,yBAA0BA,EAAKlB,EAAW,0BAC5DhB,EAAOkC,EAEX,EACAoyD,sBAAuB,SAAUn0D,GAC7B,GAAkB,iBAAkBonD,EAAMvmD,EAAW,uCACrDjB,EAAQI,EAEZ,GACDgoD,EACP,GACJ,EAQAd,EAAUniD,UAAUqvD,qBAAuB,SAAUvzD,EAAU+I,EAAM9I,EAAUknD,GAE3E,QADuB,IAAnBA,IAA6BA,EAAiBpiD,KAAK6/B,QAAQuiB,iBAC1DpiD,KAAKuhD,SACN,OAAOvhD,KAAKujD,mBAEhB,IAAKtoD,EACD,OAAO+E,KAAKikD,gBAAgBxO,EAAe+O,eAE/C,IAAKxgD,EACD,OAAOhE,KAAKikD,gBAAgBxO,EAAemQ,WAE/C,IAAK1qD,EACD,OAAO8E,KAAKikD,gBAAgBxO,EAAe8O,eAE/C,IAAI/C,EAAOxhD,KAAKulD,kBAAkBtqD,GAClC,OAAO,IAAIlB,SAAQ,SAAUC,EAASC,GAClCunD,EAAKiN,gBAAgBzqD,EAAM9I,EAAU,CACjCosC,UAAW,SAAUimB,GACjB,GAAkB,uBAAwB/L,EAAMvmD,EAAW,oCAC3DjB,EAAQuzD,EAEZ,EACAhmB,UAAW,SAAUprC,GACjB,GAAkB,+BAAgCA,EAAKlB,EAAW,gCAClEhB,EAAOkC,EAEX,GACDimD,EACP,GACJ,EAMAd,EAAUniD,UAAUuvD,gBAAkB,WAClC,OAAO,GAAU1uD,UAAM,OAAQ,GAAQ,WACnC,IAAIqB,EAAcmiD,EAAYmL,EAAWlyC,EAAamyC,EAAMC,EAAM3lB,EAAOsY,EACzE,OAAO,GAAYxhD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAED,OADA/Y,EAASrB,KAAKgb,YAAY8zC,gBACnBztD,GAAqB,QAAXA,GAA+B,aAAXA,EAA+B,CAAC,EAAa,GAC3E,CAAC,EAAarB,KAAKymD,sBAAsB9pC,OAAM,SAAUxgB,GACxD,OAAO,GAAO+G,MAAM/G,EACxB,KACR,KAAK,EAED,GADAqlD,EAAO5tC,EAAGyG,QACLmnC,EACD,MAAO,CAAC,EAAc,MAE1B5tC,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKgnD,eAAexF,IAC7C,KAAK,EACDgC,EAAa5vC,EAAGyG,OAChBs0C,EAAY3uD,KAAK4rD,mBAAmBpI,GACpC/mC,EAAc,KACd7I,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAK6hD,sBAC9B,KAAK,EAED,OADAplC,EAAc7I,EAAGyG,OACV,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAu0C,EAAOh7C,EAAGyG,OACV,GAAOjD,MAAM,iEAAkEw3C,GACxE,CAAC,EAAa,GACzB,KAAK,EAMD,OALAC,EAAO,CACHprD,GAAIgZ,EAAcA,EAAYsyC,gBAAarxD,EAC3CzC,SAAUumD,EAAKgE,cACfhC,WAAYmL,GAET,CAAC,EAAcE,GAC1B,KAAK,EAGD,OAFA3lB,EAAQt1B,EAAGyG,OACX,GAAOnX,MAAM,wBAAyBgmC,GAC/B,CAAC,EAAc,CAAC,GAC3B,KAAK,EACD,MAAe,cAAX7nC,GACAmgD,EAAOxhD,KAAKwhD,KACL,CAAC,EAAcA,GAAc,CAAC,IAElC,CAAC,GAEpB,GACJ,GACJ,EACAF,EAAUniD,UAAU6vD,gBAAkB,SAAUC,EAAmBnzD,EAAU0lD,GACzE,OAAO,GAAUxhD,UAAM,OAAQ,GAAQ,WACnC,IAAIuD,EAAmB83C,EAAaa,EAAWF,EAAchW,EAAUkpB,EAAc3uD,EAAO4uD,EAAaC,EAAY3yC,EAAai1B,EAClI,OAAO,GAAY1xC,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,IAAKpa,KAAK6/B,QAAQ6W,iBAAmB12C,KAAK6/B,QAAQ2W,WAC9C,MAAM,IAAIvyC,MAAM,qEAGpB,GAAiC,qBAAtBgrD,GACHjvD,KAAK6/B,QAAQ6W,iBAAmB12C,KAAK6/B,QAAQ2W,WAC7C,MAAM,IAAIvyC,MAAM,sEAGxB,OAAM0xC,EAAyBsZ,IAC3BrZ,EAA+BqZ,IAC/BpZ,EAAeoZ,IACc,qBAAtBA,GACX1rD,EAAU0rD,GAAqB,CAC3BjpB,SAAUwP,EAAgC8F,SAE9CtV,EAAW2P,EAAyBpyC,GAC9BA,EAAQyiC,SACRziC,EAAQ8rD,eACA1Z,EAAyBpyC,GAAvC83C,EACM93C,EAAQ83C,YAEVr7C,KAAK6/B,QAAQ2W,aACb0F,EAAYpG,EAAoB91C,KAAK6/B,QAAQkW,OACvC/1C,KAAK6/B,QAAQ4W,oBACbz2C,KAAK6/B,QAAQkW,MAAMkH,SACzBjB,EAAelG,EAAoB91C,KAAK6/B,QAAQkW,OAC1C/1C,KAAK6/B,QAAQkW,MAAMC,eACnBh2C,KAAK6/B,QAAQkW,MAAMmH,YACzBl9C,KAAK6iD,cAAczH,YAAYp7C,KAAK6/B,QAAQkW,MAAMx7C,aAAcyF,KAAK6/B,QAAQkW,MAAMjtC,OAAQkzC,EAAcE,EAAWlW,EAAUqV,IAE3H,CAAC,EAAa,IAnBiC,CAAC,EAAa,GAoBxE,KAAK,EACDrV,EAAWipB,EAEX,IACIC,EAAepoD,KAAKI,UAAUJ,KAAKC,MAAM/G,KAAKgiD,SAASpzC,QAAQ,8BAA8B4yC,MACzF0N,GACA,GAAO/iD,KAAK,sCAAwC+iD,EAAe,8IAE3E,CACA,MAAOjoD,GAAK,CAEZ,OADA1G,EAAQzE,EAASyE,MAAO4uD,EAAcrzD,EAASqzD,YAAaC,EAAatzD,EAASszD,WAC3E,CAAC,EAAapvD,KAAKgb,YAAYyC,IAAI,CAAEuoB,SAAUA,EAAUzlC,MAAOA,EAAO4uD,YAAaA,EAAa3N,KAAMA,EAAM4N,WAAYA,GAAc,eAClJ,KAAK,EAED,OADA3yC,EAAc7I,EAAGyG,OACV,CAAC,EAAara,KAAK2xC,4BAC9B,KAAK,EAID,OAHAD,EAAc99B,EAAGyG,OACjB,GAAkB,SAAUq3B,EAAa,UAAYA,EAAYz2C,SAAW,uBAC5E,GAAOmc,MAAM,gCAAiCqF,GACvC,CAAC,EAAcA,GAC1B,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EAKA6kC,EAAUniD,UAAU6jD,oBAAsB,SAAU5G,GAChD,OAAO,GAAUp8C,UAAM,OAAQ,GAAQ,WACnC,IAAIs8C,EAAYgT,EAAgBC,EAAiB37C,EAAI0pC,EAAaE,EAASD,EAAcrD,EAAO7I,EAAS50B,EAAa+yC,EAAuB9d,EAAa2J,EAAa3O,EACvK,OAAO,GAAY1sC,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EACD,GAAIpa,KAAKyhD,oBAEL,OADA,GAAOrqC,MAAM,gBAAkBglC,EAAM,6BAC9B,CAAC,GAEZnjC,EAAGmB,MAAQ,EACf,KAAK,EAGD,GAFAnB,EAAGqB,KAAKpZ,KAAK,CAAC,EAAG,CAAE,EAAG,IACtBlB,KAAKyhD,qBAAsB,GACtBzhD,KAAK6/B,QAAQ2W,WACd,MAAM,IAAIvyC,MAAM,yDAmBpB,GAjBA,GAAkB,qBAAsB,CAAExI,IAAK2gD,GAAO,oCACtDE,EAAaF,KAAQ,UAAgBzD,UAAY9tC,OAAOC,SAASX,KAAO,IACxEmlD,MAAoB,QAAMhT,GAAY1mC,OAAS,IAC1CzK,MAAM,KACN0K,KAAI,SAAUgoC,GAAS,OAAOA,EAAM1yC,MAAM,IAAM,IAChD6T,MAAK,SAAUpL,GAChB,IAAIqF,EAAK,GAAOrF,EAAI,GAAIyD,EAAI4B,EAAG,GAC/B,MAAa,SAAN5B,GAAsB,UAANA,CAC3B,IACAk4C,MAAqB,QAAMjT,GAAY9xC,MAAQ,KAC1Ca,OAAO,GACPF,MAAM,KACN0K,KAAI,SAAUgoC,GAAS,OAAOA,EAAM1yC,MAAM,IAAM,IAChD6T,MAAK,SAAUpL,GAChB,IAAIqF,EAAK,GAAOrF,EAAI,GAAIyD,EAAI4B,EAAG,GAC/B,MAAa,iBAAN5B,GAA8B,UAANA,CACnC,KACMi4C,IAAkBC,EAAkB,MAAO,CAAC,EAAa,GAC/DvvD,KAAKgiD,SAASnzC,QAAQ,oCAAqC,QAC3DoK,EAAGmB,MAAQ,EACf,KAAK,EAED,OADAnB,EAAGqB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAK6iD,cAAcnF,mBAAmBpB,IAC/D,KAAK,EAYD,OAXA1oC,EAAKqF,EAAGoB,OAAQijC,EAAc1pC,EAAG0pC,YAAaE,EAAU5pC,EAAG4pC,QAASD,EAAe3pC,EAAG2pC,aAAcrD,EAAQtmC,EAAGsmC,MAC/G7I,EAAU,IAAI,KAAmB,CAC7Boe,QAAS,IAAI,KAAe,CAAEA,QAASjS,IACvCkS,aAAc,IAAI,KAAoB,CAClCA,aAAcnS,IAElBoS,YAAa,IAAI,KAAmB,CAChCA,YAAarS,MAGrB7gC,OAAc,EACTzc,KAAK6/B,QAAQ6W,eACX,CAAC,EAAa12C,KAAKgb,YAAYyC,IAAI4zB,EAAS,YADV,CAAC,EAAa,GAE3D,KAAK,EACD50B,EAAcxD,EAAGoB,OACjB,GAAOjD,MAAM,kBAAmBqF,GAChCxD,EAAGmB,MAAQ,EACf,KAAK,EAeD,OAdAo1C,EAAwB,IAAI9lD,KAAKwwC,GACjCxI,EAAc1xC,KAAKulD,kBAAkBlU,EAAQue,aAAanD,gBAAgB,qBAE1E/a,EAAYme,qBAAqBxe,GAC7BxmC,QAAoC,qBAAnBA,OAAOilD,SACxBjlD,OAAOilD,QAAQC,aAAa,CAAC,EAAG,KAAM/vD,KAAK6/B,QAAQkW,MAAMC,gBAE7D,GAAkB,SAAUtE,EAAa,UAAYA,EAAY8T,cAAgB,uBACjF,GAAkB,kBAAmB9T,EAAa,UAAYA,EAAY8T,cAAgB,6CACtFgK,IACAnU,EAAcnB,EAAM/uC,MAAM,KAAK/J,OAAO,GAAGoH,KAAK,KAC9C,GAAkB,mBAAoBkxC,EAAc2B,GAAc,kBAAoB3J,EAAY8T,gBAG/F,CAAC,EAAc/oC,GAC1B,KAAK,EAWD,OAVAiwB,EAAQzzB,EAAGoB,OACX,GAAOjD,MAAM,wCAAyCs1B,GAGlD7hC,QAAoC,qBAAnBA,OAAOilD,SACxBjlD,OAAOilD,QAAQC,aAAa,CAAC,EAAG,KAAM/vD,KAAK6/B,QAAQkW,MAAMC,gBAE7D,GAAkB,iBAAkBtJ,EAAO,kCAC3C,GAAkB,0BAA2BA,EAAO,8DACpD,GAAkB,sBAAuBA,EAAO,2CACzC,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAa,GAC7B,KAAK,EAED,OADA1sC,KAAKyhD,qBAAsB,EACpB,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EAMAH,EAAUniD,UAAU6wD,qBAAuB,SAAUvzC,GACjD,MAAO,CACH0B,YAAa1B,EAAY0B,YACzBC,aAAc3B,EAAY2B,aAC1BF,gBAAiBzB,EAAYyB,gBAC7B6wC,WAAYtyC,EAAYsyC,WACxBkB,cAAexzC,EAAYwzC,cAEnC,EACA3O,EAAUniD,UAAUysD,mBAAqB,SAAUpI,GAC/C,IAAIlzC,EAAQtQ,KACR4M,EAAM,CAAC,EAaX,OAZI42C,GACAA,EAAW3tC,KAAI,SAAU82C,GACE,mBAAnBA,EAAUh1B,MACS,0BAAnBg1B,EAAUh1B,KACV/qB,EAAI+/C,EAAUh1B,MACVrnB,EAAM4/C,eAAevD,EAAU3I,SAA8B,IAApB2I,EAAU3I,MAGvDp3C,EAAI+/C,EAAUh1B,MAAQg1B,EAAU3I,KAExC,IAEGp3C,CACX,EACA00C,EAAUniD,UAAU+wD,eAAiB,SAAUh0D,GAC3C,MAAqC,oBAAtBA,EAAM6B,aAAsD,SAAxB7B,EAAM6B,aAC7D,EACAujD,EAAUniD,UAAUomD,kBAAoB,SAAUtqD,GAC9C,IAAIytD,EAAW,CACXhE,SAAUzpD,EACVk1D,KAAMnwD,KAAKuhD,UAEfmH,EAASzR,QAAUj3C,KAAKgiD,SACxB,IAAIoO,EAAyBpwD,KAAK6/B,QAAQuwB,uBACtC5O,EAAO,IAAI,KAAYkH,GAI3B,OAHI0H,GACA5O,EAAK6F,0BAA0B+I,GAE5B5O,CACX,EACAF,EAAUniD,UAAUkjD,oBAAsB,SAAUz1C,GAEhD,QAAUA,GACiB,oBAAhBA,EAAIgC,SACY,oBAAhBhC,EAAIiC,SACe,oBAAnBjC,EAAIkC,YACU,oBAAdlC,EAAI+B,KACnB,EACA2yC,EAAUniD,UAAUkxD,uBAAyB,SAAUv2D,GACnD,OAAIA,GACKA,EAAO08C,YAAe18C,EAAO48C,eAI/BjB,EAAe6a,SAHP7a,EAAe8a,iBAIlC,EACAjP,EAAUniD,UAAU8kD,gBAAkB,SAAU1lD,GAC5C,OAAOxE,QAAQE,OAAO,IAAIklD,GAAU5gD,GACxC,EACA+iD,EAAUniD,UAAUokD,iBAAmB,WACnC,IAAIhlD,EAAOyB,KAAKqwD,uBAAuBrwD,KAAK6/B,SAC5C,OAAO9lC,QAAQE,OAAO,IAAIolD,GAAgB9gD,GAC9C,EACA+iD,EAAUniD,UAAUqxD,eAAiB,WACjC,OAAO,GAAUxwD,UAAM,OAAQ,GAAQ,WACnC,IAAIywD,EAAUC,EACd,OAAO,GAAY1wD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKymD,uBAC9B,KAAK,EAED,OADAgK,EAAW78C,EAAGyG,OACP,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAq2C,EAAU98C,EAAGyG,OACb,GAAOjD,MAAM,6CAA8Cs5C,GACpD,CAAC,EAAc32D,QAAQE,OAAO,kCACzC,KAAK,EAED,OADAw2D,EAASE,gCACF,CAAC,EAAc,IAAI52D,SAAQ,SAAU4zC,EAAKC,GACzC6iB,EAASG,0BAA0B,CAC/BtpB,UAAW,SAAUltC,GACjBuzC,EAAIvzC,EACR,EACAmtC,UAAW,SAAUprC,GACA,8BAAbA,EAAI6H,KACJ4pC,EAAI,IAAIuR,GAAU1J,EAAeob,eAEf,iBAAb10D,EAAI6H,KACT4pC,EAAI,IAAIuR,GAAU1J,EAAeqb,eAGjCljB,EAAIzxC,EAEZ,GAER,KAEhB,GACJ,GACJ,EACAmlD,EAAUniD,UAAU4xD,aAAe,WAC/B,OAAO,GAAU/wD,UAAM,OAAQ,GAAQ,WACnC,IAAIywD,EAAUO,EACd,OAAO,GAAYhxD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKymD,uBAC9B,KAAK,EAED,OADAgK,EAAW78C,EAAGyG,OACP,CAAC,EAAa,GACzB,KAAK,EAGD,OAFA22C,EAAUp9C,EAAGyG,OACb,GAAOjD,MAAM,6CAA8C45C,GACpD,CAAC,EAAcj3D,QAAQE,OAAO,kCACzC,KAAK,EAED,OADAw2D,EAASE,gCACF,CAAC,EAAc,IAAI52D,SAAQ,SAAU4zC,EAAKC,GACzC6iB,EAASM,aAAa,CAClBzpB,UAAW,SAAUltC,GACjBuzC,EAAIvzC,EACR,EACAmtC,UAAW,SAAUprC,GACA,8BAAbA,EAAI6H,KACJ4pC,EAAI,IAAIuR,GAAU1J,EAAeob,eAEf,iBAAb10D,EAAI6H,KACT4pC,EAAI,IAAIuR,GAAU1J,EAAeqb,eAGjCljB,EAAIzxC,EAEZ,GAER,KAEhB,GACJ,GACJ,EACAmlD,EAAUniD,UAAU8xD,aAAe,WAC/B,OAAO,GAAUjxD,UAAM,OAAQ,GAAQ,WACnC,IAAIywD,EAAUS,EACd,OAAO,GAAYlxD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKymD,uBAC9B,KAAK,EAED,OADAgK,EAAW78C,EAAGyG,OACP,CAAC,EAAa,GACzB,KAAK,EAGD,MAFA62C,EAAUt9C,EAAGyG,OACb,GAAOjD,MAAM,6CAA8C85C,GACrD,IAAIjtD,MAAM,iCACpB,KAAK,EAED,OADAwsD,EAASE,gCACF,CAAC,EAAc,IAAI52D,SAAQ,SAAU4zC,EAAKC,GACzC,IAAI/O,EAAK,CACLyI,UAAW,SAAUltC,GACjB,IAAI+2D,EAAa/2D,EAAKg3D,QAAQv7C,KAAI,SAAUw7C,GACxC,IAAIC,EAAaD,EAAOE,iBAAiBvyC,MAAK,SAAUpL,GACpD,IAAI+jB,EAAO/jB,EAAG+jB,KACd,MAAgB,gBAATA,CACX,KAAM,CAAC,EACH65B,EAAa,CACb/tD,GAAI4tD,EAAOI,UACX9sD,KAAM2sD,EAAWtN,OAErB,OAAOwN,CACX,IACA7jB,EAAIwjB,EACR,EACA5pB,UAAW,SAAUprC,GACA,8BAAbA,EAAI6H,KACJ4pC,EAAI,IAAIuR,GAAU1J,EAAeob,eAEf,iBAAb10D,EAAI6H,KACT4pC,EAAI,IAAIuR,GAAU1J,EAAeqb,eAGjCljB,EAAIzxC,EAEZ,GAEJs0D,EAASiB,YAAYtQ,GAAa,KAAMviB,EAC5C,KAEhB,GACJ,GACJ,EACOyiB,CACX,CA13E8B,GA43EnBjX,GAAO,IAAIiX,GAAU,MAChCqQ,EAAA,GAAQl/C,SAAS43B,G,oFCl+Eb33B,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACX,EAEIlE,EAAS,IAAI,IAAY,WACzB6iD,EAA8B,WAC9B,SAASA,IAEL5xD,KAAK6xD,YAAc,GACnB7xD,KAAK6/B,QAAU,CAAC,EAEhB7/B,KAAK8xD,SAAW,CAAC,EAGjB9xD,KAAKqqC,KAAO,KACZrqC,KAAKq2C,UAAY,KACjBr2C,KAAKye,IAAM,KACXze,KAAKgb,YAAc,KACnBhb,KAAKi3C,QAAU,KACfj3C,KAAKspC,KAAO,KACZtpC,KAAK4P,MAAQ,KACb5P,KAAKqyC,OAAS,KACdryC,KAAK+xD,aAAe,KACpB/xD,KAAKgyD,iBAAmB,KACxBhyD,KAAKiyD,GAAK,KACVjyD,KAAKkyD,GAAK,KACVlyD,KAAKmyD,YAAc,KACnBnyD,KAAKoyD,UAAY,KACjBpyD,KAAKm3C,IAAM,KACXn3C,KAAKqyD,OAAS,IACdryD,KAAKsyD,cAAgB,IACzB,CAuDA,OAtDAV,EAAazyD,UAAUsT,SAAW,SAAU8/C,GACxCxjD,EAAOqI,MAAM,kCAAmCm7C,GAChDvyD,KAAK6xD,YAAY3wD,KAAKqxD,GACY,oBAAvBA,EAAKnjD,eACZpP,KAAK8xD,SAASS,EAAKnjD,iBAAmBmjD,EACtCvyD,KAAKuyD,EAAKnjD,iBAAmBmjD,GAG7BxjD,EAAOqI,MAAM,wCAAyCm7C,GAQ1DA,EAAK5iD,UAAU3P,KAAK6/B,QACxB,EACA+xB,EAAazyD,UAAUwQ,UAAY,SAAU7V,GACzC,IAAIwW,EAAQtQ,KACZ,OAAKlG,GAELkG,KAAK6/B,QAAU95B,OAAOkJ,OAAOjP,KAAK6/B,QAAS/lC,GAC3CiV,EAAOqI,MAAM,iBAAkBpX,KAAK6/B,SAIpC95B,OAAO2iC,QAAQ1oC,KAAK8xD,UAAUl0D,SAAQ,SAAUgW,GAC5C,IAAIqF,EAAKvG,EAAOkB,EAAI,GAAkB2+C,GAAPt5C,EAAG,GAAWA,EAAG,IAEhDlT,OAAOC,KAAKusD,GAAM30D,SAAQ,SAAU40D,GAE5BliD,EAAMwhD,SAASU,KACfD,EAAKC,GAAYliD,EAAMwhD,SAASU,GAExC,GACJ,IACAxyD,KAAK6xD,YAAYh8C,KAAI,SAAU08C,GAC3BA,EAAK5iD,UAAUW,EAAMuvB,QACzB,IACO7/B,KAAK6/B,SAnBD7/B,KAAK6/B,OAoBpB,EACA+xB,EAAazyD,UAAUozC,aAAe,SAAUD,GACxCA,GACAA,EAAU,gBAC0B,oBAA7BA,EAAU,gBACjBtyC,KAAK6xD,YAAYh8C,KAAI,SAAU08C,GACvBA,EAAK,iBAC2B,oBAAzBA,EAAK,iBACZA,EAAKhgB,aAAaD,EAE1B,GAER,EACOsf,CACX,CAlFiC,GAoFtBD,EAAU,IAAIC,C,oHCtGrB,EAAwC,SAAU7pD,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI,EAA4C,SAAUnL,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EAgBIuU,EAAS,IAAI,IAAO,sBACpB0jD,EAAc,IAAI14D,SAAQ,SAAU4zC,EAAKC,GACzC,KAAK,UAAgB+K,UAEjB,OADA5pC,EAAOqI,MAAM,yCACNu2B,IAEX,IAAI+kB,EAAK7nD,OAAO,SAAWA,OAAO,QAAQ8nD,MAAQ9nD,OAAO,QAAQ8nD,MAAQ,KACzE,GAAID,EAEA,OADA3jD,EAAOqI,MAAM,6BACNu2B,IAGP7wC,YAAW,WACP,OAAO6wC,GACX,GAAG,IAEX,IACIilB,EAA6B,WAC7B,SAASA,IACL5yD,KAAK6yD,aAAc,EACnB7yD,KAAK8yD,mBAAqB9yD,KAAK8yD,mBAAmBl0D,KAAKoB,MACvDA,KAAK+yD,wBAA0B/yD,KAAK+yD,wBAAwBn0D,KAAKoB,KACrE,CAgEA,OA/DA4yD,EAAYzzD,UAAU2zD,mBAAqB,WACvC,OAAO,EAAU9yD,UAAM,OAAQ,GAAQ,WACnC,OAAO,EAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,OAAMpa,KAAK6yD,YAAoB,CAAC,EAAa,IAC7C9jD,EAAOqI,MAAM,0CACN,CAAC,EAAaq7C,IACzB,KAAK,EACD7+C,EAAGyG,OACHra,KAAK6yD,aAAc,EACnB9jD,EAAOqI,MAAM,kBACbxD,EAAGwG,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAcpa,KAAK+yD,2BAE3C,GACJ,GACJ,EACAH,EAAYzzD,UAAU4zD,wBAA0B,WAC5C,IAAIL,EAAK,KAGT,OAFI,UAAgB/Z,YAChB+Z,EAAK7nD,OAAO,SAAWA,OAAO,QAAQ8nD,MAAQ9nD,OAAO,QAAQ8nD,MAAQ,MACpED,EAIE,IAAI34D,SAAQ,SAAU4zC,EAAKC,GAC9B8kB,EAAGM,kBACExyD,MAAK,SAAUyyD,GACXA,IACDlkD,EAAOqI,MAAM,yBACbw2B,EAAI,IAAI,KAAkB,2BAE9B,IAAIslB,EAAaD,EAAWvhB,YAAYl1B,MAEpC02C,EAAWC,cACXpkD,EAAOqI,MAAM,sCACb87C,EACKE,qBACA5yD,MAAK,SAAU6yD,GAChB,IAAIvW,EAAWuW,EAAavW,SAAUsS,EAAaiE,EAAajE,WAChEzhB,EAAI,CAAEptC,MAAOu8C,EAAUsS,WAAYA,GACvC,IACKzyC,OAAM,SAAUxgB,GACbA,GAAqB,kBAAdA,EAAI+G,MAEX0qC,EAAI,gDAGJA,EAAI,IAAI,KAAkB,yCAElC,KAGAA,EAAI,IAAI,KAAkB,qCAElC,IACKjxB,OAAM,SAAUxgB,GACjB4S,EAAOqI,MAAM,iCAAkCjb,GAC/CyxC,EAAI,IAAI,KAAkB,kCAC9B,GACJ,KAtCI7+B,EAAOqI,MAAM,2BACNrd,QAAQE,OAAO,2BAsC9B,EACO24D,CACX,CAtEgC,GCpE5B,EAAwC,SAAU7qD,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI,EAA4C,SAAUnL,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EAgBI,EAAS,IAAI,IAAO,sBACpB,EAAc,IAAIT,SAAQ,SAAU4zC,EAAKC,GACzC,KAAK,UAAgB+K,UAEjB,OADA,EAAOvhC,MAAM,yCACNu2B,IAEX,IAAI2lB,EAAKzoD,OAAO,MAChB,GAAIyoD,EAEA,OADA,EAAOl8C,MAAM,yBACNu2B,IAGP7wC,YAAW,WACP,OAAO6wC,GACX,GAAG,IAEX,IACI4lB,EAA+B,WAC/B,SAASA,IACLvzD,KAAK6yD,aAAc,EACnB7yD,KAAKwzD,qBAAuBxzD,KAAKwzD,qBAAqB50D,KAAKoB,MAC3DA,KAAKyzD,0BAA4BzzD,KAAKyzD,0BAA0B70D,KAAKoB,KACzE,CAuDA,OAtDAuzD,EAAcp0D,UAAUq0D,qBAAuB,WAC3C,OAAO,EAAUxzD,UAAM,OAAQ,GAAQ,WACnC,OAAO,EAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,OAAMpa,KAAK6yD,YAAoB,CAAC,EAAa,IAC7C,EAAOz7C,MAAM,4CACN,CAAC,EAAa,IACzB,KAAK,EACDxD,EAAGyG,OACHra,KAAK6yD,aAAc,EACnB,EAAOz7C,MAAM,kBACbxD,EAAGwG,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAcpa,KAAKyzD,6BAE3C,GACJ,GACJ,EACAF,EAAcp0D,UAAUs0D,0BAA4B,WAChD,IAAIH,EAAK,KAGT,IAFI,UAAgB3a,YAChB2a,EAAKzoD,OAAO,QACXyoD,EAAI,CACL,IAAII,EAAe,sBAEnB,OADA,EAAOt8C,MAAMs8C,GACN35D,QAAQE,OAAO,IAAI,KAAkBy5D,GAChD,CACA,OAAO,IAAI35D,SAAQ,SAAU4zC,EAAKC,GAC9B0lB,EAAGK,gBAAe,SAAUC,GACxB,GAAKA,GAAeA,EAAWP,aAO1B,CACD,IAAIv3D,EAAW83D,EAAWP,aACtB/V,EAAcxhD,EAASwhD,YAAauW,EAAY/3D,EAAS+3D,UACzDpgD,EAAO,IAAIvK,KACXkmD,EAAyB,IAAZyE,EAAmBpgD,EAAKvF,UACzC,IAAKovC,EAAa,CACVoW,EAAe,4BACnB,EAAOt8C,MAAMs8C,GACb9lB,EAAI,IAAI,KAAkB8lB,GAC9B,CACA/lB,EAAI,CACAptC,MAAO+8C,EACP8R,WAAYA,GAEpB,KArB6C,CACzC,IAAIsE,EAAe,0DACnB,EAAOt8C,MAAMs8C,GAGb9lB,EAAI,IAAI,KAAkB8lB,GAC9B,CAgBJ,GAAG,CAAE18C,MAAO,wBAChB,GACJ,EACOu8C,CACX,CA7DkC,GCtDvB,EAAc,IAAIX,EAClB,EAAgB,IAAIW,E,sBCC3BzjD,EAAgB,SAASC,EAAG/C,GAI9B,OAHA8C,EAAgB/J,OAAOiK,gBAClB,CAAEC,UAAW,cAAgBtN,OAAS,SAAUoN,EAAG/C,GAAK+C,EAAEE,UAAYjD,CAAG,GAC1E,SAAU+C,EAAG/C,GAAK,IAAK,IAAIkD,KAAKlD,EAAOjH,OAAO5G,UAAU0N,eAAezI,KAAK4I,EAAGkD,KAAIH,EAAEG,GAAKlD,EAAEkD,GAAI,EAC7FJ,EAAcC,EAAG/C,EAC1B,EAEO,SAAS6C,EAAUE,EAAG/C,GAC3B,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI5M,UAAU,uBAAyB4rB,OAAOhf,GAAK,iCAE7D,SAASmD,IAAOnQ,KAAKoM,YAAc2D,CAAG,CADtCD,EAAcC,EAAG/C,GAEjB+C,EAAE5Q,UAAkB,OAAN6N,EAAajH,OAAO1G,OAAO2N,IAAMmD,EAAGhR,UAAY6N,EAAE7N,UAAW,IAAIgR,EACjF,CAEO,IAAI,EAAW,WAQpB,OAPA,EAAWpK,OAAOkJ,QAAU,SAAkB4F,GAC1C,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KAAI2E,EAAE3E,GAAK4E,EAAE5E,IAE9E,OAAO2E,CACX,EACO,EAASjS,MAAM5C,KAAMiI,UAC9B,EA0EO,SAAS,EAAUF,EAAS2R,EAAYC,EAAGC,GAChD,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACF,CAEO,SAAS,EAAYnL,EAASoQ,GACnC,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO8Z,IAAMA,EAAI,EAAGO,EAAG,KAAON,EAAI,IAAKA,MACnC,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACF,CAE6BuL,OAAO1G,OA4B7B,SAAS,EAAOsT,EAAGC,GACxB,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACT,CA+DyBlN,OAAO1G,OAyDkB,oBAApBy0D,iBAAiCA,gBA0B/D,ICpVWC,EAKAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAKAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAn6C,EAIAo6C,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,GAOAC,GAIAC,GAIAC,GAKAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,GAIAC,IArOX,SAAWvD,GACPA,EAA4B,sBAAwB,oBACpDA,EAA4B,QAAU,MACzC,EAHD,CAGGA,IAAgCA,EAA8B,CAAC,IAElE,SAAWC,GACPA,EAAwBuD,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC7F,CAFD,CAEGonD,IAA4BA,EAA0B,CAAC,IAE1D,SAAWC,GACPA,EAAwBsD,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC7F,CAFD,CAEGqnD,IAA4BA,EAA0B,CAAC,IAE1D,SAAWC,GACPA,EAAaqD,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAClF,CAFD,CAEGsnD,IAAiBA,EAAe,CAAC,IAEpC,SAAWC,GACPA,EAAuBoD,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC5F,CAFD,CAEGunD,IAA2BA,EAAyB,CAAC,IAExD,SAAWC,GACPA,EAA0BmD,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC/F,CAFD,CAEGwnD,IAA8BA,EAA4B,CAAC,IAE9D,SAAWC,GACPA,EAAuBkD,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC5F,CAFD,CAEGynD,IAA2BA,EAAyB,CAAC,IAExD,SAAWC,GACPA,EAAuBiD,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC5F,CAFD,CAEG0nD,IAA2BA,EAAyB,CAAC,IAExD,SAAWC,GACPA,EAA0BgD,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC/F,CAFD,CAEG2nD,IAA8BA,EAA4B,CAAC,IAE9D,SAAWC,GACPA,EAAyB+C,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC9F,CAFD,CAEG4nD,IAA6BA,EAA2B,CAAC,IAE5D,SAAWC,GACPA,EAAsB8C,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC3F,CAFD,CAEG6nD,IAA0BA,EAAwB,CAAC,IAEtD,SAAWC,GACPA,EAAU,iBAAmB,eAC7BA,EAAU,yBAA2B,qBACxC,CAHD,CAGGA,IAAcA,EAAY,CAAC,IAE9B,SAAWC,GACPA,EAAsB4C,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC3F,CAFD,CAEG+nD,IAA0BA,EAAwB,CAAC,IAEtD,SAAWC,GACPA,EAAyB2C,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC9F,CAFD,CAEGgoD,IAA6BA,EAA2B,CAAC,IAE5D,SAAWC,GACPA,EAAwB0C,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC7F,CAFD,CAEGioD,IAA4BA,EAA0B,CAAC,IAE1D,SAAWC,GACPA,EAA0ByC,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC/F,CAFD,CAEGkoD,IAA8BA,EAA4B,CAAC,IAE9D,SAAWC,GACPA,EAAsBwC,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC3F,CAFD,CAEGmoD,IAA0BA,EAAwB,CAAC,IAEtD,SAAWC,GACPA,EAAoBuC,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACzF,CAFD,CAEGooD,IAAwBA,EAAsB,CAAC,IAElD,SAAWC,GACPA,EAA0BsC,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC/F,CAFD,CAEGqoD,IAA8BA,EAA4B,CAAC,IAE9D,SAAWC,GACPA,EAAyBqC,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC9F,CAFD,CAEGsoD,IAA6BA,EAA2B,CAAC,IAE5D,SAAWC,GACPA,EAA+BoC,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACpG,CAFD,CAEGuoD,IAAmCA,EAAiC,CAAC,IAExE,SAAWn6C,GACPA,EAAYu8C,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACjF,CAFD,CAEGoO,IAAgBA,EAAc,CAAC,IAElC,SAAWo6C,GACPA,EAAkCmC,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACvG,CAFD,CAEGwoD,IAAsCA,EAAoC,CAAC,IAE9E,SAAWC,GACPA,EAA0CkC,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC/G,CAFD,CAEGyoD,IAA8CA,EAA4C,CAAC,IAE9F,SAAWC,GACPA,EAAWiC,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAChF,CAFD,CAEG0oD,IAAeA,EAAa,CAAC,IAEhC,SAAWC,GACPA,EAAcgC,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACnF,CAFD,CAEG2oD,IAAkBA,EAAgB,CAAC,IAEtC,SAAWC,GACPA,EAA0B+B,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC/F,CAFD,CAEG4oD,IAA8BA,EAA4B,CAAC,IAE9D,SAAWC,GACPA,EAAqB,YAAc,WACnCA,EAAqB,UAAY,SACjCA,EAAqB,aAAe,WACpCA,EAAqB,eAAiB,YACzC,CALD,CAKGA,KAAyBA,GAAuB,CAAC,IAEpD,SAAWC,GACPA,EAAY6B,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACjF,CAFD,CAEG8oD,KAAgBA,GAAc,CAAC,IAElC,SAAWC,GACPA,EAAuB4B,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC5F,CAFD,CAEG+oD,KAA2BA,GAAyB,CAAC,IAExD,SAAWC,GACPA,EAAgB,SAAW,QAC3BA,EAAgB,SAAW,OAC9B,CAHD,CAGGA,KAAoBA,GAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAY0B,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACjF,CAFD,CAEGipD,KAAgBA,GAAc,CAAC,IAElC,SAAWC,GACPA,EAA6ByB,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAClG,CAFD,CAEGkpD,KAAiCA,GAA+B,CAAC,IAEpE,SAAWC,GACPA,EAAoBwB,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACzF,CAFD,CAEGmpD,KAAwBA,GAAsB,CAAC,IAElD,SAAWC,GACPA,EAAuBuB,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC5F,CAFD,CAEGopD,KAA2BA,GAAyB,CAAC,IAExD,SAAWC,GACPA,EAAwCsB,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC7G,CAFD,CAEGqpD,KAA4CA,GAA0C,CAAC,IAE1F,SAAWC,GACPA,EAAwCqB,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC7G,CAFD,CAEGspD,KAA4CA,GAA0C,CAAC,IAE1F,SAAWC,GACPA,EAA2CoB,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAChH,CAFD,CAEGupD,KAA+CA,GAA6C,CAAC,IAEhG,SAAWC,GACPA,EAAoBmB,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACzF,CAFD,CAEGwpD,KAAwBA,GAAsB,CAAC,IAElD,SAAWC,GACPA,EAAuBkB,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC5F,CAFD,CAEGypD,KAA2BA,GAAyB,CAAC,IAExD,SAAWC,GACPA,EAAuBiB,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC5F,CAFD,CAEG0pD,KAA2BA,GAAyB,CAAC,IAExD,SAAWC,GACPA,EAA6BgB,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAClG,CAFD,CAEG2pD,KAAiCA,GAA+B,CAAC,IAEpE,SAAWC,GACPA,EAA0Be,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC/F,CAFD,CAEG4pD,KAA8BA,GAA4B,CAAC,IAE9D,SAAWC,GACPA,EAAyBc,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC9F,CAFD,CAEG6pD,KAA6BA,GAA2B,CAAC,IAE5D,SAAWC,GACPA,EAA4Ba,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACjG,CAFD,CAEG8pD,KAAgCA,GAA8B,CAAC,IAElE,SAAWC,GACPA,EAA6BY,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAClG,CAFD,CAEG+pD,KAAiCA,GAA+B,CAAC,IAEpE,SAAWC,GACPA,EAAgCW,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACrG,CAFD,CAEGgqD,KAAoCA,GAAkC,CAAC,IAE1E,SAAWC,GACPA,EAA8BU,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACnG,CAFD,CAEGiqD,KAAkCA,GAAgC,CAAC,IAEtE,SAAWC,GACPA,EAAiCS,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACtG,CAFD,CAEGkqD,KAAqCA,GAAmC,CAAC,IAE5E,SAAWC,GACPA,EAAgCQ,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACrG,CAFD,CAEGmqD,KAAoCA,GAAkC,CAAC,IAE1E,SAAWC,GACPA,EAA0BO,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC/F,CAFD,CAEGoqD,KAA8BA,GAA4B,CAAC,IAE9D,SAAWC,GACPA,EAAiBM,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACtF,CAFD,CAEGqqD,KAAqBA,GAAmB,CAAC,IAE5C,SAAWC,GACPA,EAAoBK,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACzF,CAFD,CAEGsqD,KAAwBA,GAAsB,CAAC,IAElD,SAAWC,GACPA,EAA6BI,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAClG,CAFD,CAEGuqD,KAAiCA,GAA+B,CAAC,IAEpE,SAAWC,GACPA,EAAoBG,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACzF,CAFD,CAEGwqD,KAAwBA,GAAsB,CAAC,IAElD,SAAWC,GACPA,EAAmBE,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CACxF,CAFD,CAEGyqD,KAAuBA,GAAqB,CAAC,IAEhD,SAAWC,GACPA,EAAsBC,mBAAqB,SAAU3qD,GAAO,OAAQ,EAAS,CAAC,EAAGA,EAAO,CAC3F,CAFD,CAEG0qD,KAA0BA,GAAwB,CAAC,IC1OtD,IAAIE,GAA8B,WAC9B,SAASA,EAAaj0D,GAClBvD,KAAKy3D,WAAal0D,EAAQk0D,WAC1Bz3D,KAAK1F,QAAUiJ,EAAQjJ,SAAW,CAAC,EACnC0F,KAAKmY,KAAO5U,EAAQ4U,IACxB,CAQA,OAPAq/C,EAAaE,WAAa,SAAU57D,GAEhC,IAAKA,EACD,OAAO,EACX,IAAI67D,EAAO77D,EACX,MAAkC,kBAApB67D,EAAKF,YAAmD,kBAAjBE,EAAKr9D,OAC9D,EACOk9D,CACX,CAdiC,GCC7B,GAA6B,WAC7B,SAASI,EAAYr0D,GACjBvD,KAAK3D,OAASkH,EAAQlH,QAAU,MAChC2D,KAAKyK,SAAWlH,EAAQkH,UAAY,YACpCzK,KAAK0K,KAAOnH,EAAQmH,KACpB1K,KAAK4V,MAAQrS,EAAQqS,OAAS,CAAC,EAC/B5V,KAAK1F,QAAUiJ,EAAQjJ,SAAW,CAAC,EACnC0F,KAAKmY,KAAO5U,EAAQ4U,KACpBnY,KAAKqK,SAAW9G,EAAQ8G,SACc,MAAhC9G,EAAQ8G,SAASgB,QAAQ,GACrB9H,EAAQ8G,SAAW,IACnB9G,EAAQ8G,SACZ,SACNrK,KAAK6I,KAAOtF,EAAQsF,KAAmC,MAA3BtF,EAAQsF,KAAK+B,OAAO,GAAa,IAAMrH,EAAQsF,KAAOtF,EAAQsF,KAAQ,GACtG,CAmBA,OAlBA+uD,EAAYF,WAAa,SAAU58D,GAE/B,IAAKA,EACD,OAAO,EACX,IAAIg+C,EAAMh+C,EACV,MAAQ,WAAYg+C,GAChB,aAAcA,GACd,aAAcA,GACd,SAAUA,GACc,kBAAjBA,EAAI,UACe,kBAAnBA,EAAI,UACnB,EACA8e,EAAYz4D,UAAU+7B,MAAQ,WAC1B,IAAI28B,EAAS,IAAID,GAAY,IAAAhjD,WAAS,IAAAA,UAAS,CAAC,EAAG5U,MAAO,CAAE1F,SAAS,IAAAsa,UAAS,CAAC,EAAG5U,KAAK1F,YAGvF,OAFIu9D,EAAOjiD,QACPiiD,EAAOjiD,MAAQkiD,GAAWD,EAAOjiD,QAC9BiiD,CACX,EACOD,CACX,CAlCgC,GAoChC,SAASE,GAAWliD,GAChB,OAAO7P,OAAOC,KAAK4P,GAAOyG,QAAO,SAAU07C,EAAOC,GAC9C,IAAIpkD,EACAqkD,EAAQriD,EAAMoiD,GAClB,OAAO,IAAApjD,WAAS,IAAAA,UAAS,CAAC,EAAGmjD,IAASnkD,EAAK,CAAC,EAAGA,EAAGokD,GAAar1D,MAAM4C,QAAQ0yD,IAAS,IAAA7vB,UAAS6vB,GAASA,EAAOrkD,GACnH,GAAG,CAAC,EACR,CCzCO,IAuDIskD,GAAuD,SAAUC,EAAOl5D,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACnI,IAAI3E,EAAS6d,EACb,OAAO,EAAYnY,MAAM,SAAU4T,GAM/B,OALAtZ,EAAU,CACN,eAAgB,6BAChB,eAAgB,uDAEpB6d,EAAOrR,KAAKI,UAAUkxD,GAAmDD,EAAOl5D,IACzE,CAAC,EAAco5D,GAAoBp5D,EAAS3E,EAAS,SAAKoD,EAAWya,GAChF,GACJ,GAAI,EACOmgD,GAAmC,SAAUH,EAAOl5D,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WAC/G,IAAI3E,EAAS6d,EACb,OAAO,EAAYnY,MAAM,SAAU4T,GAM/B,OALAtZ,EAAU,CACN,eAAgB,6BAChB,eAAgB,mCAEpB6d,EAAOrR,KAAKI,UAAUqxD,GAA+BJ,EAAOl5D,IACrD,CAAC,EAAco5D,GAAoBp5D,EAAS3E,EAAS,SAAKoD,EAAWya,GAChF,GACJ,GAAI,EA2kBOqgD,GAAyD,SAAUtyC,EAAQjnB,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACtI,IAAI7E,EAAMq+D,EAAU38D,EACpB,OAAO,EAAYkE,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,OAAI8L,EAAOuxC,YAAc,IACd,CAAC,EAAciB,GAA4DxyC,EAAQjnB,IAEvF,CAAC,EAAa05D,GAAUzyC,EAAO/N,KAAMlZ,IAChD,KAAK,EAKD,OAJA7E,EAAOwZ,EAAGyG,OACVo+C,EAAW,CAAC,EACZA,EAAWG,GAAwDx+D,EAAM6E,GACzEnD,EAAW,EAAS,CAAE+8D,UAAWC,GAAoB5yC,IAAWuyC,GACzD,CAAC,EAAc1+D,QAAQC,QAAQ8B,IAElD,GACJ,GAAI,EACA48D,GAA8D,SAAUxyC,EAAQjnB,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACpI,IAAI85D,EAAcnlD,EAAI9X,EAAUuqC,EAAWptB,EAAI2C,EAAIutB,EAAI+C,EAAII,EAAIC,EAAIK,EAAIG,EAAIC,EAAIgsB,EAAYj5D,EACvF80C,EACJ,OAAO,EAAY70C,MAAM,SAAUi5D,GAC/B,OAAQA,EAAG7+C,OACP,KAAK,EAGD,OAFAxG,EAAK,CAAC,EAAS,CAAC,EAAGsS,IACnB2uB,EAAK,CAAC,EACC,CAAC,EAAa8jB,GAAUzyC,EAAO/N,KAAMlZ,IAChD,KAAK,EAKD,OAJA85D,EAAe,EAASn2D,WAAM,EAAQgR,EAAG/Q,OAAO,EAAEgyC,EAAG18B,KAAO8gD,EAAG5+C,OAAQw6B,MACvExO,EAAY,eACZA,EAAY6yB,GAAsBhzC,EAAQ6yC,EAAa5gD,MACvDc,EAAKotB,EACGptB,GACJ,IAAK,2BAA4B,MAAO,CAAC,EAAa,GACtD,IAAK,yDAA0D,MAAO,CAAC,EAAa,GACpF,IAAK,yBAA0B,MAAO,CAAC,EAAa,GACpD,IAAK,uDAAwD,MAAO,CAAC,EAAa,GAClF,IAAK,4CAA6C,MAAO,CAAC,EAAa,GACvE,IAAK,0EAA2E,MAAO,CAAC,EAAa,GACrG,IAAK,4BAA6B,MAAO,CAAC,EAAa,GACvD,IAAK,0DAA2D,MAAO,CAAC,EAAa,GACrF,IAAK,yBAA0B,MAAO,CAAC,EAAa,IACpD,IAAK,uDAAwD,MAAO,CAAC,EAAa,IAClF,IAAK,4BAA6B,MAAO,CAAC,EAAa,IACvD,IAAK,0DAA2D,MAAO,CAAC,EAAa,IACrF,IAAK,4BAA6B,MAAO,CAAC,EAAa,IACvD,IAAK,0DAA2D,MAAO,CAAC,EAAa,IACrF,IAAK,2BAA4B,MAAO,CAAC,EAAa,IACtD,IAAK,yDAA0D,MAAO,CAAC,EAAa,IAExF,MAAO,CAAC,EAAa,IACzB,KAAK,EAED,OADA2C,EAAK,CAAC,CAAC,GACA,CAAC,EAAau9C,GAAuDJ,EAAc95D,IAC9F,KAAK,EAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQgZ,EAAG/Y,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,EAED,OADAijB,EAAK,CAAC,CAAC,GACA,CAAC,EAAaiwB,GAAqDL,EAAc95D,IAC5F,KAAK,EAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQumC,EAAGtmC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,EAED,OADAgmB,EAAK,CAAC,CAAC,GACA,CAAC,EAAamtB,GAAwEN,EAAc95D,IAC/G,KAAK,EAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQspC,EAAGrpC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,EAED,OADAomB,EAAK,CAAC,CAAC,GACA,CAAC,EAAagtB,GAAwDP,EAAc95D,IAC/F,KAAK,EAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQ0pC,EAAGzpC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,GAED,OADAqmB,EAAK,CAAC,CAAC,GACA,CAAC,EAAagtB,GAAqDR,EAAc95D,IAC5F,KAAK,GAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQ2pC,EAAG1pC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,GAED,OADA0mB,EAAK,CAAC,CAAC,GACA,CAAC,EAAa4sB,GAAwDT,EAAc95D,IAC/F,KAAK,GAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQgqC,EAAG/pC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,GAED,OADA6mB,EAAK,CAAC,CAAC,GACA,CAAC,EAAa0sB,GAAwDV,EAAc95D,IAC/F,KAAK,GAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQmqC,EAAGlqC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,GAED,OADA8mB,EAAK,CAAC,CAAC,GACA,CAAC,EAAa0sB,GAAuDX,EAAc95D,IAC9F,KAAK,GAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQoqC,EAAGnqC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,GACD8yC,EAAaD,EAAa5gD,KAC1BkuB,EAAY2yB,EAAWh1D,MAAQg1D,EAAWW,MAAQtzB,EAClDvqC,EAAW,EAAS,EAAS,CAAC,EAAGk9D,GAAa,CAAEr0D,KAAM,GAAK0hC,EAAWtmC,QAASi5D,EAAWj5D,SAAWi5D,EAAWY,SAAWvzB,EAAWwzB,OAAQ,SAAUhB,UAAWC,GAAoB5yC,KACvL+yC,EAAG7+C,MAAQ,GACf,KAAK,GAID,OAHAra,EAAUjE,EAASiE,SAAWjE,EAAS89D,SAAWvzB,EAClDvqC,EAASiE,QAAUA,SACZjE,EAAS89D,QACT,CAAC,EAAc7/D,QAAQE,OAAO8L,OAAOkJ,OAAO,IAAIhL,MAAMlE,GAAUjE,KAEnF,GACJ,GAAI,EACOg+D,GAAqC,SAAU5zC,EAAQjnB,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WAClH,IAAI7E,EAAMq+D,EAAU38D,EACpB,OAAO,EAAYkE,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,OAAI8L,EAAOuxC,YAAc,IACd,CAAC,EAAcsC,GAAwC7zC,EAAQjnB,IAEnE,CAAC,EAAa05D,GAAUzyC,EAAO/N,KAAMlZ,IAChD,KAAK,EAKD,OAJA7E,EAAOwZ,EAAGyG,OACVo+C,EAAW,CAAC,EACZA,EAAWuB,GAAoC5/D,EAAM6E,GACrDnD,EAAW,EAAS,CAAE+8D,UAAWC,GAAoB5yC,IAAWuyC,GACzD,CAAC,EAAc1+D,QAAQC,QAAQ8B,IAElD,GACJ,GAAI,EACAi+D,GAA0C,SAAU7zC,EAAQjnB,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WAChH,IAAI85D,EAAcnlD,EAAI9X,EAAUuqC,EAAWptB,EAAI2C,EAAIutB,EAAI+C,EAAII,EAAIC,EAAIK,EAAIG,EAAIC,EAAIgsB,EAAYj5D,EACvF80C,EACJ,OAAO,EAAY70C,MAAM,SAAUi5D,GAC/B,OAAQA,EAAG7+C,OACP,KAAK,EAGD,OAFAxG,EAAK,CAAC,EAAS,CAAC,EAAGsS,IACnB2uB,EAAK,CAAC,EACC,CAAC,EAAa8jB,GAAUzyC,EAAO/N,KAAMlZ,IAChD,KAAK,EAKD,OAJA85D,EAAe,EAASn2D,WAAM,EAAQgR,EAAG/Q,OAAO,EAAEgyC,EAAG18B,KAAO8gD,EAAG5+C,OAAQw6B,MACvExO,EAAY,eACZA,EAAY6yB,GAAsBhzC,EAAQ6yC,EAAa5gD,MACvDc,EAAKotB,EACGptB,GACJ,IAAK,2BAA4B,MAAO,CAAC,EAAa,GACtD,IAAK,yDAA0D,MAAO,CAAC,EAAa,GACpF,IAAK,yBAA0B,MAAO,CAAC,EAAa,GACpD,IAAK,uDAAwD,MAAO,CAAC,EAAa,GAClF,IAAK,4BAA6B,MAAO,CAAC,EAAa,GACvD,IAAK,0DAA2D,MAAO,CAAC,EAAa,GACrF,IAAK,yBAA0B,MAAO,CAAC,EAAa,GACpD,IAAK,uDAAwD,MAAO,CAAC,EAAa,GAClF,IAAK,yBAA0B,MAAO,CAAC,EAAa,IACpD,IAAK,uDAAwD,MAAO,CAAC,EAAa,IAClF,IAAK,4BAA6B,MAAO,CAAC,EAAa,IACvD,IAAK,0DAA2D,MAAO,CAAC,EAAa,IACrF,IAAK,4BAA6B,MAAO,CAAC,EAAa,IACvD,IAAK,0DAA2D,MAAO,CAAC,EAAa,IACrF,IAAK,2BAA4B,MAAO,CAAC,EAAa,IACtD,IAAK,yDAA0D,MAAO,CAAC,EAAa,IAExF,MAAO,CAAC,EAAa,IACzB,KAAK,EAED,OADA2C,EAAK,CAAC,CAAC,GACA,CAAC,EAAau9C,GAAuDJ,EAAc95D,IAC9F,KAAK,EAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQgZ,EAAG/Y,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,EAED,OADAijB,EAAK,CAAC,CAAC,GACA,CAAC,EAAaiwB,GAAqDL,EAAc95D,IAC5F,KAAK,EAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQumC,EAAGtmC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,EAED,OADAgmB,EAAK,CAAC,CAAC,GACA,CAAC,EAAaotB,GAAwDP,EAAc95D,IAC/F,KAAK,EAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQspC,EAAGrpC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,EAED,OADAomB,EAAK,CAAC,CAAC,GACA,CAAC,EAAa2tB,GAAqDlB,EAAc95D,IAC5F,KAAK,EAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQ0pC,EAAGzpC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,GAED,OADAqmB,EAAK,CAAC,CAAC,GACA,CAAC,EAAagtB,GAAqDR,EAAc95D,IAC5F,KAAK,GAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQ2pC,EAAG1pC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,GAED,OADA0mB,EAAK,CAAC,CAAC,GACA,CAAC,EAAa4sB,GAAwDT,EAAc95D,IAC/F,KAAK,GAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQgqC,EAAG/pC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,GAED,OADA6mB,EAAK,CAAC,CAAC,GACA,CAAC,EAAa0sB,GAAwDV,EAAc95D,IAC/F,KAAK,GAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQmqC,EAAGlqC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,GAED,OADA8mB,EAAK,CAAC,CAAC,GACA,CAAC,EAAa0sB,GAAuDX,EAAc95D,IAC9F,KAAK,GAED,OADAnD,EAAW,EAAS8G,WAAM,EAAQ,CAAC,EAASA,WAAM,EAAQoqC,EAAGnqC,OAAO,CAAEo2D,EAAG5+C,UAAY,CAAE1V,KAAM0hC,EAAWwyB,UAAWC,GAAoB5yC,MAChI,CAAC,EAAa,IACzB,KAAK,GACD8yC,EAAaD,EAAa5gD,KAC1BkuB,EAAY2yB,EAAWh1D,MAAQg1D,EAAWW,MAAQtzB,EAClDvqC,EAAW,EAAS,EAAS,CAAC,EAAGk9D,GAAa,CAAEr0D,KAAM,GAAK0hC,EAAWtmC,QAASi5D,EAAWj5D,SAAWi5D,EAAWY,SAAWvzB,EAAWwzB,OAAQ,SAAUhB,UAAWC,GAAoB5yC,KACvL+yC,EAAG7+C,MAAQ,GACf,KAAK,GAID,OAHAra,EAAUjE,EAASiE,SAAWjE,EAAS89D,SAAWvzB,EAClDvqC,EAASiE,QAAUA,SACZjE,EAAS89D,QACT,CAAC,EAAc7/D,QAAQE,OAAO8L,OAAOkJ,OAAO,IAAIhL,MAAMlE,GAAUjE,KAEnF,GACJ,GAAI,EA21CAq9D,GAAyD,SAAUJ,EAAc95D,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACrI,IAAIkZ,EAAM+hD,EAAczB,EACxB,OAAO,EAAYz4D,MAAM,SAAU4T,GAI/B,OAHAuE,EAAO4gD,EAAa5gD,KACpB+hD,EAAeC,GAA+ChiD,EAAMlZ,GACpEw5D,EAAW,EAAS,CAAE9zD,KAAM,2BAA4Bk1D,OAAQ,SAAUhB,UAAWC,GAAoBC,IAAiBmB,GACnH,CAAC,EAAczB,EAC1B,GACJ,GAAI,EACAW,GAAuD,SAAUL,EAAc95D,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACnI,IAAIkZ,EAAM+hD,EAAczB,EACxB,OAAO,EAAYz4D,MAAM,SAAU4T,GAI/B,OAHAuE,EAAO4gD,EAAa5gD,KACpB+hD,EAAeE,GAA6CjiD,EAAMlZ,GAClEw5D,EAAW,EAAS,CAAE9zD,KAAM,yBAA0Bk1D,OAAQ,SAAUhB,UAAWC,GAAoBC,IAAiBmB,GACjH,CAAC,EAAczB,EAC1B,GACJ,GAAI,EACAY,GAA0E,SAAUN,EAAc95D,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACtJ,IAAIkZ,EAAM+hD,EAAczB,EACxB,OAAO,EAAYz4D,MAAM,SAAU4T,GAI/B,OAHAuE,EAAO4gD,EAAa5gD,KACpB+hD,EAAeG,GAAgEliD,EAAMlZ,GACrFw5D,EAAW,EAAS,CAAE9zD,KAAM,4CAA6Ck1D,OAAQ,SAAUhB,UAAWC,GAAoBC,IAAiBmB,GACpI,CAAC,EAAczB,EAC1B,GACJ,GAAI,EACAa,GAA0D,SAAUP,EAAc95D,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACtI,IAAIkZ,EAAM+hD,EAAczB,EACxB,OAAO,EAAYz4D,MAAM,SAAU4T,GAI/B,OAHAuE,EAAO4gD,EAAa5gD,KACpB+hD,EAAeI,GAAgDniD,EAAMlZ,GACrEw5D,EAAW,EAAS,CAAE9zD,KAAM,4BAA6Bk1D,OAAQ,SAAUhB,UAAWC,GAAoBC,IAAiBmB,GACpH,CAAC,EAAczB,EAC1B,GACJ,GAAI,EACAwB,GAAuD,SAAUlB,EAAc95D,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACnI,IAAIkZ,EAAM+hD,EAAczB,EACxB,OAAO,EAAYz4D,MAAM,SAAU4T,GAI/B,OAHAuE,EAAO4gD,EAAa5gD,KACpB+hD,EAAeK,GAA6CpiD,EAAMlZ,GAClEw5D,EAAW,EAAS,CAAE9zD,KAAM,yBAA0Bk1D,OAAQ,SAAUhB,UAAWC,GAAoBC,IAAiBmB,GACjH,CAAC,EAAczB,EAC1B,GACJ,GAAI,EACAc,GAAuD,SAAUR,EAAc95D,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACnI,IAAIkZ,EAAM+hD,EAAczB,EACxB,OAAO,EAAYz4D,MAAM,SAAU4T,GAI/B,OAHAuE,EAAO4gD,EAAa5gD,KACpB+hD,EAAeM,GAA6CriD,EAAMlZ,GAClEw5D,EAAW,EAAS,CAAE9zD,KAAM,yBAA0Bk1D,OAAQ,SAAUhB,UAAWC,GAAoBC,IAAiBmB,GACjH,CAAC,EAAczB,EAC1B,GACJ,GAAI,EACAe,GAA0D,SAAUT,EAAc95D,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACtI,IAAIkZ,EAAM+hD,EAAczB,EACxB,OAAO,EAAYz4D,MAAM,SAAU4T,GAI/B,OAHAuE,EAAO4gD,EAAa5gD,KACpB+hD,EAAeO,GAAgDtiD,EAAMlZ,GACrEw5D,EAAW,EAAS,CAAE9zD,KAAM,4BAA6Bk1D,OAAQ,SAAUhB,UAAWC,GAAoBC,IAAiBmB,GACpH,CAAC,EAAczB,EAC1B,GACJ,GAAI,EACAgB,GAA0D,SAAUV,EAAc95D,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACtI,IAAIkZ,EAAM+hD,EAAczB,EACxB,OAAO,EAAYz4D,MAAM,SAAU4T,GAI/B,OAHAuE,EAAO4gD,EAAa5gD,KACpB+hD,EAAeQ,GAAgDviD,EAAMlZ,GACrEw5D,EAAW,EAAS,CAAE9zD,KAAM,4BAA6Bk1D,OAAQ,SAAUhB,UAAWC,GAAoBC,IAAiBmB,GACpH,CAAC,EAAczB,EAC1B,GACJ,GAAI,EACAiB,GAAyD,SAAUX,EAAc95D,GAAW,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WACrI,IAAIkZ,EAAM+hD,EAAczB,EACxB,OAAO,EAAYz4D,MAAM,SAAU4T,GAI/B,OAHAuE,EAAO4gD,EAAa5gD,KACpB+hD,EAAeS,GAA+CxiD,EAAMlZ,GACpEw5D,EAAW,EAAS,CAAE9zD,KAAM,2BAA4Bk1D,OAAQ,SAAUhB,UAAWC,GAAoBC,IAAiBmB,GACnH,CAAC,EAAczB,EAC1B,GACJ,GAAI,EAwDAL,GAAqD,SAAUD,EAAOl5D,GACtE,OAAO,EAAS,EAAS,EAAS,CAAC,OAA4BvB,IAAxBy6D,EAAMyC,eAAuD,OAAxBzC,EAAMyC,eAA0B,CAAEA,cAAezC,EAAMyC,qBAAyCl9D,IAArBy6D,EAAM0C,YAAiD,OAArB1C,EAAM0C,YAAuB,CAAEA,WAAY1C,EAAM0C,kBAAkCn9D,IAAjBy6D,EAAM2C,QAC5O,OAAjB3C,EAAM2C,QAAmB,CAAEA,OAAQC,GAA8B5C,EAAM2C,OAAQ77D,IACvF,EAKIs5D,GAAiC,SAAUJ,EAAOl5D,GAClD,OAAO,EAAS,EAAS,EAAS,CAAC,OAAwBvB,IAApBy6D,EAAM6C,WAA+C,OAApB7C,EAAM6C,WAAsB,CAAEA,UAAW7C,EAAM6C,iBAAyCt9D,IAAzBy6D,EAAM8C,gBAChH,OAAzB9C,EAAM8C,gBAA2B,CAAEA,eAAgB9C,EAAM8C,sBAAsCv9D,IAAjBy6D,EAAM2C,QACnE,OAAjB3C,EAAM2C,QAAmB,CAAEA,OAAQC,GAA8B5C,EAAM2C,OAAQ77D,IACvF,EA+FI87D,GAAgC,SAAU5C,EAAOl5D,GACjD,OAAO8G,OAAO2iC,QAAQyvB,GAAO97C,QAAO,SAAUC,EAAK1I,GAC/C,IAAIqF,EACA2C,EAAK,EAAOhI,EAAI,GAAI9V,EAAM8d,EAAG,GAAI1f,EAAQ0f,EAAG,GAChD,OAAc,OAAV1f,EACOogB,EAEJ,EAAS,EAAS,CAAC,EAAGA,IAAOrD,EAAK,CAAC,EAAGA,EAAGnb,GAAO5B,EAAO+c,GAClE,GAAG,CAAC,EACR,EAgIIiiD,GAAoC,SAAUh1C,EAAQjnB,GACtD,MAAO,CACHk8D,iBAAoCz9D,IAAvBwoB,EAAOi1C,aAAoD,OAAvBj1C,EAAOi1C,YAAuBj1C,EAAOi1C,iBAAcz9D,EACpG09D,gBAAkC19D,IAAtBwoB,EAAOk1C,YAAkD,OAAtBl1C,EAAOk1C,WAChD,IAAIlyD,KAAKqF,KAAKkwC,MAA0B,IAApBv4B,EAAOk1C,kBAC3B19D,EACN29D,eAAgC39D,IAArBwoB,EAAOm1C,WAAgD,OAArBn1C,EAAOm1C,UAAqBn1C,EAAOm1C,eAAY39D,EAC5F49D,kBAAsC59D,IAAxBwoB,EAAOo1C,cAAsD,OAAxBp1C,EAAOo1C,aAAwBp1C,EAAOo1C,kBAAe59D,EAEhH,EAuBIy8D,GAAiD,SAAUj0C,EAAQjnB,GACnE,MAAO,CACHc,aAA4BrC,IAAnBwoB,EAAOnmB,SAA4C,OAAnBmmB,EAAOnmB,QAAmBmmB,EAAOnmB,aAAUrC,EAE5F,EACIk7D,GAA0D,SAAU1yC,EAAQjnB,GAC5E,MAAO,CACH+b,iBAAoCtd,IAAvBwoB,EAAOlL,aAAoD,OAAvBkL,EAAOlL,YAClDkgD,GAAkCh1C,EAAOlL,YAAa/b,QACtDvB,EACNm9D,gBAAkCn9D,IAAtBwoB,EAAO20C,YAAkD,OAAtB30C,EAAO20C,WAAsB30C,EAAO20C,gBAAan9D,EAExG,EAYIs8D,GAAsC,SAAU9zC,EAAQjnB,GACxD,MAAO,CACH47D,gBAAkCn9D,IAAtBwoB,EAAO20C,YAAkD,OAAtB30C,EAAO20C,WAAsB30C,EAAO20C,gBAAan9D,EAExG,EAqGI08D,GAA+C,SAAUl0C,EAAQjnB,GACjE,MAAO,CACHc,aAA4BrC,IAAnBwoB,EAAOnmB,SAA4C,OAAnBmmB,EAAOnmB,QAAmBmmB,EAAOnmB,aAAUrC,EAE5F,EACI28D,GAAkE,SAAUn0C,EAAQjnB,GACpF,MAAO,CACHc,aAA4BrC,IAAnBwoB,EAAOnmB,SAA4C,OAAnBmmB,EAAOnmB,QAAmBmmB,EAAOnmB,aAAUrC,EAE5F,EACI48D,GAAkD,SAAUp0C,EAAQjnB,GACpE,MAAO,CACHc,aAA4BrC,IAAnBwoB,EAAOnmB,SAA4C,OAAnBmmB,EAAOnmB,QAAmBmmB,EAAOnmB,aAAUrC,EAE5F,EACI68D,GAA+C,SAAUr0C,EAAQjnB,GACjE,MAAO,CACHc,aAA4BrC,IAAnBwoB,EAAOnmB,SAA4C,OAAnBmmB,EAAOnmB,QAAmBmmB,EAAOnmB,aAAUrC,EAE5F,EAmEI88D,GAA+C,SAAUt0C,EAAQjnB,GACjE,MAAO,CACHc,aAA4BrC,IAAnBwoB,EAAOnmB,SAA4C,OAAnBmmB,EAAOnmB,QAAmBmmB,EAAOnmB,aAAUrC,EAE5F,EAWI+8D,GAAkD,SAAUv0C,EAAQjnB,GACpE,MAAO,CACHc,aAA4BrC,IAAnBwoB,EAAOnmB,SAA4C,OAAnBmmB,EAAOnmB,QAAmBmmB,EAAOnmB,aAAUrC,EAE5F,EACIg9D,GAAkD,SAAUx0C,EAAQjnB,GACpE,MAAO,CACHc,aAA4BrC,IAAnBwoB,EAAOnmB,SAA4C,OAAnBmmB,EAAOnmB,QAAmBmmB,EAAOnmB,aAAUrC,EAE5F,EAoDIi9D,GAAiD,SAAUz0C,EAAQjnB,GACnE,MAAO,CACHc,aAA4BrC,IAAnBwoB,EAAOnmB,SAA4C,OAAnBmmB,EAAOnmB,QAAmBmmB,EAAOnmB,aAAUrC,EAE5F,EAoBIo7D,GAAsB,SAAU5yC,GAChC,IAAItS,EACJ,MAAO,CACH2nD,eAAgBr1C,EAAOuxC,WACvB+D,UAAyD,QAA7C5nD,EAAKsS,EAAO5rB,QAAQ,2BAAwC,IAAPsZ,EAAgBA,EAAKsS,EAAO5rB,QAAQ,qBACrGmhE,kBAAmBv1C,EAAO5rB,QAAQ,cAClCohE,KAAMx1C,EAAO5rB,QAAQ,eAE7B,EAEIqhE,GAAc,SAAUC,EAAY38D,GAEpC,YADmB,IAAf28D,IAAyBA,EAAa,IAAI9c,YAC1C8c,aAAsB9c,WACf/kD,QAAQC,QAAQ4hE,GAEpB38D,EAAQ48D,gBAAgBD,IAAe7hE,QAAQC,QAAQ,IAAI8kD,WACtE,EAEIgd,GAAoB,SAAUF,EAAY38D,GAC1C,OAAO08D,GAAYC,EAAY38D,GAASuB,MAAK,SAAU2X,GAAQ,OAAOlZ,EAAQ88D,YAAY5jD,EAAO,GACrG,EACIkgD,GAAsB,SAAUp5D,EAAS3E,EAASuO,EAAMmzD,EAAkB7jD,GAAQ,OAAO,OAAU,OAAQ,OAAQ,GAAQ,WAC3H,IAAIvE,EAAInJ,EAAUwO,EAAI5O,EAAUK,EAAM+tD,EACtC,OAAO,EAAYz4D,MAAM,SAAU4b,GAC/B,OAAQA,EAAGxB,OACP,KAAK,EAAG,MAAO,CAAC,EAAanb,EAAQ6c,YACrC,KAAK,EAgBD,OAfAlI,EAAKgI,EAAGvB,OAAQ5P,EAAWmJ,EAAGnJ,SAAUwO,EAAKrF,EAAGvJ,SAAUA,OAAkB,IAAP4O,EAAgB,QAAUA,EAAIvO,EAAOkJ,EAAGlJ,KAC7G+tD,EAAW,CACPpuD,SAAUA,EACVI,SAAUA,EACVC,KAAMA,EACNrO,OAAQ,OACRwM,KAAMA,EACNvO,QAASA,QAEYoD,IAArBs+D,IACAvD,EAAShuD,SAAWuxD,QAEXt+D,IAATya,IACAsgD,EAAStgD,KAAOA,GAEb,CAAC,EAAc,IAAI,GAAcsgD,IAEpD,GACJ,GAAI,EACAE,GAAY,SAAUiD,EAAY38D,GAClC,OAAO68D,GAAkBF,EAAY38D,GAASuB,MAAK,SAAUy7D,GACzD,OAAIA,EAAQr7D,OACDkG,KAAKC,MAAMk1D,GAEf,CAAC,CACZ,GACJ,EAII/C,GAAwB,SAAUhzC,EAAQ9rB,GAC1C,IAAI8hE,EAAU,SAAUt6C,EAAQ9jB,GAAO,OAAOiI,OAAOC,KAAK4b,GAAQ5C,MAAK,SAAU3H,GAAK,OAAOA,EAAEtZ,gBAAkBD,EAAIC,aAAe,GAAI,EACpIo+D,EAAoB,SAAUz1D,GAC9B,IAAIkxC,EAAalxC,EAOjB,OANIkxC,EAAW/6C,QAAQ,MAAQ,IAC3B+6C,EAAaA,EAAWzsC,MAAM,KAAK,IAEnCysC,EAAW/6C,QAAQ,MAAQ,IAC3B+6C,EAAaA,EAAWzsC,MAAM,KAAK,IAEhCysC,CACX,EACIwkB,EAAYF,EAAQh2C,EAAO5rB,QAAS,oBACxC,YAAkBoD,IAAd0+D,EACOD,EAAkBj2C,EAAO5rB,QAAQ8hE,SAE1B1+D,IAAdtD,EAAK4J,KACEm4D,EAAkB/hE,EAAK4J,WAEXtG,IAAnBtD,EAAK,UACE+hE,EAAkB/hE,EAAK,WAE3B,EACX,ECz/FWiiE,GAAyB,SAAU94D,EAAS+4D,GAAgB,OAAO,SAAUppD,EAAMjU,GAAW,OAAO,SAAU+I,GAAQ,OAAO,IAAAyR,gBAAU,OAAQ,OAAQ,GAAQ,WACvK,IAAI3d,EAAUkP,EACd,OAAO,IAAA+O,aAAY/Z,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAAG,MAAO,CAAC,EAAalH,EAAKlL,IAClC,KAAK,EAED,OADAlM,EAAY8X,EAAGyG,OAAQve,SAChB,CAAC,EAAawgE,EAAaxgE,EAAUyH,IAChD,KAAK,EAED,OADAyH,EAAS4I,EAAGyG,OACL,CAAC,EAAc,CACdve,SAAUA,EACVoqB,OAAQlb,IAG5B,GACJ,GAAI,CAAG,CAAG,EChBCuxD,GAAuB,SAAUh5D,EAASi5D,GAAc,OAAO,SAAUtpD,EAAMjU,GAAW,OAAO,SAAU+I,GAAQ,OAAO,IAAAyR,gBAAU,OAAQ,OAAQ,GAAQ,WACnK,IAAI3e,EACJ,OAAO,IAAAif,aAAY/Z,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAAG,MAAO,CAAC,EAAaoiD,EAAWx0D,EAAKmwD,MAAO50D,IACpD,KAAK,EAED,OADAzI,EAAU8Y,EAAGyG,OACN,CAAC,EAAcnH,GAAK,IAAA0B,WAAS,IAAAA,UAAS,CAAC,EAAG5M,GAAO,CAAElN,QAASA,MAE/E,GACJ,GAAI,CAAG,CAAG,ECTC2hE,GAA+B,CACtC93D,KAAM,yBACNmV,KAAM,cACN4iD,KAAM,CAAC,gBACPC,UAAU,GAEHC,GAA6B,CACpCj4D,KAAM,uBACNmV,KAAM,YACN4iD,KAAM,CAAC,cACPC,UAAU,GAEP,SAASE,GAAe/iE,EAAQ0iE,EAAYF,GAC/C,MAAO,CACHQ,aAAc,SAAUC,GACpBA,EAAa70B,IAAIm0B,GAAuBviE,EAAQwiE,GAAeG,IAC/DM,EAAa70B,IAAIq0B,GAAqBziE,EAAQ0iE,GAAaI,GAC/D,EAER,CCpBO,IAAII,GAAiB,WACxB,IAAIC,EAAkB,GAClBC,EAAkB,GAClBC,EAAiB,IAAIl1B,IACrBh2B,EAAO,SAAUy2B,GACjB,OAAOA,EAAQz2B,MAAK,SAAUlF,EAAGC,GAC7B,OAAOowD,GAAYpwD,EAAE8M,MAAQsjD,GAAYrwD,EAAE+M,OACvCujD,GAAgBrwD,EAAEyC,UAAY,UAAY4tD,GAAgBtwD,EAAE0C,UAAY,SAChF,GACJ,EACI6tD,EAAe,SAAUC,GACzB,IAAIC,GAAY,EACZC,EAAW,SAAU5f,GACrB,OAAIA,EAAMl5C,MAAQk5C,EAAMl5C,OAAS44D,IAC7BC,GAAY,EACZL,EAAej4B,OAAOq4B,IACf,EAGf,EAGA,OAFAN,EAAkBA,EAAgB/7C,OAAOu8C,GACzCP,EAAkBA,EAAgBh8C,OAAOu8C,GAClCD,CACX,EACIE,EAAoB,SAAUH,GAC9B,IAAIC,GAAY,EACZC,EAAW,SAAU5f,GACrB,OAAIA,EAAM8f,aAAeJ,IACrBC,GAAY,EACR3f,EAAMl5C,MACNw4D,EAAej4B,OAAO2Y,EAAMl5C,OACzB,EAGf,EAGA,OAFAs4D,EAAkBA,EAAgB/7C,OAAOu8C,GACzCP,EAAkBA,EAAgBh8C,OAAOu8C,GAClCD,CACX,EACII,EAAU,SAAUC,GASpB,OARAZ,EAAgBr/D,SAAQ,SAAUigD,GAE9BggB,EAAQ31B,IAAI2V,EAAM8f,YAAY,IAAA/oD,UAAS,CAAC,EAAGipC,GAC/C,IACAqf,EAAgBt/D,SAAQ,SAAUigD,GAE9BggB,EAAQC,cAAcjgB,EAAM8f,YAAY,IAAA/oD,UAAS,CAAC,EAAGipC,GACzD,IACOggB,CACX,EACIE,EAA+B,SAAUx9B,GACzC,IAAIy9B,EAAyB,GAkB7B,OAjBAz9B,EAAK09B,OAAOrgE,SAAQ,SAAUigD,GACE,IAAxBA,EAAMogB,OAAOr9D,QAAuC,IAAvBi9C,EAAMqgB,MAAMt9D,OACzCo9D,EAAuB98D,KAAK28C,GAG5BmgB,EAAuB98D,KAAK0B,MAAMo7D,GAAwB,IAAA51B,UAAS21B,EAA6BlgB,IAExG,IACAmgB,EAAuB98D,KAAKq/B,GAC5BA,EAAK29B,MAAM1nD,UAAU5Y,SAAQ,SAAUigD,GACP,IAAxBA,EAAMogB,OAAOr9D,QAAuC,IAAvBi9C,EAAMqgB,MAAMt9D,OACzCo9D,EAAuB98D,KAAK28C,GAG5BmgB,EAAuB98D,KAAK0B,MAAMo7D,GAAwB,IAAA51B,UAAS21B,EAA6BlgB,IAExG,IACOmgB,CACX,EAIIG,EAAoB,WACpB,IAAIC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA2B,CAAC,EAChCrB,EAAgBr/D,SAAQ,SAAUigD,GAC9B,IAAI0gB,GAAkB,IAAA3pD,WAAS,IAAAA,UAAS,CAAC,EAAGipC,GAAQ,CAAEogB,OAAQ,GAAIC,MAAO,KACrEK,EAAgB55D,OAChB25D,EAAyBC,EAAgB55D,MAAQ45D,GACrDH,EAA0Bl9D,KAAKq9D,EACnC,IACArB,EAAgBt/D,SAAQ,SAAUigD,GAC9B,IAAI0gB,GAAkB,IAAA3pD,WAAS,IAAAA,UAAS,CAAC,EAAGipC,GAAQ,CAAEogB,OAAQ,GAAIC,MAAO,KACrEK,EAAgB55D,OAChB25D,EAAyBC,EAAgB55D,MAAQ45D,GACrDF,EAA0Bn9D,KAAKq9D,EACnC,IACAF,EAA0BzgE,SAAQ,SAAUigD,GACxC,GAAIA,EAAM2gB,aAAc,CACpB,IAAIA,EAAeF,EAAyBzgB,EAAM2gB,cAClD,QAAqB9gE,IAAjB8gE,EACA,MAAM,IAAIv6D,MAAM45C,EAAM2gB,aAAe,8BAAgC3gB,EAAMl5C,MAAQ,aAAe,eAAiBk5C,EAAM4gB,SAAW,IAAM5gB,EAAM2gB,cAE7H,UAAnB3gB,EAAM4gB,UACND,EAAaN,MAAMh9D,KAAK28C,GAEL,WAAnBA,EAAM4gB,UACND,EAAaP,OAAO/8D,KAAK28C,EAEjC,CACJ,IACA,IAAI6gB,EAAYzsD,EAAKmsD,GAChBvoD,IAAIkoD,GACJ1hD,QAAO,SAAUsiD,EAAWC,GAG7B,OADAD,EAAUz9D,KAAK0B,MAAM+7D,GAAW,IAAAv2B,UAASw2B,IAClCD,CACX,GAAG,IACH,OAAOD,EAAU7oD,KAAI,SAAUgoC,GAAS,OAAOA,EAAM8f,UAAY,GACrE,EACI14D,EAAQ,CACRijC,IAAK,SAAUy1B,EAAYp6D,QACP,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIoB,EAAOpB,EAAQoB,KAAMg4D,EAAWp5D,EAAQo5D,SACxC9e,GAAQ,IAAAjpC,UAAS,CAAEkF,KAAM,aAAcrK,SAAU,SAAUkuD,WAAYA,GAAcp6D,GACzF,GAAIoB,EAAM,CACN,GAAIw4D,EAAe9/C,IAAI1Y,GAAO,CAC1B,IAAKg4D,EACD,MAAM,IAAI14D,MAAM,8BAAgCU,EAAO,KAC3D,IAAIk6D,EAAkB5B,EAAgB6B,WAAU,SAAUjhB,GAAS,OAAOA,EAAMl5C,OAASA,CAAM,IAC3Fo6D,EAAa9B,EAAgB4B,GACjC,GAAIE,EAAWjlD,OAAS+jC,EAAM/jC,MAAQilD,EAAWtvD,WAAaouC,EAAMpuC,SAChE,MAAM,IAAIxL,MAAM,IAAOU,EAAO,qBAAwBo6D,EAAWtvD,SAAW,gBAAkBsvD,EAAWjlD,KAAzF,2DACkC+jC,EAAMpuC,SAAW,gBAAkBouC,EAAM/jC,KAAO,UAEtGmjD,EAAgB77D,OAAOy9D,EAAiB,EAC5C,CACA1B,EAAej1B,IAAIvjC,EACvB,CACAs4D,EAAgB/7D,KAAK28C,EACzB,EACAigB,cAAe,SAAUH,EAAYp6D,GACjC,IAAIoB,EAAOpB,EAAQoB,KAAMg4D,EAAWp5D,EAAQo5D,SACxC9e,GAAQ,IAAAjpC,UAAS,CAAE+oD,WAAYA,GAAcp6D,GACjD,GAAIoB,EAAM,CACN,GAAIw4D,EAAe9/C,IAAI1Y,GAAO,CAC1B,IAAKg4D,EACD,MAAM,IAAI14D,MAAM,8BAAgCU,EAAO,KAC3D,IAAIk6D,EAAkB3B,EAAgB4B,WAAU,SAAUjhB,GAAS,OAAOA,EAAMl5C,OAASA,CAAM,IAC3Fo6D,EAAa7B,EAAgB2B,GACjC,GAAIE,EAAWP,eAAiB3gB,EAAM2gB,cAAgBO,EAAWN,WAAa5gB,EAAM4gB,SAChF,MAAM,IAAIx6D,MAAM,IAAOU,EAAO,gBAAmBo6D,EAAWN,SAAW,KAAQM,EAAWP,aAA1E,6DACkB3gB,EAAM4gB,SAAW,KAAQ5gB,EAAM2gB,aAAe,iBAEpFtB,EAAgB97D,OAAOy9D,EAAiB,EAC5C,CACA1B,EAAej1B,IAAIvjC,EACvB,CACAu4D,EAAgBh8D,KAAK28C,EACzB,EACA3iB,MAAO,WAAc,OAAO0iC,EAAQZ,KAAmB,EACvD15D,IAAK,SAAU07D,GACXA,EAAOlC,aAAa73D,EACxB,EACAuE,OAAQ,SAAU+zD,GACd,MAAwB,kBAAbA,EACAD,EAAaC,GAEbG,EAAkBH,EACjC,EACA0B,YAAa,SAAU1B,GACnB,IAAIC,GAAY,EACZC,EAAW,SAAU5f,GACrB,IAAI6e,EAAO7e,EAAM6e,KAAM/3D,EAAOk5C,EAAMl5C,KACpC,OAAI+3D,IAAQA,EAAKjoD,SAAS8oD,KAClB54D,GACAw4D,EAAej4B,OAAOvgC,GAC1B64D,GAAY,GACL,EAGf,EAGA,OAFAP,EAAkBA,EAAgB/7C,OAAOu8C,GACzCP,EAAkBA,EAAgBh8C,OAAOu8C,GAClCD,CACX,EACA36D,OAAQ,SAAU09B,GACd,IAAIs3B,EAAS+F,EAAQZ,MAErB,OADAnF,EAAOv0D,IAAIi9B,GACJs3B,CACX,EACAiF,aAAcc,EACd5jE,QAAS,SAAU02C,EAASzxC,GACxB,IAAIgiC,EAAKrtB,EACT,IACI,IAAK,IAAIqF,GAAK,IAAAknB,UAASg+B,IAAoB3nD,WAAYoF,EAAK3C,EAAG/F,QAAS0I,EAAGphB,KAAMohB,EAAK3C,EAAG/F,OAAQ,CAC7F,IAAIyqD,EAAa/hD,EAAG1f,MACpBw0C,EAAUitB,EAAWjtB,EAASzxC,EAClC,CACJ,CACA,MAAOmiC,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQxlB,IAAOA,EAAGphB,OAASoZ,EAAKqF,EAAGooB,SAASztB,EAAGxP,KAAK6U,EACpD,CACA,QAAU,GAAIgoB,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CACA,OAAOwtC,CACX,GAEJ,OAAOzrC,CACX,EACIm4D,GAAc,CACd8B,WAAY,EACZC,UAAW,EACXC,MAAO,EACPC,gBAAiB,EACjBC,YAAa,GAEbjC,GAAkB,CAClBkC,KAAM,EACNC,OAAQ,EACRC,IAAK,GCvNLC,GAAwB,WACxB,SAASA,EAAO5lE,GACZkG,KAAK2/D,gBAAkB3C,KACvBh9D,KAAKlG,OAASA,CAClB,CAqBA,OApBA4lE,EAAOvgE,UAAUR,KAAO,SAAUihE,EAASC,EAAahhC,GACpD,IAAIt7B,EAAiC,oBAAhBs8D,EAA6BA,OAAcniE,EAC5D4N,EAAkC,oBAAhBu0D,EAA6BA,EAAchhC,EAC7D6R,EAAUkvB,EAAQE,kBAAkB9/D,KAAK2/D,gBAAiB3/D,KAAKlG,OAAQyJ,GAC3E,IAAI+H,EASA,OAAOolC,EAAQkvB,GAASp/D,MAAK,SAAUqL,GAAU,OAAOA,EAAOqa,MAAQ,IARvEwqB,EAAQkvB,GACHp/D,MAAK,SAAUqL,GAAU,OAAOP,EAAS,KAAMO,EAAOqa,OAAS,IAAG,SAAU/pB,GAAO,OAAOmP,EAASnP,EAAM,IACzGwgB,OAGL,WAAc,GAKtB,EACA+iD,EAAOvgE,UAAU4gE,QAAU,WACnB//D,KAAKlG,OAAOkmE,eAAeD,SAC3B//D,KAAKlG,OAAOkmE,eAAeD,SACnC,EACOL,CACX,CA1B2B,GCAvBO,GAAyB,WACzB,SAASA,IACLjgE,KAAK2/D,gBAAkB3C,IAC3B,CACA,OAAOiD,CACX,CAL4B,GCUjBC,GAAgB,WAEvB,IAAI/7C,EAAQpe,OAAOwG,eAAevM,MAAMoM,YACpCsW,EAAcgC,SAAS9lB,KAAKgE,MAAMopB,QAAQ,IAAAoc,UAAS,CAAC,MAAOngC,YAE3D/I,EAAW,IAAIwjB,EAEnB,OADA3c,OAAOiK,eAAe9Q,EAAUilB,EAAMhlB,WAC/BD,CACX,EACAghE,GAAc/gE,UAAY4G,OAAO1G,OAAO2sB,OAAO7sB,UAAW,CACtDiN,YAAa,CACTlQ,MAAOgkE,GACPj+C,YAAY,EACZO,UAAU,EACVD,cAAc,KAGtBxc,OAAOiK,eAAekwD,GAAel0C,SACD,SAAU3b,GAE1C,SAAS8vD,IACL,OAAkB,OAAX9vD,GAAmBA,EAAOzN,MAAM5C,KAAMiI,YAAcjI,IAC/D,EAHA,IAAA6P,WAAUswD,EAAgB9vD,GAI1B8vD,EAAehhE,UAAUihE,gBAAkB,WACvC,OAAOt5D,KAAKC,MAAMsJ,EAAOlR,UAAUc,SAASmE,KAAKpE,MACrD,EACAmgE,EAAehhE,UAAUuF,OAAS,WAC9B,OAAO2L,EAAOlR,UAAUc,SAASmE,KAAKpE,KAC1C,EACAmgE,EAAeE,WAAa,SAAUz+C,GAClC,OAAIA,aAAkBu+C,EACXv+C,EAGA,IAAIu+C,EADNv+C,aAAkBoK,QAA4B,kBAAXpK,EACdA,EAEJ9a,KAAKI,UAAU0a,GAC7C,CAEJ,EArBmC,CAqBjCs+C,IArBF,ICjBII,GAAkD,SAAUjwD,GAI5D,SAASiwD,EAAiCnI,GACtC,IAAI7nD,EAEJD,EAAOjM,KAAKpE,OAASA,KAErB,OADAsQ,EAAM6nD,MAAQA,EACP7nD,CAEX,CA4BA,OAtCAT,EAAUywD,EAAkCjwD,GAc5CiwD,EAAiCnhE,UAAU2gE,kBAAoB,SAAUS,EAAaC,EAAej9D,GACjGvD,KAAK2/D,gBAAgBr8D,IAAIu5D,GAAe2D,EAAexgE,KAAKm/D,UAAWn/D,KAAKs/D,cAC5E,IAAIr6D,EAAQs7D,EAAY19D,OAAO7C,KAAK2/D,iBAChC5wD,EAASyxD,EAAczxD,OACvB0xD,EAAa,wBACbC,EAAc,mCACdC,EAA0B,CAC1B5xD,OAAQA,EACR0xD,WAAYA,EACZC,YAAaA,EACbE,wBAAyBzL,EAA+BoC,mBACxDsJ,yBAA0BzL,EAAkCmC,oBAE5DyI,EAAiBQ,EAAcR,eACnC,OAAO/6D,EAAMjL,SAAQ,SAAUc,GAC3B,OAAOklE,EAAec,OAAOhmE,EAAQA,QAASyI,GAAW,CAAC,EAC9D,GAAGo9D,EACP,EACAL,EAAiCnhE,UAAUggE,UAAY,SAAUhH,EAAOl5D,GACpE,OAAOi5D,GAAqDC,EAAOl5D,EACvE,EACAqhE,EAAiCnhE,UAAUmgE,YAAc,SAAUp5C,EAAQjnB,GACvE,OAAOu5D,GAAuDtyC,EAAQjnB,EAC1E,EACOqhE,CACX,CAxCqD,CAwCnD,IC1CE,GAA+B,SAAUjwD,GAEzC,SAAS0wD,EAAchhE,EAASihE,QACR,IAAhBA,IAA0BA,GAAc,GAC5C,IAAI1wD,EAAQD,EAAOjM,KAAKpE,KAAMD,IAAYC,KAE1C,OADAsQ,EAAM0wD,YAAcA,EACb1wD,CACX,CACA,OAPA,IAAAT,WAAUkxD,EAAe1wD,GAOlB0wD,CACX,CATkC,CAShC98D,OCfK,SAASg9D,GAAcC,GAC1B,OAAOnnE,QAAQ4F,IAAIoG,OAAOC,KAAKk7D,GAAQ7kD,QAAO,SAAU9Q,EAAK5G,GACzD,IAAIw8D,EAAkBD,EAAOv8D,GAO7B,MAN+B,kBAApBw8D,EACP51D,EAAIrK,KAAK,CAACyD,EAAMw8D,IAGhB51D,EAAIrK,KAAKigE,IAAkB3gE,MAAK,SAAUD,GAAS,MAAO,CAACoE,EAAMpE,EAAQ,KAEtEgL,CACX,GAAG,KAAK/K,MAAK,SAAU4gE,GACnB,OAAOA,EAAc/kD,QAAO,SAAU6kD,EAAQttD,GAC1C,IAAIqF,GAAK,IAAAvG,QAAOkB,EAAI,GAAI9V,EAAMmb,EAAG,GAAI/c,EAAQ+c,EAAG,GAEhD,OADAioD,EAAOpjE,GAAO5B,EACPglE,CACX,GAAG,CAAC,EACR,GACJ,CCXO,SAASG,GAAoBC,GAChC,IAAIhxD,EAAQtQ,KACZ,OAAO,WAAc,OAAO,IAAAyZ,WAAUnJ,OAAO,OAAQ,GAAQ,WACzD,IAAIsD,EAAIqF,EAAI2C,EAAIu/C,EAAaC,EAAYjyB,EAAIkyB,EAAWC,EAAcpvB,EAAII,EAAIC,EAAIK,EAC9EG,EACJ,OAAO,IAAAhzB,aAAY/Z,MAAM,SAAUgtC,GAC/B,OAAQA,EAAG5yB,OACP,KAAK,EAOD,OANAkyB,GAAMJ,EAAKo1B,EAAW36B,QAAQhoC,KAC9B4tC,EAAK+zB,GAAiC1hE,KACtCmuC,EAAK,CACD6tB,cAAe0G,EAAWC,cAC1B1G,WAAYyG,EAAWvS,YAEtBuS,EAAWJ,OACT,CAAC,EAAaD,GAAcK,EAAWJ,SADf,CAAC,EAAa,GAEjD,KAAK,EAED,OADAt0B,EAAKI,EAAG3yB,OACD,CAAC,EAAa,GACzB,KAAK,EACDuyB,OAAKlvC,EACLsvC,EAAG5yB,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAakyB,EAAG1pC,MAAMspC,EAAI,CAAC,IAAKK,EAAG3pC,MAAM09D,GAAkC,MAAC,GAASvzB,EAAG+tB,OAASluB,EACjGG,SAChB,KAAK,EAED,OADAn5B,EAAMo5B,EAAG3yB,OAAQW,YAAa/B,OAAY,IAAPrF,EAAgB4tD,KAA8B5tD,EAAIgI,EAAK3C,EAAGkiD,YAAaA,OAAqB,IAAPv/C,EAAgB6lD,KAA8B7lD,EAAIw/C,EAAaniD,EAAGmiD,WAAYjyB,EAAKlwB,EAAGoiD,UAAWA,OAAmB,IAAPlyB,EAAgBu4B,KAA4Bv4B,EAAImyB,EAAeriD,EAAGqiD,aAChS,CAAC,EAAc,CACdvM,WAAYuS,EAAWvS,WACvB5wC,YAAag9C,EACbj9C,gBAAiBm9C,EACjBj9C,aAAck9C,EACd1iD,WAAYwiD,IAGhC,GACJ,GAAI,CACR,CACA,SAASqG,KACL,MAAM,IAAI,GAAc,0DAC5B,CACA,SAASD,KACL,MAAM,IAAI,GAAc,wDAC5B,CACA,SAASE,KACL,MAAM,IAAI,GAAc,uDAC5B,CC7CA,IAAIC,GAA8B,SAAUtxD,GAIxC,SAASsxD,EAAaxJ,GAClB,IAAI7nD,EAEJD,EAAOjM,KAAKpE,OAASA,KAErB,OADAsQ,EAAM6nD,MAAQA,EACP7nD,CAEX,CA4BA,OAtCAT,EAAU8xD,EAActxD,GAcxBsxD,EAAaxiE,UAAU2gE,kBAAoB,SAAUS,EAAaC,EAAej9D,GAC7EvD,KAAK2/D,gBAAgBr8D,IAAIu5D,GAAe2D,EAAexgE,KAAKm/D,UAAWn/D,KAAKs/D,cAC5E,IAAIr6D,EAAQs7D,EAAY19D,OAAO7C,KAAK2/D,iBAChC5wD,EAASyxD,EAAczxD,OACvB0xD,EAAa,wBACbC,EAAc,eACdC,EAA0B,CAC1B5xD,OAAQA,EACR0xD,WAAYA,EACZC,YAAaA,EACbE,wBAAyBtL,EAAWiC,mBACpCsJ,yBAA0BtL,EAAcgC,oBAExCyI,EAAiBQ,EAAcR,eACnC,OAAO/6D,EAAMjL,SAAQ,SAAUc,GAC3B,OAAOklE,EAAec,OAAOhmE,EAAQA,QAASyI,GAAW,CAAC,EAC9D,GAAGo9D,EACP,EACAgB,EAAaxiE,UAAUggE,UAAY,SAAUhH,EAAOl5D,GAChD,OAAOq5D,GAAiCH,EAAOl5D,EACnD,EACA0iE,EAAaxiE,UAAUmgE,YAAc,SAAUp5C,EAAQjnB,GACnD,OAAO66D,GAAmC5zC,EAAQjnB,EACtD,EACO0iE,CACX,CAxCiC,CAwC/B,IClDEC,GAAa,cACbC,GAAkC,WAClC,SAASA,EAAiBC,QACP,IAAXA,IAAqBA,EAAS,4BAClC9hE,KAAK8hE,OAASA,CAClB,CA8DA,OA7DAD,EAAiB1iE,UAAUyP,QAAU,SAAU9Q,GAC3C,OAAOkC,KAAK+hE,gBAAgB,YAAY,SAAUtzD,GAC9C,IAAIqqC,EAAMrqC,EAAM+N,IAAI1e,GACpB,OAAO,IAAI/D,SAAQ,SAAUC,GACzB8+C,EAAI97C,QAAU,WAAc,OAAOhD,EAAQ,KAAO,EAClD8+C,EAAIkpB,UAAY,WAAc,OAAOhoE,EAAQ8+C,EAAIjtC,OAASitC,EAAIjtC,OAAO3P,MAAQ,KAAO,CACxF,GACJ,IAAGygB,OAAM,WAAc,OAAO,IAAM,GACxC,EACAklD,EAAiB1iE,UAAU2P,WAAa,SAAUhR,GAC9C,OAAOkC,KAAK+hE,gBAAgB,aAAa,SAAUtzD,GAC/C,IAAIqqC,EAAMrqC,EAAMy2B,OAAOpnC,GACvB,OAAO,IAAI/D,SAAQ,SAAUC,EAASC,GAClC6+C,EAAI97C,QAAU,WAAc,OAAO/C,EAAO6+C,EAAI51C,MAAQ,EACtD41C,EAAIkpB,UAAY,WAAc,OAAOhoE,GAAW,CACpD,GACJ,GACJ,EACA6nE,EAAiB1iE,UAAU0P,QAAU,SAAUpL,EAAIvH,GAC/C,OAAO8D,KAAK+hE,gBAAgB,aAAa,SAAUtzD,GAC/C,IAAIqqC,EAAMrqC,EAAMsO,IAAI,CAAEtZ,GAAIA,EAAIvH,MAAOA,IACrC,OAAO,IAAInC,SAAQ,SAAUC,EAASC,GAClC6+C,EAAI97C,QAAU,WAAc,OAAO/C,EAAO6+C,EAAI51C,MAAQ,EACtD41C,EAAIkpB,UAAY,WAAc,OAAOhoE,GAAW,CACpD,GACJ,GACJ,EACA6nE,EAAiB1iE,UAAU8iE,MAAQ,WAC/B,IAAIC,EAAgBn+C,KAAKo+C,UAAU/lE,KAAK4D,KAAK8hE,OAAQ,GACrD,OAAO,IAAI/nE,SAAQ,SAAUC,EAASC,GAClCioE,EAAcF,UAAY,WACtBhoE,EAAQkoE,EAAcr2D,OAC1B,EACAq2D,EAAcllE,QAAU,WACpB/C,EAAOioE,EAAch/D,MACzB,EACAg/D,EAAcE,UAAY,WACtBnoE,EAAO,IAAIgK,MAAM,uBACrB,EACAi+D,EAAcG,gBAAkB,WAC5B,IAAIC,EAAKJ,EAAcr2D,OACvBy2D,EAAGtlE,QAAU,WACT/C,EAAO,IAAIgK,MAAM,iCACrB,EACAq+D,EAAGC,kBAAkBX,GAAY,CAAEY,QAAS,MAChD,CACJ,GACJ,EACAX,EAAiB1iE,UAAU4iE,gBAAkB,SAAUU,EAAMC,GACzD,OAAO1iE,KAAKiiE,QAAQzhE,MAAK,SAAU8hE,GAC/B,IAAIK,EAAKL,EAAGM,YAAYhB,GAAYa,GAEpC,OADAE,EAAGE,WAAa,WAAc,OAAOP,EAAG9zB,OAAS,EAC1C,IAAIz0C,SAAQ,SAAUC,EAASC,GAClC0oE,EAAG3lE,QAAU,WAAc,OAAO/C,EAAO0oE,EAAGz/D,MAAQ,EACpDlJ,EAAQ0oE,EAAOC,EAAGG,YAAYlB,KAClC,IAAGjlD,OAAM,SAAUxgB,GAEf,MADAmmE,EAAG9zB,QACGryC,CACV,GACJ,GACJ,EACO0lE,CACX,CAnEqC,GCDjCkB,GAAiC,WACjC,SAASA,EAAgBt0D,QACP,IAAVA,IAAoBA,EAAQ,CAAC,GACjCzO,KAAKyO,MAAQA,CACjB,CAaA,OAZAs0D,EAAgB5jE,UAAUyP,QAAU,SAAU9Q,GAC1C,OAAIA,KAAOkC,KAAKyO,MACLzO,KAAKyO,MAAM3Q,GAEf,IACX,EACAilE,EAAgB5jE,UAAU2P,WAAa,SAAUhR,UACtCkC,KAAKyO,MAAM3Q,EACtB,EACAilE,EAAgB5jE,UAAU0P,QAAU,SAAU/Q,EAAK5B,GAC/C8D,KAAKyO,MAAM3Q,GAAO5B,CACtB,EACO6mE,CACX,CAlBoC,GCEhCC,GAAkB,IAAID,GACnB,SAASlqB,KACZ,MAAoB,kBAAT90B,MAAqBA,KAAKo+C,UAC1B,IAAIN,GAEO,kBAAXh3D,QAAuBA,OAAOguC,aAC9BhuC,OAAOguC,aAEXmqB,EACX,CCGO,SAASC,GAAwBrvD,GACpC,IAAItD,EAAQtQ,KACRkjE,EAAYtvD,EAAGsvD,UAAWjqD,EAAKrF,EAAGuvD,MAAOA,OAAe,IAAPlqD,EAAgB4/B,KAAiB5/B,EAAI0tB,EAAS/yB,EAAG+yB,OAAQ46B,EAAgB3tD,EAAG2tD,cAAe7qB,EAAiB9iC,EAAG8iC,eAAgBwqB,EAASttD,EAAGstD,OAAQtlD,EAAKhI,EAAGwvD,eAAgBA,OAAwB,IAAPxnD,EAAiBslD,GAAyC,IAA/Bn7D,OAAOC,KAAKk7D,GAAQtgE,YAA6BlD,EAAd,YAA0Bke,EACrUynD,EAAWD,EAAiB,oCAAsC1sB,EAAiB,IAAM0sB,OAAiB1lE,EAC1GsoC,EAAW,WAAc,OAAO,IAAAvsB,WAAUnJ,OAAO,OAAQ,GAAQ,WACjE,IAAIy+C,EAAYn7C,EAAIqF,EAAI4hD,EAAYj/C,EAAIutB,EAAI+C,EAAII,EAC5CC,EACJ,OAAO,IAAAxyB,aAAY/Z,MAAM,SAAU4sC,GAC/B,OAAQA,EAAGxyB,OACP,KAAK,EAED,OADAxG,EAAKyvD,EACAzvD,EACE,CAAC,EAAauvD,EAAMv0D,QAAQy0D,IADnB,CAAC,EAAa,GAElC,KAAK,EACDzvD,EAAMg5B,EAAGvyB,OACTuyB,EAAGxyB,MAAQ,EACf,KAAK,EAED,OADA20C,EAAan7C,EACPm7C,EAAmB,CAAC,EAAa,IACvC5lB,GAAMvtB,EAAK+qB,GAAQhoC,KACnButC,EAAKy1B,GAAa/iE,KAClB2tC,EAAK,CACDyuB,UAAWkI,EACXjI,eAAgBvkB,GAEfwqB,EACE,CAAC,EAAaD,GAAcC,IADf,CAAC,EAAa,IAEtC,KAAK,EAED,OADA50B,EAAKM,EAAGvyB,OACD,CAAC,EAAa,GACzB,KAAK,EACDiyB,OAAK5uC,EACLkvC,EAAGxyB,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAa+uB,EAAGvmC,MAAMgZ,EAAI,CAAC,IAAKswB,EAAGtpC,MAAM++D,GAAc,MAAC,GAASp1B,EAAGuuB,OAASxuB,EAC7EC,SAChB,KAAK,EACDtzB,EAAM2zB,EAAGvyB,OAAQwgD,WAAYA,OAAoB,IAAP5hD,EAAgBqqD,KAAqBrqD,EAC/E81C,EAAa8L,EACTwI,GACAtpE,QAAQC,QAAQmpE,EAAMt0D,QAAQw0D,EAAUtU,IAAapyC,OAAM,WAAc,IAE7EiwB,EAAGxyB,MAAQ,EACf,KAAK,EAOD,OANA4rB,EAAWq7B,GAAoB,CAC3B16B,OAAQA,EACR46B,cAAeA,EACfL,OAAQA,EACRnS,WAAYA,IAET,CAAC,EAAc/oB,KAElC,GACJ,GAAI,EACJ,OAAO,WACH,OAAOA,IAAWrpB,OAAM,SAAUxgB,GAAO,OAAO,IAAAsd,WAAUnJ,OAAO,OAAQ,GAAQ,WAC7E,OAAO,IAAAyJ,aAAY/Z,MAAM,SAAU4T,GAI/B,MAHIyvD,GACAtpE,QAAQC,QAAQmpE,EAAMr0D,WAAWu0D,IAAW1mD,OAAM,WAAc,IAE9DxgB,CACV,GACJ,GAAI,GACR,CACJ,CACA,SAASmnE,KACL,MAAM,IAAI,GAAc,wDAC5B,C,gCChFWC,GAAY,SAAUC,GAE7B,OAAOpoE,mBAAmBooE,GAAKpgE,QAAQ,WAAYqgE,GACvD,EACIA,GAAY,SAAUniE,GAAK,MAAO,IAAMA,EAAE6L,WAAW,GAAGlN,SAAS,IAAI3D,aAAe,ECFjF,SAASonE,GAAiB9tD,GAC7B,IAAIqrB,EAAKrtB,EACLxL,EAAQ,GACZ,IACI,IAAK,IAAI6Q,GAAK,IAAAknB,UAASp6B,OAAOC,KAAK4P,GAAO3D,QAAS2J,EAAK3C,EAAG/F,QAAS0I,EAAGphB,KAAMohB,EAAK3C,EAAG/F,OAAQ,CACzF,IAAIpV,EAAM8d,EAAG1f,MACTA,EAAQ0Z,EAAM9X,GAElB,GADAA,EAAMylE,GAAUzlE,GACZ6E,MAAM4C,QAAQrJ,GACd,IAAK,IAAIwE,EAAI,EAAGijE,EAAOznE,EAAM0E,OAAQF,EAAIijE,EAAMjjE,IAC3C0H,EAAMlH,KAAKpD,EAAM,IAAMylE,GAAUrnE,EAAMwE,SAG1C,CACD,IAAIkjE,EAAU9lE,GACV5B,GAA0B,kBAAVA,KAChB0nE,GAAW,IAAML,GAAUrnE,IAE/BkM,EAAMlH,KAAK0iE,EACf,CACJ,CACJ,CACA,MAAOxiC,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQxlB,IAAOA,EAAGphB,OAASoZ,EAAKqF,EAAGooB,SAASztB,EAAGxP,KAAK6U,EACpD,CACA,QAAU,GAAIgoB,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CACA,OAAOkF,EAAMI,KAAK,IACtB,CChCO,SAASq7D,GAAeC,GAE3B,YADoB,IAAhBA,IAA0BA,EAAc,GACrC,IAAI/pE,SAAQ,SAAUC,EAASC,GAC9B6pE,GACAhnE,YAAW,WACP,IAAIinE,EAAe,IAAI9/D,MAAM,mCAAqC6/D,EAAc,OAChFC,EAAap/D,KAAO,eACpB1K,EAAO8pE,EACX,GAAGD,EAEX,GACJ,CCTA,ICEA,IAAIE,GAAkC,WAClC,SAASA,EAAiBpwD,GACtB,IAAIqF,OAAY,IAAPrF,EAAgB,CAAC,EAAIA,EAAIiwD,EAAiB5qD,EAAG4qD,eACtD7jE,KAAK6jE,eAAiBA,CAC1B,CAsFA,OArFAG,EAAiB7kE,UAAU4gE,QAAU,WAErC,EACAiE,EAAiB7kE,UAAU2hE,OAAS,SAAUhmE,EAAS8Y,GACnD,IAAIqF,OAAY,IAAPrF,EAAgB,CAAC,EAAIA,EAAIqwD,EAAchrD,EAAGgrD,YAC/CC,EAAqBlkE,KAAK6jE,eAE9B,GAAoB,OAAhBI,QAAwC,IAAhBA,OAAyB,EAASA,EAAYvlE,QAAS,CAC/E,IAAIylE,EAAa,IAAIlgE,MAAM,mBAE3B,OADAkgE,EAAWx/D,KAAO,aACX5K,QAAQE,OAAOkqE,EAC1B,CACA,IAAIt7D,EAAO/N,EAAQ+N,KACnB,GAAI/N,EAAQ8a,MAAO,CACf,IAAImmC,EAAc2nB,GAAiB5oE,EAAQ8a,OACvCmmC,IACAlzC,GAAQ,IAAMkzC,EAEtB,CACA,IAAIrxC,EAAO5P,EAAQ4P,KAAMrO,EAASvB,EAAQuB,OACtCZ,EAAMX,EAAQuP,SAAW,KAAOvP,EAAQ2P,UAAYC,EAAO,IAAMA,EAAO,IAAM7B,EAG9EsP,EAAkB,QAAX9b,GAA+B,SAAXA,OAAoBqB,EAAY5C,EAAQqd,KACnEisD,EAAiB,CACjBjsD,KAAMA,EACN7d,QAAS,IAAI+pE,QAAQvpE,EAAQR,SAC7B+B,OAAQA,GAGmB,qBAApBioE,kBACPF,EAAe,UAAYH,GAE/B,IAAIM,EAAe,IAAIC,QAAQ/oE,EAAK2oE,GAChCK,EAAiB,CACjBrnB,MAAMmnB,GAAc/jE,MAAK,SAAU1E,GAC/B,IAAImlC,EAAKrtB,EACL8wD,EAAe5oE,EAASxB,QACxBqqE,EAAqB,CAAC,EAC1B,IACI,IAAK,IAAI1rD,GAAK,IAAAknB,UAASukC,EAAah8B,WAAY9sB,EAAK3C,EAAG/F,QAAS0I,EAAGphB,KAAMohB,EAAK3C,EAAG/F,OAAQ,CACtF,IAAI0xD,EAAOhpD,EAAG1f,MACdyoE,EAAmBC,EAAK,IAAMA,EAAK,EACvC,CACJ,CACA,MAAOxjC,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQxlB,IAAOA,EAAGphB,OAASoZ,EAAKqF,EAAGooB,SAASztB,EAAGxP,KAAK6U,EACpD,CACA,QAAU,GAAIgoB,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CACA,IAAI2hE,OAAsCnnE,IAAlB5B,EAASqc,KAEjC,OAAK0sD,EAUE,CACH/oE,SAAU,IAAI07D,GAAa,CACvBl9D,QAASqqE,EACTlN,WAAY37D,EAASE,OACrBmc,KAAMrc,EAASqc,QAbZrc,EAASgpE,OAAOtkE,MAAK,SAAU2X,GAAQ,MAAO,CACjDrc,SAAU,IAAI07D,GAAa,CACvBl9D,QAASqqE,EACTlN,WAAY37D,EAASE,OACrBmc,KAAMA,IAEV,GAUZ,IACA0rD,GAAeK,IAWnB,OATID,GACAQ,EAAevjE,KAAK,IAAInH,SAAQ,SAAUC,EAASC,GAC/CgqE,EAAYlnE,QAAU,WAClB,IAAIonE,EAAa,IAAIlgE,MAAM,mBAC3BkgE,EAAWx/D,KAAO,aAClB1K,EAAOkqE,EACX,CACJ,KAEGpqE,QAAQgrE,KAAKN,EACxB,EACOT,CACX,CA3FqC,GDJjCgB,GAAqB,CAAC,EACtBC,GAAkB,IAAItiE,MAAM,IACvBjC,GAAI,EAAGqf,GAAQ,IAAI5S,WAAW,GAAI+3D,GAAQ,IAAI/3D,WAAW,GAAIzM,GAAIqf,IAASmlD,GAAOxkE,KAAK,CAC3F,IAAI,GAAOsrB,OAAO0D,aAAahvB,GAAIqf,IACnCilD,GAAmB,IAAQtkE,GAC3BukE,GAAgBvkE,IAAK,EACzB,CACA,IAASA,GAAI,EAAGqf,GAAQ,IAAI5S,WAAW,GAAI+3D,GAAQ,IAAI/3D,WAAW,GAAIzM,GAAIqf,IAASmlD,GAAOxkE,KAAK,CACvF,GAAOsrB,OAAO0D,aAAahvB,GAAIqf,IAAnC,IACI5e,GAAQT,GAAI,GAChBskE,GAAmB,IAAQ7jE,GAC3B8jE,GAAgB9jE,IAAS,EAC7B,CACA,IAAST,GAAI,EAAGA,GAAI,GAAIA,KAAK,CACzBskE,GAAmBtkE,GAAET,SAAS,KAAOS,GAAI,GACrC,GAAOA,GAAET,SAAS,IAClBkB,GAAQT,GAAI,GAChBskE,GAAmB,IAAQ7jE,GAC3B8jE,GAAgB9jE,IAAS,EAC7B,CACA6jE,GAAmB,KAAO,GAC1BC,GAAgB,IAAM,IACtBD,GAAmB,KAAO,GAC1BC,GAAgB,IAAM,IACtB,IAAIE,GAAgB,EAChBC,GAAc,EACdC,GAAiB,GAQd,SAASC,GAAWnN,GACvB,IAAIoN,EAAmBpN,EAAMv3D,OAAS,EAAK,EAClB,OAArBu3D,EAAM9sD,QAAQ,GACdk6D,GAAmB,EAEO,MAArBpN,EAAM9sD,QAAQ,IACnBk6D,IAIJ,IAFA,IAAIC,EAAM,IAAIn5D,YAAYk5D,GACtBE,EAAW,IAAIC,SAASF,GACnB9kE,EAAI,EAAGA,EAAIy3D,EAAMv3D,OAAQF,GAAK,EAAG,CAGtC,IAFA,IAAIilE,EAAO,EACPC,EAAY,EACPC,EAAInlE,EAAGwkE,EAAQxkE,EAAI,EAAGmlE,GAAKX,EAAOW,IACtB,MAAb1N,EAAM0N,IACNF,GAAQX,GAAmB7M,EAAM0N,MAASX,EAAQW,GAAKV,GACvDS,GAAaT,IAGbQ,IAASR,GAGjB,IAAIW,EAAeplE,EAAI,EAAK,EAC5BilE,IAASC,EAAYR,GAErB,IADA,IAAIlmB,EAAa3wC,KAAKC,MAAMo3D,EAAYR,IAC/B/tD,EAAI,EAAGA,EAAI6nC,EAAY7nC,IAAK,CACjC,IAAI1C,GAAUuqC,EAAa7nC,EAAI,GAAK+tD,GACpCK,EAASM,SAASD,EAAczuD,GAAIsuD,EAAQ,KAAOhxD,IAAYA,EACnE,CACJ,CACA,OAAO,IAAImqC,WAAW0mB,EAC1B,CAQO,SAASQ,GAAS7N,GAErB,IADA,IAAIzrD,EAAM,GACDhM,EAAI,EAAGA,EAAIy3D,EAAMv3D,OAAQF,GAAK,EAAG,CAGtC,IAFA,IAAIilE,EAAO,EACPC,EAAY,EACPC,EAAInlE,EAAGwkE,EAAQ32D,KAAKke,IAAI/rB,EAAI,EAAGy3D,EAAMv3D,QAASilE,EAAIX,EAAOW,IAC9DF,GAAQxN,EAAM0N,KAAQX,EAAQW,EAAI,GAAKT,GACvCQ,GAAaR,GAEjB,IAAIa,EAAkB13D,KAAK23D,KAAKN,EAAYT,IAC5CQ,IAASM,EAAkBd,GAAgBS,EAC3C,IAAK,IAAIvuD,EAAI,EAAGA,GAAK4uD,EAAiB5uD,IAAK,CACvC,IAAI1C,GAAUsxD,EAAkB5uD,GAAK8tD,GACrCz4D,GAAOu4D,IAAiBU,EAAQN,IAAkB1wD,IAAYA,EAClE,CACAjI,GAAO,KAAKlH,MAAM,EAAG,EAAIygE,EAC7B,CACA,OAAOv5D,CACX,CExFO,IAAImvD,GAAkB,SAAUsK,GACnC,MAAoB,oBAATC,MAAuBD,aAAkBC,KACzCC,GAAYF,GAEhBG,GAAcH,EACzB,EACA,SAASE,GAAYvB,GACjB,OAAO,IAAArrD,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAIumE,EAAQC,EACZ,OAAO,IAAAzsD,aAAY/Z,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAAG,MAAO,CAAC,EAAaqsD,GAAa3B,IAC1C,KAAK,EAGD,OAFAyB,EAAS3yD,EAAGyG,OACZmsD,EAAclB,GAAWiB,GAClB,CAAC,EAAc,IAAIznB,WAAW0nB,IAEjD,GACJ,GACJ,CACA,SAASF,GAAcH,GACnB,OAAO,IAAA1sD,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAI2tC,EAAK+4B,EAAQC,EAAQ/yD,EAAIpZ,EAAM0B,EAAO0qE,EAC1C,OAAO,IAAA7sD,aAAY/Z,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EACDuzB,EAAM,IAAImR,WAAW,GACrB4nB,EAASP,EAAOU,YAChBF,GAAS,EACT1tD,EAAGmB,MAAQ,EACf,KAAK,EACD,OAAMusD,EAAe,CAAC,EAAa,GAC5B,CAAC,EAAaD,EAAOjpE,QAChC,KAAK,EASD,OARAmW,EAAKqF,EAAGoB,OAAQ7f,EAAOoZ,EAAGpZ,KAAM0B,EAAQ0X,EAAG1X,MACvCA,IACA0qE,EAAQj5B,EACRA,EAAM,IAAImR,WAAW8nB,EAAMhmE,OAAS1E,EAAM0E,QAC1C+sC,EAAIlwB,IAAImpD,GACRj5B,EAAIlwB,IAAIvhB,EAAO0qE,EAAMhmE,SAEzB+lE,EAASnsE,EACF,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAcmzC,GAEtC,GACJ,GACJ,CACA,SAAS84B,GAAa3B,GAClB,OAAO,IAAI/qE,SAAQ,SAAUC,EAASC,GAClC,IAAIysE,EAAS,IAAII,WACjBJ,EAAOhrE,UAAY,WACf,IAAIkY,EAGJ,GAA0B,IAAtB8yD,EAAO/pE,WACP,OAAO1C,EAAO,IAAIgK,MAAM,6BAE5B,IAAI4H,EAAmC,QAAxB+H,EAAK8yD,EAAO76D,cAA2B,IAAP+H,EAAgBA,EAAK,GAGhEmzD,EAAal7D,EAAOhP,QAAQ,KAC5BmqE,EAAaD,GAAc,EAAIA,EAAa,EAAIl7D,EAAOjL,OAC3D5G,EAAQ6R,EAAO0G,UAAUy0D,GAC7B,EACAN,EAAO3pE,QAAU,WAAc,OAAO9C,EAAO,IAAIgK,MAAM,gBAAkB,EACzEyiE,EAAO1pE,QAAU,WAAc,OAAO/C,EAAOysE,EAAOxjE,MAAQ,EAE5DwjE,EAAOO,cAAcnC,EACzB,GACJ,CCzEO,IAAIoC,GAAkB,SAAUnnE,GAAW,OAAO,WAAc,OAAOhG,QAAQE,OAAO8F,EAAU,CAAG,ECC/FonE,GAAkB,SAAU5jE,GAAW,OAAO,SAAU2P,EAAMjU,GAAW,OAAO,SAAU+I,GAAQ,OAAO,IAAAyR,gBAAU,OAAQ,OAAQ,GAAQ,WAClJ,IAAI7F,EACJ,OAAO,IAAAmG,aAAY/Z,MAAM,SAAUiZ,GAG/B,OAFuF,QAAlFrF,EAAiB,OAAZrQ,QAAgC,IAAZA,OAAqB,EAASA,EAAQ6jE,qBAAkC,IAAPxzD,OAAgB,EAASA,EAAG6uD,QACvHxjE,EAAQ8K,WAAY,IAAAq+B,UAAUnpC,EAAQ8K,WAAa,GAAK,CAAC,CAAC,iBAAkBxG,EAAQ6jE,cAAc3E,SAC/F,CAAC,EAAcl/D,EAAQ6jE,cAAcC,MAAMn0D,EAAMlL,GAC5D,GACJ,GAAI,CAAG,CAAG,EACCs/D,GAAyB,CAChC3iE,KAAM,kBACN+3D,KAAM,CAAC,SACP5iD,KAAM,kBACNrK,SAAU,OACVktD,UAAU,GAEH4K,GAAiB,SAAUhkE,GAAW,MAAO,CACpDu5D,aAAc,SAAUyD,GACpBA,EAAYr4B,IAAIi/B,GAAgB5jE,GAAU+jE,GAC9C,EACA,ECbOE,GAAyB,CAChC,cACA,4BACA,iBACA,qBACA,uBACA,yBAOOC,GAAyB,CAChC,yBACA,wBACA,yBACA,0BACA,yCACA,uBACA,mBACA,4BACA,WACA,qBACA,aACA,sBACA,2BACA,kCAKOC,GAAwB,CAAC,aAAc,eAAgB,iBAAkB,2BAIzEC,GAA+B,CAAC,IAAK,IAAK,IAAK,KC1C/CC,GAAqB,SAAU1kE,GAAS,YAA4BxF,IAArBwF,EAAM2kE,UAA0B,EAC/EtzD,GAAmB,SAAUrR,GAAS,OAAOskE,GAAuB/yD,SAASvR,EAAMyB,KAAO,EAC1FmjE,GAAoB,SAAU5kE,GACrC,IAAI0Q,EAAIqF,EACR,OAA2F,OAAxD,QAA1BrF,EAAK1Q,EAAM21D,iBAA8B,IAAPjlD,OAAgB,EAASA,EAAG2nD,iBACnEkM,GAAuBhzD,SAASvR,EAAMyB,OAC0C,IAAnD,QAA3BsU,EAAK/V,EAAM2kE,kBAA+B,IAAP5uD,OAAgB,EAASA,EAAG8uD,WACzE,EACWC,GAAmB,SAAU9kE,GACpC,IAAI0Q,EACJ,OAAO8zD,GAAsBjzD,SAASvR,EAAMyB,OACxCgjE,GAA6BlzD,UAAqC,QAA1Bb,EAAK1Q,EAAM21D,iBAA8B,IAAPjlD,OAAgB,EAASA,EAAG2nD,iBAAmB,EACjI,E,YCTW0M,GAA2B,IAK3BC,GAAsB,IAKtBC,GAA8B,IAI9BC,GAAuB,IAIvBC,GAAa,EAKbC,GAAqB,GAKrBC,GAAqB,EAIrB,GAAuB,wBAIvB,GAAiB,kBCvCjBC,GAAuB,SAAUC,GACxC,IAAIC,EAAeD,EACfE,EAAoBF,EACpBG,EAAoB,SAAU1lE,GAAS,MAAuB,iBAAfA,EAAMyB,KAA0B2jE,GAAqBD,EAAa,EACjHQ,EAAiB,SAAU3lE,GAAS,OAAO0lE,EAAkB1lE,IAAUylE,CAAmB,EAC1FG,EAAsB,SAAU5lE,GAChC,IAAK2lE,EAAe3lE,GAEhB,MAAM,IAAIe,MAAM,4BAEpB,IAAI8kE,EAAiBH,EAAkB1lE,GAEvC,OADAylE,GAAqBI,EACdA,CACX,EACIC,EAAqB,SAAUC,GAC/BN,GAA+C,OAA1BM,QAA4D,IAA1BA,EAAmCA,EAAwBV,GAClHI,EAAoBp6D,KAAKke,IAAIk8C,EAAmBD,EACpD,EACA,OAAO3iE,OAAO2gB,OAAO,CACjBmiD,eAAgBA,EAChBC,oBAAqBA,EACrBE,mBAAoBA,GAE5B,ECpBWE,GAAsB,SAAUC,EAAWC,GAClD,OAAO76D,KAAKC,MAAMD,KAAKke,IAAIy7C,GAAqB35D,KAAKmwC,SAAWnwC,KAAK86D,IAAI,EAAGD,GAAYD,GAC5F,ECLWG,GAAsB,SAAUpmE,GACvC,QAAKA,IAGE0kE,GAAmB1kE,IAAUqR,GAAiBrR,IAAU4kE,GAAkB5kE,IAAU8kE,GAAiB9kE,GAChH,ECMWqmE,GAAuB,EAIvBC,GAAqB,WAC5BC,GAAuC,WACvC,SAASA,EAAsBC,EAAqBnmE,GAChD,IAAIqQ,EAAIqF,EAAI2C,EACZ5b,KAAK0pE,oBAAsBA,EAC3B1pE,KAAKyiE,KAAO+G,GACZxpE,KAAK2pE,aAAiG,QAAjF/1D,EAAiB,OAAZrQ,QAAgC,IAAZA,OAAqB,EAASA,EAAQomE,oBAAiC,IAAP/1D,EAAgBA,EAAK01D,GACnItpE,KAAK4pE,aAAiG,QAAjF3wD,EAAiB,OAAZ1V,QAAgC,IAAZA,OAAqB,EAASA,EAAQqmE,oBAAiC,IAAP3wD,EAAgBA,EAAKiwD,GACnIlpE,KAAK6pE,WAA6F,QAA/EjuD,EAAiB,OAAZrY,QAAgC,IAAZA,OAAqB,EAASA,EAAQsmE,kBAA+B,IAAPjuD,EAAgBA,EAAK4sD,GAAqBJ,GACxJ,CA4FA,OA3FAqB,EAAsBtqE,UAAU2qE,YAAc,SAAU5mE,EAAOkmE,EAAUW,GACrE,OAAOX,EAAWW,GAAe/pE,KAAK2pE,aAAazmE,IAAUlD,KAAK6pE,WAAWhB,eAAe3lE,EAChG,EACAumE,EAAsBtqE,UAAU6qE,eAAiB,WAC7C,OAAO,IAAAvwD,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAI+pE,EACJ,OAAO,IAAAhwD,aAAY/Z,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAK0pE,uBAC9B,KAAK,EAED,OADAK,EAAcn2D,EAAGyG,OACV,CAAC,EAAa,GACzB,KAAK,EAGD,OAFUzG,EAAGyG,OACb0vD,EAAcR,GACP,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAcQ,GAEtC,GACJ,GACJ,EACAN,EAAsBtqE,UAAUkoE,MAAQ,SAAUn0D,EAAMlL,GACpD,OAAO,IAAAyR,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAIiqE,EAAkBb,EAAUc,EAAYH,EAAajvE,EAASomC,EAASipC,EAAQC,EACnF,OAAO,IAAArwD,aAAY/Z,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAGD,OAFAgvD,EAAW,EACXc,EAAa,EACN,CAAC,EAAalqE,KAAKgqE,kBAC9B,KAAK,EACDD,EAAcn2D,EAAGyG,OACjBvf,EAAUkN,EAAKlN,QACX,GAAY48D,WAAW58D,KACvBA,EAAQR,QAAQ,KAAwB,KAAA+vE,OAE5CnpC,EAAU,WACN,IAAIttB,EAAI9X,EAAUoqB,EAAQgjB,EAAOohC,EACjC,OAAO,IAAAvwD,aAAY/Z,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EAKD,OAJAnB,EAAGqB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IAClB,GAAYw2D,WAAW58D,KACvBA,EAAQR,QAAQ,IAAkB,YAAc8uE,EAAW,GAAK,SAAWW,GAExE,CAAC,EAAa72D,EAAKlL,IAC9B,KAAK,EAKD,OAJA4L,EAAKqF,EAAGoB,OAAQve,EAAW8X,EAAG9X,SAAUoqB,EAAStS,EAAGsS,OACpDikD,EAAON,WAAWb,mBAAmBiB,GACrC/jD,EAAO2yC,UAAUuQ,SAAWA,EAAW,EACvCljD,EAAO2yC,UAAU0R,gBAAkBL,EAC5B,CAAC,EAAc,CAAEhuE,MAAO,CAAEJ,SAAUA,EAAUoqB,OAAQA,KACjE,KAAK,EAGD,OAFAgjB,EAAQjwB,EAAGoB,OACX+uD,IACKe,EAAOL,YAAY5gC,EAAOkgC,EAAUW,IACzCE,EAAmBE,EAAON,WAAWf,oBAAoB5/B,GACzDohC,EAAUH,EAAOP,aAAa9B,GAAkB5+B,GAASi/B,GAA8BF,GAA0BmB,GACjHc,GAAcI,EACP,CAAC,EAAa,IAAIvwE,SAAQ,SAAUC,GAAW,OAAO8C,WAAW9C,EAASswE,EAAU,MAJ7B,CAAC,EAAa,GAKhF,KAAK,EAED,OADArxD,EAAGoB,OACI,CAAC,EAAc,YAC1B,KAAK,EAMD,MALK6uB,EAAM2vB,YACP3vB,EAAM2vB,UAAY,CAAC,GAEvB3vB,EAAM2vB,UAAUuQ,SAAWA,EAC3BlgC,EAAM2vB,UAAU0R,gBAAkBL,EAC5BhhC,EACV,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,EACAihC,EAASnqE,KACT4T,EAAGwG,MAAQ,EACf,KAAK,EAED,MAAO,CAAC,EAAc8mB,KAC1B,KAAK,EAED,OADAkpC,EAAUx2D,EAAGyG,OACU,kBAAZ+vD,EACA,CAAC,EAAcA,EAAQluE,OAC3B,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EACOutE,CACX,CArG0C,GCU/Be,GAAqB,SAAUrS,GACtC,IAAI4R,EAAcU,GAAqBtS,EAAM4R,aAC7C,OAAO,IAAAn1D,WAAS,IAAAA,UAAS,CAAC,EAAGujD,GAAQ,CAAE4R,YAAaA,EAAa3C,cAAejP,EAAMiP,eAAiB,IAAIqC,GAAsBM,IACrI,EACIU,GAAuB,SAAUV,GAEjC,QADoB,IAAhBA,IAA0BA,EAAcR,IACjB,kBAAhBQ,EAA0B,CACjC,IAAIW,EAAgB3wE,QAAQC,QAAQ+vE,GACpC,OAAO,WAAc,OAAOW,CAAe,CAC/C,CACA,OAAOX,CACX,ECtCO,SAASY,GAAoBxyD,GAChC,GAAoB,kBAATA,EAAmB,CAE1B,IADA,IAAIuJ,EAAMvJ,EAAKvX,OACNF,EAAIghB,EAAM,EAAGhhB,GAAK,EAAGA,IAAK,CAC/B,IAAIsD,EAAOmU,EAAKhL,WAAWzM,GACvBsD,EAAO,KAAQA,GAAQ,KACvB0d,IACK1d,EAAO,MAASA,GAAQ,QAC7B0d,GAAO,EACf,CACA,OAAOA,CACX,CACK,MAA+B,kBAApBvJ,EAAK+mC,WAEV/mC,EAAK+mC,WAEc,kBAAd/mC,EAAKhH,KAEVgH,EAAKhH,UAFX,CAIT,C,2BCdWy5D,GAAmB,SAAUh3D,GACpC,IAAIi3D,EAAYj3D,EAAGi3D,UAAWC,EAAgBl3D,EAAGk3D,cACjD,OAAO,WAAc,OAAO,IAAArxD,gBAAU,OAAQ,OAAQ,GAAQ,WAC1D,IAAIsxD,EAAUC,EACVp3D,EAAIqF,EAAI2C,EAAIutB,EAAI+C,EAAII,EAAIC,EAC5B,OAAO,IAAAxyB,aAAY/Z,MAAM,SAAU4sC,GAkB/B,OAjBAm+B,GAAwF,QAA3En3D,EAAgB,OAAX/I,aAA8B,IAAXA,YAAoB,EAASA,OAAOf,iBAA8B,IAAP8J,OAAgB,EAASA,EAAG7J,WAAa,WAAac,OAAOf,UAAUC,gBAAarM,EACpLstE,EAAW,CAEP,CAAC,aAAcF,GAEf,CAAC,QAAqF,QAA1E7xD,EAAkB,OAAb8xD,QAAkC,IAAbA,OAAsB,EAASA,EAASE,UAAuB,IAAPhyD,OAAgB,EAASA,EAAGtU,OAAS,SAAqF,QAA1EiX,EAAkB,OAAbmvD,QAAkC,IAAbA,OAAsB,EAASA,EAASE,UAAuB,IAAPrvD,OAAgB,EAASA,EAAG9P,SAG5P,CAAC,WAED,CAAC,cAAmJ,QAAnIogC,EAAqF,QAA/E/C,EAAkB,OAAb4hC,QAAkC,IAAbA,OAAsB,EAASA,EAASG,eAA4B,IAAP/hC,OAAgB,EAASA,EAAGxkC,YAAyB,IAAPunC,EAAgBA,EAAK,WAAa,KAA8I,QAAtIK,EAAqF,QAA/ED,EAAkB,OAAby+B,QAAkC,IAAbA,OAAsB,EAASA,EAASG,eAA4B,IAAP5+B,OAAgB,EAASA,EAAGxgC,eAA4B,IAAPygC,EAAgBA,EAAK,aAEzWs+B,GAGAG,EAAS9pE,KAAK,CAAC,OAAS2pE,EAAWC,IAEhC,CAAC,EAAcE,EAC1B,GACJ,GAAI,CACR,E,WC9BIG,GAAe,0CACfC,GAAkB,6CAClBC,GAAmB,uCACnBC,GAAqB,0CACrBC,GAAsB,0CAEtBC,GAAc,IAAIvjC,IAAI,CACtB,aACA,YACA,iBACA,iBACA,aACA,iBACA,iBACA,eACA,eACA,aACA,aACA,YACA,YACA,YACA,aACA,YACA,YACA,YACA,YACA,cAEAwjC,GAAiB,IAAIxjC,IAAI,CAAC,aAAc,mBACxCyjC,GAAkB,IAAIzjC,IAAI,CAAC,kBAC3B0jC,GAAoB,IAAI1jC,IAAI,CAAC,mBAC7B2jC,GAAqB,IAAI3jC,IAAI,CAAC,gBAAiB,kBACxC4jC,GAA4B,SAAUn1D,EAAQnT,GACrD,IAAIuoE,OAAapuE,EACjB,OAAQgZ,GAEJ,IAAK,iBACDo1D,EAAa,CACTrhE,SAAU,gDACVshE,UAAW,OAEf,MACJ,IAAK,iBACDD,EAAa,CACTrhE,SAAU,gDACVshE,UAAW,OAEf,MACJ,IAAK,aACDD,EAAa,CACTrhE,SAAU,4CACVshE,UAAW,OAEf,MACJ,IAAK,iBACDD,EAAa,CACTrhE,SAAU,gDACVshE,UAAW,OAEf,MACJ,IAAK,iBACDD,EAAa,CACTrhE,SAAU,gDACVshE,UAAW,OAEf,MACJ,IAAK,eACDD,EAAa,CACTrhE,SAAU,8CACVshE,UAAW,OAEf,MACJ,IAAK,aACDD,EAAa,CACTrhE,SAAU,+CACVshE,UAAW,UAEf,MACJ,IAAK,eACDD,EAAa,CACTrhE,SAAU,8CACVshE,UAAW,OAEf,MACJ,IAAK,aACDD,EAAa,CACTrhE,SAAU,4CACVshE,UAAW,OAEf,MACJ,IAAK,YACDD,EAAa,CACTrhE,SAAU,2CACVshE,UAAW,OAEf,MACJ,IAAK,YACDD,EAAa,CACTrhE,SAAU,2CACVshE,UAAW,OAEf,MACJ,IAAK,YACDD,EAAa,CACTrhE,SAAU,2CACVshE,UAAW,OAEf,MACJ,IAAK,iBACDD,EAAa,CACTrhE,SAAU,gDACVshE,UAAW,MACXC,cAAe,aAEnB,MACJ,IAAK,iBACDF,EAAa,CACTrhE,SAAU,gDACVshE,UAAW,MACXC,cAAe,aAEnB,MACJ,IAAK,qBACDF,EAAa,CACTrhE,SAAU,oDACVshE,UAAW,aACXC,cAAe,iBAEnB,MACJ,IAAK,iBACDF,EAAa,CACTrhE,SAAU,gDACVshE,UAAW,MACXC,cAAe,aAEnB,MACJ,IAAK,YACDF,EAAa,CACTrhE,SAAU,2CACVshE,UAAW,OAEf,MACJ,IAAK,YACDD,EAAa,CACTrhE,SAAU,2CACVshE,UAAW,OAEf,MACJ,IAAK,YACDD,EAAa,CACTrhE,SAAU,2CACVshE,UAAW,OAEf,MACJ,IAAK,gBACDD,EAAa,CACTrhE,SAAU,+CACVshE,UAAW,cAEf,MACJ,IAAK,YACDD,EAAa,CACTrhE,SAAU,2CACVshE,UAAW,OAEf,MACJ,IAAK,YACDD,EAAa,CACTrhE,SAAU,2CACVshE,UAAW,OAEf,MAEJ,QACQP,GAAYnuD,IAAI3G,KAChBo1D,EAAa,CACTrhE,SAAU0gE,GAAa/nE,QAAQ,WAAYsT,GAC3Cq1D,UAAW,QAGfN,GAAepuD,IAAI3G,KACnBo1D,EAAa,CACTrhE,SAAU2gE,GAAgBhoE,QAAQ,WAAYsT,GAC9Cq1D,UAAW,WAGfL,GAAgBruD,IAAI3G,KACpBo1D,EAAa,CACTrhE,SAAU4gE,GAAiBjoE,QAAQ,WAAYsT,GAC/Cq1D,UAAW,YAGfJ,GAAkBtuD,IAAI3G,KACtBo1D,EAAa,CACTrhE,SAAU6gE,GAAmBloE,QAAQ,WAAYsT,GACjDq1D,UAAW,cAGfH,GAAmBvuD,IAAI3G,KACvBo1D,EAAa,CACTrhE,SAAU8gE,GAAoBnoE,QAAQ,WAAYsT,GAClDq1D,UAAW,oBAIAruE,IAAfouE,IACAA,EAAa,CACTrhE,SAAU0gE,GAAa/nE,QAAQ,WAAYsT,GAC3Cq1D,UAAW,QAI3B,OAAOhyE,QAAQC,QAAQ,EAAS,CAAEiyE,eAAgB,oBAAsBH,GAC5E,ECtNO,SAASI,GAAiBC,GAC7B,IAAIlrC,EAAKrtB,EACLgC,EAAQ,CAAC,EAEb,GADAu2D,EAAcA,EAAY/oE,QAAQ,MAAO,IACrC+oE,EACA,IACI,IAAK,IAAIlzD,GAAK,IAAAknB,UAASgsC,EAAYhhE,MAAM,MAAOyQ,EAAK3C,EAAG/F,QAAS0I,EAAGphB,KAAMohB,EAAK3C,EAAG/F,OAAQ,CACtF,IAAI0xD,EAAOhpD,EAAG1f,MACVitC,GAAK,IAAAz2B,QAAOkyD,EAAKz5D,MAAM,KAAM,GAAIrN,EAAMqrC,EAAG,GAAI+C,EAAK/C,EAAG,GAAIjtC,OAAe,IAAPgwC,EAAgB,KAAOA,EAC7FpuC,EAAMyL,mBAAmBzL,GACrB5B,IACAA,EAAQqN,mBAAmBrN,IAEzB4B,KAAO8X,EAGJjT,MAAM4C,QAAQqQ,EAAM9X,IACzB8X,EAAM9X,GAAKoD,KAAKhF,GAGhB0Z,EAAM9X,GAAO,CAAC8X,EAAM9X,GAAM5B,GAN1B0Z,EAAM9X,GAAO5B,CAQrB,CACJ,CACA,MAAOklC,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQxlB,IAAOA,EAAGphB,OAASoZ,EAAKqF,EAAGooB,SAASztB,EAAGxP,KAAK6U,EACpD,CACA,QAAU,GAAIgoB,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CAEJ,OAAO0S,CACX,CCjCO,IAAIw2D,GAAW,SAAU3wE,GAC5B,IACIma,EADAhC,EAAK,IAAIwoC,IAAI3gD,GAAMgP,EAAWmJ,EAAGnJ,SAAUE,EAAWiJ,EAAGjJ,SAAUD,EAAOkJ,EAAGlJ,KAAML,EAAWuJ,EAAGvJ,SAAUE,EAASqJ,EAAGrJ,OAK3H,OAHIA,IACAqL,EAAQs2D,GAAiB3hE,IAEtB,CACHE,SAAUA,EACVC,KAAMA,EAAOkvC,SAASlvC,QAAQhN,EAC9B2M,SAAUA,EACVxB,KAAM8B,EACNiL,MAAOA,EAEf,ECTWy2D,GAAqB,CAC5BC,WAAY,aACZC,mBAAmB,EACnBx9D,OAAQ,CAAC,EACTy9D,mBAAoBX,GACpBhB,UAAW,mBACX4B,UAAWL,ICGJM,GAAsB,EAAS,EAAS,CAAC,EAAGL,IAAqB,CAAEM,QAAS,UAAWC,cAAetH,GAAYuH,cAAe7G,GAAU8G,kBAAmBnC,GAAqBoC,0BAA2B,SAAU5yD,GAAK,OAAO,WAAc,OAAOpgB,QAAQE,OAAO,IAAIgK,MAAM,yBAA2B,CAAG,EAAG+oE,yBAA0BpC,GAAiB,CACjWC,UAAWwB,GAAmBxB,UAC9BC,cAAe,QACff,YAAaR,GAAsB7yD,OAAQwwD,GAAgB,qBAAsBlH,eAAgB,IAAIgE,GAAoBiJ,OAAQ,GAAAC,OAAQrR,gBAAiBA,GAAiBsR,YAAa,GAAAC,SAAUrR,YAAa,GAAAsR,SChB5MC,GAAyB,SAAUnV,GAC1C,IAAIvkD,EACJ,OAAQ,IAAAgB,WAAS,IAAAA,UAAS,CAAC,EAAGujD,GAAQ,CAAEoV,IAA0B,QAApB35D,EAAKukD,EAAMoV,WAAwB,IAAP35D,GAAgBA,EAAWkI,SAAUq8C,EAAMr8C,SAAW0xD,GAAkBrV,GAAS,WAAc,OAAOsV,GAAsBtV,EAAQ,EAAGuV,mBAAkBvV,EAAMr8C,UAC7O,EACI0xD,GAAoB,SAAUrV,GAC9B,IAAIr8C,EAAWq8C,EAAMr8C,SAAU2wD,EAAYtU,EAAMsU,UACjD,GAAwB,kBAAb3wD,EAAuB,CAC9B,IAAI4uD,EAAgB3wE,QAAQC,QAAQyyE,EAAU3wD,IAC9C,OAAO,WAAc,OAAO4uD,CAAe,CAC/C,CACK,GAAwB,kBAAb5uD,EAAuB,CACnC,IAAI6xD,EAAgB5zE,QAAQC,QAAQ8hB,GACpC,OAAO,WAAc,OAAO6xD,CAAe,CAC/C,CACA,OAAO7xD,CACX,EACI2xD,GAAwB,SAAUtV,GAAS,OAAO,IAAA1+C,gBAAU,OAAQ,OAAQ,GAAQ,WACpF,IAAI7F,EAAI25D,EAAK72D,EAAQk3D,EAAcnjE,EAC/BwO,EACJ,OAAO,IAAAc,aAAY/Z,MAAM,SAAU4b,GAC/B,OAAQA,EAAGxB,OACP,KAAK,EAED,OADAxG,EAAKukD,EAAMoV,IAAKA,OAAa,IAAP35D,GAAuBA,EACtC,CAAC,EAAaukD,EAAMzhD,UAC/B,KAAK,EAGD,GAFAA,EAASkF,EAAGvB,OACZuzD,EAAe,IAAItkE,OAAO,6DACrBskE,EAAalkE,KAAKgN,GACnB,MAAM,IAAIzS,MAAM,mCAEpB,MAAO,CAAC,EAAak0D,EAAMqU,mBAAmB91D,IAClD,KAAK,EAED,GADAjM,GAAmC,QAAtBwO,EAAM2C,EAAGvB,cAA4B,IAAPpB,EAAgBA,EAAK,CAAC,GAAGxO,UAC/DA,EACD,MAAM,IAAIxG,MAAM,8CAEpB,MAAO,CAAC,EAAck0D,EAAMsU,WAAWc,EAAM,SAAW,SAAW,KAAO9iE,IAEtF,GACJ,GAAI,EC3BOojE,GAAsB,SAAU1V,GACvC,IAAKA,EAAMzhD,OACP,MAAM,IAAIzS,MAAM,qBAEpB,OAAO,IAAA2Q,WAAS,IAAAA,UAAS,CAAC,EAAGujD,GAAQ,CAAEzhD,OAAQo3D,GAAgB3V,EAAMzhD,SACzE,EACIo3D,GAAkB,SAAUp3D,GAC5B,GAAsB,kBAAXA,EAAqB,CAC5B,IAAIg0D,EAAgB3wE,QAAQC,QAAQ0c,GACpC,OAAO,WAAc,OAAOg0D,CAAe,CAC/C,CACA,OAAOh0D,CACX,ECvBIq3D,GAAwB,iBACrB,SAASC,GAAwBlB,GACpC,IAAIx8D,EAAQtQ,KACZ,OAAO,SAAUkT,GAAQ,OAAO,SAAUlL,GAAQ,OAAO,IAAAyR,WAAUnJ,OAAO,OAAQ,GAAQ,WACtF,IAAIxV,EAASqd,EAAM7d,EAASsG,EACxBgT,EACJ,OAAO,IAAAmG,aAAY/Z,MAAM,SAAUiZ,GAc/B,OAbAne,EAAUkN,EAAKlN,QACX,GAAY48D,WAAW58D,KACvBqd,EAAOrd,EAAQqd,KAAM7d,EAAUQ,EAAQR,QACnC6d,IAGyC,IAFzCpS,OAAOC,KAAK1L,GACPub,KAAI,SAAUnJ,GAAO,OAAOA,EAAI3O,aAAe,IAC/ClB,QAAQkxE,MACbntE,EAASksE,EAAkB30D,QACZza,IAAXkD,IACA9F,EAAQR,SAAU,IAAAsa,WAAS,IAAAA,UAAS,CAAC,EAAG9Z,EAAQR,UAAWsZ,EAAK,CAAC,EAAGA,EAAGm6D,IAAyB/hD,OAAOprB,GAASgT,OAIrH,CAAC,EAAcV,GAAK,IAAA0B,WAAS,IAAAA,UAAS,CAAC,EAAG5M,GAAO,CAAElN,QAASA,KACvE,GACJ,GAAI,CAAG,CACX,CACO,IAAImzE,GAAiC,CACxCn0D,KAAM,QACN4iD,KAAM,CAAC,qBAAsB,kBAC7B/3D,KAAM,0BACNg4D,UAAU,GAEHuR,GAAyB,SAAU3qE,GAAW,MAAO,CAC5Du5D,aAAc,SAAUyD,GACpBA,EAAYr4B,IAAI8lC,GAAwBzqE,EAAQupE,mBAAoBmB,GACxE,EACA,EClCG,SAASE,GAAwBhW,GACpC,OAAOA,CACX,CACO,IAAIiW,GAAuB,SAAU7qE,GAAW,OAAO,SAAU2P,GAAQ,OAAO,SAAUlL,GAAQ,OAAO,IAAAyR,gBAAU,OAAQ,OAAQ,GAAQ,WAC9I,IAAI3e,EAAS8Y,EAAIy6D,EACjB,OAAO,IAAAt0D,aAAY/Z,MAAM,SAAUiZ,GAC/B,OAAK,GAAYy+C,WAAW1vD,EAAKlN,UAEjCA,EAAUkN,EAAKlN,QACf8Y,GAAMrQ,EAAQy8D,eAAesO,UAAY,CAAC,GAAGD,gBAAiBA,OAAyB,IAAPz6D,EAAgB,GAAKA,EAGjGy6D,EAAgBxxE,QAAQ,OAAS,IAAM/B,EAAQR,QAAQ,sBAChDQ,EAAQR,QAAQ,QACvBQ,EAAQR,QAAQ,cAAgB,IAG1BQ,EAAQR,QAAQ,UACtBQ,EAAQR,QAAQ,QAAUQ,EAAQ2P,UAE/B,CAAC,EAAcyI,EAAKlL,KAbhB,CAAC,EAAckL,EAAKlL,GAcnC,GACJ,GAAI,CAAG,CAAG,EACCumE,GAA8B,CACrC5pE,KAAM,uBACNmV,KAAM,QACNrK,SAAU,MACVitD,KAAM,CAAC,QACPC,UAAU,GAEH6R,GAAsB,SAAUjrE,GAAW,MAAO,CACzDu5D,aAAc,SAAUyD,GACpBA,EAAYr4B,IAAIkmC,GAAqB7qE,GAAUgrE,GACnD,EACA,ECnCOE,GAAmB,WAAc,OAAO,SAAUv7D,EAAMjU,GAAW,OAAO,SAAU+I,GAAQ,OAAO,IAAAyR,gBAAU,OAAQ,OAAQ,GAAQ,WAC5I,IAAIgnD,EAAYC,EAAaE,EAAyB7xD,EAAQ8xD,EAA0B/kE,EAAU8X,EAAIilD,EAAW6V,EACjH,OAAO,IAAA30D,aAAY/Z,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EAED,OADAqmD,EAAaxhE,EAAQwhE,WAAYC,EAAczhE,EAAQyhE,YAAaE,EAA0B3hE,EAAQ2hE,wBAAyB7xD,EAAS9P,EAAQ8P,OAAQ8xD,EAA2B5hE,EAAQ4hE,yBACpL,CAAC,EAAa3tD,EAAKlL,IAC9B,KAAK,EAED,OADAlM,EAAWmd,EAAGoB,OACTtL,GAGsB,oBAAhBA,EAAO8/C,OACdj7C,EAAK9X,EAASoqB,OAAQ2yC,EAAYjlD,EAAGilD,UAAW6V,GAAwB,IAAA35D,QAAOnB,EAAI,CAAC,cACpF7E,EAAO8/C,KAAK,CACR4R,WAAYA,EACZC,YAAaA,EACbvI,MAAOyI,EAAwB54D,EAAKmwD,OACpCjyC,OAAQ26C,EAAyB6N,GACjCJ,SAAUzV,KAGX,CAAC,EAAc/8D,IAZX,CAAC,EAAcA,GActC,GACJ,GAAI,CAAG,CAAG,EACC6yE,GAA0B,CACjChqE,KAAM,mBACN+3D,KAAM,CAAC,UACP5iD,KAAM,aACN6iD,UAAU,GAGHiS,GAAkB,SAAUrrE,GAAW,MAAO,CACrDu5D,aAAc,SAAUyD,GACpBA,EAAYr4B,IAAIumC,KAAoBE,GACxC,EACA,E,YCtCOE,GAAwB,kBACxBC,GAAyB,mBACzBC,GAAuB,aACvBC,GAA6B,sBAC7BC,GAAsB,gBACtBC,GAAwB,kBACxBC,GAAoB,uBACpBC,GAAc,gBACdC,GAAkBN,GAAqBhxE,cACvCuxE,GAAc,OACdC,GAAoB,CAACH,GAAaC,GAAiBC,IACnDE,GAAmBN,GAAsBnxE,cACzC0xE,GAAgB,uBAChBC,GAAeP,GAAkBpxE,cAEjC4xE,GAA4B,CACnCtiC,eAAe,EACf,iBAAiB,EACjBuiC,YAAY,EACZC,QAAQ,EACRtvC,MAAM,EACN,cAAc,EACd,gBAAgB,EAChBuvC,QAAQ,EACRC,SAAS,EACTC,IAAI,EACJC,SAAS,EACT,qBAAqB,EACrBC,SAAS,EACT,cAAc,EACd,mBAAmB,GAEZC,GAAuB,UACvBC,GAAqB,QAErBC,GAAuB,mBACvBC,GAA6B,2BAC7BC,GAAmB,mBACnBC,GAAiB,GACjBC,GAAsB,eACtBC,GAAoB,OCrC3BC,GAAkB,CAAC,EACnBC,GAAa,GAQV,SAASC,GAAYC,EAAWp6D,EAAQD,GAC3C,OAAOq6D,EAAY,IAAMp6D,EAAS,IAAMD,EAAU,IAAMg6D,EAC5D,CAaO,IAAIM,GAAgB,SAAUC,EAAmBv0D,EAAaq0D,EAAWp6D,EAAQD,GAAW,OAAO,IAAAgD,gBAAU,OAAQ,OAAQ,GAAQ,WACxI,IAAIw3D,EAAW5N,EAAUvlE,EAAK8V,EAAIqF,EAAIi4D,EAAU9vC,EAC5CH,EAAKrlB,EACT,OAAO,IAAA7B,aAAY/Z,MAAM,SAAUmpC,GAC/B,OAAQA,EAAG/uB,OACP,KAAK,EAAG,MAAO,CAAC,EAAa+2D,GAAKH,EAAmBv0D,EAAYyB,gBAAiBzB,EAAY0B,cAC9F,KAAK,EAGD,GAFA8yD,EAAY9nC,EAAG9uB,OACfgpD,EAAWyN,EAAY,IAAMp6D,EAAS,IAAMD,EAAU,KAAM,QAAMw6D,GAAa,IAAMx0D,EAAY2B,aAC7FilD,KAAYsN,GACZ,MAAO,CAAC,EAAcA,GAAgBtN,IAE1CuN,GAAW1vE,KAAKmiE,GAChB,MAAOuN,GAAWhwE,OAAS4vE,UAChBG,GAAgBC,GAAW9tE,SAEtChF,EAAM,OAAS2e,EAAYyB,gBAC3BirB,EAAG/uB,MAAQ,EACf,KAAK,EACD+uB,EAAG7uB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,EAAG,IACvB0S,GAAK,IAAAusB,UAAS,CAAC2wC,EAAWp6D,EAAQD,EAASg6D,KAAuBx3D,EAAKrF,EAAGV,OAC1Ei2B,EAAG/uB,MAAQ,EACf,KAAK,EACD,OAAMnB,EAAGze,KAAa,CAAC,EAAa,IACpC02E,EAAWj4D,EAAG/c,MACP,CAAC,EAAai1E,GAAKH,EAAmBlzE,EAAKozE,KACtD,KAAK,EACDpzE,EAAMqrC,EAAG9uB,OACT8uB,EAAG/uB,MAAQ,EACf,KAAK,EAED,OADAnB,EAAKrF,EAAGV,OACD,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAa,GAC7B,KAAK,EAGD,OAFAkuB,EAAQ+H,EAAG9uB,OACX4mB,EAAM,CAAE/9B,MAAOk+B,GACR,CAAC,EAAa,GACzB,KAAK,EACD,IACQnoB,IAAOA,EAAGze,OAASohB,EAAKhI,EAAGytB,SAASzlB,EAAGxX,KAAKwP,EACpD,CACA,QAAU,GAAIqtB,EAAK,MAAMA,EAAI/9B,KAAO,CACpC,MAAO,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,EAAeytE,GAAgBtN,GAAYvlE,GAEnE,GACJ,GAAI,EAUJ,SAASqzE,GAAKC,EAAMC,EAAQj3E,GACxB,IAAIoQ,EAAO,IAAI4mE,EAAKC,GAEpB,OADA7mE,EAAK8K,OAAOlb,GACLoQ,EAAK8mE,QAChB,CClFO,SAASC,GAAoB39D,EAAI49D,EAAmBC,GACvD,IAAIxwC,EAAKhoB,EACL3e,EAAUsZ,EAAGtZ,QACbo3E,EAAY,CAAC,EACjB,IACI,IAAK,IAAI91D,GAAK,IAAAukB,UAASp6B,OAAOC,KAAK1L,GAAS2X,QAASk3B,EAAKvtB,EAAG1I,QAASi2B,EAAG3uC,KAAM2uC,EAAKvtB,EAAG1I,OAAQ,CAC3F,IAAIy+D,EAAaxoC,EAAGjtC,MAChB01E,EAAsBD,EAAW5zE,eACjC6zE,KAAuBjC,KAAoD,OAAtB6B,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBn0D,IAAIu0D,KACjJzB,GAAqBzmE,KAAKkoE,IAC1BxB,GAAmB1mE,KAAKkoE,OACnBH,GAAoBA,IAAoBA,EAAgBp0D,IAAIu0D,MAIrEF,EAAUE,GAAuBt3E,EAAQq3E,GAAY3qE,OAAO5D,QAAQ,OAAQ,KAChF,CACJ,CACA,MAAOg+B,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQ+H,IAAOA,EAAG3uC,OAASye,EAAK2C,EAAGylB,SAASpoB,EAAG7U,KAAKwX,EACpD,CACA,QAAU,GAAIqlB,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CACA,OAAOwuE,CACX,CCzBO,SAASG,GAAkBj+D,GAC9B,IAAIqtB,EAAKhoB,EACL2C,EAAKhI,EAAGgC,MAAOA,OAAe,IAAPgG,EAAgB,CAAC,EAAIA,EAC5C5V,EAAO,GACP8rE,EAAa,CAAC,EACd5wC,EAAU,SAAUpjC,GACpB,GAAIA,EAAIC,gBAAkByxE,GACtB,MAAO,WAEXxpE,EAAK9E,KAAKpD,GACV,IAAI5B,EAAQ0Z,EAAM9X,GACG,kBAAV5B,EACP41E,EAAWh0E,GAAOylE,GAAUzlE,GAAO,IAAMylE,GAAUrnE,GAE9CyG,MAAM4C,QAAQrJ,KACnB41E,EAAWh0E,GAAO5B,EACbsJ,MAAM,GACNyM,OACAoK,QAAO,SAAU4/C,EAAS//D,GAAS,OAAO+/D,EAAQp5D,OAAO,CAAC0gE,GAAUzlE,GAAO,IAAMylE,GAAUrnE,IAAU,GAAG,IACxGsM,KAAK,KAElB,EACA,IACI,IAAK,IAAI2gC,GAAK,IAAAhJ,UAASp6B,OAAOC,KAAK4P,GAAO3D,QAASi6B,EAAK/C,EAAGj2B,QAASg5B,EAAG1xC,KAAM0xC,EAAK/C,EAAGj2B,OAAQ,CACzF,IAAIpV,EAAMouC,EAAGhwC,MACbglC,EAAQpjC,EACZ,CACJ,CACA,MAAOsjC,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQ8K,IAAOA,EAAG1xC,OAASye,EAAKkwB,EAAG9H,SAASpoB,EAAG7U,KAAK+kC,EACpD,CACA,QAAU,GAAIlI,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CACA,OAAO8C,EACF6P,KAAI,SAAU/X,GAAO,OAAOg0E,EAAWh0E,EAAM,IAC7CojB,QAAO,SAAU4wD,GAAc,OAAOA,CAAY,IAClDtpE,KAAK,IACd,CC7CO,IAAIrB,GAAgB,SAAUqO,GACjC,MAA+B,oBAAhBnJ,aAA8BmJ,aAAenJ,aAChB,yBAAxCtG,OAAO5G,UAAUc,SAASmE,KAAKoR,EACvC,ECIO,SAASu8D,GAAen+D,EAAIo+D,GAC/B,IAAI13E,EAAUsZ,EAAGtZ,QAAS6d,EAAOvE,EAAGuE,KACpC,OAAO,IAAAsB,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAIiZ,EAAI2C,EAAI+1D,EAAYM,EAAU9oC,EAC9BlI,EAAKiL,EACT,OAAO,IAAAnyB,aAAY/Z,MAAM,SAAUssC,GAC/B,OAAQA,EAAGlyB,OACP,KAAK,EACD,IACI,IAAKnB,GAAK,IAAAknB,UAASp6B,OAAOC,KAAK1L,IAAWshB,EAAK3C,EAAG/F,QAAS0I,EAAGphB,KAAMohB,EAAK3C,EAAG/F,OAExE,GADAy+D,EAAa/1D,EAAG1f,MACZy1E,EAAW5zE,gBAAkB0xE,GAC7B,MAAO,CAAC,EAAcn1E,EAAQq3E,GAG1C,CACA,MAAOvwC,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQxlB,IAAOA,EAAGphB,OAAS0xC,EAAKjzB,EAAGooB,SAAS6K,EAAG9nC,KAAK6U,EACpD,CACA,QAAU,GAAIgoB,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CACA,YAAcxF,GAARya,EAA2B,CAAC,EAAa,GACxC,CAAC,EAAc,oEAC1B,KAAK,EACD,MAAsB,kBAATA,GAAqB9L,YAAYC,OAAO6L,IAAShR,GAAcgR,IAC5E85D,EAAW,IAAID,EACfC,EAAS38D,OAAO6C,GAChBgxB,EAAK,KACE,CAAC,EAAa8oC,EAASX,WAJ6D,CAAC,EAAa,GAK7G,KAAK,EAAG,MAAO,CAAC,EAAcnoC,EAAGvmC,WAAM,EAAQ,CAAC0pC,EAAGjyB,UACnD,KAAK,EAIL,MAAO,CAAC,EAAck2D,IAE9B,GACJ,GACJ,CC9CO,SAAS2B,GAAUC,EAAc73E,GACpC,IAAI2mC,EAAKrtB,EACTu+D,EAAeA,EAAap0E,cAC5B,IACI,IAAK,IAAIkb,GAAK,IAAAknB,UAASp6B,OAAOC,KAAK1L,IAAWshB,EAAK3C,EAAG/F,QAAS0I,EAAGphB,KAAMohB,EAAK3C,EAAG/F,OAAQ,CACpF,IAAIy+D,EAAa/1D,EAAG1f,MACpB,GAAIi2E,IAAiBR,EAAW5zE,cAC5B,OAAO,CAEf,CACJ,CACA,MAAOqjC,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQxlB,IAAOA,EAAGphB,OAASoZ,EAAKqF,EAAGooB,SAASztB,EAAGxP,KAAK6U,EACpD,CACA,QAAU,GAAIgoB,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CACA,OAAO,CACX,CChBO,SAASkvE,GAAax+D,GACzB,IAAItZ,EAAUsZ,EAAGtZ,QAASsb,EAAQhC,EAAGgC,MAAOy8D,GAAO,IAAAt9D,QAAOnB,EAAI,CAAC,UAAW,UAC1E,OAAO,IAAAgB,WAAS,IAAAA,UAAS,CAAC,EAAGy9D,GAAO,CAAE/3E,SAAS,IAAAsa,UAAS,CAAC,EAAGta,GAAUsb,MAAOA,EAAQ,GAAWA,QAASlY,GAC7G,CACA,SAAS,GAAWkY,GAChB,OAAO7P,OAAOC,KAAK4P,GAAOyG,QAAO,SAAU07C,EAAOC,GAC9C,IAAIpkD,EACAqkD,EAAQriD,EAAMoiD,GAClB,OAAO,IAAApjD,WAAS,IAAAA,UAAS,CAAC,EAAGmjD,IAASnkD,EAAK,CAAC,EAAGA,EAAGokD,GAAar1D,MAAM4C,QAAQ0yD,IAAS,IAAA7vB,UAAS6vB,GAASA,EAAOrkD,GACnH,GAAG,CAAC,EACR,CCTO,SAAS0+D,GAAmBx3E,EAASyI,GACxC,IAAI09B,EAAKrtB,EACLqF,OACY,IAAZ1V,IAAsBA,EAAU,CAAC,GACrC,IAAIqY,EAA8B,oBAAlB9gB,EAAQogC,MAAuBpgC,EAAQogC,QAAUk3C,GAAat3E,GAAUR,EAAUshB,EAAGthB,QAAS6uC,EAAKvtB,EAAGhG,MAAOA,OAAe,IAAPuzB,EAAgB,CAAC,EAAIA,EAC1J,IACI,IAAK,IAAI+C,GAAK,IAAA/L,UAASp6B,OAAOC,KAAK1L,IAAWgyC,EAAKJ,EAAGh5B,QAASo5B,EAAG9xC,KAAM8xC,EAAKJ,EAAGh5B,OAAQ,CACpF,IAAIvO,EAAO2nC,EAAGpwC,MACVq2E,EAAQ5tE,EAAK5G,cACU,WAAvBw0E,EAAMlnE,OAAO,EAAG,KAA2D,QAArC4N,EAAK1V,EAAQivE,0BAAuC,IAAPv5D,OAAgB,EAASA,EAAGoE,IAAIk1D,MACnH38D,EAAMjR,GAAQrK,EAAQqK,UACfrK,EAAQqK,GAEvB,CACJ,CACA,MAAOy8B,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQkL,IAAOA,EAAG9xC,OAASoZ,EAAKs4B,EAAG7K,SAASztB,EAAGxP,KAAK8nC,EACpD,CACA,QAAU,GAAIjL,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CACA,OAAO,IAAA0R,WAAS,IAAAA,UAAS,CAAC,EAAG9Z,GAAU,CAAER,QAASA,EAC9Csb,MAAOA,GACf,CCvBO,SAAS68D,GAAe33E,GAC3B,IAAImmC,EAAKrtB,EAET9Y,EAAmC,oBAAlBA,EAAQogC,MAAuBpgC,EAAQogC,QAAUk3C,GAAat3E,GAC/E,IACI,IAAK,IAAIme,GAAK,IAAAknB,UAASp6B,OAAOC,KAAKlL,EAAQR,UAAWshB,EAAK3C,EAAG/F,QAAS0I,EAAGphB,KAAMohB,EAAK3C,EAAG/F,OAAQ,CAC5F,IAAIy+D,EAAa/1D,EAAG1f,MAChBqzE,GAAkB1yE,QAAQ80E,EAAW5zE,gBAAkB,UAChDjD,EAAQR,QAAQq3E,EAE/B,CACJ,CACA,MAAOvwC,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQxlB,IAAOA,EAAGphB,OAASoZ,EAAKqF,EAAGooB,SAASztB,EAAGxP,KAAK6U,EACpD,CACA,QAAU,GAAIgoB,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CACA,OAAOpI,CACX,CC1BO,SAAS43E,GAAQC,GACpB,OAAOC,GAAOD,GACTpqE,cACAnF,QAAQ,YAAa,IAC9B,CACO,SAASwvE,GAAOD,GACnB,MAAoB,kBAATA,EACA,IAAIzpE,KAAY,IAAPypE,GAEA,kBAATA,EACHvkE,OAAOukE,GACA,IAAIzpE,KAAoB,IAAfkF,OAAOukE,IAEpB,IAAIzpE,KAAKypE,GAEbA,CACX,CCLA,IAAIE,GAA6B,WAC7B,SAASA,EAAYj/D,GACjB,IAAIk/D,EAAgBl/D,EAAGk/D,cAAer2D,EAAc7I,EAAG6I,YAAa/F,EAAS9C,EAAG8C,OAAQD,EAAU7C,EAAG6C,QAASw2D,EAASr5D,EAAGq5D,OAAQh0D,EAAKrF,EAAGm/D,cAAeA,OAAuB,IAAP95D,GAAuBA,EAChMjZ,KAAKyW,QAAUA,EACfzW,KAAKitE,OAASA,EACdjtE,KAAK+yE,cAAgBA,EAErB/yE,KAAK8yE,cAAyC,mBAAlBA,GAA8BA,EAC1D9yE,KAAKgzE,eAAiBC,GAAwBv8D,GAC9C1W,KAAKkzE,mBAAqBC,GAA6B12D,EAC3D,CA6OA,OA5OAo2D,EAAY1zE,UAAUi0E,QAAU,SAAUC,EAAiB9vE,GAEvD,YADgB,IAAZA,IAAsBA,EAAU,CAAC,IAC9B,IAAAkW,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAI4T,EAAI0/D,EAAar6D,EAAI46C,EAAW2d,EAAmBgB,EAAoBf,EAAiBzF,EAAeC,EAAgBxvD,EAAa/F,EAAQkF,EAAIutB,EAAIoqC,EAAUzC,EAAW95D,EAAOlc,EAAS04E,EAAkBtnC,EAAII,EAAIC,EAAIK,EAAIG,EAAIC,EACnO,OAAO,IAAAjzB,aAAY/Z,MAAM,SAAU60C,GAC/B,OAAQA,EAAGz6B,OACP,KAAK,EAED,OADAxG,EAAKrQ,EAAQ+vE,YAAaA,OAAqB,IAAP1/D,EAAgB,IAAI1K,KAAS0K,EAAIqF,EAAK1V,EAAQswD,UAAWA,OAAmB,IAAP56C,EAAgB,KAAOA,EAAIu4D,EAAoBjuE,EAAQiuE,kBAAmBgB,EAAqBjvE,EAAQivE,mBAAoBf,EAAkBluE,EAAQkuE,gBAAiBzF,EAAgBzoE,EAAQyoE,cAAeC,EAAiB1oE,EAAQ0oE,eAC5U,CAAC,EAAajsE,KAAKkzE,sBAC9B,KAAK,EAED,OADAz2D,EAAco4B,EAAGx6B,OACO,OAAlB2xD,QAA4C,IAAlBA,EAAkC,CAAC,EAAa,IAChFpwD,EAAKowD,EACE,CAAC,EAAa,IACzB,KAAK,EAAG,MAAO,CAAC,EAAahsE,KAAKgzE,kBAClC,KAAK,EACDp3D,EAAMi5B,EAAGx6B,OACTw6B,EAAGz6B,MAAQ,EACf,KAAK,EAGD,OAFA1D,EAASkF,EACTutB,EAAKsqC,GAAWH,GAAcC,EAAWpqC,EAAGoqC,SAAUzC,EAAY3nC,EAAG2nC,UACjEjd,EAAY6c,GACL,CAAC,EAAc32E,QAAQE,OAAO,sGAEzC+c,EAAQ65D,GAAYC,EAAWp6D,EAA2B,OAAnBu1D,QAA8C,IAAnBA,EAA4BA,EAAiBjsE,KAAKyW,SACpH3b,EAAUw3E,GAAmBG,GAAeY,GAAkB,CAAEb,mBAAoBA,IAChF/1D,EAAY2B,eACZtjB,EAAQ8a,MAAMu5D,IAAqB1yD,EAAY2B,cAEnDtjB,EAAQ8a,MAAMi5D,IAAyBwB,GACvCv1E,EAAQ8a,MAAMk5D,IAA0BryD,EAAY0B,YAAc,IAAMnH,EACxElc,EAAQ8a,MAAMm5D,IAAwBwE,EACtCz4E,EAAQ8a,MAAMq5D,IAAuBpb,EAAU5zD,SAAS,IACxDuzE,EAAmBjC,GAAoBz2E,EAAS02E,EAAmBC,GACnE32E,EAAQ8a,MAAMo5D,IAA8B0E,GAAuBF,GACnEtnC,EAAKpxC,EAAQ8a,MACb02B,EAAK4iC,GACL3iC,EAAKvsC,KAAK2zE,aACV/mC,EAAK,CAAC2mC,EACFv8D,EACAhX,KAAK+wE,cAAct0D,EAAa/F,EAAQo6D,EAAW7E,IACvDl/B,EAAK/sC,KAAK4zE,uBACV5mC,EAAK,CAAClyC,EAAS04E,GACR,CAAC,EAAazB,GAAesB,EAAiBrzE,KAAKitE,UAC9D,KAAK,EAAG,MAAO,CAAC,EAAa1gC,EAAG3pC,MAAM5C,KAAM4sC,EAAG/pC,OAAO,CAACkqC,EAAGnqC,MAAM5C,KAAMgtC,EAAGnqC,OAAO,CAACgyC,EAAGx6B,cACpF,KAAK,EAED,OADA6xB,EAAGI,GAAMuI,EAAGx6B,OACL,CAAC,EAAcvf,GAElC,GACJ,GACJ,EACA+3E,EAAY1zE,UAAU8Y,KAAO,SAAU47D,EAAQtwE,GAC3C,OAAO,IAAAkW,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,OAAO,IAAA+Z,aAAY/Z,MAAM,SAAU4T,GAC/B,MAAsB,kBAAXigE,EACA,CAAC,EAAc7zE,KAAK8zE,WAAWD,EAAQtwE,IAEzCswE,EAAOv5E,SAAWu5E,EAAOlqE,QACvB,CAAC,EAAc3J,KAAK+zE,UAAUF,EAAQtwE,IAGtC,CAAC,EAAcvD,KAAKg0E,YAAYH,EAAQtwE,GAGvD,GACJ,GACJ,EACAsvE,EAAY1zE,UAAU40E,UAAY,SAAUngE,EAAIqF,GAC5C,IAAI3e,EAAUsZ,EAAGtZ,QAASqP,EAAUiK,EAAGjK,QACnCiS,EAAK3C,EAAGq6D,YAAaA,OAAqB,IAAP13D,EAAgB,IAAI1S,KAAS0S,EAAIq4D,EAAiBh7D,EAAGg7D,eAAgBjI,EAAgB/yD,EAAG+yD,cAAeC,EAAiBhzD,EAAGgzD,eAClK,OAAO,IAAAxyD,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAI0W,EAAQyyB,EAAI+C,EAAI4kC,EAAWyC,EAAUv8D,EAAOk9D,EAAe1pE,EAAM2pE,EAAe7nC,EAAIhzB,EACxF,OAAO,IAAAS,aAAY/Z,MAAM,SAAUusC,GAC/B,OAAQA,EAAGnyB,OACP,KAAK,EACD,OAAwB,OAAlB4xD,QAA4C,IAAlBA,EAAkC,CAAC,EAAa,IAChF7iC,EAAK6iC,EACE,CAAC,EAAa,IACzB,KAAK,EAAG,MAAO,CAAC,EAAahsE,KAAKgzE,kBAClC,KAAK,EACD7pC,EAAMoD,EAAGlyB,OACTkyB,EAAGnyB,MAAQ,EACf,KAAK,EAID,OAHA1D,EAASyyB,EACT+C,EAAKunC,GAAWH,GAAcxC,EAAY5kC,EAAG4kC,UAAWyC,EAAWrnC,EAAGqnC,SACtEv8D,EAAQ65D,GAAYC,EAAWp6D,EAA2B,OAAnBu1D,QAA8C,IAAnBA,EAA4BA,EAAiBjsE,KAAKyW,SAC7G,CAAC,EAAas7D,GAAe,CAAEz3E,QAAS,CAAC,EAAG6d,KAAMxO,GAAW3J,KAAKitE,SAC7E,KAAK,EAKD,OAJAiH,EAAgB3nC,EAAGlyB,OACnB7P,EAAO,IAAIxK,KAAKitE,OAChBziE,EAAK8K,OAAOhb,GACZgyC,EAAK,KACE,CAAC,EAAa9hC,EAAK8mE,UAC9B,KAAK,EAUD,OATA6C,EAAgB7nC,EAAG1pC,WAAM,EAAQ,CAAC2pC,EAAGlyB,SACrCf,EAAe,CACXg3D,GACAiD,EACAv8D,EACAi9D,EACAE,EACAD,GACF1rE,KAAK,MACA,CAAC,EAAcxI,KAAK8zE,WAAWx6D,EAAc,CAAEg6D,YAAaA,EAAatH,cAAet1D,EAAQu1D,eAAgBA,KAEnI,GACJ,GACJ,EACA4G,EAAY1zE,UAAU20E,WAAa,SAAUx6D,EAAc1F,GACvD,IAAIqF,OAAY,IAAPrF,EAAgB,CAAC,EAAIA,EAAIgI,EAAK3C,EAAGq6D,YAAaA,OAAqB,IAAP13D,EAAgB,IAAI1S,KAAS0S,EAAIowD,EAAgB/yD,EAAG+yD,cAAeC,EAAiBhzD,EAAGgzD,eAC5J,OAAO,IAAAxyD,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAIyc,EAAa/F,EAAQyyB,EAAI2nC,EAAWtmE,EAAM0hC,EAAII,EAAIC,EACtD,OAAO,IAAAxyB,aAAY/Z,MAAM,SAAU4sC,GAC/B,OAAQA,EAAGxyB,OACP,KAAK,EAAG,MAAO,CAAC,EAAapa,KAAKkzE,sBAClC,KAAK,EAED,OADAz2D,EAAcmwB,EAAGvyB,OACO,OAAlB2xD,QAA4C,IAAlBA,EAAkC,CAAC,EAAa,IAChF7iC,EAAK6iC,EACE,CAAC,EAAa,IACzB,KAAK,EAAG,MAAO,CAAC,EAAahsE,KAAKgzE,kBAClC,KAAK,EACD7pC,EAAMyD,EAAGvyB,OACTuyB,EAAGxyB,MAAQ,EACf,KAAK,EAID,OAHA1D,EAASyyB,EACT2nC,EAAY2C,GAAWH,GAAaxC,UACpCxkC,GAAMJ,EAAKlsC,KAAKitE,QAAQruE,KACjB,CAAC,EAAaoB,KAAK+wE,cAAct0D,EAAa/F,EAAQo6D,EAAW7E,IAC5E,KAAK,EAID,OAHAzhE,EAAO,IAAK8hC,EAAG1pC,MAAMspC,EAAI,MAAC,EAAQU,EAAGvyB,UACrC7P,EAAK8K,OAAOgE,GACZizB,EAAK,KACE,CAAC,EAAa/hC,EAAK8mE,UAC9B,KAAK,EAAG,MAAO,CAAC,EAAc/kC,EAAG3pC,WAAM,EAAQ,CAACgqC,EAAGvyB,UAE3D,GACJ,GACJ,EACAw4D,EAAY1zE,UAAU60E,YAAc,SAAUI,EAAexgE,GACzD,IAAIqF,OAAY,IAAPrF,EAAgB,CAAC,EAAIA,EAAIgI,EAAK3C,EAAGq6D,YAAaA,OAAqB,IAAP13D,EAAgB,IAAI1S,KAAS0S,EAAI61D,EAAkBx4D,EAAGw4D,gBAAiBD,EAAoBv4D,EAAGu4D,kBAAmBxF,EAAgB/yD,EAAG+yD,cAAeC,EAAiBhzD,EAAGgzD,eAC5O,OAAO,IAAAxyD,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAIyc,EAAa/F,EAAQyyB,EAAIruC,EAASoxC,EAAIqnC,EAAUzC,EAAW95D,EAAOq9D,EAAab,EAAkBz7D,EACrG,OAAO,IAAAgC,aAAY/Z,MAAM,SAAUssC,GAC/B,OAAQA,EAAGlyB,OACP,KAAK,EAAG,MAAO,CAAC,EAAapa,KAAKkzE,sBAClC,KAAK,EAED,OADAz2D,EAAc6vB,EAAGjyB,OACO,OAAlB2xD,QAA4C,IAAlBA,EAAkC,CAAC,EAAa,IAChF7iC,EAAK6iC,EACE,CAAC,EAAa,IACzB,KAAK,EAAG,MAAO,CAAC,EAAahsE,KAAKgzE,kBAClC,KAAK,EACD7pC,EAAMmD,EAAGjyB,OACTiyB,EAAGlyB,MAAQ,EACf,KAAK,EASD,OARA1D,EAASyyB,EACTruC,EAAU23E,GAAe2B,GACzBloC,EAAKunC,GAAWH,GAAcC,EAAWrnC,EAAGqnC,SAAUzC,EAAY5kC,EAAG4kC,UACrE95D,EAAQ65D,GAAYC,EAAWp6D,EAA2B,OAAnBu1D,QAA8C,IAAnBA,EAA4BA,EAAiBjsE,KAAKyW,SACpH3b,EAAQR,QAAQ+0E,IAAmBkE,EAC/B92D,EAAY2B,eACZtjB,EAAQR,QAAQo1E,IAAgBjzD,EAAY2B,cAEzC,CAAC,EAAa2zD,GAAej3E,EAASkF,KAAKitE,SACtD,KAAK,EAMD,OALAoH,EAAc/nC,EAAGjyB,QACZ63D,GAAUzC,GAAe30E,EAAQR,UAAY0F,KAAK8yE,gBACnDh4E,EAAQR,QAAQm1E,IAAiB4E,GAErCb,EAAmBjC,GAAoBz2E,EAAS02E,EAAmBC,GAC5D,CAAC,EAAazxE,KAAK2zE,aAAaJ,EAAUv8D,EAAOhX,KAAK+wE,cAAct0D,EAAa/F,EAAQo6D,EAAW7E,GAAiBjsE,KAAK4zE,uBAAuB94E,EAAS04E,EAAkBa,KACvL,KAAK,EAOD,OANAt8D,EAAYu0B,EAAGjyB,OACfvf,EAAQR,QAAQ80E,IACZiB,kBACqB5zD,EAAY0B,YAAc,IAAMnH,EADrDq5D,mBAEwBqD,GAAuBF,GAF/CnD,eAGoBt4D,EACjB,CAAC,EAAcjd,GAElC,GACJ,GACJ,EACA+3E,EAAY1zE,UAAUy0E,uBAAyB,SAAU94E,EAAS04E,EAAkBa,GAChF,IAAIC,EAAgBvuE,OAAOC,KAAKwtE,GAAkBvhE,OAClD,OAAOnX,EAAQuB,OAAS,KAAO2D,KAAKu0E,iBAAiBz5E,GAAW,KAAO+2E,GAAkB/2E,GAAW,KAAOw5E,EAAcz+D,KAAI,SAAUlR,GAAQ,OAAOA,EAAO,IAAM6uE,EAAiB7uE,EAAO,IAAG6D,KAAK,MAAQ,OAAS8rE,EAAc9rE,KAAK,KAAO,KAAO6rE,CACzP,EACAxB,EAAY1zE,UAAUq1E,mBAAqB,SAAUjB,EAAUr6D,EAAiBG,GAC5E,OAAO,IAAAI,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAIwK,EAAMiqE,EACV,OAAO,IAAA16D,aAAY/Z,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAGD,OAFA5P,EAAO,IAAIxK,KAAKitE,OAChBziE,EAAK8K,OAAO+D,GACL,CAAC,EAAa7O,EAAK8mE,UAC9B,KAAK,EAED,OADAmD,EAAgB7gE,EAAGyG,OACZ,CAAC,EAAcg2D,GAAuB,KAAOkD,EAAW,KAAOr6D,EAAkB,MAAO,QAAMu7D,IAEjH,GACJ,GACJ,EACA5B,EAAY1zE,UAAUo1E,iBAAmB,SAAU3gE,GAC/C,IAAI/K,EAAO+K,EAAG/K,KACd,GAAI7I,KAAK+yE,cAAe,CACpB,IAAI2B,EAAgBt5E,mBAAmByN,EAAKzF,QAAQ,MAAO,KAC3D,MAAO,IAAMsxE,EAActxE,QAAQ,OAAQ,IAC/C,CACA,OAAOyF,CACX,EACAgqE,EAAY1zE,UAAUw0E,aAAe,SAAUJ,EAAUr6D,EAAiBy7D,EAAYt7D,GAClF,OAAO,IAAAI,WAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAIsZ,EAAc9O,EAAMoJ,EAAIqF,EAAI2C,EAChC,OAAO,IAAA7B,aAAY/Z,MAAM,SAAUmpC,GAC/B,OAAQA,EAAG/uB,OACP,KAAK,EAAG,MAAO,CAAC,EAAapa,KAAKw0E,mBAAmBjB,EAAUr6D,EAAiBG,IAChF,KAAK,EAGD,OAFAC,EAAe6vB,EAAG9uB,OAClBpB,GAAMrF,EAAK5T,KAAKitE,QAAQruE,KACjB,CAAC,EAAa+1E,GACzB,KAAK,EAID,OAHAnqE,EAAO,IAAKyO,EAAGrW,MAAMgR,EAAI,MAAC,EAAQu1B,EAAG9uB,UACrC7P,EAAK8K,OAAOgE,GACZsC,EAAK,KACE,CAAC,EAAapR,EAAK8mE,UAC9B,KAAK,EAAG,MAAO,CAAC,EAAc11D,EAAGhZ,WAAM,EAAQ,CAACumC,EAAG9uB,UAE3D,GACJ,GACJ,EACAw4D,EAAY1zE,UAAU4xE,cAAgB,SAAUt0D,EAAa/F,EAAQo6D,EAAWr6D,GAC5E,OAAOs6D,GAAc/wE,KAAKitE,OAAQxwD,EAAaq0D,EAAWp6D,EAAQD,GAAWzW,KAAKyW,QACtF,EACOo8D,CACX,CAxPgC,GA0P5BY,GAAa,SAAUhqE,GACvB,IAAI8pE,EAAWb,GAAQjpE,GAAKrG,QAAQ,SAAU,IAC9C,MAAO,CACHmwE,SAAUA,EACVzC,UAAWyC,EAASloE,OAAO,EAAG,GAEtC,EACIqoE,GAAyB,SAAUp5E,GAAW,OAAOyL,OAAOC,KAAK1L,GAAS2X,OAAOzJ,KAAK,IAAM,EAC5FyqE,GAA0B,SAAUv8D,GACpC,GAAsB,kBAAXA,EAAqB,CAC5B,IAAIg0D,EAAgB3wE,QAAQC,QAAQ0c,GACpC,OAAO,WAAc,OAAOg0D,CAAe,CAC/C,CAEI,OAAOh0D,CAEf,EACIy8D,GAA+B,SAAU12D,GACzC,GAA2B,kBAAhBA,EAA0B,CACjC,IAAIkxD,EAAgB5zE,QAAQC,QAAQyiB,GACpC,OAAO,WAAc,OAAOkxD,CAAe,CAC/C,CAEI,OAAOlxD,CAEf,EC5RO,SAASm4D,GAAqBzc,GACjC,IAII0c,EAJAvkE,EAAQtQ,KACRyc,EAAc07C,EAAM17C,aAAe07C,EAAM4U,0BAA0B5U,GACnE2c,EAAkBC,GAAkBt4D,GACpC7I,EAAKukD,EAAM6c,kBAAmBA,OAA2B,IAAPphE,GAAuBA,EAAIqF,EAAKk/C,EAAM8c,kBAAmBA,OAA2B,IAAPh8D,EAAgBk/C,EAAM8c,mBAAqB,EAAIh8D,EAAIg0D,EAAS9U,EAAM8U,OAmCrM,OA/BI4H,EAFA1c,EAAM0c,OAEGE,GAAkB5c,EAAM0c,QAIxB,WACL,OAAOE,GAAkB5c,EAAMzhD,OAAxBq+D,GACFv0E,MAAK,SAAUkW,GAAU,OAAO,IAAA+C,WAAUnJ,OAAO,OAAQ,GAAQ,WAAc,OAAO,IAAAyJ,aAAY/Z,MAAM,SAAU4T,GACnH,OAAQA,EAAGwG,OACP,KAAK,EAAG,MAAO,CAAC,EAAa+9C,EAAMqU,mBAAmB91D,IACtD,KAAK,EAAG,MAAO,CAAC,EAAc,CAAE9C,EAAGyG,QAAW,CAAC,EAAG3D,IAE1D,GAAI,GAAI,IACHlW,MAAK,SAAUoT,GAChB,IAAIqF,GAAK,IAAAvG,QAAOkB,EAAI,GAAIk4D,EAAa7yD,EAAG,GAAIvC,EAASuC,EAAG,GACpD+yD,EAAgBF,EAAWE,cAAeC,EAAiBH,EAAWG,eAO1E,OAJA9T,EAAM6T,cAAgB7T,EAAM6T,eAAiBA,GAAiBt1D,EAG9DyhD,EAAM+c,YAAc/c,EAAM+c,aAAejJ,GAAkB9T,EAAM0S,UAC1D,IAAIgI,GAAY,CACnBp2D,YAAaq4D,EACbp+D,OAAQyhD,EAAM6T,cACdv1D,QAAS0hD,EAAM+c,YACfjI,OAAQA,EACR8F,cAAeiC,GAEvB,GACJ,GAEG,IAAApgE,WAAS,IAAAA,UAAS,CAAC,EAAGujD,GAAQ,CAAE8c,kBAAmBA,EACtDD,kBAAmBA,EAAmBv4D,YAAaq4D,EAAiBD,OAAQA,GACpF,CACA,SAASE,GAAkB5c,GACvB,GAAqB,kBAAVA,EAAoB,CAC3B,IAAIuS,EAAgB3wE,QAAQC,QAAQm+D,GACpC,OAAO,WAAc,OAAOuS,CAAe,CAC/C,CACA,OAAOvS,CACX,CCjDO,SAASgd,GAAuBhd,GACnC,OAAO,IAAAvjD,WAAS,IAAAA,UAAS,CAAC,EAAGujD,GAAQ,CAAEid,gBAAkD,kBAA1Bjd,EAAMid,gBAA+B,CAAC,CAACjd,EAAMid,kBAAoBjd,EAAMid,iBAC1I,CCHO,IAAIC,GAAa,aACbC,GAAmB,mBACnBC,GAAQ,IACRC,GAAkB,yCCYlBC,GAAsB,SAAUlyE,GAAW,OAAO,SAAU2P,EAAMjU,GAAW,OAAO,SAAU+I,GAAQ,OAAO,IAAAyR,gBAAU,OAAQ,OAAQ,GAAQ,WACtJ,IAAI3e,EAASR,EAASyP,EAAW6gE,EAAkBwK,EAAiBM,EAChE9hE,EAAIqF,EACR,OAAO,IAAAc,aAAY/Z,MAAM,SAAU4b,GAC/B,OAAQA,EAAGxB,OACP,KAAK,EAED,OADAtf,EAAUkN,EAAKlN,QACV,GAAY48D,WAAW58D,IAE5BR,EAAUQ,EAAQR,QAClByP,GAA4F,QAA9E6J,EAAiB,OAAZ3U,QAAgC,IAAZA,OAAqB,EAASA,EAAQ8K,iBAA8B,IAAP6J,OAAgB,EAASA,EAAGiC,IAAI8/D,MAAqB,GAClJ,CAAC,EAAapyE,EAAQypE,6BAHlB,CAAC,EAAc95D,EAAKlL,IAInC,KAAK,EASD,OARA4iE,EAAoBhvD,EAAGvB,OAAQxE,IAAI8/D,IACnCP,GAAwG,QAApFn8D,EAAiB,OAAZ1V,QAAgC,IAAZA,OAAqB,EAASA,EAAQ6xE,uBAAoC,IAAPn8D,OAAgB,EAASA,EAAGpD,IAAI8/D,MAAqB,GAErKr7E,EAAQg7E,KAAoB,IAAAltC,UAASwiC,EAAkB7gE,EAAWqrE,GAAiB5sE,KAAK+sE,IACxFG,GAAgB,IAAAttC,UAASwiC,EAAiB1pD,QAAO,SAAU00D,GAAW,OAAOA,EAAQC,WAAW,WAAa,IAAIT,GAAiB5sE,KAAK+sE,IAC/G,YAApBhyE,EAAQopE,SAAyB+I,IACjCp7E,EAAQ+6E,IAAc/6E,EAAQ+6E,IAAc/6E,EAAQ+6E,IAAc,IAAMK,EAAgBA,GAErF,CAAC,EAAcxiE,GAAK,IAAA0B,WAAS,IAAAA,UAAS,CAAC,EAAG5M,GAAO,CAAElN,QAASA,MAE/E,GACJ,GAAI,CAAG,CAAG,EAMN66E,GAAkB,SAAU/hE,GAC5B,IAAIqF,GAAK,IAAAvG,QAAOkB,EAAI,GAAIjP,EAAOsU,EAAG,GAAInN,EAAUmN,EAAG,GAC/C68D,EAAuBnxE,EAAK9H,QAAQ,KACpC0kB,EAAS5c,EAAK4N,UAAU,EAAGujE,GAC3BC,EAASpxE,EAAK4N,UAAUujE,EAAuB,GAInD,MAHe,QAAXv0D,IACAw0D,EAASA,EAAOh4E,eAEb,CAACwjB,EAAQw0D,EAAQjqE,GACnBoV,QAAO,SAAUpQ,GAAQ,OAAOA,GAAQA,EAAKlQ,OAAS,CAAG,IACzDiV,KAAI,SAAU/E,GAAQ,OAAgB,OAATA,QAA0B,IAATA,OAAkB,EAASA,EAAK1N,QAAQoyE,GAAiB,IAAM,IAC7GhtE,KAAK,IACd,EACWwtE,GAAgC,CACvCrxE,KAAM,yBACNmV,KAAM,QACNrK,SAAU,MACVitD,KAAM,CAAC,iBAAkB,cACzBC,UAAU,GAEHsZ,GAAqB,SAAUn8E,GAAU,MAAO,CACvDgjE,aAAc,SAAUyD,GACpBA,EAAYr4B,IAAIutC,GAAoB37E,GAASk8E,GACjD,EACA,EC3CAE,GAAuC,SAAU7lE,GAEjD,SAAS6lE,EAAsB1V,GAC3B,IAAIlwD,EAAQtQ,KACRm2E,EAAY,EAAS,EAAS,CAAC,EAAG,IAAwB3V,GAC1D4V,EAAYvI,GAAoBsI,GAChCE,EAAY/I,GAAuB8I,GACnCE,EAAY1B,GAAqByB,GACjCE,EAAY/L,GAAmB8L,GAC/BE,EAAYrI,GAAwBoI,GACpCE,EAAYtB,GAAuBqB,GAQvC,OAPAlmE,EAAQD,EAAOjM,KAAKpE,KAAMy2E,IAAcz2E,KACxCsQ,EAAMxW,OAAS28E,EACfnmE,EAAMqvD,gBAAgBr8D,IAAIikE,GAAej3D,EAAMxW,SAC/CwW,EAAMqvD,gBAAgBr8D,IAAI4qE,GAAuB59D,EAAMxW,SACvDwW,EAAMqvD,gBAAgBr8D,IAAIkrE,GAAoBl+D,EAAMxW,SACpDwW,EAAMqvD,gBAAgBr8D,IAAIsrE,GAAgBt+D,EAAMxW,SAChDwW,EAAMqvD,gBAAgBr8D,IAAI2yE,GAAmB3lE,EAAMxW,SAC5CwW,CACX,CAIA,OAtBAT,EAAUqmE,EAAuB7lE,GAmBjC6lE,EAAsB/2E,UAAU4gE,QAAU,WACtC1vD,EAAOlR,UAAU4gE,QAAQ37D,KAAKpE,KAClC,EACOk2E,CACX,CAxB0C,CAwBxC,I,YChDE,GAAsC,WAStC,OARA,GAAWnwE,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,GAASjS,MAAM5C,KAAMiI,UAChC,EAQO,SAASyuE,GAA4B58E,GACxC,IAAI6sC,EAAS,IAAIuvC,GAAsB,CACnCx/D,OAAQ5c,EAAO4c,OACf0+D,iBAAiB,aAQrB,OANAzuC,EAAOg5B,gBAAgBz3B,KAAI,SAAUh1B,EAAMiH,GAAK,OAAO,SAAUnS,GAC7D,OAAOkL,EAAKyjE,GAAe3uE,GAC/B,CAAG,GAAG,CACF8R,KAAM,QACNnV,KAAM,2BAEHgiC,CACX,CACO,SAASgwC,GAAe3uE,GAC3B,OAAO,GAAS,GAAS,CAAC,EAAGA,GAAO,CAAElN,QAAS,GAAS,GAAS,CAAC,EAAGkN,EAAKlN,SAAU,CAAER,QAAS,GAAS,GAAS,CAAC,EAAG0N,EAAKlN,QAAQR,SAAU,CAAE,gBAAiB,gBACnK,CCnCA,IAAI,GAAsC,WAStC,OARA,GAAWyL,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACO,GAASjS,MAAM5C,KAAMiI,UAChC,EACI,GAAwC,SAAUF,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI,GAA4C,SAAUnL,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EAUI,GAAS,IAAI,IAAO,eACpBo8E,GAAkB,IAClBC,GAA8B,qBAC9BC,GAAkC,WAClC,SAASA,EAAiBh9E,GACtBkG,KAAK+2E,oBAAsB,KAC3B/2E,KAAKg3E,iBAAmB,CAAC,EAEzBh3E,KAAKqqC,UAAO3sC,EACZsC,KAAK2P,UAAU7V,GACfkG,KAAKg3E,iBAAiB,UAAY,EAAYlkB,mBAC9C9yD,KAAKg3E,iBAAiB,YAAc,EAAcxjB,oBACtD,CAujBA,OAtjBAsjB,EAAiB33E,UAAUiQ,cAAgB,WACvC,MAAO,aACX,EACA0nE,EAAiB33E,UAAU2vD,cAAgB,WACvC,OAAO9uD,KAAKi3E,mBAChB,EACAH,EAAiB33E,UAAUwQ,UAAY,SAAU7V,GAC7C,IAAKA,EACD,OAAOkG,KAAK6/B,SAAW,CAAC,EAC5B7/B,KAAK6/B,QAAU95B,OAAOkJ,OAAO,CAAC,EAAGjP,KAAK6/B,QAAS/lC,GAC/C,IAAIqoD,EAAkBniD,KAAK6/B,QAAQsiB,gBAcnC,OAXIA,IACAniD,KAAKg3E,iBAAmB,GAAS,GAAS,CAAC,EAAGh3E,KAAKg3E,kBAAmB70B,IAE1EniD,KAAKgiD,SAAWhiD,KAAK6/B,QAAQnyB,QACxB1N,KAAKgiD,WACNhiD,KAAKgiD,UAAW,IAAIr0C,EAAA,IAAgBC,cAExC5N,KAAKsiD,aAAevoD,QAAQC,UACS,oBAA1BgG,KAAKgiD,SAAS,UACrBhiD,KAAKsiD,aAAetiD,KAAKgiD,SAAS,WAE/BhiD,KAAK6/B,OAChB,EACAi3C,EAAiB33E,UAAUqd,IAAM,WAE7B,OADA,GAAOpF,MAAM,uBACNpX,KAAKk3E,oBAChB,EAEAJ,EAAiB33E,UAAUg4E,gCAAkC,SAAUzgC,GACnE,MAAO,GAAKmgC,GAA8BngC,CAC9C,EACAogC,EAAiB33E,UAAU+3E,mBAAqB,WAS5C,OARA,GAAO9/D,MAAM,0BACRpX,KAAK+2E,qBAAwB/2E,KAAK+2E,oBAAoBK,YAKvD,GAAOhgE,MAAM,6BAJb,GAAOA,MAAM,4BACbpX,KAAK+2E,qBAAsB,QAAoB/2E,KAAKq3E,eAKjDr3E,KAAK+2E,mBAChB,EACAD,EAAiB33E,UAAUk4E,WAAa,WACpC,OAAO,GAAUr3E,UAAM,OAAQ,GAAQ,WACnC,IAAI+xC,EAAMn+B,EAAIy2B,EAAM0gB,EAAQ1Z,EAASimC,EAAgBC,EAAgBruC,EACrE,OAAO,GAAYlpC,MAAM,SAAUiZ,GAC/B,OAAQA,EAAGmB,OACP,KAAK,EAGD,GAFA,GAAOhD,MAAM,kDACb26B,EAAO/xC,KAAKw3E,aACRzlC,IAAS/xC,KAAKgR,WAAW+gC,KAAU/xC,KAAKy3E,aAExC,OADA,GAAOrgE,MAAM,4DACN,CAAC,EAAcrd,QAAQC,QAAQ+3C,IAI1C,GAFA,GAAO36B,MAAM,4DACbxD,EAAK5T,KAAKqqC,KAAMA,OAAc,IAAPz2B,EAAgB+9C,EAAA,GAAQtnB,KAAOz2B,GACjDy2B,GAA+C,oBAAhCA,EAAKyX,uBACrB,MAAO,CAAC,EAAc/nD,QAAQE,OAAO,yCAEzC,GAAO+F,KAAKgR,WAAW+gC,KAAS/xC,KAAKy3E,aAAe,MAAO,CAAC,EAAa,GACzE,GAAOrgE,MAAM,+CACb6B,EAAGmB,MAAQ,EACf,KAAK,EAED,OADAnB,EAAGqB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAampC,EAAKoc,uBAC9B,KAAK,EAED,OADAsE,EAAS9xC,EAAGoB,OACL,CAAC,EAAagwB,EAAKiH,kBAC9B,KAAK,EAQD,OAPAD,EAAUp4B,EAAGoB,OACbi9D,EAAiBjmC,EAAQkM,aACzBg6B,EAAiB,IAAIx9E,SAAQ,SAAU4zC,EAAKC,GACxCmd,EAAO2sB,eAAeJ,GAAgB,SAAUn7E,EAAK/B,GACjD,OAAO+B,EAAMyxC,EAAIzxC,GAAOwxC,EAAIvzC,EAChC,GACJ,IACO,CAAC,EAAam9E,GACzB,KAAK,EAED,OADAt+D,EAAGoB,OACI,CAAC,EAAa,GACzB,KAAK,EAID,OAHA6uB,EAAQjwB,EAAGoB,OAEX,GAAOjD,MAAM,6CAA8C8xB,GACpD,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAcmB,EAAKyX,0BAE3C,GACJ,GACJ,EACAg1B,EAAiB33E,UAAUiuD,sBAAwB,SAAU3b,GACzD,GAAOr6B,MAAM,iCACb,IAAI4uB,EAAWyL,EAAczL,SAAUwb,EAAO/P,EAAc+P,KAAMjhD,EAAQkxC,EAAclxC,MAAO4uD,EAAc1d,EAAc0d,YACvHC,EAAa3d,EAAc2d,WAE/BA,EAC2C,OAAvC,IAAIlmD,KAAKkmD,GAAYuoB,cACF,IAAbvoB,EACAA,EACV,IAAI7I,EAAOvmD,KAEX,OADA,GAAOoX,MAAM,2CACTg4C,GAAa,IAAIlmD,MAAOgF,WAExB,GAAOkJ,MAAM,qBACNpX,KAAK43E,8BAA8B,CACtC5xC,SAAUA,EACVzlC,MAAOA,EACPihD,KAAMA,EACN2N,YAAaA,EACbC,WAAYA,KAKZ7I,EAAKywB,iBAAiBhxC,IACqB,oBAApCugB,EAAKywB,iBAAiBhxC,IAC7B,GAAO5uB,MAAM,wDACNpX,KAAK63E,0BAA0B,CAClCC,eAAgBvxB,EAAKywB,iBAAiBhxC,GACtCA,SAAUA,EACVwb,KAAMA,MAIV,GAAOpqC,MAAM,mCAAoC4uB,GACjDhmC,KAAK2O,QACE5U,QAAQE,OAAO,mCAGlC,EACA68E,EAAiB33E,UAAU04E,0BAA4B,SAAUjkE,GAC7D,IAAItD,EAAQtQ,KACR83E,EAAiBlkE,EAAGkkE,eAAgB9xC,EAAWpyB,EAAGoyB,SAAUwb,EAAO5tC,EAAG4tC,KACtE3d,EAAe,IAGnB,OAAO,QAAyBi0C,EAAgB,GAAIj0C,GAC/CrjC,MAAK,SAAUpG,GAEhB,OADA,GAAOgd,MAAM,sCAAuChd,GAC7CkW,EAAMsnE,8BAA8B,CACvC5xC,SAAUA,EACVzlC,MAAOnG,EAAKmG,MACZihD,KAAMA,EACN2N,YAAa/0D,EAAK+0D,YAClBC,WAAYh1D,EAAKg1D,YAEzB,IACKzyC,OAAM,SAAU1V,GACjB,IAAI8wE,EAA8B,kBAAN9wE,GACmC,IAA3DA,EAAElJ,cAAci6E,YAAY,gBAAiB/wE,EAAErG,QAKnD,OAJKm3E,GACDznE,EAAM3B,QAEV,GAAOyI,MAAM,iCAAkCnQ,GACxClN,QAAQE,OAAO,uCAAyCgN,EACnE,GACJ,EACA6vE,EAAiB33E,UAAU6R,WAAa,SAAUyL,GAC9C,IAAKA,EAED,OADA,GAAOrF,MAAM,wCACN,EAEX,GAAOA,MAAM,iCAAkCqF,GAC/C,IAAIw7D,EAAK/uE,KAAKO,MAIVmP,EAAa6D,EAAY7D,WAC7B,OAAOA,EAAW1K,WAAa+pE,CACnC,EACAnB,EAAiB33E,UAAUs4E,WAAa,WACpC,OAAOz3E,KAAKk4E,yBAA2BhvE,KAAKO,KAChD,EACAqtE,EAAiB33E,UAAUg5E,wBAA0B,WACjD,OAAO,GAAUn4E,UAAM,OAAQ,GAAQ,WACnC,IAAI4T,EAAI8iC,EAAgBhgC,EAAQkgC,EAAiBmY,EAAY91C,EAAIm/D,EAAe37D,EAAa47D,EAAuBC,EAChHhoE,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4b,GAC/B,OAAQA,EAAGxB,OACP,KAAK,EAGD,OAFA,GAAOhD,MAAM,iCACbxD,EAAK5T,KAAK6/B,QAAS6W,EAAiB9iC,EAAG8iC,eAAgBhgC,EAAS9C,EAAG8C,OAAQkgC,EAAkBhjC,EAAGgjC,gBAC5FA,EACO,CAAC,EAAc78C,QAAQE,OAAO,+DAEpCy8C,EAIAhgC,GAILuC,EAAKjZ,KACE,CAAC,EAAaA,KAAKu4E,yBAJtB,GAAOnhE,MAAM,wDACN,CAAC,EAAcrd,QAAQE,OAAO,2DALrC,GAAOmd,MAAM,gEACN,CAAC,EAAcrd,QAAQE,OAAO,kEAQ7C,KAAK,EAuCD,OAtCA80D,EAAc91C,EAAGu/D,YAAc58D,EAAGvB,OAClC+9D,EAAgB1B,GAA4B,CACxChgE,OAAQA,IAEZ+F,OAAc/e,EACVqxD,GACAspB,EAAwB,CACpBtpB,WAAYA,EACZpoB,OAAQyxC,GAEZ37D,EAAc4kD,GAAoBgX,EAApBhX,KAGdiX,EAAsB,WAAc,OAAO,GAAUhoE,OAAO,OAAQ,GAAQ,WACxE,IAAIuqD,EAAYwd,EAAuBI,EACvC,OAAO,GAAYz4E,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAAG,MAAO,CAAC,EAAag+D,EAAcz5E,KAAK,IAAIgjE,GAAa,CACzD1G,eAAgBvkB,MAExB,KAAK,EAQD,OAPAmkB,EAAcjnD,EAAGyG,OAAQwgD,WACzB76D,KAAKw4E,YAAc3d,EACnBwd,EAAwB,CACpB1xC,OAAQyxC,EACRrpB,WAAY8L,GAEhB4d,EAAiCpX,GAAoBgX,GAC9C,CAAC,EAAcI,KAElC,GACJ,GAAI,EACJh8D,EAAc67D,IAAsB37D,OAAM,SAAUxgB,GAAO,OAAO,GAAUmU,OAAO,OAAQ,GAAQ,WAC/F,OAAO,GAAYtQ,MAAM,SAAU4T,GAC/B,MAAMzX,CACV,GACJ,GAAI,KAED,CAAC,EAAc6D,KAAK04E,iBAAiBj8D,EAAa,SAAS,EAAO,MAChEjc,MAAK,SAAUmtC,GAChB,OAAOA,CACX,IACKhxB,OAAM,SAAU1V,GAAK,OAAO,GAAUqJ,OAAO,OAAQ,GAAQ,WAC9D,IAAIgoE,EACAhoE,EAAQtQ,KACZ,OAAO,GAAYA,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD,MAAiB,8BAAXnT,EAAEtC,MACJsC,EAAElH,UAAY,aAAegvD,EAAa,eAAwB,CAAC,EAAa,IACpF,GAAO33C,MAAM,oCACN,CAAC,EAAapX,KAAK24E,2BAC9B,KAAK,EA0BD,OAzBA/kE,EAAGyG,OACHi+D,EAAsB,WAAc,OAAO,GAAUhoE,OAAO,OAAQ,GAAQ,WACxE,IAAIuqD,EAAYwd,EAAuBI,EACvC,OAAO,GAAYz4E,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EAAG,MAAO,CAAC,EAAag+D,EAAcz5E,KAAK,IAAIgjE,GAAa,CACzD1G,eAAgBvkB,MAExB,KAAK,EAQD,OAPAmkB,EAAcjnD,EAAGyG,OAAQwgD,WACzB76D,KAAKw4E,YAAc3d,EACnBwd,EAAwB,CACpB1xC,OAAQyxC,EACRrpB,WAAY8L,GAEhB4d,EAAiCpX,GAAoBgX,GAC9C,CAAC,EAAcI,KAElC,GACJ,GAAI,EACJh8D,EAAc67D,IAAsB37D,OAAM,SAAUxgB,GAAO,OAAO,GAAUmU,OAAO,OAAQ,GAAQ,WAC/F,OAAO,GAAYtQ,MAAM,SAAU4T,GAC/B,MAAMzX,CACV,GACJ,GAAI,IACG,CAAC,EAAc6D,KAAK04E,iBAAiBj8D,EAAa,SAAS,EAAO,OAC7E,KAAK,EAAG,MAAO,CAAC,EAAcxV,GAEtC,GACJ,GAAI,KAEpB,GACJ,GACJ,EACA6vE,EAAiB33E,UAAUy4E,8BAAgC,SAAUr7E,GACjE,IAAIypC,EAAWzpC,EAAOypC,SAAUzlC,EAAQhE,EAAOgE,MAAO4uD,EAAc5yD,EAAO4yD,YACvEypB,EAAU,CACVC,OAAQ,sBACRC,SAAU,qBACVC,OAAQ,iBACRC,UAAW,kCAGXlwE,EAAS8vE,EAAQ5yC,IAAaA,EAClC,IAAKl9B,EACD,OAAO/O,QAAQE,OAAO,yCAE1B,IAAIinE,EAAS,CAAC,EACdA,EAAOp4D,GAAUvI,EACjB,IAAIqT,EAAK5T,KAAK6/B,QAAS6W,EAAiB9iC,EAAG8iC,eAAgBhgC,EAAS9C,EAAG8C,OACvE,IAAKggC,EAED,OADA,GAAOt/B,MAAM,+CACNrd,QAAQE,OAAO,+CAE1B,IAAKyc,EAED,OADA,GAAOU,MAAM,wDACNrd,QAAQE,OAAO,wDAE1B,IAAIm+E,EAAgB1B,GAA4B,CAC5ChgE,OAAQA,IAER+F,OAAc/e,EAClB,GAAIyxD,EAAa,CACb,IAAIkpB,EAAwB,CACxBtpB,WAAYI,EACZ+R,OAAQA,EACRv6B,OAAQyxC,GAEZ37D,EAAc4kD,GAAoBgX,EAApBhX,EAClB,KACK,CACGgX,EAAwB,CACxBnX,OAAQA,EACRxqB,eAAgBA,EAChB/P,OAAQyxC,GAEZ37D,EAAcwmD,GAAwBoV,EAAxBpV,EAClB,CACA,OAAOjjE,KAAK04E,iBAAiBj8D,EAAa,aAAa,EAAMlgB,EACjE,EACAu6E,EAAiB33E,UAAU85E,2BAA6B,SAAU5nC,GAC9D,IAAI/gC,EAAQtQ,KACZ,GAAOoX,MAAM,gCACb,IAAIomC,EAAUnM,EAAQue,aAAape,cAC/B59B,EAAK5T,KAAK6/B,QAASnpB,EAAS9C,EAAG8C,OAAQ8/B,EAAa5iC,EAAG4iC,WAAYE,EAAiB9iC,EAAG8iC,eAC3F,IAAKA,EAED,OADA,GAAOt/B,MAAM,+CACNrd,QAAQE,OAAO,+CAE1B,IAAKyc,EAED,OADA,GAAOU,MAAM,wDACNrd,QAAQE,OAAO,wDAE1B,IAAI6D,EAAM,eAAiB4Y,EAAS,kBAAoB8/B,EACpD0qB,EAAS,CAAC,EACdA,EAAOpjE,GAAO0/C,EACd,IAAI46B,EAAgB1B,GAA4B,CAC5ChgE,OAAQA,IAQR4hE,EAAsB,WAAc,OAAO,GAAUhoE,OAAO,OAAQ,GAAQ,WAC5E,IAAI4oE,EAAiBC,EAAgCte,EAAYjnD,EAAIqF,EAAIkiD,EAAaC,EAAYC,EAAWC,EAAc8d,EAC3H,OAAO,GAAYp5E,MAAM,SAAU4b,GAC/B,OAAQA,EAAGxB,OACP,KAAK,EAAG,MAAO,CAAC,EAAapa,KAAKu4E,uBAClC,KAAK,EAED,OADAW,EAAkBt9D,EAAGvB,OACf6+D,EAAwB,CAAC,EAAa,GACrC,CAAC,EAAad,EAAcz5E,KAAK,IAAIgjE,GAAa,CACjD1G,eAAgBvkB,EAChBokB,OAAQoG,MAEpB,KAAK,EACDrG,EAAcj/C,EAAGvB,OAAQwgD,WACzBse,EAAiCte,EACjCj/C,EAAGxB,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAag+D,EAAcz5E,KAAK,IAAI2hE,GAAiC,CAC7EzF,WAAYqe,GAAmBC,EAC/Bre,OAAQoG,MAEhB,KAAK,EAGD,OAFAttD,EAAKgI,EAAGvB,OAAQpB,EAAKrF,EAAGoH,YAAamgD,EAAcliD,EAAGkiD,YAAaC,EAAaniD,EAAGmiD,WAAYC,EAAYpiD,EAAGoiD,UAAWC,EAAeriD,EAAGqiD,aAAc8d,EAAoBxlE,EAAGinD,WAChL76D,KAAKw4E,YAAcY,EACdF,GAGL,GAAO9hE,MAAM,sBAAwB8hE,EAAkB,+CACnDA,IAAoBE,GACpB,GAAOhiE,MAAM,sBAAwB8hE,EAAkB,oCAGpD,CAAC,EAAal5E,KAAK24E,2BARG,CAAC,EAAa,GAS/C,KAAK,EAED/8D,EAAGvB,OACHuB,EAAGxB,MAAQ,EACf,KAAK,EAEL,MAAO,CAAC,EAAc,CACd+D,YAAag9C,EACbj9C,gBAAiBm9C,EACjBj9C,aAAck9C,EACd1iD,WAAYwiD,EACZrM,WAAYqqB,IAG5B,GACJ,GAAI,EACA38D,EAAc67D,IAAsB37D,OAAM,SAAUxgB,GAAO,OAAO,GAAUmU,OAAO,OAAQ,GAAQ,WACnG,OAAO,GAAYtQ,MAAM,SAAU4T,GAC/B,MAAMzX,CACV,GACJ,GAAI,IACJ,OAAO6D,KAAK04E,iBAAiBj8D,EAAa,YAAY,EAAM,KAChE,EACAq6D,EAAiB33E,UAAUu5E,iBAAmB,SAAUj8D,EAAapb,EAAQ4uD,EAAepB,GACxF,IAAIv+C,EAAQtQ,KACRumD,EAAOvmD,KACX,OAAO,IAAIjG,SAAQ,SAAU4zC,EAAKC,GAC9BnxB,EACKjc,MAAK,SAAUic,GAAe,OAAO,GAAUnM,OAAO,OAAQ,GAAQ,WACvE,IAAIkxC,EAAMxb,EAAUzlC,EAAO6uD,EAAYD,EACvC,OAAO,GAAYnvD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EASD,GARA,GAAOhD,MAAM,gCAAiCqF,GAC1Czc,KAAKw4E,cAAgB/7D,EAAYsyC,aACjCtyC,EAAY,cAAgBzc,KAAKw4E,aAErCjyB,EAAKixB,aAAe/6D,EACpB8pC,EAAKixB,aAAavnB,cAAgBA,EAClC1J,EAAK0wB,oBAAsB51E,EAC3BklD,EAAK2xB,yBAA0B,IAAIhvE,MAAOgF,UAAY0oE,GACvC,cAAXv1E,EAAwB,CACxBmgD,EAAOz7C,OAAOkJ,OAAO,CAAExL,GAAIzD,KAAKw3E,aAAazoB,YAAcF,EAAKrN,MAChExb,EAAW6oB,EAAK7oB,SAAUzlC,EAAQsuD,EAAKtuD,MAAO6uD,EAAaP,EAAKO,WAAYD,EAAcN,EAAKM,YAC/F,IACInvD,KAAKgiD,SAASnzC,QAAQ,4BAA6B/H,KAAKI,UAAU,CAC9D8+B,SAAUA,EACVzlC,MAAOA,EACPihD,KAAMA,EACN4N,WAAYA,EACZD,YAAaA,IAErB,CACA,MAAOloD,GACH,GAAOmQ,MAAM,iDAAkDnQ,EACnE,CACJ,CACA,MAAiB,UAAX5F,EAA4B,CAAC,EAAa,GACzC,CAAC,EAAarB,KAAKq5E,oBAAoB58D,EAAYsyC,aAC9D,KAAK,EACDn7C,EAAGyG,OACHzG,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAuzB,EAAI4Y,EAAKixB,cACF,CAAC,GAEpB,GACJ,GAAI,IACC76D,OAAM,SAAUxgB,GACjB,GAAIA,EAIA,OAHA,GAAOib,MAAM,6BAA8BqF,GAC3C,GAAOrF,MAAM,4BAA6Bjb,QAC1CyxC,EAAIzxC,EAGZ,GACJ,GACJ,EACA26E,EAAiB33E,UAAUse,IAAM,SAAUlhB,EAAQ8E,GAC/C,MAAe,YAAXA,EACOrB,KAAKi5E,2BAA2B18E,GAEvB,eAAX8E,EACErB,KAAK43E,8BAA8Br7E,GAE1B,UAAX8E,EACErB,KAAKm4E,2BAGZ,GAAO/gE,MAAM,+CACNrd,QAAQE,OAAO,kBAE9B,EACA68E,EAAiB33E,UAAUwP,MAAQ,WAC/B,OAAO,GAAU3O,UAAM,OAAQ,GAAQ,WACnC,OAAO,GAAYA,MAAM,SAAU4T,GAK/B,OAJA5T,KAAKw3E,aAAe,KACpBx3E,KAAKi3E,oBAAsB,KAC3B,GAAO7/D,MAAM,mDACbpX,KAAKgiD,SAASlzC,WAAW,6BAClB,CAAC,EACZ,GACJ,GACJ,EAEAgoE,EAAiB33E,UAAUo5E,oBAAsB,WAC7C,OAAO,GAAUv4E,UAAM,OAAQ,GAAQ,WACnC,IAAI02C,EAAgBzV,EACpB,OAAO,GAAYjhC,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACDs8B,EAAiB12C,KAAK6/B,QAAQ6W,eAC9B9iC,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKsiD,cAC9B,KAAK,EAED,OADA1uC,EAAGyG,OACI,CAAC,EAAcra,KAAKgiD,SAASpzC,QAAQ5O,KAAKm3E,gCAAgCzgC,KACrF,KAAK,EAGD,OAFAzV,EAAMrtB,EAAGyG,OACT,GAAOjD,MAAM,4CAA6C6pB,GACnD,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EACA61C,EAAiB33E,UAAUk6E,oBAAsB,SAAUtqB,GACvD,OAAO,GAAU/uD,UAAM,OAAQ,GAAQ,WACnC,IAAI02C,EAAgB8P,EACpB,OAAO,GAAYxmD,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACDs8B,EAAiB12C,KAAK6/B,QAAQ6W,eAC9B9iC,EAAGwG,MAAQ,EACf,KAAK,EAED,OADAxG,EAAG0G,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAalB,KAAKsiD,cAC9B,KAAK,EAGD,OAFA1uC,EAAGyG,OACHra,KAAKgiD,SAASnzC,QAAQ7O,KAAKm3E,gCAAgCzgC,GAAiBqY,GACrE,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAvI,EAAM5yC,EAAGyG,OACT,GAAOjD,MAAM,mCAAoCovC,GAC1C,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EACAswB,EAAiB33E,UAAUw5E,uBAAyB,WAChD,OAAO,GAAU34E,UAAM,OAAQ,GAAQ,WACnC,IAAI02C,EACJ,OAAO,GAAY12C,MAAM,SAAU4T,GAI/B,OAHA8iC,EAAiB12C,KAAK6/B,QAAQ6W,eAC9B,GAAOt/B,MAAM,YAAcpX,KAAKm3E,gCAAgCzgC,GAAkB,iBAClF12C,KAAKgiD,SAASlzC,WAAW9O,KAAKm3E,gCAAgCzgC,IACvD,CAAC,EACZ,GACJ,GACJ,EAMAogC,EAAiB33E,UAAU6yC,MAAQ,SAAUv1B,GACzC,MAAO,CACH0B,YAAa1B,EAAY0B,YACzBC,aAAc3B,EAAY2B,aAC1BF,gBAAiBzB,EAAYyB,gBAC7B6wC,WAAYtyC,EAAYsyC,WACxBkB,cAAexzC,EAAYwzC,cAEnC,EACO6mB,CACX,CAjkBqC,GAmkB1B,GAAc,IAAIA,GAAiB,MAC9CnlB,EAAA,GAAQl/C,SAAS,G,oFCnnBbmC,EAAsC,WAStC,OARAA,EAAW7O,OAAOkJ,QAAU,SAAS4F,GACjC,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KACzD2E,EAAE3E,GAAK4E,EAAE5E,IAEjB,OAAO2E,CACX,EACOD,EAAShS,MAAM5C,KAAMiI,UAChC,EACIyK,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACX,EACIm1B,EAAsC,WACtC,IAAK,IAAIn1B,EAAK,GAAIvS,EAAI,EAAGA,EAAIuH,UAAUrH,OAAQF,IAAKuS,EAAKA,EAAGpQ,OAAO6P,EAAOzK,UAAUvH,KACpF,OAAOuS,CACX,EAEIlE,EAAS,IAAI,IAAO,OACpBi1B,EAAoC,qBAAXlxB,QACH,oBAAfA,OAAO4W,IACZ5W,OAAO4W,IAAI,mBACX,oBACN,SAAS4vD,EAAiBhuE,GACtB,YAAiC5N,IAA1B4N,EAASiuE,YACpB,CACA,IAAIC,EAA0B,WAC1B,SAASA,EAAS70E,GACd3E,KAAKy5E,UAAY,GACjBz5E,KAAK05E,SAAW,GAChB15E,KAAK25E,kBAAoB,CACrB,OACA,OACA,MACA,YACA,eACA,SACA,UACA,KACA,MAEJ35E,KAAK2E,KAAOA,CAChB,CAsHA,OApHA60E,EAASr6E,UAAUqK,OAAS,SAAUowE,EAAS34E,GAC3C,GAAI24E,aAAmBtwE,OAAQ,CAC3B,IAAIuwE,EAAY75E,KAAK05E,SAAS16D,MAAK,SAAUpL,GACzC,IAAIkmE,EAAUlmE,EAAGkmE,QACjB,OAAOA,EAAQz4E,SAAWu4E,EAAQv4E,MACtC,IACA,IAAKw4E,EAED,YADA9qE,EAAO5C,KAAK,oBAAsBytE,GAGtC55E,KAAK05E,SAAWtxC,EAASpoC,KAAK05E,SAASx4D,QAAO,SAAU+d,GAAK,OAAOA,IAAM46C,CAAW,IACzF,KACK,CACD,IAAIE,EAAS/5E,KAAKy5E,UAAUG,GAC5B,IAAKG,EAED,YADAhrE,EAAO5C,KAAK,oBAAsBytE,GAGtC55E,KAAKy5E,UAAUG,GAAWxxC,EAAS2xC,EAAO74D,QAAO,SAAUtN,GACvD,IAAItI,EAAWsI,EAAGtI,SAClB,OAAOA,IAAarK,CACxB,IACJ,CACJ,EACAu4E,EAASr6E,UAAUmmC,SAAW,SAAUs0C,EAASjwE,EAAStI,EAAQ24E,GAE9D,QADe,IAAX34E,IAAqBA,EAAS,IAC9BrB,KAAK25E,kBAAkB98E,QAAQ+8E,IAAY,EAAG,CAC9C,IAAIK,EAAYD,IAAch2C,EACzBi2C,GACDlrE,EAAO5C,KAAK,YAAcytE,EAAU,uEAE5C,CACA,IAAIM,EAAU,CACVN,QAASA,EACTjwE,QAASiL,EAAS,CAAC,EAAGjL,GACtBtI,OAAQA,EACR84E,YAAa,IAEjB,IACIn6E,KAAKo6E,aAAaF,EACtB,CACA,MAAOjzE,GACH8H,EAAO7L,MAAM+D,EACjB,CACJ,EACAuyE,EAASr6E,UAAU4iD,OAAS,SAAU63B,EAAStuE,EAAU+uE,GACrD,IAEIx7C,EAFAvuB,EAAQtQ,KAIZ,QAHqB,IAAjBq6E,IAA2BA,EAAe,UAG1Cf,EAAiBhuE,GACjByD,EAAO5C,KAAK,kEACZ0yB,EAAKvzB,EAASiuE,aAAa36E,KAAK0M,OAE/B,IAAwB,oBAAbA,EACZ,MAAM,IAAIrH,MAAM,+BAGhB46B,EAAKvzB,CACT,CACA,GAAIsuE,aAAmBtwE,OACnBtJ,KAAK05E,SAASx4E,KAAK,CACf44E,QAASF,EACTtuE,SAAUuzB,QAGb,CACD,IAAIk7C,EAAS/5E,KAAKy5E,UAAUG,GACvBG,IACDA,EAAS,GACT/5E,KAAKy5E,UAAUG,GAAWG,GAE9BA,EAAO74E,KAAK,CACRyD,KAAM01E,EACN/uE,SAAUuzB,GAElB,CACA,OAAO,WACHvuB,EAAM9G,OAAOowE,EAAS/6C,EAC1B,CACJ,EACA26C,EAASr6E,UAAUi7E,aAAe,SAAUF,GACxC,IAAIN,EAAUM,EAAQN,QAASjwE,EAAUuwE,EAAQvwE,QAC7CowE,EAAS/5E,KAAKy5E,UAAUG,GAY5B,GAXIG,GACAA,EAAOn8E,SAAQ,SAAUqD,GACrB8N,EAAOqI,MAAM,kBAAoBwiE,EAAU,SAAUjwE,GACrD,IACI1I,EAASqK,SAAS4uE,EACtB,CACA,MAAOjzE,GACH8H,EAAO7L,MAAM+D,EACjB,CACJ,IAEAjH,KAAK05E,SAAS94E,OAAS,EAAG,CAC1B,IAAK+I,EAAQ5J,QAET,YADAgP,EAAO5C,KAAK,yDAGhB,IAAImuE,EAAe3wE,EAAQ5J,QAC3BC,KAAK05E,SAAS97E,SAAQ,SAAUk8E,GAC5B,IAAIzwE,EAAQixE,EAAajxE,MAAMywE,EAAQA,SACvC,GAAIzwE,EAAO,CACP,IAAIuK,EAAKlB,EAAOrJ,GAAQkxE,EAAS3mE,EAAGpO,MAAM,GACtCg1E,EAAqB5lE,EAASA,EAAS,CAAC,EAAGslE,GAAU,CAAEC,YAAaI,IACxE,IACIT,EAAQxuE,SAASkvE,EACrB,CACA,MAAOvzE,GACH8H,EAAO7L,MAAM+D,EACjB,CACJ,CACJ,GACJ,CACJ,EACOuyE,CACX,CAvI6B,GA4IlBn0C,EAAM,IAAIm0C,EAAS,c,sHCpL9B,IAAIiB,EAAW,CACX,CAAEl8E,KAAM,aAAcm8E,IAAK,OAC3B,CAAEn8E,KAAM,YAAam8E,IAAK,QAC1B,CAAEn8E,KAAM,kBAAmBm8E,IAAK,MAChC,CAAEn8E,KAAM,WAAYm8E,IAAK,OACzB,CAAEn8E,KAAM,WAAYm8E,IAAK,OACzB,CAAEn8E,KAAM,YAAam8E,IAAK,OAC1B,CAAEn8E,KAAM,YAAam8E,IAAK,QAC1B,CAAEn8E,KAAM,gBAAiBm8E,IAAK,OAC9B,CAAEn8E,KAAM,gBAAiBm8E,IAAK,QAC9B,CAAEn8E,KAAM,aAAcm8E,IAAK,QAC3B,CAAEn8E,KAAM,YAAam8E,IAAK,OAC1B,CAAEn8E,KAAM,YAAam8E,IAAK,OAC1B,CAAEn8E,KAAM,eAAgBm8E,IAAK,OAC7B,CAAEn8E,KAAM,eAAgBm8E,IAAK,OAC7B,CAAEn8E,KAAM,aAAcm8E,IAAK,OAC3B,CAAEn8E,KAAM,aAAcm8E,IAAK,QAC3B,CAAEn8E,KAAM,aAAcm8E,IAAK,QAC3B,CAAEn8E,KAAM,aAAcm8E,IAAK,OAC3B,CAAEn8E,KAAM,aAAcm8E,IAAK,SAC3B,CAAEn8E,KAAM,YAAam8E,IAAK,OAC1B,CAAEn8E,KAAM,gBAAiBm8E,IAAK,OAC9B,CAAEn8E,KAAM,aAAcm8E,IAAK,OAC3B,CAAEn8E,KAAM,aAAcm8E,IAAK,QAC3B,CAAEn8E,KAAM,aAAcm8E,IAAK,QAC3B,CAAEn8E,KAAM,mBAAoBm8E,IAAK,QACjC,CAAEn8E,KAAM,kBAAmBm8E,IAAK,OAChC,CAAEn8E,KAAM,mBAAoBm8E,IAAK,MACjC,CAAEn8E,KAAM,kBAAmBm8E,IAAK,OAChC,CAAEn8E,KAAM,+BAAgCm8E,IAAK,OAC7C,CAAEn8E,KAAM,oBAAqBm8E,IAAK,OAClC,CAAEn8E,KAAM,qBAAsBm8E,IAAK,MACnC,CAAEn8E,KAAM,sBAAuBm8E,IAAK,OACpC,CAAEn8E,KAAM,kBAAmBm8E,IAAK,OAChC,CAAEn8E,KAAM,2BAA4Bm8E,IAAK,OACzC,CAAEn8E,KAAM,qBAAsBm8E,IAAK,OACnC,CAAEn8E,KAAM,2BAA4Bm8E,IAAK,OACzC,CAAEn8E,KAAM,2BAA4Bm8E,IAAK,QACzC,CAAEn8E,KAAM,iBAAkBm8E,IAAK,QAExBC,EAAU,SAAU/tE,GAE3B,YADY,IAARA,IAAkBA,EAAM,CAAC,GACM,IAA5B7G,OAAOC,KAAK4G,GAAKhM,MAC5B,EACWg6E,EAAc,SAAUC,EAAMC,EAAOC,GAC5C,IAAKF,IAASA,EAAK5oE,KACf,OAAO,EAEX,IAAI+oE,EAAOD,GAAe,SAARA,GAAkB,EAAI,EAkBxC,OAjBAF,EAAK5oE,MAAK,SAAUlF,EAAGC,GACnB,IAAIiuE,EAAQluE,EAAE+tE,GACVI,EAAQluE,EAAE8tE,GACd,MAAqB,qBAAVI,EACiB,qBAAVD,EAAwB,EAAI,EAAID,EAE7B,qBAAVC,GAGPA,EAAQC,GAFA,EAAIF,EAKZC,EAAQC,EACD,EAAIF,EAER,CACX,KACO,CACX,EACWG,EAAuB,SAAUvuE,EAAKwuE,GAC7C,IAAIttE,EAAM/H,OAAOkJ,OAAO,CAAC,EAAGrC,GAW5B,OAVIwuE,IACoB,kBAATA,SACAttE,EAAIstE,GAGXA,EAAKx9E,SAAQ,SAAU2tD,UACZz9C,EAAIy9C,EACf,KAGDz9C,CACX,EACWutE,EAAwB,SAAUC,EAAU1xC,QACpC,IAAXA,IAAqBA,EAAS,4BAClC,IAAIjlC,EAAO22E,EAASv9E,cAChBw9E,EAAWd,EAASv5D,QAAO,SAAUs6D,GAAQ,OAAO72E,EAAK82E,SAAS,IAAMD,EAAKd,IAAM,IACvF,OAAOa,EAAS36E,OAAS,EAAI26E,EAAS,GAAGh9E,KAAOqrC,CACpD,EACW8xC,EAAa,SAAUC,GAC9B,IAAIp9E,EAAOo9E,EAAY59E,cACvB,QAAIQ,EAAKs3E,WAAW,WAGZ,qBAAuBt3E,GAC3B,oBAAsBA,GACtB,mBAAqBA,EAC7B,EACWq9E,EAAuB,WAG9B,IAFA,IAAI/vE,EAAS,GACT2yC,EAAQ,iEACH99C,EAAI,GAAIA,EAAI,EAAGA,GAAK,EACzBmL,GAAU2yC,EAAMjwC,KAAKC,MAAMD,KAAKmwC,SAAWF,EAAM59C,SAErD,OAAOiL,CACX,EACWgwE,EAAsB,SAAUv7E,GACvC,GAAIA,EAAQw7E,WACR,OAAOx7E,EACX,IAAI82E,GAAY,EACZ2E,GAAa,EACbC,GAAe,EACfnwE,EAASvL,EAAQE,MAAK,SAAUpG,GAGhC,OAFA4hF,GAAe,EACf5E,GAAY,EACLh9E,CACX,IAAG,SAAU6M,GAGT,MAFA80E,GAAa,EACb3E,GAAY,EACNnwE,CACV,IAIA,OAHA4E,EAAOmwE,aAAe,WAAc,OAAOA,CAAc,EACzDnwE,EAAOurE,UAAY,WAAc,OAAOA,CAAW,EACnDvrE,EAAOkwE,WAAa,WAAc,OAAOA,CAAY,EAC9ClwE,CACX,EACWowE,EAAc,WACrB,GAAoB,qBAATl4D,KACP,OAAO,EAEX,IAAIm4D,EAAcn4D,KAClB,MAAgD,qBAAlCm4D,EAAYC,mBACtBp4D,gBAAgBm4D,EAAYC,iBACpC,EACWC,EAAgB,WACvB,IAAIzjC,EAA8B,qBAAX9tC,QAAqD,qBAApBA,OAAOzB,SAC3DmhB,EAA4B,qBAAZ/jB,SACI,MAApBA,QAAQ61E,UACiB,MAAzB71E,QAAQ61E,SAASh2D,KACrB,MAAO,CACHsyB,UAAWA,EACXpuB,OAAQA,EAEhB,EAOW+xD,EAAyB,SAAU1vE,EAAK2vE,EAAoBC,GAGnE,QAF2B,IAAvBD,IAAiCA,EAAqB,SAC7B,IAAzBC,IAAmCA,EAAuB,KACzDC,EAAe7vE,GAChB,OAAOA,EACX,IAAIkB,EAAM,CAAC,EACX,IAAK,IAAIhQ,KAAO8O,EACZ,GAAIA,EAAIC,eAAe/O,GAAM,CACzB,IAAI4+E,EAAgBH,EAAmB9nE,SAAS3W,GAC1CA,EACAA,EAAI,GAAGC,cAAgBD,EAAI0H,MAAM,GACvCsI,EAAI4uE,GAAiBF,EAAqB/nE,SAAS3W,GAC7C8O,EAAI9O,GACJw+E,EAAuB1vE,EAAI9O,GAAMy+E,EAAoBC,EAC/D,CAEJ,OAAO1uE,CACX,EAOW6uE,EAAyB,SAAU/vE,EAAK2vE,EAAoBC,GAGnE,QAF2B,IAAvBD,IAAiCA,EAAqB,SAC7B,IAAzBC,IAAmCA,EAAuB,KACzDC,EAAe7vE,GAChB,OAAOA,EACX,IAAIkB,EAAM,CAAC,EACX,IAAK,IAAIhQ,KAAO8O,EACZ,GAAIA,EAAIC,eAAe/O,GAAM,CACzB,IAAI8+E,EAAiBL,EAAmB9nE,SAAS3W,GAC3CA,EACAA,EAAI,GAAGxB,cAAgBwB,EAAI0H,MAAM,GACvCsI,EAAI8uE,GAAkBJ,EAAqB/nE,SAAS3W,GAC9C8O,EAAI9O,GACJ6+E,EAAuB/vE,EAAI9O,GAAMy+E,EAAoBC,EAC/D,CAEJ,OAAO1uE,CACX,EAMW2uE,EAAiB,SAAU7vE,GAClC,OAAQA,aAAe7G,UACjB6G,aAAejK,UACfiK,aAAe8X,aACf9X,aAAewB,WACfxB,aAAeof,WACfpf,aAAe4H,QACzB,GAIwB,WACpB,SAASqoE,IACT,CACAA,EAAGlC,QAAUA,EACbkC,EAAGjC,YAAcA,EACjBiC,EAAG1B,qBAAuBA,EAC1B0B,EAAGxB,sBAAwBA,EAC3BwB,EAAGnB,WAAaA,EAChBmB,EAAGjB,qBAAuBA,EAC1BiB,EAAGhB,oBAAsBA,EACzBgB,EAAGZ,YAAcA,EACjBY,EAAGT,cAAgBA,EACnBS,EAAGP,uBAAyBA,EAC5BO,EAAGF,uBAAyBA,EAC5BE,EAAGJ,eAAiBA,CAExB,EAhBuB,E,oEC9MvB,ICsCWK,EDnCPC,EAA0B,UCJ1B58C,EAAsC,SAASxtB,GAC/C,IAAImC,EAAsB,oBAAXhC,QAAyBA,OAAOC,SAAUF,EAAIiC,GAAKnC,EAAEmC,GAAIpU,EAAI,EAC5E,GAAImS,EAAG,OAAOA,EAAEzO,KAAKuO,GACrB,GAAIA,GAAyB,kBAAbA,EAAE/R,OAAqB,MAAO,CAC1CsS,KAAM,WAEF,OADIP,GAAKjS,GAAKiS,EAAE/R,SAAQ+R,OAAI,GACrB,CAAEzW,MAAOyW,GAAKA,EAAEjS,KAAMlG,MAAOmY,EACxC,GAEJ,MAAM,IAAIvS,UAAU0U,EAAI,0BAA4B,kCACxD,EACIpC,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACX,EACIm1B,EAAsC,WACtC,IAAK,IAAIn1B,EAAK,GAAIvS,EAAI,EAAGA,EAAIuH,UAAUrH,OAAQF,IAAKuS,EAAKA,EAAGpQ,OAAO6P,EAAOzK,UAAUvH,KACpF,OAAOuS,CACX,EAEI+pE,EAAa,CACbC,QAAS,EACTC,MAAO,EACPC,KAAM,EACNC,KAAM,EACNC,MAAO,IAGX,SAAWP,GACPA,EAAS,SAAW,QACpBA,EAAS,SAAW,QACpBA,EAAS,QAAU,OACnBA,EAAS,QAAU,OACnBA,EAAS,WAAa,SACzB,EAND,CAMGA,IAAaA,EAAW,CAAC,IAK5B,IAAIQ,EAA+B,WAK/B,SAASA,EAAc34E,EAAM44E,QACX,IAAVA,IAAoBA,EAAQT,EAASM,MACzCp9E,KAAK2E,KAAOA,EACZ3E,KAAKu9E,MAAQA,EACbv9E,KAAKkyC,YAAc,EACvB,CA8KA,OA7KAorC,EAAcn+E,UAAUq+E,SAAW,SAAU5qE,GACzC,OAAOA,EAAI,GAAK,IAAMA,EAAI,GAAKA,CACnC,EACA0qE,EAAcn+E,UAAUs+E,IAAM,WAC1B,IAAIrlE,EAAK,IAAIlP,KACb,MAAQ,CAAClJ,KAAKw9E,SAASplE,EAAGslE,cAAe19E,KAAKw9E,SAASplE,EAAGulE,eAAen1E,KAAK,KAC1E,IACA4P,EAAGwlE,iBACX,EACAN,EAAcn+E,UAAUwQ,UAAY,SAAU7V,GAC1C,OAAKA,GAELkG,KAAK6/B,QAAU/lC,EACRkG,KAAK6/B,SAFD7/B,KAAK6/B,OAGpB,EAQAy9C,EAAcn+E,UAAU0+E,KAAO,SAAUt/E,GAGrC,IAFA,IAAI0iC,EAAKrtB,EACLkzB,EAAM,GACDwc,EAAK,EAAGA,EAAKr7C,UAAUrH,OAAQ0iD,IACpCxc,EAAIwc,EAAK,GAAKr7C,UAAUq7C,GAE5B,IAAIw6B,EAAoB99E,KAAKu9E,MACzBD,EAAcS,YACdD,EAAoBR,EAAcS,WAEhB,qBAAXlzE,QAA0BA,OAAOkzE,YACxCD,EAAoBjzE,OAAOkzE,WAE/B,IAAIC,EAAehB,EAAWc,GAC1BG,EAAajB,EAAWz+E,GAC5B,GAAM0/E,GAAcD,EAApB,CAIA,IAAI9rE,EAAMhG,QAAQgG,IAAItT,KAAKsN,SACvB3N,IAASu+E,EAASO,OAASnxE,QAAQhJ,QACnCgP,EAAMhG,QAAQhJ,MAAMtE,KAAKsN,UAEzB3N,IAASu+E,EAASM,MAAQlxE,QAAQC,OAClC+F,EAAMhG,QAAQC,KAAKvN,KAAKsN,UAE5B,IAAIqV,EAAS,IAAMhjB,EAAO,KAAOyB,KAAKy9E,MAAQ,IAAMz9E,KAAK2E,KACrD5E,EAAU,GACd,GAAmB,IAAf+mC,EAAIlmC,QAAkC,kBAAXkmC,EAAI,GAC/B/mC,EAAUwhB,EAAS,MAAQulB,EAAI,GAC/B50B,EAAInS,QAEH,GAAmB,IAAf+mC,EAAIlmC,OACTb,EAAUwhB,EAAS,IAAMulB,EAAI,GAC7B50B,EAAIqP,EAAQulB,EAAI,SAEf,GAAsB,kBAAXA,EAAI,GAAiB,CACjC,IAAIl6B,EAAMk6B,EAAIthC,MAAM,GACD,IAAfoH,EAAIhM,SACJgM,EAAMA,EAAI,IAEd7M,EAAUwhB,EAAS,MAAQulB,EAAI,GAAK,IAAMl6B,EAC1CsF,EAAIqP,EAAS,MAAQulB,EAAI,GAAIl6B,EACjC,MAEI7M,EAAUwhB,EAAS,IAAMulB,EACzB50B,EAAIqP,EAAQulB,GAEhB,IACI,IAAK,IAAI7tB,EAAKknB,EAASngC,KAAKkyC,aAAct2B,EAAK3C,EAAG/F,QAAS0I,EAAGphB,KAAMohB,EAAK3C,EAAG/F,OAAQ,CAChF,IAAI8rD,EAASpjD,EAAG1f,MACZgiF,EAAW,CAAEn+E,QAASA,EAASwP,UAAWrG,KAAKO,OACnDu1D,EAAOmf,SAAS,CAACD,GACrB,CACJ,CACA,MAAO98C,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQxlB,IAAOA,EAAGphB,OAASoZ,EAAKqF,EAAGooB,SAASztB,EAAGxP,KAAK6U,EACpD,CACA,QAAU,GAAIgoB,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CA3CA,CA4CJ,EAOAo6E,EAAcn+E,UAAU+S,IAAM,WAE1B,IADA,IAAI40B,EAAM,GACDwc,EAAK,EAAGA,EAAKr7C,UAAUrH,OAAQ0iD,IACpCxc,EAAIwc,GAAMr7C,UAAUq7C,GAExBtjD,KAAK69E,KAAKj7E,MAAM5C,KAAMooC,EAAS,CAAC00C,EAASK,MAAOr2C,GACpD,EAOAw2C,EAAcn+E,UAAU0vD,KAAO,WAE3B,IADA,IAAI/nB,EAAM,GACDwc,EAAK,EAAGA,EAAKr7C,UAAUrH,OAAQ0iD,IACpCxc,EAAIwc,GAAMr7C,UAAUq7C,GAExBtjD,KAAK69E,KAAKj7E,MAAM5C,KAAMooC,EAAS,CAAC00C,EAASK,MAAOr2C,GACpD,EAOAw2C,EAAcn+E,UAAUgN,KAAO,WAE3B,IADA,IAAI26B,EAAM,GACDwc,EAAK,EAAGA,EAAKr7C,UAAUrH,OAAQ0iD,IACpCxc,EAAIwc,GAAMr7C,UAAUq7C,GAExBtjD,KAAK69E,KAAKj7E,MAAM5C,KAAMooC,EAAS,CAAC00C,EAASM,MAAOt2C,GACpD,EAOAw2C,EAAcn+E,UAAU+D,MAAQ,WAE5B,IADA,IAAI4jC,EAAM,GACDwc,EAAK,EAAGA,EAAKr7C,UAAUrH,OAAQ0iD,IACpCxc,EAAIwc,GAAMr7C,UAAUq7C,GAExBtjD,KAAK69E,KAAKj7E,MAAM5C,KAAMooC,EAAS,CAAC00C,EAASO,OAAQv2C,GACrD,EAOAw2C,EAAcn+E,UAAUiY,MAAQ,WAE5B,IADA,IAAI0vB,EAAM,GACDwc,EAAK,EAAGA,EAAKr7C,UAAUrH,OAAQ0iD,IACpCxc,EAAIwc,GAAMr7C,UAAUq7C,GAExBtjD,KAAK69E,KAAKj7E,MAAM5C,KAAMooC,EAAS,CAAC00C,EAASI,OAAQp2C,GACrD,EAOAw2C,EAAcn+E,UAAUi/E,QAAU,WAE9B,IADA,IAAIt3C,EAAM,GACDwc,EAAK,EAAGA,EAAKr7C,UAAUrH,OAAQ0iD,IACpCxc,EAAIwc,GAAMr7C,UAAUq7C,GAExBtjD,KAAK69E,KAAKj7E,MAAM5C,KAAMooC,EAAS,CAAC00C,EAASG,SAAUn2C,GACvD,EACAw2C,EAAcn+E,UAAUozC,aAAe,SAAUD,GACzCA,GAAaA,EAAU+rC,oBAAsBtB,IAC7C/8E,KAAKkyC,YAAYhxC,KAAKoxC,GACtBA,EAAU3iC,UAAU3P,KAAK6/B,SAEjC,EACAy9C,EAAcn+E,UAAUm/E,eAAiB,WACrC,OAAOt+E,KAAKkyC,WAChB,EACAorC,EAAcS,UAAY,KACnBT,CACX,CAzLkC,E,8FC9D3B,IAAIxxE,EAAU,SCYjByyE,EAAkB,eAAiBzyE,EAC5BiQ,EAAW,CAClBhS,UAAWw0E,EAAkB,MAC7B5xE,QAAS,GACT7C,UAAW,KACXkS,eAAe,GAEnB,GAAyB,qBAAdlS,WAA6BA,UAAU6C,QAG9C,OAFAoP,EAASpP,QAAU7C,UAAU6C,SAAW,GACxCoP,EAASjS,UAAYA,WAAa,KAC1BA,UAAU6C,SACd,IAAK,cACDoP,EAAShS,UAAYw0E,EAAkB,gBACvCxiE,EAASC,eAAgB,EACzB,MACJ,QACID,EAAShS,UAAYw0E,EAAkB,MACvCxiE,EAASC,eAAgB,EACzB,MAGL,IAAIwiE,EAAsB,SAAUtxE,GACvC,MAAO,GAAK6O,EAAShS,WAAamD,GAAoB,GAC1D,C,sECxBA,IAAIuxE,EAAa,CAAC,EAEdC,EAA+B,WAC/B,SAASA,IACT,CAsCA,OA/BAA,EAAc7vE,QAAU,SAAU/Q,EAAK5B,GAEnC,OADAuiF,EAAW3gF,GAAO5B,EACXuiF,EAAW3gF,EACtB,EAOA4gF,EAAc9vE,QAAU,SAAU9Q,GAC9B,OAAOiI,OAAO5G,UAAU0N,eAAezI,KAAKq6E,EAAY3gF,GAClD2gF,EAAW3gF,QACXJ,CACV,EAMAghF,EAAc5vE,WAAa,SAAUhR,GACjC,cAAc2gF,EAAW3gF,EAC7B,EAKA4gF,EAAc/vE,MAAQ,WAElB,OADA8vE,EAAa,CAAC,EACPA,CACX,EACOC,CACX,CAzCkC,GA2C9B/wE,EAA+B,WAK/B,SAASA,IACL,IACI3N,KAAK2+E,cAAgB9zE,OAAOguC,aAC5B74C,KAAK2+E,cAAc9vE,QAAQ,sBAAuB,GAClD7O,KAAK2+E,cAAc7vE,WAAW,sBAClC,CACA,MAAO8vE,GACH5+E,KAAK2+E,cAAgBD,CACzB,CACJ,CAQA,OAHA/wE,EAAcxO,UAAUyO,WAAa,WACjC,OAAO5N,KAAK2+E,aAChB,EACOhxE,CACX,CAvBkC,E,0GCzD9BkC,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAG/C,GAI7B,OAHA8C,EAAgB/J,OAAOiK,gBAClB,CAAEC,UAAW,cAAgBtN,OAAS,SAAUoN,EAAG/C,GAAK+C,EAAEE,UAAYjD,CAAG,GAC1E,SAAU+C,EAAG/C,GAAK,IAAK,IAAIkD,KAAKlD,EAAOA,EAAEH,eAAeqD,KAAIH,EAAEG,GAAKlD,EAAEkD,GAAI,EACtEJ,EAAcC,EAAG/C,EAC5B,EACA,OAAO,SAAU+C,EAAG/C,GAEhB,SAASmD,IAAOnQ,KAAKoM,YAAc2D,CAAG,CADtCD,EAAcC,EAAG/C,GAEjB+C,EAAE5Q,UAAkB,OAAN6N,EAAajH,OAAO1G,OAAO2N,IAAMmD,EAAGhR,UAAY6N,EAAE7N,UAAW,IAAIgR,EACnF,CACH,CAZ2C,GAaxCsJ,EAAwC,SAAU1R,EAAS2R,EAAYC,EAAGC,GAC1E,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,EACI6G,EAA4C,SAAUhS,EAASoQ,GAC/D,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,EACIkY,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACX,EACIm1B,EAAsC,WACtC,IAAK,IAAIn1B,EAAK,GAAIvS,EAAI,EAAGA,EAAIuH,UAAUrH,OAAQF,IAAKuS,EAAKA,EAAGpQ,OAAO6P,EAAOzK,UAAUvH,KACpF,OAAOuS,CACX,EAEIlE,EAAS,IAAI,IAAO,QACpB8vE,EAAmC,SAAUxuE,GAE7C,SAASwuE,EAAkB9+E,GACvB,IAAIuQ,EAAQD,EAAOjM,KAAKpE,KAAMD,IAAYC,KAE1C,OADAsQ,EAAMwuE,cAAe,EACdxuE,CACX,CACA,OANAT,EAAUgvE,EAAmBxuE,GAMtBwuE,CACX,CARsC,CAQpC56E,OAEE86E,EAAsB,SAAUnyE,GAChC,IAAI9O,EAAM,eACV,OAAO8O,GAAOA,EAAI9O,EACtB,EAKO,SAASupE,EAAM2X,EAAiBh3E,EAAMi3E,EAASC,GAClD,OAAOzlE,EAAUzZ,UAAM,OAAQ,GAAQ,WACnC,IAAIsQ,EAAQtQ,KACZ,OAAO+Z,EAAY/Z,MAAM,SAAU4T,GAC/B,GAA+B,oBAApBorE,EACP,MAAM/6E,MAAM,sCAEhB,MAAO,CAAC,EAAc,IAAIlK,SAAQ,SAAUC,EAASC,GAAU,OAAOwf,EAAUnJ,OAAO,OAAQ,GAAQ,WAC/F,IAAI6uE,EAASC,EAAY3iF,EAAS4iF,EAAQC,EAAWp+C,EAASkpC,EAC9D,OAAOrwD,EAAY/Z,MAAM,SAAU4T,GAC/B,OAAQA,EAAGwG,OACP,KAAK,EACD+kE,EAAU,EACVC,GAAa,EACbC,EAAS,WAAc,EACvBH,GACIA,EAAY1+E,MAAK,WAEb4+E,GAAa,EAEbhxC,aAAa3xC,GACb4iF,GACJ,IACJn+C,EAAU,WACN,IAAIttB,EAAIqF,EAAIiwB,EAAOq2C,EACnB,OAAOxlE,EAAY/Z,MAAM,SAAU4b,GAC/B,OAAQA,EAAGxB,OACP,KAAK,EACD+kE,IACApwE,EAAOqI,MAAM4nE,EAAgBr6E,KAAO,aAAew6E,EAAU,oBAAsBr4E,KAAKI,UAAUc,IAClG4T,EAAGxB,MAAQ,EACf,KAAK,EAID,OAHAwB,EAAGtB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACtB0S,EAAK,CAAC,EACNqF,EAAKjf,EACE,CAAC,EAAaglF,EAAgBp8E,WAAM,EAAQwlC,EAASpgC,KAChE,KAAK,EAAG,MAAO,CAAC,GAAe4L,EAAG1X,MAAQ+c,EAAGrW,WAAM,EAAQ,CAACgZ,EAAGvB,SAAUzG,IACzE,KAAK,EAID,OAHAs1B,EAAQttB,EAAGvB,OACXilE,EAAYp2C,EACZn6B,EAAOqI,MAAM,YAAc4nE,EAAgBr6E,KAAMukC,GAC7C61C,EAAoB71C,IACpBn6B,EAAOqI,MAAM4nE,EAAgBr6E,KAAO,uBAAwBukC,GACrD,CAAC,EAAc,CAAEhtC,MAAOjC,EAAOivC,OAE1Cq2C,EAAYN,EAAQE,EAASn3E,EAAMkhC,GACnCn6B,EAAOqI,MAAM4nE,EAAgBr6E,KAAO,gBAAkB46E,EAAY,QAC9C,IAAdA,GAAuBH,EACtB,CAAC,EAAc,CAAEljF,MAAOjC,EAAOivC,KADW,CAAC,EAAa,IAEnE,KAAK,EAAG,MAAO,CAAC,EAAa,IAAInvC,SAAQ,SAAUiZ,GAC3CqsE,EAASrsE,EACTvW,EAAUK,WAAWuiF,EAAQE,EACjC,KACJ,KAAK,EACD3jE,EAAGvB,OACHuB,EAAGxB,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAa,GAC7B,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,EACAxG,EAAGwG,MAAQ,EACf,KAAK,EACD,OAAMglE,EAAmB,CAAC,EAAa,GAChC,CAAC,EAAcl+C,KAC1B,KAAK,EAED,OADAkpC,EAAUx2D,EAAGyG,OACU,kBAAZ+vD,EACA,CAAC,EAAcA,EAAQluE,OAC3B,CAAC,EAAa,GACzB,KAAK,EAGD,OADAjC,EAAOqlF,GACA,CAAC,GAEpB,GACJ,GAAI,IACZ,GACJ,GACJ,CACA,IAAIz7C,EAAe,IAKZ,SAAS27C,EAAgBC,QACT,IAAfA,IAAyBA,EAAa57C,GAC1C,IAAI67C,EAAe,IACfC,EAAgB,IACpB,OAAO,SAAUR,GACb,IAAIS,EAAQrxE,KAAK86D,IAAI,EAAG8V,GAAWO,EAAeC,EAAgBpxE,KAAKmwC,SACvE,QAAOkhC,EAAQH,IAAqBG,CACxC,CACJ,CAKO,IAAIC,EAA2B,SAAUb,EAAiBh3E,EAAMy3E,EAAYP,GAE/E,YADmB,IAAfO,IAAyBA,EAAa57C,GACnCwjC,EAAM2X,EAAiBh3E,EAAMw3E,EAAgBC,GAAaP,EACrE,C,wBC9LA,IAAIY,EAAK,EAAQ,OACbzV,EAAK,EAAQ,MAEb5kC,EAAO4kC,EACX5kC,EAAKq6C,GAAKA,EACVr6C,EAAK4kC,GAAKA,EAEVnxE,EAAOC,QAAUssC,C,oBCFjB,IADA,IAAIs6C,EAAY,GACPr/E,EAAI,EAAGA,EAAI,MAAOA,EACzBq/E,EAAUr/E,IAAMA,EAAI,KAAOT,SAAS,IAAIoL,OAAO,GAGjD,SAAS20E,EAAYC,EAAKtrE,GACxB,IAAIjU,EAAIiU,GAAU,EACdurE,EAAMH,EAEV,MAAO,CACLG,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MACvBw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MAAO,IAC9Bw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MAAO,IAC9Bw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MAAO,IAC9Bw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MAAO,IAC9Bw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MACvBw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MACvBw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,OACtB8H,KAAK,GACV,CAEAtP,EAAOC,QAAU6mF,C,oBClBjB,IAAIhhC,EAAqC,oBAAZ,QAA2BD,OAAOC,iBAAmBD,OAAOC,gBAAgBpgD,KAAKmgD,SACnE,oBAAd,UAAuE,mBAAnCl0C,OAAOs1E,SAASnhC,iBAAiCmhC,SAASnhC,gBAAgBpgD,KAAKuhF,UAEhJ,GAAInhC,EAAiB,CAEnB,IAAIohC,EAAQ,IAAIthC,WAAW,IAE3B5lD,EAAOC,QAAU,WAEf,OADA6lD,EAAgBohC,GACTA,CACT,CACF,KAAO,CAKL,IAAIC,EAAO,IAAI19E,MAAM,IAErBzJ,EAAOC,QAAU,WACf,IAAK,IAAW6Z,EAAPtS,EAAI,EAAMA,EAAI,GAAIA,IACN,KAAV,EAAJA,KAAiBsS,EAAoB,WAAhBzE,KAAKmwC,UAC/B2hC,EAAK3/E,GAAKsS,MAAY,EAAJtS,IAAa,GAAK,IAGtC,OAAO2/E,CACT,CACF,C,wBCjCA,IAQIC,EACAC,EATAC,EAAM,EAAQ,OACdR,EAAc,EAAQ,OAWtBS,EAAa,EACbC,EAAa,EAGjB,SAASZ,EAAGv8E,EAAS08E,EAAKtrE,GACxB,IAAIjU,EAAIu/E,GAAOtrE,GAAU,EACrB3H,EAAIizE,GAAO,GAEf18E,EAAUA,GAAW,CAAC,EACtB,IAAI8iB,EAAO9iB,EAAQ8iB,MAAQi6D,EACvBK,OAAgCjjF,IAArB6F,EAAQo9E,SAAyBp9E,EAAQo9E,SAAWJ,EAKnE,GAAY,MAARl6D,GAA4B,MAAZs6D,EAAkB,CACpC,IAAIC,EAAYJ,IACJ,MAARn6D,IAEFA,EAAOi6D,EAAU,CACA,EAAfM,EAAU,GACVA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,KAGtD,MAAZD,IAEFA,EAAWJ,EAAiD,OAApCK,EAAU,IAAM,EAAIA,EAAU,IAE1D,CAMA,IAAIC,OAA0BnjF,IAAlB6F,EAAQs9E,MAAsBt9E,EAAQs9E,OAAQ,IAAI33E,MAAOgF,UAIjE4yE,OAA0BpjF,IAAlB6F,EAAQu9E,MAAsBv9E,EAAQu9E,MAAQJ,EAAa,EAGnEtoE,EAAMyoE,EAAQJ,GAAeK,EAAQJ,GAAY,IAcrD,GAXItoE,EAAK,QAA0B1a,IAArB6F,EAAQo9E,WACpBA,EAAWA,EAAW,EAAI,QAKvBvoE,EAAK,GAAKyoE,EAAQJ,SAAiC/iF,IAAlB6F,EAAQu9E,QAC5CA,EAAQ,GAINA,GAAS,IACX,MAAM,IAAI78E,MAAM,mDAGlBw8E,EAAaI,EACbH,EAAaI,EACbP,EAAYI,EAGZE,GAAS,YAGT,IAAIE,GAA4B,KAAb,UAARF,GAA6BC,GAAS,WACjD9zE,EAAEtM,KAAOqgF,IAAO,GAAK,IACrB/zE,EAAEtM,KAAOqgF,IAAO,GAAK,IACrB/zE,EAAEtM,KAAOqgF,IAAO,EAAI,IACpB/zE,EAAEtM,KAAY,IAALqgF,EAGT,IAAIC,EAAOH,EAAQ,WAAc,IAAS,UAC1C7zE,EAAEtM,KAAOsgF,IAAQ,EAAI,IACrBh0E,EAAEtM,KAAa,IAANsgF,EAGTh0E,EAAEtM,KAAOsgF,IAAQ,GAAK,GAAM,GAC5Bh0E,EAAEtM,KAAOsgF,IAAQ,GAAK,IAGtBh0E,EAAEtM,KAAOigF,IAAa,EAAI,IAG1B3zE,EAAEtM,KAAkB,IAAXigF,EAGT,IAAK,IAAI/tE,EAAI,EAAGA,EAAI,IAAKA,EACvB5F,EAAEtM,EAAIkS,GAAKyT,EAAKzT,GAGlB,OAAOqtE,GAAYD,EAAYhzE,EACjC,CAEA9T,EAAOC,QAAU2mF,C,uBC5GjB,IAAIU,EAAM,EAAQ,OACdR,EAAc,EAAQ,OAE1B,SAAS3V,EAAG9mE,EAAS08E,EAAKtrE,GACxB,IAAIjU,EAAIu/E,GAAOtrE,GAAU,EAEF,iBAAb,IACRsrE,EAAkB,WAAZ18E,EAAuB,IAAIZ,MAAM,IAAM,KAC7CY,EAAU,MAEZA,EAAUA,GAAW,CAAC,EAEtB,IAAI88E,EAAO98E,EAAQm7C,SAAWn7C,EAAQi9E,KAAOA,KAO7C,GAJAH,EAAK,GAAgB,GAAVA,EAAK,GAAa,GAC7BA,EAAK,GAAgB,GAAVA,EAAK,GAAa,IAGzBJ,EACF,IAAK,IAAI5kD,EAAK,EAAGA,EAAK,KAAMA,EAC1B4kD,EAAIv/E,EAAI26B,GAAMglD,EAAKhlD,GAIvB,OAAO4kD,GAAOD,EAAYK,EAC5B,CAEAnnF,EAAOC,QAAUkxE,C,mCC3BjBtkE,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,G,mCCAtD6J,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,G,mCCAtD6J,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,G,mCCAtD6J,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,G,mCCAtD6J,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQ8nF,gBAAa,EACrB,IAAIC,EAAwB,CACxB,UACA,SACA,UACA,YACA,cACA,YACA,OACA,UAEJ,SAASC,EAAqBt2E,GAC1B,MAAO,yBAA0BA,GAAU,aAAcA,CAC7D,CAKA,SAASo2E,EAAWp2E,GAChB,GAAIs2E,EAAqBt2E,SAAsCnN,IAA3BmN,EAAOs1E,SAASiB,OAAsB,CACtE,IAAIxtE,EAAK/I,EAAOs1E,SAAUnhC,EAAkBprC,EAAGorC,gBAAiBqiC,EAAWztE,EAAGwtE,OAC9E,OAAOF,EACFrrE,KAAI,SAAUyrE,GAAc,OAAOD,EAASC,EAAa,IACzDz+E,OAAOm8C,GACP7D,OAAM,SAAU9+C,GAAU,MAAyB,oBAAXA,CAAuB,GACxE,CACA,OAAO,CACX,CACAlD,EAAQ8nF,WAAaA,C,qCC7BrBl7E,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD,IAAIqlF,EAAU,EAAQ,OACtBA,EAAQC,aAAa,EAAQ,OAAsBroF,GACnDooF,EAAQC,aAAa,EAAQ,OAAUroF,GACvCooF,EAAQC,aAAa,EAAQ,OAAmBroF,GAChDooF,EAAQC,aAAa,EAAQ,OAAqBroF,GAClDooF,EAAQC,aAAa,EAAQ,OAAeroF,E,mCCN5C4M,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQsoF,mBAAqBtoF,EAAQuoF,kBAAoBvoF,EAAQwoF,kBAAe,EAChFxoF,EAAQwoF,aAAe,CAAEh9E,KAAM,WAC/BxL,EAAQuoF,kBAAoB,CACxB/8E,KAAM,OACN6F,KAAMrR,EAAQwoF,cAElBxoF,EAAQsoF,mBAAqB,IAAI3iC,WAAW,CACxC,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,I,qCCvCJ/4C,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQ+zE,YAAS,EACjB,IAAI0U,EAAe,EAAQ,OACvBC,EAAoB,EAAQ,OAC5BC,EAAc,EAAQ,OACtBC,EAAwB,EAAQ,OAChCC,EAAmB,EAAQ,OAC3BC,EAAuB,EAAQ,OAC/B/U,EAAwB,WACxB,SAASA,EAAOmE,IACR,EAAI0Q,EAAsBG,oBAAmB,EAAID,EAAqBE,iBACtEniF,KAAKwK,KAAO,IAAIq3E,EAAkB3U,OAAOmE,IAEpC,EAAI2Q,EAAiBf,aAAY,EAAIgB,EAAqBE,iBAC/DniF,KAAKwK,KAAO,IAAIo3E,EAAa1U,OAAOmE,GAGpCrxE,KAAKwK,KAAO,IAAIs3E,EAAY5U,OAAOmE,EAE3C,CAOA,OANAnE,EAAO/tE,UAAUmW,OAAS,SAAUlb,EAAMgoF,GACtCpiF,KAAKwK,KAAK8K,OAAOlb,EAAMgoF,EAC3B,EACAlV,EAAO/tE,UAAUmyE,OAAS,WACtB,OAAOtxE,KAAKwK,KAAK8mE,QACrB,EACOpE,CACX,CAnB2B,GAoB3B/zE,EAAQ+zE,OAASA,C,qCC5BjBnnE,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQ+zE,YAAS,EACjB,IAAImV,EAAgB,EAAQ,OACxBC,EAAc,EAAQ,OACtBC,EAAsB,EAAQ,MAC9BN,EAAuB,EAAQ,OAC/B/U,EAAwB,WACxB,SAASA,EAAOmE,GACRA,GACArxE,KAAK8xB,UAAY0wD,EAAcnR,GAAQ7wE,MAAK,SAAUiiF,GAClD,OAAO,EAAIR,EAAqBE,gBAAgBhC,SAASiB,OAAOnpE,KAAKqqE,EAAYZ,kBAAmBe,EACxG,IACAziF,KAAK8xB,UAAUnV,OAAM,WAAc,KAGnC3c,KAAK8xB,UAAY/3B,QAAQC,SAAQ,EAAIioF,EAAqBE,gBAAgBhC,SAASiB,OAAO9P,OAAO,WAEzG,CA+BA,OA9BApE,EAAO/tE,UAAUmW,OAAS,SAAUotE,GAChC,IAAIpyE,EAAQtQ,MACR,EAAIqiF,EAAcM,aAAaD,KAGnC1iF,KAAK8xB,UAAY9xB,KAAK8xB,UAAUtxB,MAAK,SAAUsxB,GAK3C,OAJAA,EAAU90B,QAAU,WAChBsT,EAAMwhB,UAAY/3B,QAAQE,OAAO,IAAIgK,MAAM,mCAC/C,EACA6tB,EAAUtrB,QAAQo8E,EAAkBF,IAC7B5wD,CACX,IACA9xB,KAAK8xB,UAAUnV,OAAM,WAAc,IACvC,EACAuwD,EAAO/tE,UAAUmyE,OAAS,WACtB,OAAOtxE,KAAK8xB,UAAUtxB,MAAK,SAAUsxB,GACjC,OAAO,IAAI/3B,SAAQ,SAAUC,EAASC,GAClC63B,EAAU90B,QAAU,WAChB/C,EAAO,IAAIgK,MAAM,qCACrB,EACA6tB,EAAU+wC,WAAa,WACf/wC,EAAUjmB,QACV7R,EAAQ,IAAI8kD,WAAWhtB,EAAUjmB,SAErC5R,EAAO,IAAIgK,MAAM,qCACrB,EACA6tB,EAAU+wD,QACd,GACJ,GACJ,EACO3V,CACX,CA3C2B,GA6C3B,SAASsV,EAAcnR,GACnB,OAAO,IAAIt3E,SAAQ,SAAUC,EAASC,GAClC,IAAI6oF,GAAe,EAAIb,EAAqBE,gBAAgBhC,SAASiB,OAAO2B,UAAU,MAAOH,EAAkBvR,GAASiR,EAAYZ,mBAAmB,EAAO,CAAC,SAC/JoB,EAAajgB,WAAa,WAClBigB,EAAaj3E,QACb7R,EAAQ8oF,EAAaj3E,QAEzB5R,EAAO,IAAIgK,MAAM,8CACrB,EACA6+E,EAAa9lF,QAAU,WACnB/C,EAAO,IAAIgK,MAAM,mCACrB,CACJ,GACJ,CACA,SAAS2+E,EAAkBxoF,GACvB,MAAoB,kBAATA,GACA,EAAImoF,EAAoBnV,UAAUhzE,GAEzCiS,YAAYC,OAAOlS,GACZ,IAAI0kD,WAAW1kD,EAAKqN,OAAQrN,EAAK4oF,WAAY5oF,EAAK8kD,WAAaJ,WAAWmkC,mBAE9E,IAAInkC,WAAW1kD,EAC1B,CAvBAjB,EAAQ+zE,OAASA,C,qCClDjBnnE,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQ+pF,gBAAkB/pF,EAAQgqF,gBAAa,EAC/C,IAAI5B,EAAU,EAAQ,QACtB,EAAIA,EAAQC,cAAc,EAAQ,OAA0BroF,GAC5D,IAAIyoF,EAAe,EAAQ,OAC3B77E,OAAOuc,eAAenpB,EAAS,aAAc,CAAE8oB,YAAY,EAAMzF,IAAK,WAAc,OAAOolE,EAAa1U,MAAQ,IAChH,IAAI2U,EAAoB,EAAQ,OAChC97E,OAAOuc,eAAenpB,EAAS,kBAAmB,CAAE8oB,YAAY,EAAMzF,IAAK,WAAc,OAAOqlE,EAAkB3U,MAAQ,G,mCCL1H,SAASyV,EAAYvoF,GACjB,MAAoB,kBAATA,EACgB,IAAhBA,EAAKwG,OAEW,IAApBxG,EAAK8kD,UAChB,CAPAn5C,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQwpF,iBAAc,EAOtBxpF,EAAQwpF,YAAcA,C,qCCRtB58E,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQ+zE,YAAS,EACjB,IAAIkW,EAAS,EAAQ,OACjBd,EAAc,EAAQ,OACtBL,EAAuB,EAAQ,OAC/B/U,EAAwB,WACxB,SAASA,EAAOmE,GACZrxE,KAAK0iF,OAAS,IAAI5jC,WAAW,QACd,IAAXuyB,IACArxE,KAAKlC,IAAM,IAAI/D,SAAQ,SAAUC,EAASC,IACtC,EAAIgoF,EAAqBE,gBACpBpjC,OAAOqiC,OAAO2B,UAAU,OAAO,EAAIK,EAAOC,iBAAiBhS,GAASiR,EAAYZ,mBAAmB,EAAO,CAAC,SAC3GlhF,KAAKxG,EAASC,EACvB,IACA+F,KAAKlC,IAAI6e,OAAM,WAAc,IAErC,CA6BA,OA5BAuwD,EAAO/tE,UAAUmW,OAAS,SAAUlb,GAChC,KAAI,EAAIgpF,EAAOT,aAAavoF,GAA5B,CAGA,IAAIkb,GAAS,EAAI8tE,EAAOC,iBAAiBjpF,GACrCkpF,EAAa,IAAIxkC,WAAW9+C,KAAK0iF,OAAOxjC,WAAa5pC,EAAO4pC,YAChEokC,EAAW7lE,IAAIzd,KAAK0iF,OAAQ,GAC5BY,EAAW7lE,IAAInI,EAAQtV,KAAK0iF,OAAOxjC,YACnCl/C,KAAK0iF,OAASY,CALd,CAMJ,EACApW,EAAO/tE,UAAUmyE,OAAS,WACtB,IAAIhhE,EAAQtQ,KACZ,OAAIA,KAAKlC,IACEkC,KAAKlC,IAAI0C,MAAK,SAAU1C,GAC3B,OAAO,EAAImkF,EAAqBE,gBAC3BpjC,OAAOqiC,OAAOnpE,KAAKqqE,EAAYZ,kBAAmB5jF,EAAKwS,EAAMoyE,QAC7DliF,MAAK,SAAUpG,GAAQ,OAAO,IAAI0kD,WAAW1kD,EAAO,GAC7D,KAEA,EAAIgpF,EAAOT,aAAa3iF,KAAK0iF,QACtB3oF,QAAQC,QAAQsoF,EAAYb,oBAEhC1nF,QAAQC,UACVwG,MAAK,WACN,OAAO,EAAIyhF,EAAqBE,gBAAgBpjC,OAAOqiC,OAAO9P,OAAOgR,EAAYX,aAAcrxE,EAAMoyE,OACzG,IACKliF,MAAK,SAAUpG,GAAQ,OAAOL,QAAQC,QAAQ,IAAI8kD,WAAW1kD,GAAQ,GAC9E,EACO8yE,CACX,CAzC2B,GA0C3B/zE,EAAQ+zE,OAASA,C,qCC/CjBnnE,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQoqF,eAAY,EACpB,IAAIjB,EAAc,EAAQ,OAItBiB,EAA2B,WAC3B,SAASA,IACLvjF,KAAKk6C,MAAQspC,WAAWjjD,KAAK+hD,EAAYmB,MACzCzjF,KAAK0jF,KAAO,IAAIF,WAAW,IAC3BxjF,KAAKyH,OAAS,IAAIq3C,WAAW,IAC7B9+C,KAAK2jF,aAAe,EACpB3jF,KAAK4jF,YAAc,EAInB5jF,KAAK6jF,UAAW,CACpB,CAsGA,OArGAN,EAAUpkF,UAAUmW,OAAS,SAAUlb,GACnC,GAAI4F,KAAK6jF,SACL,MAAM,IAAI5/E,MAAM,iDAEpB,IAAIwb,EAAW,EACXy/B,EAAa9kD,EAAK8kD,WAEtB,GADAl/C,KAAK4jF,aAAe1kC,EACG,EAAnBl/C,KAAK4jF,YAAkBtB,EAAYwB,oBACnC,MAAM,IAAI7/E,MAAM,uCAEpB,MAAOi7C,EAAa,EAChBl/C,KAAKyH,OAAOzH,KAAK2jF,gBAAkBvpF,EAAKqlB,KACxCy/B,IACIl/C,KAAK2jF,eAAiBrB,EAAYyB,aAClC/jF,KAAKgkF,aACLhkF,KAAK2jF,aAAe,EAGhC,EACAJ,EAAUpkF,UAAUmyE,OAAS,WACzB,IAAKtxE,KAAK6jF,SAAU,CAChB,IAAII,EAAgC,EAAnBjkF,KAAK4jF,YAClBM,EAAa,IAAIxe,SAAS1lE,KAAKyH,OAAOA,OAAQzH,KAAKyH,OAAOu7E,WAAYhjF,KAAKyH,OAAOy3C,YAClFilC,EAAoBnkF,KAAK2jF,aAG7B,GAFAO,EAAWne,SAAS/lE,KAAK2jF,eAAgB,KAErCQ,EAAoB7B,EAAYyB,YAAczB,EAAYyB,WAAa,EAAG,CAC1E,IAAK,IAAIrjF,EAAIV,KAAK2jF,aAAcjjF,EAAI4hF,EAAYyB,WAAYrjF,IACxDwjF,EAAWne,SAASrlE,EAAG,GAE3BV,KAAKgkF,aACLhkF,KAAK2jF,aAAe,CACxB,CACA,IAASjjF,EAAIV,KAAK2jF,aAAcjjF,EAAI4hF,EAAYyB,WAAa,EAAGrjF,IAC5DwjF,EAAWne,SAASrlE,EAAG,GAE3BwjF,EAAWE,UAAU9B,EAAYyB,WAAa,EAAGx1E,KAAKC,MAAMy1E,EAAa,aAAc,GACvFC,EAAWE,UAAU9B,EAAYyB,WAAa,EAAGE,GACjDjkF,KAAKgkF,aACLhkF,KAAK6jF,UAAW,CACpB,CAGA,IAAIre,EAAM,IAAI1mB,WAAWwjC,EAAY+B,eACrC,IAAS3jF,EAAI,EAAGA,EAAI,EAAGA,IACnB8kE,EAAQ,EAAJ9kE,GAAUV,KAAKk6C,MAAMx5C,KAAO,GAAM,IACtC8kE,EAAQ,EAAJ9kE,EAAQ,GAAMV,KAAKk6C,MAAMx5C,KAAO,GAAM,IAC1C8kE,EAAQ,EAAJ9kE,EAAQ,GAAMV,KAAKk6C,MAAMx5C,KAAO,EAAK,IACzC8kE,EAAQ,EAAJ9kE,EAAQ,GAAMV,KAAKk6C,MAAMx5C,KAAO,EAAK,IAE7C,OAAO8kE,CACX,EACA+d,EAAUpkF,UAAU6kF,WAAa,WAG7B,IAFA,IAAIpwE,EAAK5T,KAAMyH,EAASmM,EAAGnM,OAAQyyC,EAAQtmC,EAAGsmC,MAC1CoqC,EAASpqC,EAAM,GAAIqqC,EAASrqC,EAAM,GAAIsqC,EAAStqC,EAAM,GAAIuqC,EAASvqC,EAAM,GAAIwqC,EAASxqC,EAAM,GAAIyqC,EAASzqC,EAAM,GAAI0qC,EAAS1qC,EAAM,GAAI2qC,EAAS3qC,EAAM,GAC/Ix5C,EAAI,EAAGA,EAAI4hF,EAAYyB,WAAYrjF,IAAK,CAC7C,GAAIA,EAAI,GACJV,KAAK0jF,KAAKhjF,IACY,IAAhB+G,EAAW,EAAJ/G,KAAkB,IACD,IAApB+G,EAAW,EAAJ/G,EAAQ,KAAc,IACT,IAApB+G,EAAW,EAAJ/G,EAAQ,KAAc,EACV,IAApB+G,EAAW,EAAJ/G,EAAQ,OAEvB,CACD,IAAIokF,EAAI9kF,KAAK0jF,KAAKhjF,EAAI,GAClBqkF,GAASD,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,IAAQA,IAAM,GACxEA,EAAI9kF,KAAK0jF,KAAKhjF,EAAI,IAClB,IAAIskF,GAASF,IAAM,EAAMA,GAAK,KAASA,IAAM,GAAOA,GAAK,IAAQA,IAAM,EACvE9kF,KAAK0jF,KAAKhjF,IACJqkF,EAAO/kF,KAAK0jF,KAAKhjF,EAAI,GAAM,IAAOskF,EAAOhlF,KAAK0jF,KAAKhjF,EAAI,IAAO,EACxE,CACA,IAAIukF,KAAWP,IAAW,EAAMA,GAAU,KACpCA,IAAW,GAAOA,GAAU,KAC5BA,IAAW,GAAOA,GAAU,KAC5BA,EAASC,GAAYD,EAASE,GAChC,IACEC,GAAWvC,EAAY4C,IAAIxkF,GAAKV,KAAK0jF,KAAKhjF,GAAM,GAAM,GACxD,EACAykF,IAASb,IAAW,EAAMA,GAAU,KAClCA,IAAW,GAAOA,GAAU,KAC5BA,IAAW,GAAOA,GAAU,MAC5BA,EAASC,EAAWD,EAASE,EAAWD,EAASC,GACnD,EACJK,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUD,EAASQ,EAAM,EACzBR,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUW,EAAKE,EAAM,CACzB,CACAjrC,EAAM,IAAMoqC,EACZpqC,EAAM,IAAMqqC,EACZrqC,EAAM,IAAMsqC,EACZtqC,EAAM,IAAMuqC,EACZvqC,EAAM,IAAMwqC,EACZxqC,EAAM,IAAMyqC,EACZzqC,EAAM,IAAM0qC,EACZ1qC,EAAM,IAAM2qC,CAChB,EACOtB,CACX,CAlH8B,GAmH9BpqF,EAAQoqF,UAAYA,C,mCCzHpBx9E,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQ2qF,oBAAsB3qF,EAAQsqF,KAAOtqF,EAAQ+rF,IAAM/rF,EAAQkrF,cAAgBlrF,EAAQ4qF,gBAAa,EAIxG5qF,EAAQ4qF,WAAa,GAIrB5qF,EAAQkrF,cAAgB,GAIxBlrF,EAAQ+rF,IAAM,IAAIE,YAAY,CAC1B,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,aAKJjsF,EAAQsqF,KAAO,CACX,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YAKJtqF,EAAQ2qF,oBAAsBv1E,KAAK86D,IAAI,EAAG,IAAM,C,qCC/FhDtjE,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD,IAAIqlF,EAAU,EAAQ,QACtB,EAAIA,EAAQC,cAAc,EAAQ,OAAeroF,E,qCCFjD4M,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQ+zE,YAAS,EACjB,IAAIqU,EAAU,EAAQ,OAClBe,EAAc,EAAQ,OACtB+C,EAAc,EAAQ,OACtBjC,EAAS,EAAQ,OACjBlW,EAAwB,WACxB,SAASA,EAAOmE,GAEZ,GADArxE,KAAKwK,KAAO,IAAI66E,EAAY9B,UACxBlS,EAAQ,CACRrxE,KAAKslF,MAAQ,IAAID,EAAY9B,UAC7B,IAAIgC,EAAQC,EAAiBnU,GACzBiU,EAAQ,IAAIxmC,WAAWwjC,EAAYyB,YACvCuB,EAAM7nE,IAAI8nE,GACV,IAAK,IAAI7kF,EAAI,EAAGA,EAAI4hF,EAAYyB,WAAYrjF,IACxC6kF,EAAM7kF,IAAM,GACZ4kF,EAAM5kF,IAAM,GAEhBV,KAAKwK,KAAK8K,OAAOiwE,GACjBvlF,KAAKslF,MAAMhwE,OAAOgwE,GAElB,IAAS5kF,EAAI,EAAGA,EAAI6kF,EAAMrmC,WAAYx+C,IAClC6kF,EAAM7kF,GAAK,CAEnB,CACJ,CAuCA,OAtCAwsE,EAAO/tE,UAAUmW,OAAS,SAAUotE,GAChC,KAAI,EAAIU,EAAOT,aAAaD,KAAW1iF,KAAKkD,MAG5C,IACIlD,KAAKwK,KAAK8K,QAAO,EAAI8tE,EAAOC,iBAAiBX,GACjD,CACA,MAAOz7E,GACHjH,KAAKkD,MAAQ+D,CACjB,CACJ,EAIAimE,EAAO/tE,UAAUoW,WAAa,WAC1B,GAAIvV,KAAKkD,MACL,MAAMlD,KAAKkD,MAEf,OAAIlD,KAAKslF,OACAtlF,KAAKslF,MAAMzB,UACZ7jF,KAAKslF,MAAMhwE,OAAOtV,KAAKwK,KAAK8mE,UAEzBtxE,KAAKslF,MAAMhU,UAEftxE,KAAKwK,KAAK8mE,QACrB,EAMApE,EAAO/tE,UAAUmyE,OAAS,WACtB,OAAO,EAAIiQ,EAAQ9nE,WAAWzZ,UAAM,OAAQ,GAAQ,WAChD,OAAO,EAAIuhF,EAAQxnE,aAAa/Z,MAAM,SAAU4T,GAC5C,MAAO,CAAC,EAAc5T,KAAKuV,aAC/B,GACJ,GACJ,EACO23D,CACX,CA3D2B,GA6D3B,SAASsY,EAAiBnU,GACtB,IAAIlZ,GAAQ,EAAIirB,EAAOC,iBAAiBhS,GACxC,GAAIlZ,EAAMjZ,WAAaojC,EAAYyB,WAAY,CAC3C,IAAI0B,EAAa,IAAIJ,EAAY9B,UACjCkC,EAAWnwE,OAAO6iD,GAClBA,EAAQstB,EAAWnU,QACvB,CACA,IAAI7pE,EAAS,IAAIq3C,WAAWwjC,EAAYyB,YAExC,OADAt8E,EAAOgW,IAAI06C,GACJ1wD,CACX,CAXAtO,EAAQ+zE,OAASA,C,qCClEjBnnE,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD,IAAIomF,EAAc,EAAQ,OAItBiB,EAA2B,WAC3B,SAASA,IACLvjF,KAAKk6C,MAAQspC,WAAWjjD,KAAK+hD,EAAYmB,MACzCzjF,KAAK0jF,KAAO,IAAIF,WAAW,IAC3BxjF,KAAKyH,OAAS,IAAIq3C,WAAW,IAC7B9+C,KAAK2jF,aAAe,EACpB3jF,KAAK4jF,YAAc,EAInB5jF,KAAK6jF,UAAW,CACpB,CAsGA,OArGAN,EAAUpkF,UAAUmW,OAAS,SAAUlb,GACnC,GAAI4F,KAAK6jF,SACL,MAAM,IAAI5/E,MAAM,iDAEpB,IAAIwb,EAAW,EACXy/B,EAAa9kD,EAAK8kD,WAEtB,GADAl/C,KAAK4jF,aAAe1kC,EACG,EAAnBl/C,KAAK4jF,YAAkBtB,EAAYwB,oBACnC,MAAM,IAAI7/E,MAAM,uCAEpB,MAAOi7C,EAAa,EAChBl/C,KAAKyH,OAAOzH,KAAK2jF,gBAAkBvpF,EAAKqlB,KACxCy/B,IACIl/C,KAAK2jF,eAAiBrB,EAAYyB,aAClC/jF,KAAKgkF,aACLhkF,KAAK2jF,aAAe,EAGhC,EACAJ,EAAUpkF,UAAUmyE,OAAS,WACzB,IAAKtxE,KAAK6jF,SAAU,CAChB,IAAII,EAAgC,EAAnBjkF,KAAK4jF,YAClBM,EAAa,IAAIxe,SAAS1lE,KAAKyH,OAAOA,OAAQzH,KAAKyH,OAAOu7E,WAAYhjF,KAAKyH,OAAOy3C,YAClFilC,EAAoBnkF,KAAK2jF,aAG7B,GAFAO,EAAWne,SAAS/lE,KAAK2jF,eAAgB,KAErCQ,EAAoB7B,EAAYyB,YAAczB,EAAYyB,WAAa,EAAG,CAC1E,IAAK,IAAIrjF,EAAIV,KAAK2jF,aAAcjjF,EAAI4hF,EAAYyB,WAAYrjF,IACxDwjF,EAAWne,SAASrlE,EAAG,GAE3BV,KAAKgkF,aACLhkF,KAAK2jF,aAAe,CACxB,CACA,IAASjjF,EAAIV,KAAK2jF,aAAcjjF,EAAI4hF,EAAYyB,WAAa,EAAGrjF,IAC5DwjF,EAAWne,SAASrlE,EAAG,GAE3BwjF,EAAWE,UAAU9B,EAAYyB,WAAa,EAAGx1E,KAAKC,MAAMy1E,EAAa,aAAc,GACvFC,EAAWE,UAAU9B,EAAYyB,WAAa,EAAGE,GACjDjkF,KAAKgkF,aACLhkF,KAAK6jF,UAAW,CACpB,CAGA,IAAIre,EAAM,IAAI1mB,WAAWwjC,EAAY+B,eACrC,IAAS3jF,EAAI,EAAGA,EAAI,EAAGA,IACnB8kE,EAAQ,EAAJ9kE,GAAUV,KAAKk6C,MAAMx5C,KAAO,GAAM,IACtC8kE,EAAQ,EAAJ9kE,EAAQ,GAAMV,KAAKk6C,MAAMx5C,KAAO,GAAM,IAC1C8kE,EAAQ,EAAJ9kE,EAAQ,GAAMV,KAAKk6C,MAAMx5C,KAAO,EAAK,IACzC8kE,EAAQ,EAAJ9kE,EAAQ,GAAMV,KAAKk6C,MAAMx5C,KAAO,EAAK,IAE7C,OAAO8kE,CACX,EACA+d,EAAUpkF,UAAU6kF,WAAa,WAG7B,IAFA,IAAIpwE,EAAK5T,KAAMyH,EAASmM,EAAGnM,OAAQyyC,EAAQtmC,EAAGsmC,MAC1CoqC,EAASpqC,EAAM,GAAIqqC,EAASrqC,EAAM,GAAIsqC,EAAStqC,EAAM,GAAIuqC,EAASvqC,EAAM,GAAIwqC,EAASxqC,EAAM,GAAIyqC,EAASzqC,EAAM,GAAI0qC,EAAS1qC,EAAM,GAAI2qC,EAAS3qC,EAAM,GAC/Ix5C,EAAI,EAAGA,EAAI4hF,EAAYyB,WAAYrjF,IAAK,CAC7C,GAAIA,EAAI,GACJV,KAAK0jF,KAAKhjF,IACY,IAAhB+G,EAAW,EAAJ/G,KAAkB,IACD,IAApB+G,EAAW,EAAJ/G,EAAQ,KAAc,IACT,IAApB+G,EAAW,EAAJ/G,EAAQ,KAAc,EACV,IAApB+G,EAAW,EAAJ/G,EAAQ,OAEvB,CACD,IAAIokF,EAAI9kF,KAAK0jF,KAAKhjF,EAAI,GAClBqkF,GAASD,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,IAAQA,IAAM,GACxEA,EAAI9kF,KAAK0jF,KAAKhjF,EAAI,IAClB,IAAIskF,GAASF,IAAM,EAAMA,GAAK,KAASA,IAAM,GAAOA,GAAK,IAAQA,IAAM,EACvE9kF,KAAK0jF,KAAKhjF,IACJqkF,EAAO/kF,KAAK0jF,KAAKhjF,EAAI,GAAM,IAAOskF,EAAOhlF,KAAK0jF,KAAKhjF,EAAI,IAAO,EACxE,CACA,IAAIukF,KAAWP,IAAW,EAAMA,GAAU,KACpCA,IAAW,GAAOA,GAAU,KAC5BA,IAAW,GAAOA,GAAU,KAC5BA,EAASC,GAAYD,EAASE,GAChC,IACEC,GAAWvC,EAAY4C,IAAIxkF,GAAKV,KAAK0jF,KAAKhjF,GAAM,GAAM,GACxD,EACAykF,IAASb,IAAW,EAAMA,GAAU,KAClCA,IAAW,GAAOA,GAAU,KAC5BA,IAAW,GAAOA,GAAU,MAC5BA,EAASC,EAAWD,EAASE,EAAWD,EAASC,GACnD,EACJK,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUD,EAASQ,EAAM,EACzBR,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUW,EAAKE,EAAM,CACzB,CACAjrC,EAAM,IAAMoqC,EACZpqC,EAAM,IAAMqqC,EACZrqC,EAAM,IAAMsqC,EACZtqC,EAAM,IAAMuqC,EACZvqC,EAAM,IAAMwqC,EACZxqC,EAAM,IAAMyqC,EACZzqC,EAAM,IAAM0qC,EACZ1qC,EAAM,IAAM2qC,CAChB,EACOtB,CACX,CAlH8B,GAmH9BpqF,EAAQoqF,UAAYA,C,mCCxHpBx9E,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IAItD/C,EAAQ4qF,WAAa,GAIrB5qF,EAAQkrF,cAAgB,GAIxBlrF,EAAQ+rF,IAAM,IAAIE,YAAY,CAC1B,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,aAKJjsF,EAAQsqF,KAAO,CACX,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YAKJtqF,EAAQ2qF,oBAAsBv1E,KAAK86D,IAAI,EAAG,IAAM,C,qCC9FhDtjE,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD,IAAIqlF,EAAU,EAAQ,OACtBA,EAAQC,aAAa,EAAQ,OAAeroF,E,qCCF5C4M,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD,IAAIqlF,EAAU,EAAQ,OAClBe,EAAc,EAAQ,OACtB+C,EAAc,EAAQ,OACtB9C,EAAsB,EAAQ,OAC9BrV,EAAwB,WACxB,SAASA,EAAOmE,GAEZ,GADArxE,KAAKwK,KAAO,IAAI66E,EAAY9B,UACxBlS,EAAQ,CACRrxE,KAAKslF,MAAQ,IAAID,EAAY9B,UAC7B,IAAIgC,EAAQC,EAAiBnU,GACzBiU,EAAQ,IAAIxmC,WAAWwjC,EAAYyB,YACvCuB,EAAM7nE,IAAI8nE,GACV,IAAK,IAAI7kF,EAAI,EAAGA,EAAI4hF,EAAYyB,WAAYrjF,IACxC6kF,EAAM7kF,IAAM,GACZ4kF,EAAM5kF,IAAM,GAEhBV,KAAKwK,KAAK8K,OAAOiwE,GACjBvlF,KAAKslF,MAAMhwE,OAAOgwE,GAElB,IAAS5kF,EAAI,EAAGA,EAAI6kF,EAAMrmC,WAAYx+C,IAClC6kF,EAAM7kF,GAAK,CAEnB,CACJ,CAuCA,OAtCAwsE,EAAO/tE,UAAUmW,OAAS,SAAUotE,GAChC,IAAIC,EAAYD,KAAW1iF,KAAKkD,MAGhC,IACIlD,KAAKwK,KAAK8K,OAAO+tE,EAAgBX,GACrC,CACA,MAAOz7E,GACHjH,KAAKkD,MAAQ+D,CACjB,CACJ,EAIAimE,EAAO/tE,UAAUoW,WAAa,WAC1B,GAAIvV,KAAKkD,MACL,MAAMlD,KAAKkD,MAEf,OAAIlD,KAAKslF,OACAtlF,KAAKslF,MAAMzB,UACZ7jF,KAAKslF,MAAMhwE,OAAOtV,KAAKwK,KAAK8mE,UAEzBtxE,KAAKslF,MAAMhU,UAEftxE,KAAKwK,KAAK8mE,QACrB,EAMApE,EAAO/tE,UAAUmyE,OAAS,WACtB,OAAOiQ,EAAQ9nE,UAAUzZ,UAAM,OAAQ,GAAQ,WAC3C,OAAOuhF,EAAQxnE,YAAY/Z,MAAM,SAAU4T,GACvC,MAAO,CAAC,EAAc5T,KAAKuV,aAC/B,GACJ,GACJ,EACO23D,CACX,CA3D2B,GA6D3B,SAASsY,EAAiBnU,GACtB,IAAIlZ,EAAQkrB,EAAgBhS,GAC5B,GAAIlZ,EAAMjZ,WAAaojC,EAAYyB,WAAY,CAC3C,IAAI0B,EAAa,IAAIJ,EAAY9B,UACjCkC,EAAWnwE,OAAO6iD,GAClBA,EAAQstB,EAAWnU,QACvB,CACA,IAAI7pE,EAAS,IAAIq3C,WAAWwjC,EAAYyB,YAExC,OADAt8E,EAAOgW,IAAI06C,GACJ1wD,CACX,CACA,SAASk7E,EAAYvoF,GACjB,MAAoB,kBAATA,EACgB,IAAhBA,EAAKwG,OAEW,IAApBxG,EAAK8kD,UAChB,CACA,SAASmkC,EAAgBjpF,GACrB,MAAoB,kBAATA,EACAmoF,EAAoBnV,SAAShzE,GAEpCiS,YAAYC,OAAOlS,GACZ,IAAI0kD,WAAW1kD,EAAKqN,OAAQrN,EAAK4oF,WAAY5oF,EAAK8kD,WAAaJ,WAAWmkC,mBAE9E,IAAInkC,WAAW1kD,EAC1B,CA1BAjB,EAAQ+zE,OAASA,C,+GC3DV,IAAIE,EAAW,SAAUjV,GAE5B,IADA,IAAIutB,EAAQ,GACHhlF,EAAI,EAAGghB,EAAMy2C,EAAMv3D,OAAQF,EAAIghB,EAAKhhB,IAAK,CAC9C,IAAIxE,EAAQi8D,EAAMhrD,WAAWzM,GAC7B,GAAIxE,EAAQ,IACRwpF,EAAMxkF,KAAKhF,QAEV,GAAIA,EAAQ,KACbwpF,EAAMxkF,KAAMhF,GAAS,EAAK,IAAc,GAARA,EAAc,UAE7C,GAAIwE,EAAI,EAAIy3D,EAAMv3D,QAA+B,SAAZ,MAAR1E,IAAqE,SAAZ,MAA1Bi8D,EAAMhrD,WAAWzM,EAAI,IAAyB,CAC3G,IAAIilF,EAAgB,QAAoB,KAARzpF,IAAiB,KAA+B,KAAxBi8D,EAAMhrD,aAAazM,IAC3EglF,EAAMxkF,KAAMykF,GAAiB,GAAM,IAAOA,GAAiB,GAAM,GAAM,IAAOA,GAAiB,EAAK,GAAM,IAAsB,GAAhBA,EAAsB,IAC1I,MAEID,EAAMxkF,KAAMhF,GAAS,GAAM,IAAOA,GAAS,EAAK,GAAM,IAAc,GAARA,EAAc,IAElF,CACA,OAAO4iD,WAAWve,KAAKmlD,EAC3B,EASWrY,EAAS,SAAUlV,GAE1B,IADA,IAAIytB,EAAU,GACLllF,EAAI,EAAGghB,EAAMy2C,EAAMv3D,OAAQF,EAAIghB,EAAKhhB,IAAK,CAC9C,IAAImlF,EAAO1tB,EAAMz3D,GACjB,GAAImlF,EAAO,IACPD,GAAW55D,OAAO0D,aAAam2D,QAE9B,GAAI,KAAOA,GAAQA,EAAO,IAAK,CAChC,IAAIC,EAAW3tB,IAAQz3D,GACvBklF,GAAW55D,OAAO0D,cAAsB,GAAPm2D,IAAc,EAAiB,GAAXC,EACzD,MACK,GAAI,KAAOD,GAAQA,EAAO,IAAK,CAChC,IAAIF,EAAgB,CAACE,EAAM1tB,IAAQz3D,GAAIy3D,IAAQz3D,GAAIy3D,IAAQz3D,IACvDu7D,EAAU,IAAM0pB,EAAc9vE,KAAI,SAAUkwE,GAAa,OAAOA,EAAU9lF,SAAS,GAAK,IAAGuI,KAAK,KACpGo9E,GAAWr8E,mBAAmB0yD,EAClC,MAEI2pB,GAAW55D,OAAO0D,cAAsB,GAAPm2D,IAAc,IAAqB,GAAb1tB,IAAQz3D,KAAY,EAAmB,GAAby3D,IAAQz3D,GAEjG,CACA,OAAOklF,CACX,ECxDO,SAAS,EAASztB,GACrB,OAAO,IAAI6tB,aAAc99E,OAAOiwD,EACpC,CACO,SAAS,EAAOA,GACnB,OAAO,IAAI8tB,YAAY,SAASC,OAAO/tB,EAC3C,CCHO,IAAI,EAAW,SAAUA,GAC5B,MAA8B,oBAAhB6tB,YAA6B,EAAoB7tB,GAAS,EAAWA,EACvF,EACW,EAAS,SAAUA,GAC1B,MAA8B,oBAAhB8tB,YAA6B,EAAkB9tB,GAAS,EAASA,EACnF,C,qCCNApyD,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD,IAAIqlF,EAAU,EAAQ,OACtBA,EAAQC,aAAa,EAAQ,OAAwBroF,E,qCCFrD4M,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQgtF,oBAAsBhtF,EAAQitF,qBAAuBjtF,EAAQktF,qBAAuBltF,EAAQ+oF,uBAAoB,EACxH,IAAIX,EAAU,EAAQ,OAClB+E,EAAsB,CACtB,UACA,SACA,UACA,YACA,cACA,YACA,OACA,UAEJ,SAASpE,EAAkBr3E,GACvB,GAAIw7E,EAAqBx7E,IACW,kBAAzBA,EAAOk0C,OAAOqiC,OAAqB,CAC1C,IAAIA,EAASv2E,EAAOk0C,OAAOqiC,OAC3B,OAAOgF,EAAqBhF,EAChC,CACA,OAAO,CACX,CAEA,SAASiF,EAAqBx7E,GAC1B,GAAsB,kBAAXA,GAAgD,kBAAlBA,EAAOk0C,OAAqB,CACjE,IAAIC,EAAkBn0C,EAAOk0C,OAAOC,gBACpC,MAAkC,oBAApBA,CAClB,CACA,OAAO,CACX,CAEA,SAASonC,EAAqBhF,GAC1B,OAAQA,GACJkF,EAAoBnrC,OAAM,SAAUmmC,GAAc,MAAqC,oBAAvBF,EAAOE,EAA4B,GAC3G,CAEA,SAAS6E,EAAoB/E,GACzB,OAAOG,EAAQ9nE,UAAUzZ,UAAM,OAAQ,GAAQ,WAC3C,IAAIlC,EAAKyoF,EACT,OAAOhF,EAAQxnE,YAAY/Z,MAAM,SAAUiZ,GACvC,OAAQA,EAAGmB,OACP,KAAK,EACD,IAAKgsE,EAAqBhF,GACtB,MAAO,CAAC,GAAc,GAC1BnoE,EAAGmB,MAAQ,EACf,KAAK,EAED,OADAnB,EAAGqB,KAAKpZ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAakgF,EAAOoF,YAAY,CAAE7hF,KAAM,UAAW/D,OAAQ,MAAO,EAAO,CAAC,aACtF,KAAK,EAED,OADA9C,EAAMmb,EAAGoB,OACF,CAAC,EAAa+mE,EAAOhsE,QAAQ,CAC5BzQ,KAAM,UACN8hF,GAAI,IAAI3nC,WAAWn8C,MAAM,KACzB+jF,eAAgB,IAAI5nC,WAAWn8C,MAAM,KACrCgkF,UAAW,KACZ7oF,EAAK,IAAIghD,WAAW,KAC/B,KAAK,EAED,OADAynC,EAAkBttE,EAAGoB,OACd,CAAC,EAA6C,KAA/BksE,EAAgBrnC,YAC1C,KAAK,EAED,OADKjmC,EAAGoB,OACD,CAAC,GAAc,GAC1B,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,CA5CAlhB,EAAQ+oF,kBAAoBA,EAQ5B/oF,EAAQktF,qBAAuBA,EAK/BltF,EAAQitF,qBAAuBA,EAgC/BjtF,EAAQgtF,oBAAsBA,C,qCChE9BpgF,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQkqF,qBAAkB,EAC1B,IAAId,EAAsB,EAAQ,MAE9BnV,EAA6B,qBAAXwZ,QAA0BA,OAAOrmD,KACjD,SAAU43B,GAAS,OAAOyuB,OAAOrmD,KAAK43B,EAAO,OAAS,EACtDoqB,EAAoBnV,SAC1B,SAASiW,EAAgBjpF,GAErB,OAAIA,aAAgB0kD,WACT1kD,EACS,kBAATA,EACAgzE,EAAShzE,GAEhBiS,YAAYC,OAAOlS,GACZ,IAAI0kD,WAAW1kD,EAAKqN,OAAQrN,EAAK4oF,WAAY5oF,EAAK8kD,WAAaJ,WAAWmkC,mBAE9E,IAAInkC,WAAW1kD,EAC1B,CACAjB,EAAQkqF,gBAAkBA,C,qCCnB1Bt9E,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQ0tF,gBAAkB1tF,EAAQ2tF,WAAa3tF,EAAQwpF,YAAcxpF,EAAQkqF,qBAAkB,EAC/F,IAAI0D,EAAoB,EAAQ,OAChChhF,OAAOuc,eAAenpB,EAAS,kBAAmB,CAAE8oB,YAAY,EAAMzF,IAAK,WAAc,OAAOuqE,EAAkB1D,eAAiB,IACnI,IAAIhB,EAAgB,EAAQ,OAC5Bt8E,OAAOuc,eAAenpB,EAAS,cAAe,CAAE8oB,YAAY,EAAMzF,IAAK,WAAc,OAAO6lE,EAAcM,WAAa,IACvH,IAAIqE,EAAe,EAAQ,OAC3BjhF,OAAOuc,eAAenpB,EAAS,aAAc,CAAE8oB,YAAY,EAAMzF,IAAK,WAAc,OAAOwqE,EAAaF,UAAY,IACpH,IAAIG,EAAoB,EAAQ,OAChClhF,OAAOuc,eAAenpB,EAAS,kBAAmB,CAAE8oB,YAAY,EAAMzF,IAAK,WAAc,OAAOyqE,EAAkBJ,eAAiB,G,mCCPnI,SAASlE,EAAYvoF,GACjB,MAAoB,kBAATA,EACgB,IAAhBA,EAAKwG,OAEW,IAApBxG,EAAK8kD,UAChB,CAPAn5C,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQwpF,iBAAc,EAOtBxpF,EAAQwpF,YAAcA,C,mCCNtB,SAASmE,EAAWI,GAChB,OAAO,IAAIpoC,WAAW,EACX,WAANooC,IAAqB,IACf,SAANA,IAAqB,IACf,MAANA,IAAqB,EAChB,IAANA,GAER,CATAnhF,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQ2tF,gBAAa,EASrB3tF,EAAQ2tF,WAAaA,C,mCCPrB,SAASD,EAAgBM,GACrB,IAAKxkF,MAAM49B,KAAM,CACb,IAAI6mD,EAAe,IAAIhC,YAAY+B,EAAcvmF,QAC7CymF,EAAU,EACd,MAAOA,EAAUF,EAAcvmF,OAC3BwmF,EAAaC,GAAWF,EAAcE,GAE1C,OAAOD,CACX,CACA,OAAOhC,YAAY7kD,KAAK4mD,EAC5B,CAbAphF,OAAOuc,eAAenpB,EAAS,aAAc,CAAE+C,OAAO,IACtD/C,EAAQ0tF,qBAAkB,EAa1B1tF,EAAQ0tF,gBAAkBA,C,wBCjB1B,IAAI/G,EAAK,EAAQ,OACbzV,EAAK,EAAQ,OAEb5kC,EAAO4kC,EACX5kC,EAAKq6C,GAAKA,EACVr6C,EAAK4kC,GAAKA,EAEVnxE,EAAOC,QAAUssC,C,oBCFjB,IADA,IAAIs6C,EAAY,GACPr/E,EAAI,EAAGA,EAAI,MAAOA,EACzBq/E,EAAUr/E,IAAMA,EAAI,KAAOT,SAAS,IAAIoL,OAAO,GAGjD,SAAS20E,EAAYC,EAAKtrE,GACxB,IAAIjU,EAAIiU,GAAU,EACdurE,EAAMH,EAEV,MAAO,CACLG,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MACvBw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MAAO,IAC9Bw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MAAO,IAC9Bw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MAAO,IAC9Bw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MAAO,IAC9Bw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MACvBw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,MACvBw/E,EAAID,EAAIv/E,MAAOw/E,EAAID,EAAIv/E,OACtB8H,KAAK,GACV,CAEAtP,EAAOC,QAAU6mF,C,oBClBjB,IAAIhhC,EAAqC,oBAAZ,QAA2BD,OAAOC,iBAAmBD,OAAOC,gBAAgBpgD,KAAKmgD,SACnE,oBAAd,UAAuE,mBAAnCl0C,OAAOs1E,SAASnhC,iBAAiCmhC,SAASnhC,gBAAgBpgD,KAAKuhF,UAEhJ,GAAInhC,EAAiB,CAEnB,IAAIohC,EAAQ,IAAIthC,WAAW,IAE3B5lD,EAAOC,QAAU,WAEf,OADA6lD,EAAgBohC,GACTA,CACT,CACF,KAAO,CAKL,IAAIC,EAAO,IAAI19E,MAAM,IAErBzJ,EAAOC,QAAU,WACf,IAAK,IAAW6Z,EAAPtS,EAAI,EAAMA,EAAI,GAAIA,IACN,KAAV,EAAJA,KAAiBsS,EAAoB,WAAhBzE,KAAKmwC,UAC/B2hC,EAAK3/E,GAAKsS,MAAY,EAAJtS,IAAa,GAAK,IAGtC,OAAO2/E,CACT,CACF,C,wBCjCA,IAQIC,EACAC,EATAC,EAAM,EAAQ,OACdR,EAAc,EAAQ,OAWtBS,EAAa,EACbC,EAAa,EAGjB,SAASZ,EAAGv8E,EAAS08E,EAAKtrE,GACxB,IAAIjU,EAAIu/E,GAAOtrE,GAAU,EACrB3H,EAAIizE,GAAO,GAEf18E,EAAUA,GAAW,CAAC,EACtB,IAAI8iB,EAAO9iB,EAAQ8iB,MAAQi6D,EACvBK,OAAgCjjF,IAArB6F,EAAQo9E,SAAyBp9E,EAAQo9E,SAAWJ,EAKnE,GAAY,MAARl6D,GAA4B,MAAZs6D,EAAkB,CACpC,IAAIC,EAAYJ,IACJ,MAARn6D,IAEFA,EAAOi6D,EAAU,CACA,EAAfM,EAAU,GACVA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,KAGtD,MAAZD,IAEFA,EAAWJ,EAAiD,OAApCK,EAAU,IAAM,EAAIA,EAAU,IAE1D,CAMA,IAAIC,OAA0BnjF,IAAlB6F,EAAQs9E,MAAsBt9E,EAAQs9E,OAAQ,IAAI33E,MAAOgF,UAIjE4yE,OAA0BpjF,IAAlB6F,EAAQu9E,MAAsBv9E,EAAQu9E,MAAQJ,EAAa,EAGnEtoE,EAAMyoE,EAAQJ,GAAeK,EAAQJ,GAAY,IAcrD,GAXItoE,EAAK,QAA0B1a,IAArB6F,EAAQo9E,WACpBA,EAAWA,EAAW,EAAI,QAKvBvoE,EAAK,GAAKyoE,EAAQJ,SAAiC/iF,IAAlB6F,EAAQu9E,QAC5CA,EAAQ,GAINA,GAAS,IACX,MAAM,IAAI78E,MAAM,mDAGlBw8E,EAAaI,EACbH,EAAaI,EACbP,EAAYI,EAGZE,GAAS,YAGT,IAAIE,GAA4B,KAAb,UAARF,GAA6BC,GAAS,WACjD9zE,EAAEtM,KAAOqgF,IAAO,GAAK,IACrB/zE,EAAEtM,KAAOqgF,IAAO,GAAK,IACrB/zE,EAAEtM,KAAOqgF,IAAO,EAAI,IACpB/zE,EAAEtM,KAAY,IAALqgF,EAGT,IAAIC,EAAOH,EAAQ,WAAc,IAAS,UAC1C7zE,EAAEtM,KAAOsgF,IAAQ,EAAI,IACrBh0E,EAAEtM,KAAa,IAANsgF,EAGTh0E,EAAEtM,KAAOsgF,IAAQ,GAAK,GAAM,GAC5Bh0E,EAAEtM,KAAOsgF,IAAQ,GAAK,IAGtBh0E,EAAEtM,KAAOigF,IAAa,EAAI,IAG1B3zE,EAAEtM,KAAkB,IAAXigF,EAGT,IAAK,IAAI/tE,EAAI,EAAGA,EAAI,IAAKA,EACvB5F,EAAEtM,EAAIkS,GAAKyT,EAAKzT,GAGlB,OAAOqtE,GAAYD,EAAYhzE,EACjC,CAEA9T,EAAOC,QAAU2mF,C,wBC5GjB,IAAIU,EAAM,EAAQ,OACdR,EAAc,EAAQ,OAE1B,SAAS3V,EAAG9mE,EAAS08E,EAAKtrE,GACxB,IAAIjU,EAAIu/E,GAAOtrE,GAAU,EAEF,iBAAb,IACRsrE,EAAkB,WAAZ18E,EAAuB,IAAIZ,MAAM,IAAM,KAC7CY,EAAU,MAEZA,EAAUA,GAAW,CAAC,EAEtB,IAAI88E,EAAO98E,EAAQm7C,SAAWn7C,EAAQi9E,KAAOA,KAO7C,GAJAH,EAAK,GAAgB,GAAVA,EAAK,GAAa,GAC7BA,EAAK,GAAgB,GAAVA,EAAK,GAAa,IAGzBJ,EACF,IAAK,IAAI5kD,EAAK,EAAGA,EAAK,KAAMA,EAC1B4kD,EAAIv/E,EAAI26B,GAAMglD,EAAKhlD,GAIvB,OAAO4kD,GAAOD,EAAYK,EAC5B,CAEAnnF,EAAOC,QAAUkxE,C,qEC1BjB,IAFA,IAAIid,EAAe,CAAC,EAChBC,EAAe,CAAC,EACX7mF,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC1B,IAAI8mF,EAAc9mF,EAAET,SAAS,IAAIlC,cACN,IAAvBypF,EAAY5mF,SACZ4mF,EAAc,IAAMA,GAExBF,EAAa5mF,GAAK8mF,EAClBD,EAAaC,GAAe9mF,CAChC,CA2BO,SAAS+mF,EAAM/B,GAElB,IADA,IAAIlgB,EAAM,GACD9kE,EAAI,EAAGA,EAAIglF,EAAMxmC,WAAYx+C,IAClC8kE,GAAO8hB,EAAa5B,EAAMhlF,IAE9B,OAAO8kE,CACX,C,uFC1CA,MAAMkiB,EAAiB,CAAC,EACjB,SAASvF,IACZ,MAAsB,qBAAXt3E,OACAA,OAEc,qBAATkZ,KACLA,KAEJ2jE,CACX,C,8GCFO,IAAIta,EAAW,SAAUjV,GAE5B,IADA,IAAIutB,EAAQ,GACHhlF,EAAI,EAAGghB,EAAMy2C,EAAMv3D,OAAQF,EAAIghB,EAAKhhB,IAAK,CAC9C,IAAIxE,EAAQi8D,EAAMhrD,WAAWzM,GAC7B,GAAIxE,EAAQ,IACRwpF,EAAMxkF,KAAKhF,QAEV,GAAIA,EAAQ,KACbwpF,EAAMxkF,KAAMhF,GAAS,EAAK,IAAc,GAARA,EAAc,UAE7C,GAAIwE,EAAI,EAAIy3D,EAAMv3D,QAA+B,SAAZ,MAAR1E,IAAqE,SAAZ,MAA1Bi8D,EAAMhrD,WAAWzM,EAAI,IAAyB,CAC3G,IAAIilF,EAAgB,QAAoB,KAARzpF,IAAiB,KAA+B,KAAxBi8D,EAAMhrD,aAAazM,IAC3EglF,EAAMxkF,KAAMykF,GAAiB,GAAM,IAAOA,GAAiB,GAAM,GAAM,IAAOA,GAAiB,EAAK,GAAM,IAAsB,GAAhBA,EAAsB,IAC1I,MAEID,EAAMxkF,KAAMhF,GAAS,GAAM,IAAOA,GAAS,EAAK,GAAM,IAAc,GAARA,EAAc,IAElF,CACA,OAAO4iD,WAAWve,KAAKmlD,EAC3B,EASWrY,EAAS,SAAUlV,GAE1B,IADA,IAAIytB,EAAU,GACLllF,EAAI,EAAGghB,EAAMy2C,EAAMv3D,OAAQF,EAAIghB,EAAKhhB,IAAK,CAC9C,IAAImlF,EAAO1tB,EAAMz3D,GACjB,GAAImlF,EAAO,IACPD,GAAW55D,OAAO0D,aAAam2D,QAE9B,GAAI,KAAOA,GAAQA,EAAO,IAAK,CAChC,IAAIC,EAAW3tB,IAAQz3D,GACvBklF,GAAW55D,OAAO0D,cAAsB,GAAPm2D,IAAc,EAAiB,GAAXC,EACzD,MACK,GAAI,KAAOD,GAAQA,EAAO,IAAK,CAChC,IAAIF,EAAgB,CAACE,EAAM1tB,IAAQz3D,GAAIy3D,IAAQz3D,GAAIy3D,IAAQz3D,IACvDu7D,EAAU,IAAM0pB,EAAc9vE,KAAI,SAAUkwE,GAAa,OAAOA,EAAU9lF,SAAS,GAAK,IAAGuI,KAAK,KACpGo9E,GAAWr8E,mBAAmB0yD,EAClC,MAEI2pB,GAAW55D,OAAO0D,cAAsB,GAAPm2D,IAAc,IAAqB,GAAb1tB,IAAQz3D,KAAY,EAAmB,GAAby3D,IAAQz3D,GAEjG,CACA,OAAOklF,CACX,ECxDO,SAAS,EAASztB,GACrB,OAAO,IAAI6tB,aAAc99E,OAAOiwD,EACpC,CACO,SAAS,EAAOA,GACnB,OAAO,IAAI8tB,YAAY,SAASC,OAAO/tB,EAC3C,CCHO,IAAI,EAAW,SAAUA,GAC5B,MAA8B,oBAAhB6tB,YAA6B,EAAoB7tB,GAAS,EAAWA,EACvF,EACW,EAAS,SAAUA,GAC1B,MAA8B,oBAAhB8tB,YAA6B,EAAkB9tB,GAAS,EAASA,EACnF,C,8rBCDA,IAAIwvB,EACJ,MAAMC,EACJ,WAAAx7E,CAAYy7E,GAAW,GACrB7nF,KAAK6nF,SAAWA,EAIhB7nF,KAAK8nF,SAAU,EAIf9nF,KAAK+nF,QAAU,GAIf/nF,KAAKgoF,SAAW,GAChBhoF,KAAK66B,OAAS8sD,GACTE,GAAYF,IACf3nF,KAAKmB,OAASwmF,EAAkB9sC,SAAW8sC,EAAkB9sC,OAAS,KAAK35C,KACzElB,MACE,EAER,CACA,UAAIioF,GACF,OAAOjoF,KAAK8nF,OACd,CACA,GAAAI,CAAIxkF,GACF,GAAI1D,KAAK8nF,QAAS,CAChB,MAAMK,EAAqBR,EAC3B,IAEE,OADAA,EAAoB3nF,KACb0D,GACT,CAAE,QACAikF,EAAoBQ,CACtB,CACF,MAAW,CAGb,CAKA,EAAAC,GACET,EAAoB3nF,IACtB,CAKA,GAAAqoF,GACEV,EAAoB3nF,KAAK66B,MAC3B,CACA,IAAAytD,CAAKC,GACH,GAAIvoF,KAAK8nF,QAAS,CAChB,IAAIpnF,EAAGC,EACP,IAAKD,EAAI,EAAGC,EAAIX,KAAK+nF,QAAQnnF,OAAQF,EAAIC,EAAGD,IAC1CV,KAAK+nF,QAAQrnF,GAAG4nF,OAElB,IAAK5nF,EAAI,EAAGC,EAAIX,KAAKgoF,SAASpnF,OAAQF,EAAIC,EAAGD,IAC3CV,KAAKgoF,SAAStnF,KAEhB,GAAIV,KAAK66C,OACP,IAAKn6C,EAAI,EAAGC,EAAIX,KAAK66C,OAAOj6C,OAAQF,EAAIC,EAAGD,IACzCV,KAAK66C,OAAOn6C,GAAG4nF,MAAK,GAGxB,IAAKtoF,KAAK6nF,UAAY7nF,KAAK66B,SAAW0tD,EAAY,CAChD,MAAMC,EAAOxoF,KAAK66B,OAAOggB,OAAOngC,MAC5B8tE,GAAQA,IAASxoF,OACnBA,KAAK66B,OAAOggB,OAAO76C,KAAKmB,OAASqnF,EACjCA,EAAKrnF,MAAQnB,KAAKmB,MAEtB,CACAnB,KAAK66B,YAAS,EACd76B,KAAK8nF,SAAU,CACjB,CACF,EAEF,SAASW,EAAYZ,GACnB,OAAO,IAAID,EAAYC,EACzB,CACA,SAASa,EAAkBC,EAAQ3xE,EAAQ2wE,GACrC3wE,GAASA,EAAMixE,QACjBjxE,EAAM+wE,QAAQ7mF,KAAKynF,EAEvB,CACA,SAASC,IACP,OAAOjB,CACT,CACA,SAASkB,EAAenlF,GAClBikF,GACFA,EAAkBK,SAAS9mF,KAAKwC,EAMpC,CAEA,MAAMolF,EAAaf,IACjB,MAAMgB,EAAM,IAAI9gD,IAAI8/C,GAGpB,OAFAgB,EAAIC,EAAI,EACRD,EAAIn2E,EAAI,EACDm2E,CAAG,EAENE,EAAcF,IAASA,EAAIC,EAAIE,GAAc,EAC7CC,EAAcJ,IAASA,EAAIn2E,EAAIs2E,GAAc,EAC7CE,EAAiB,EAAGC,WACxB,GAAIA,EAAKzoF,OACP,IAAK,IAAIF,EAAI,EAAGA,EAAI2oF,EAAKzoF,OAAQF,IAC/B2oF,EAAK3oF,GAAGsoF,GAAKE,CAEjB,EAEII,EAAsBX,IAC1B,MAAM,KAAEU,GAASV,EACjB,GAAIU,EAAKzoF,OAAQ,CACf,IAAI2oF,EAAM,EACV,IAAK,IAAI7oF,EAAI,EAAGA,EAAI2oF,EAAKzoF,OAAQF,IAAK,CACpC,MAAMqoF,EAAMM,EAAK3oF,GACbuoF,EAAWF,KAASI,EAAWJ,GACjCA,EAAI7jD,OAAOyjD,GAEXU,EAAKE,KAASR,EAEhBA,EAAIC,IAAME,EACVH,EAAIn2E,IAAMs2E,CACZ,CACAG,EAAKzoF,OAAS2oF,CAChB,GAGIC,EAA4B,IAAItuE,QACtC,IAAIuuE,EAAmB,EACnBP,EAAa,EACjB,MAAMQ,EAAgB,GACtB,IAAIC,EACJ,MAAMC,EAAc92E,OAA+D,IAC7E+2E,EAAsB/2E,OAAuE,IACnG,MAAMg3E,EACJ,WAAA19E,CAAY1I,EAAIqmF,EAAY,KAAM/yE,GAChChX,KAAK0D,GAAKA,EACV1D,KAAK+pF,UAAYA,EACjB/pF,KAAKioF,QAAS,EACdjoF,KAAKqpF,KAAO,GACZrpF,KAAK66B,YAAS,EACd6tD,EAAkB1oF,KAAMgX,EAC1B,CACA,GAAAkxE,GACE,IAAKloF,KAAKioF,OACR,OAAOjoF,KAAK0D,KAEd,IAAIm3B,EAAS8uD,EACTK,EAAkBC,EACtB,MAAOpvD,EAAQ,CACb,GAAIA,IAAW76B,KACb,OAEF66B,EAASA,EAAOA,MAClB,CACA,IAUE,OATA76B,KAAK66B,OAAS8uD,EACdA,EAAe3pF,KACfiqF,GAAc,EACdf,EAAa,KAAOO,EAChBA,GAAoBC,EACtBN,EAAeppF,MAEfkqF,EAAclqF,MAETA,KAAK0D,IACd,CAAE,QACI+lF,GAAoBC,GACtBJ,EAAmBtpF,MAErBkpF,EAAa,KAAOO,EACpBE,EAAe3pF,KAAK66B,OACpBovD,EAAcD,EACdhqF,KAAK66B,YAAS,EACV76B,KAAKmqF,WACPnqF,KAAKsoF,MAET,CACF,CACA,IAAAA,GACMqB,IAAiB3pF,KACnBA,KAAKmqF,WAAY,EACRnqF,KAAKioF,SACdiC,EAAclqF,MACVA,KAAKoqF,QACPpqF,KAAKoqF,SAEPpqF,KAAKioF,QAAS,EAElB,EAEF,SAASiC,EAAcG,GACrB,MAAM,KAAEhB,GAASgB,EACjB,GAAIhB,EAAKzoF,OAAQ,CACf,IAAK,IAAIF,EAAI,EAAGA,EAAI2oF,EAAKzoF,OAAQF,IAC/B2oF,EAAK3oF,GAAGwkC,OAAOmlD,GAEjBhB,EAAKzoF,OAAS,CAChB,CACF,CAqBA,IAAIqpF,GAAc,EAClB,MAAMK,EAAa,GACnB,SAASC,IACPD,EAAWppF,KAAK+oF,GAChBA,GAAc,CAChB,CAKA,SAASO,IACP,MAAMhC,EAAO8B,EAAW5vE,MACxBuvE,OAAuB,IAATzB,GAAyBA,CACzC,CACA,SAASiC,EAAMplF,EAAQ9G,EAAMT,GAC3B,GAAImsF,GAAeN,EAAc,CAC/B,IAAIe,EAAUlB,EAAUhtE,IAAInX,GACvBqlF,GACHlB,EAAU/rE,IAAIpY,EAAQqlF,EAA0B,IAAIrmE,KAEtD,IAAI0kE,EAAM2B,EAAQluE,IAAI1e,GACjBirF,GACH2B,EAAQjtE,IAAI3f,EAAKirF,EAAMD,KAEzB,MAAM6B,OAAsG,EAC5GC,EAAa7B,EAAK4B,EACpB,CACF,CACA,SAASC,EAAa7B,EAAK8B,GACzB,IAAIC,GAAe,EACfrB,GAAoBC,EACjBP,EAAWJ,KACdA,EAAIn2E,GAAKs2E,EACT4B,GAAgB7B,EAAWF,IAG7B+B,GAAgB/B,EAAI1rE,IAAIssE,GAEtBmB,IACF/B,EAAI7gD,IAAIyhD,GACRA,EAAaN,KAAKnoF,KAAK6nF,GAY3B,CACA,SAASgC,EAAQ1lF,EAAQ9G,EAAMT,EAAKktF,EAAUC,EAAUC,GACtD,MAAMR,EAAUlB,EAAUhtE,IAAInX,GAC9B,IAAKqlF,EACH,OAEF,IAAIrB,EAAO,GACX,GAAa,UAAT9qF,EACF8qF,EAAO,IAAIqB,EAAQr2D,eACd,GAAY,WAARv2B,IAAoB,QAAQuH,GAAS,CAC9C,MAAM8lF,EAAY/8E,OAAO48E,GACzBN,EAAQ9sF,SAAQ,CAACmrF,EAAKqC,MACP,WAATA,KAAsB,QAASA,IAASA,GAAQD,IAClD9B,EAAKnoF,KAAK6nF,EACZ,GAEJ,MAIE,YAHY,IAARjrF,GACFurF,EAAKnoF,KAAKwpF,EAAQluE,IAAI1e,IAEhBS,GACN,IAAK,OACE,QAAQ8G,IAKF,QAAavH,IACtBurF,EAAKnoF,KAAKwpF,EAAQluE,IAAI,YALtB6sE,EAAKnoF,KAAKwpF,EAAQluE,IAAIotE,KAClB,QAAMvkF,IACRgkF,EAAKnoF,KAAKwpF,EAAQluE,IAAIqtE,KAK1B,MACF,IAAK,UACE,QAAQxkF,KACXgkF,EAAKnoF,KAAKwpF,EAAQluE,IAAIotE,KAClB,QAAMvkF,IACRgkF,EAAKnoF,KAAKwpF,EAAQluE,IAAIqtE,KAG1B,MACF,IAAK,OACC,QAAMxkF,IACRgkF,EAAKnoF,KAAKwpF,EAAQluE,IAAIotE,IAExB,MAIN,GAAoB,IAAhBP,EAAKzoF,OACHyoF,EAAK,IAILgC,EAAehC,EAAK,QAGnB,CACL,MAAMtB,EAAU,GAChB,IAAK,MAAMgB,KAAOM,EACZN,GACFhB,EAAQ7mF,QAAQ6nF,GAMlBsC,EAAevC,EAAUf,GAE7B,CACF,CACA,SAASsD,EAAetC,EAAK8B,GAC3B,MAAM9C,GAAU,QAAQgB,GAAOA,EAAM,IAAIA,GACzC,IAAK,MAAMsB,KAAWtC,EAChBsC,EAAQiB,UACVC,EAAclB,EAASQ,GAG3B,IAAK,MAAMR,KAAWtC,EACfsC,EAAQiB,UACXC,EAAclB,EAASQ,EAG7B,CACA,SAASU,EAAclB,EAASQ,IAC1BR,IAAYV,GAAgBU,EAAQmB,gBAIlCnB,EAAQN,UACVM,EAAQN,YAERM,EAAQnC,MAGd,CACA,SAASuD,EAAmB7pE,EAAQ9jB,GAClC,IAAI8V,EACJ,OAAuC,OAA/BA,EAAK41E,EAAUhtE,IAAIoF,SAAmB,EAAShO,EAAG4I,IAAI1e,EAChE,CAEA,MAAM4tF,GAAqC,QAAQ,+BAC7CC,EAAiB,IAAI1jD,IACTliC,OAAO6lF,oBAAoB94E,QAAQoO,QAAQpjB,GAAgB,cAARA,GAA+B,WAARA,IAAkB+X,KAAK/X,GAAQgV,OAAOhV,KAAMojB,OAAO,OAEzI2qE,EAAwCC,IAC9C,SAASA,IACP,MAAMC,EAAmB,CAAC,EAuB1B,MAtBA,CAAC,WAAY,UAAW,eAAenuF,SAASE,IAC9CiuF,EAAiBjuF,GAAO,YAAYkK,GAClC,MAAMuD,EAAMygF,GAAMhsF,MAClB,IAAK,IAAIU,EAAI,EAAGC,EAAIX,KAAKY,OAAQF,EAAIC,EAAGD,IACtC+pF,EAAMl/E,EAAK,MAAO7K,EAAI,IAExB,MAAMitC,EAAMpiC,EAAIzN,MAAQkK,GACxB,OAAa,IAAT2lC,IAAsB,IAARA,EACTpiC,EAAIzN,MAAQkK,EAAK6N,IAAIm2E,KAErBr+C,CAEX,CAAC,IAEH,CAAC,OAAQ,MAAO,QAAS,UAAW,UAAU/vC,SAASE,IACrDiuF,EAAiBjuF,GAAO,YAAYkK,GAClCuiF,IACA,MAAM58C,EAAMq+C,GAAMhsF,MAAMlC,GAAK8E,MAAM5C,KAAMgI,GAEzC,OADAwiF,IACO78C,CACT,CAAC,IAEIo+C,CACT,CACA,SAASl/E,EAAe/O,GACtB,MAAM8O,EAAMo/E,GAAMhsF,MAElB,OADAyqF,EAAM79E,EAAK,MAAO9O,GACX8O,EAAIC,eAAe/O,EAC5B,CACA,MAAMmuF,EACJ,WAAA7/E,CAAY8/E,GAAc,EAAOC,GAAW,GAC1CnsF,KAAKksF,YAAcA,EACnBlsF,KAAKmsF,SAAWA,CAClB,CACA,GAAA3vE,CAAInX,EAAQvH,EAAKsuF,GACf,MAAMC,EAAcrsF,KAAKksF,YAAaI,EAAUtsF,KAAKmsF,SACrD,GAAY,mBAARruF,EACF,OAAQuuF,EACH,GAAY,mBAARvuF,EACT,OAAOuuF,EACF,GAAY,kBAARvuF,EACT,OAAOwuF,EACF,GAAY,YAARxuF,EACT,OAAIsuF,KAAcC,EAAcC,EAAUC,GAAqBC,GAAcF,EAAUG,GAAqBC,IAAalwE,IAAInX,IAE7HU,OAAOwG,eAAelH,KAAYU,OAAOwG,eAAe6/E,GAC/C/mF,OAET,EAEF,MAAMsnF,GAAgB,QAAQtnF,GAC9B,IAAKgnF,EAAa,CAChB,GAAIM,IAAiB,QAAOd,EAAuB/tF,GACjD,OAAO8lB,QAAQpH,IAAIqvE,EAAuB/tF,EAAKsuF,GAEjD,GAAY,mBAARtuF,EACF,OAAO+O,CAEX,CACA,MAAM8gC,EAAM/pB,QAAQpH,IAAInX,EAAQvH,EAAKsuF,GACrC,QAAI,QAAStuF,GAAO6tF,EAAetuE,IAAIvf,GAAO4tF,EAAmB5tF,IACxD6vC,GAEJ0+C,GACH5B,EAAMplF,EAAQ,MAAOvH,GAEnBwuF,EACK3+C,EAELi/C,GAAMj/C,GACDg/C,IAAiB,QAAa7uF,GAAO6vC,EAAMA,EAAIzxC,OAEpD,QAASyxC,GACJ0+C,EAAcQ,GAASl/C,GAAOm/C,GAASn/C,GAEzCA,EACT,EAEF,MAAMo/C,UAA+Bd,EACnC,WAAA7/E,CAAYkgF,GAAU,GACpBU,OAAM,EAAOV,EACf,CACA,GAAA7uE,CAAIpY,EAAQvH,EAAK5B,EAAOkwF,GACtB,IAAInB,EAAW5lF,EAAOvH,GACtB,IAAKkC,KAAKmsF,SAAU,CAClB,MAAMc,EAAqBC,GAAWjC,GAKtC,GAJKkC,GAAUjxF,IAAWgxF,GAAWhxF,KACnC+uF,EAAWe,GAAMf,GACjB/uF,EAAQ8vF,GAAM9vF,MAEX,QAAQmJ,IAAWunF,GAAM3B,KAAc2B,GAAM1wF,GAChD,OAAI+wF,IAGFhC,EAAS/uF,MAAQA,GACV,EAGb,CACA,MAAMkxF,GAAS,QAAQ/nF,KAAW,QAAavH,GAAOsQ,OAAOtQ,GAAOuH,EAAOzE,QAAS,QAAOyE,EAAQvH,GAC7F+N,EAAS+X,QAAQnG,IAAIpY,EAAQvH,EAAK5B,EAAOkwF,GAQ/C,OAPI/mF,IAAW2mF,GAAMI,KACdgB,GAEM,QAAWlxF,EAAO+uF,IAC3BF,EAAQ1lF,EAAQ,MAAOvH,EAAK5B,EAAO+uF,GAFnCF,EAAQ1lF,EAAQ,MAAOvH,EAAK5B,IAKzB2P,CACT,CACA,cAAAwhF,CAAehoF,EAAQvH,GACrB,MAAMsvF,GAAS,QAAO/nF,EAAQvH,GACxBmtF,EAAW5lF,EAAOvH,GAClB+N,EAAS+X,QAAQypE,eAAehoF,EAAQvH,GAI9C,OAHI+N,GAAUuhF,GACZrC,EAAQ1lF,EAAQ,SAAUvH,OAAK,EAAQmtF,GAElCp/E,CACT,CACA,GAAAwR,CAAIhY,EAAQvH,GACV,MAAM+N,EAAS+X,QAAQvG,IAAIhY,EAAQvH,GAInC,OAHK,QAASA,IAAS6tF,EAAetuE,IAAIvf,IACxC2sF,EAAMplF,EAAQ,MAAOvH,GAEhB+N,CACT,CACA,OAAA8V,CAAQtc,GAMN,OALAolF,EACEplF,EACA,WACA,QAAQA,GAAU,SAAWukF,GAExBhmE,QAAQjC,QAAQtc,EACzB,EAEF,MAAMioF,UAAgCrB,EACpC,WAAA7/E,CAAYkgF,GAAU,GACpBU,OAAM,EAAMV,EACd,CACA,GAAA7uE,CAAIpY,EAAQvH,GAOV,OAAO,CACT,CACA,cAAAuvF,CAAehoF,EAAQvH,GAOrB,OAAO,CACT,EAEF,MAAMyvF,EAAkC,IAAIR,EACtCS,EAAmC,IAAIF,EACvCG,EAA0C,IAAIV,GAClD,GAIIW,EAAaxxF,GAAUA,EACvByxF,EAAYtlF,GAAMub,QAAQrX,eAAelE,GAC/C,SAASmU,EAAInX,EAAQvH,EAAKovF,GAAa,EAAOC,GAAY,GACxD9nF,EAASA,EAAO,WAChB,MAAMuoF,EAAY5B,GAAM3mF,GAClBwoF,EAAS7B,GAAMluF,GAChBovF,KACC,QAAWpvF,EAAK+vF,IAClBpD,EAAMmD,EAAW,MAAO9vF,GAE1B2sF,EAAMmD,EAAW,MAAOC,IAE1B,MAAQxwE,IAAKywE,GAASH,EAASC,GACzBtxD,EAAO6wD,EAAYO,EAAYR,EAAaa,GAAaC,GAC/D,OAAIF,EAAK1pF,KAAKwpF,EAAW9vF,GAChBw+B,EAAKj3B,EAAOmX,IAAI1e,IACdgwF,EAAK1pF,KAAKwpF,EAAWC,GACvBvxD,EAAKj3B,EAAOmX,IAAIqxE,SACdxoF,IAAWuoF,GACpBvoF,EAAOmX,IAAI1e,GAEf,CACA,SAASuf,EAAIvf,EAAKovF,GAAa,GAC7B,MAAM7nF,EAASrF,KAAK,WACd4tF,EAAY5B,GAAM3mF,GAClBwoF,EAAS7B,GAAMluF,GAOrB,OANKovF,KACC,QAAWpvF,EAAK+vF,IAClBpD,EAAMmD,EAAW,MAAO9vF,GAE1B2sF,EAAMmD,EAAW,MAAOC,IAEnB/vF,IAAQ+vF,EAASxoF,EAAOgY,IAAIvf,GAAOuH,EAAOgY,IAAIvf,IAAQuH,EAAOgY,IAAIwwE,EAC1E,CACA,SAAS18E,EAAK9L,EAAQ6nF,GAAa,GAGjC,OAFA7nF,EAASA,EAAO,YACf6nF,GAAczC,EAAMuB,GAAM3mF,GAAS,UAAWukF,GACxChmE,QAAQpH,IAAInX,EAAQ,OAAQA,EACrC,CACA,SAAS6iC,EAAIhsC,GACXA,EAAQ8vF,GAAM9vF,GACd,MAAMmJ,EAAS2mF,GAAMhsF,MACfiuF,EAAQN,EAAStoF,GACjB+nF,EAASa,EAAM5wE,IAAIjZ,KAAKiB,EAAQnJ,GAKtC,OAJKkxF,IACH/nF,EAAO6iC,IAAIhsC,GACX6uF,EAAQ1lF,EAAQ,MAAOnJ,EAAOA,IAEzB8D,IACT,CACA,SAASyd,EAAI3f,EAAK5B,GAChBA,EAAQ8vF,GAAM9vF,GACd,MAAMmJ,EAAS2mF,GAAMhsF,OACbqd,IAAKywE,EAAMtxE,IAAK0xE,GAASP,EAAStoF,GAC1C,IAAI+nF,EAASU,EAAK1pF,KAAKiB,EAAQvH,GAC1BsvF,IACHtvF,EAAMkuF,GAAMluF,GACZsvF,EAASU,EAAK1pF,KAAKiB,EAAQvH,IAI7B,MAAMmtF,EAAWiD,EAAK9pF,KAAKiB,EAAQvH,GAOnC,OANAuH,EAAOoY,IAAI3f,EAAK5B,GACXkxF,GAEM,QAAWlxF,EAAO+uF,IAC3BF,EAAQ1lF,EAAQ,MAAOvH,EAAK5B,EAAO+uF,GAFnCF,EAAQ1lF,EAAQ,MAAOvH,EAAK5B,GAIvB8D,IACT,CACA,SAASmuF,EAAYrwF,GACnB,MAAMuH,EAAS2mF,GAAMhsF,OACbqd,IAAKywE,EAAMtxE,IAAK0xE,GAASP,EAAStoF,GAC1C,IAAI+nF,EAASU,EAAK1pF,KAAKiB,EAAQvH,GAC1BsvF,IACHtvF,EAAMkuF,GAAMluF,GACZsvF,EAASU,EAAK1pF,KAAKiB,EAAQvH,IAI7B,MAAMmtF,EAAWiD,EAAOA,EAAK9pF,KAAKiB,EAAQvH,QAAO,EAC3C+N,EAASxG,EAAO6/B,OAAOpnC,GAI7B,OAHIsvF,GACFrC,EAAQ1lF,EAAQ,SAAUvH,OAAK,EAAQmtF,GAElCp/E,CACT,CACA,SAAS8C,IACP,MAAMtJ,EAAS2mF,GAAMhsF,MACfouF,EAA2B,IAAhB/oF,EAAO8L,KAClB+5E,OAA4G,EAC5Gr/E,EAASxG,EAAOsJ,QAItB,OAHIy/E,GACFrD,EAAQ1lF,EAAQ,aAAS,OAAQ,EAAQ6lF,GAEpCr/E,CACT,CACA,SAASwiF,GAAcnB,EAAYC,GACjC,OAAO,SAAiB7hF,EAAUvD,GAChC,MAAMumF,EAAWtuF,KACXqF,EAASipF,EAAS,WAClBV,EAAY5B,GAAM3mF,GAClBi3B,EAAO6wD,EAAYO,EAAYR,EAAaa,GAAaC,GAE/D,OADCd,GAAczC,EAAMmD,EAAW,UAAWhE,GACpCvkF,EAAOzH,SAAQ,CAAC1B,EAAO4B,IACrBwN,EAASlH,KAAK2D,EAASu0B,EAAKpgC,GAAQogC,EAAKx+B,GAAMwwF,IAE1D,CACF,CACA,SAASC,GAAqBlyF,EAAQ6wF,EAAYC,GAChD,OAAO,YAAYnlF,GACjB,MAAM3C,EAASrF,KAAK,WACd4tF,EAAY5B,GAAM3mF,GAClBmpF,GAAc,QAAMZ,GACpBa,EAAoB,YAAXpyF,GAAwBA,IAAWyW,OAAOC,UAAYy7E,EAC/DE,EAAuB,SAAXryF,GAAqBmyF,EACjCG,EAAgBtpF,EAAOhJ,MAAW2L,GAClCs0B,EAAO6wD,EAAYO,EAAYR,EAAaa,GAAaC,GAM/D,OALCd,GAAczC,EACbmD,EACA,UACAc,EAAY7E,EAAsBD,GAE7B,CAEL,IAAA12E,GACE,MAAM,MAAEhX,EAAK,KAAE1B,GAASm0F,EAAcz7E,OACtC,OAAO1Y,EAAO,CAAE0B,QAAO1B,QAAS,CAC9B0B,MAAOuyF,EAAS,CAACnyD,EAAKpgC,EAAM,IAAKogC,EAAKpgC,EAAM,KAAOogC,EAAKpgC,GACxD1B,OAEJ,EAEA,CAACsY,OAAOC,YACN,OAAO/S,IACT,EAEJ,CACF,CACA,SAAS4uF,GAAqBrwF,GAC5B,OAAO,YAAYyJ,GAQjB,MAAgB,WAATzJ,IAAqC,UAATA,OAAmB,EAASyB,KACjE,CACF,CACA,SAAS6uF,KACP,MAAMC,EAA2B,CAC/B,GAAAtyE,CAAI1e,GACF,OAAO0e,EAAIxc,KAAMlC,EACnB,EACA,QAAIqT,GACF,OAAOA,EAAKnR,KACd,EACAqd,MACA6qB,MACAzqB,MACAynB,OAAQipD,EACRx/E,QACA/Q,QAASywF,IAAc,GAAO,IAE1BU,EAA2B,CAC/B,GAAAvyE,CAAI1e,GACF,OAAO0e,EAAIxc,KAAMlC,GAAK,GAAO,EAC/B,EACA,QAAIqT,GACF,OAAOA,EAAKnR,KACd,EACAqd,MACA6qB,MACAzqB,MACAynB,OAAQipD,EACRx/E,QACA/Q,QAASywF,IAAc,GAAO,IAE1BW,EAA4B,CAChC,GAAAxyE,CAAI1e,GACF,OAAO0e,EAAIxc,KAAMlC,GAAK,EACxB,EACA,QAAIqT,GACF,OAAOA,EAAKnR,MAAM,EACpB,EACA,GAAAqd,CAAIvf,GACF,OAAOuf,EAAIjZ,KAAKpE,KAAMlC,GAAK,EAC7B,EACAoqC,IAAK0mD,GAAqB,OAC1BnxE,IAAKmxE,GAAqB,OAC1B1pD,OAAQ0pD,GAAqB,UAC7BjgF,MAAOigF,GAAqB,SAC5BhxF,QAASywF,IAAc,GAAM,IAEzBY,EAAmC,CACvC,GAAAzyE,CAAI1e,GACF,OAAO0e,EAAIxc,KAAMlC,GAAK,GAAM,EAC9B,EACA,QAAIqT,GACF,OAAOA,EAAKnR,MAAM,EACpB,EACA,GAAAqd,CAAIvf,GACF,OAAOuf,EAAIjZ,KAAKpE,KAAMlC,GAAK,EAC7B,EACAoqC,IAAK0mD,GAAqB,OAC1BnxE,IAAKmxE,GAAqB,OAC1B1pD,OAAQ0pD,GAAqB,UAC7BjgF,MAAOigF,GAAqB,SAC5BhxF,QAASywF,IAAc,GAAM,IAEzBa,EAAkB,CAAC,OAAQ,SAAU,UAAWp8E,OAAOC,UAuB7D,OAtBAm8E,EAAgBtxF,SAASvB,IACvByyF,EAAyBzyF,GAAUkyF,GACjClyF,GACA,GACA,GAEF2yF,EAA0B3yF,GAAUkyF,GAClClyF,GACA,GACA,GAEF0yF,EAAyB1yF,GAAUkyF,GACjClyF,GACA,GACA,GAEF4yF,EAAiC5yF,GAAUkyF,GACzClyF,GACA,GACA,EACD,IAEI,CACLyyF,EACAE,EACAD,EACAE,EAEJ,CACA,MACEE,GACAC,GACAC,GACAC,IACkBT,KACpB,SAASU,GAA4BrC,EAAYZ,GAC/C,MAAMP,EAAmBO,EAAUY,EAAaoC,GAAkCD,GAA0BnC,EAAakC,GAA2BD,GACpJ,MAAO,CAAC9pF,EAAQvH,EAAKsuF,IACP,mBAARtuF,GACMovF,EACS,mBAARpvF,EACFovF,EACU,YAARpvF,EACFuH,EAEFue,QAAQpH,KACb,QAAOuvE,EAAkBjuF,IAAQA,KAAOuH,EAAS0mF,EAAmB1mF,EACpEvH,EACAsuF,EAGN,CACA,MAAMoD,GAA4B,CAChChzE,IAAqB+yE,IAA4B,GAAO,IAEpDE,GAA4B,CAChCjzE,IAAqB+yE,IAA4B,GAAO,IAEpDG,GAA6B,CACjClzE,IAAqB+yE,IAA4B,GAAM,IAezD,MAAM7C,GAA8B,IAAIxxE,QAClCuxE,GAAqC,IAAIvxE,QACzCsxE,GAA8B,IAAItxE,QAClCqxE,GAAqC,IAAIrxE,QAC/C,SAASy0E,GAAcC,GACrB,OAAQA,GACN,IAAK,SACL,IAAK,QACH,OAAO,EACT,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACH,OAAO,EACT,QACE,OAAO,EAEb,CACA,SAASC,GAAc3zF,GACrB,OAAOA,EAAM,cAAgB6J,OAAO+pF,aAAa5zF,GAAS,EAAkByzF,IAAc,QAAUzzF,GACtG,CACA,SAAS4wF,GAASznF,GAChB,OAAI6nF,GAAW7nF,GACNA,EAEF0qF,GACL1qF,GACA,EACAkoF,EACAiC,GACA9C,GAEJ,CACA,SAASsD,GAAgB3qF,GACvB,OAAO0qF,GACL1qF,GACA,EACAooF,EACAgC,GACAhD,GAEJ,CACA,SAASI,GAASxnF,GAChB,OAAO0qF,GACL1qF,GACA,EACAmoF,EACAkC,GACAlD,GAEJ,CAUA,SAASuD,GAAqB1qF,EAAQgnF,EAAa4D,EAAcC,EAAoBC,GACnF,KAAK,QAAS9qF,GAIZ,OAAOA,EAET,GAAIA,EAAO,cAAgBgnF,IAAehnF,EAAO,mBAC/C,OAAOA,EAET,MAAM+qF,EAAgBD,EAAS3zE,IAAInX,GACnC,GAAI+qF,EACF,OAAOA,EAET,MAAMC,EAAaR,GAAcxqF,GACjC,GAAmB,IAAfgrF,EACF,OAAOhrF,EAET,MAAMirF,EAAQ,IAAI1rE,MAChBvf,EACe,IAAfgrF,EAAoCH,EAAqBD,GAG3D,OADAE,EAAS1yE,IAAIpY,EAAQirF,GACdA,CACT,CACA,SAASC,GAAWr0F,GAClB,OAAIgxF,GAAWhxF,GACNq0F,GAAWr0F,EAAM,eAEhBA,IAASA,EAAM,kBAC3B,CACA,SAASgxF,GAAWhxF,GAClB,SAAUA,IAASA,EAAM,kBAC3B,CACA,SAASixF,GAAUjxF,GACjB,SAAUA,IAASA,EAAM,iBAC3B,CACA,SAASs0F,GAAQt0F,GACf,OAAOq0F,GAAWr0F,IAAUgxF,GAAWhxF,EACzC,CACA,SAAS8vF,GAAMsC,GACb,MAAMmC,EAAMnC,GAAYA,EAAS,WACjC,OAAOmC,EAAMzE,GAAMyE,GAAOnC,CAC5B,CACA,SAASoC,GAAQx0F,GAEf,OADA,QAAIA,EAAO,YAAY,GAChBA,CACT,CACA,MAAM8xF,GAAc9xF,IAAU,QAASA,GAAS4wF,GAAS5wF,GAASA,EAC5D6xF,GAAc7xF,IAAU,QAASA,GAAS2wF,GAAS3wF,GAASA,EAElE,SAASy0F,GAAcC,GACjB3G,GAAeN,IACjBiH,EAAO5E,GAAM4E,GAQXhG,EAAagG,EAAK7H,MAAQ6H,EAAK7H,IAAMD,MAG3C,CACA,SAAS+H,GAAgBD,EAAME,GAC7BF,EAAO5E,GAAM4E,GACb,MAAM7H,EAAM6H,EAAK7H,IACbA,GASAsC,EAAetC,EAGrB,CACA,SAAS6D,GAAM55E,GACb,SAAUA,IAAqB,IAAhBA,EAAE+9E,UACnB,CACA,SAASC,GAAI90F,GACX,OAAO+0F,GAAU/0F,GAAO,EAC1B,CACA,SAASg1F,GAAWh1F,GAClB,OAAO+0F,GAAU/0F,GAAO,EAC1B,CACA,SAAS+0F,GAAUvqF,EAAU4lF,GAC3B,OAAIM,GAAMlmF,GACDA,EAEF,IAAIyqF,GAAQzqF,EAAU4lF,EAC/B,CACA,MAAM6E,GACJ,WAAA/kF,CAAYlQ,EAAOk1F,GACjBpxF,KAAKoxF,cAAgBA,EACrBpxF,KAAK+oF,SAAM,EACX/oF,KAAK+wF,WAAY,EACjB/wF,KAAKqxF,UAAYD,EAAgBl1F,EAAQ8vF,GAAM9vF,GAC/C8D,KAAKsxF,OAASF,EAAgBl1F,EAAQ8xF,GAAW9xF,EACnD,CACA,SAAIA,GAEF,OADAy0F,GAAc3wF,MACPA,KAAKsxF,MACd,CACA,SAAIp1F,CAAM40F,GACR,MAAMS,EAAiBvxF,KAAKoxF,eAAiBjE,GAAU2D,IAAW5D,GAAW4D,GAC7EA,EAASS,EAAiBT,EAAS9E,GAAM8E,IACrC,QAAWA,EAAQ9wF,KAAKqxF,aAC1BrxF,KAAKqxF,UAAYP,EACjB9wF,KAAKsxF,OAASC,EAAiBT,EAAS9C,GAAW8C,GACnDD,GAAgB7wF,KAAM8wF,GAE1B,EAKF,SAASU,GAAMZ,GACb,OAAOhE,GAAMgE,GAAQA,EAAK10F,MAAQ00F,CACpC,CACA,SAASa,GAAQpwF,GACf,OAAO,QAAWA,GAAUA,IAAWmwF,GAAMnwF,EAC/C,CACA,MAAMqwF,GAAwB,CAC5Bl1E,IAAK,CAACnX,EAAQvH,EAAKsuF,IAAaoF,GAAM5tE,QAAQpH,IAAInX,EAAQvH,EAAKsuF,IAC/D3uE,IAAK,CAACpY,EAAQvH,EAAK5B,EAAOkwF,KACxB,MAAMnB,EAAW5lF,EAAOvH,GACxB,OAAI8uF,GAAM3B,KAAc2B,GAAM1wF,IAC5B+uF,EAAS/uF,MAAQA,GACV,GAEA0nB,QAAQnG,IAAIpY,EAAQvH,EAAK5B,EAAOkwF,EACzC,GAGJ,SAASuF,GAAUC,GACjB,OAAOrB,GAAWqB,GAAkBA,EAAiB,IAAIhtE,MAAMgtE,EAAgBF,GACjF,CAsBA,SAASG,GAAOjwE,GAId,MAAM9T,GAAM,QAAQ8T,GAAU,IAAIjf,MAAMif,EAAOhhB,QAAU,CAAC,EAC1D,IAAK,MAAM9C,KAAO8jB,EAChB9T,EAAIhQ,GAAOg0F,GAAclwE,EAAQ9jB,GAEnC,OAAOgQ,CACT,CACA,MAAMikF,GACJ,WAAA3lF,CAAY4lF,EAASC,EAAMC,GACzBlyF,KAAKgyF,QAAUA,EACfhyF,KAAKiyF,KAAOA,EACZjyF,KAAKkyF,cAAgBA,EACrBlyF,KAAK+wF,WAAY,CACnB,CACA,SAAI70F,GACF,MAAM2B,EAAMmC,KAAKgyF,QAAQhyF,KAAKiyF,MAC9B,YAAe,IAARp0F,EAAiBmC,KAAKkyF,cAAgBr0F,CAC/C,CACA,SAAI3B,CAAM40F,GACR9wF,KAAKgyF,QAAQhyF,KAAKiyF,MAAQnB,CAC5B,CACA,OAAI/H,GACF,OAAO0C,EAAmBO,GAAMhsF,KAAKgyF,SAAUhyF,KAAKiyF,KACtD,EAEF,MAAME,GACJ,WAAA/lF,CAAYgmF,GACVpyF,KAAKoyF,QAAUA,EACfpyF,KAAK+wF,WAAY,EACjB/wF,KAAKqyF,gBAAiB,CACxB,CACA,SAAIn2F,GACF,OAAO8D,KAAKoyF,SACd,EAEF,SAASE,GAAMjxF,EAAQvD,EAAK80B,GAC1B,OAAIg6D,GAAMvrF,GACDA,GACE,QAAWA,GACb,IAAI8wF,GAAc9wF,IAChB,QAASA,IAAW4G,UAAUrH,OAAS,EACzCkxF,GAAczwF,EAAQvD,EAAK80B,GAE3Bo+D,GAAI3vF,EAEf,CACA,SAASywF,GAAczwF,EAAQvD,EAAK80B,GAClC,MAAM/0B,EAAMwD,EAAOvD,GACnB,OAAO8uF,GAAM/uF,GAAOA,EAAM,IAAIk0F,GAAc1wF,EAAQvD,EAAK80B,EAC3D,CAEA,MAAM2/D,GACJ,WAAAnmF,CAAYomF,EAAQC,EAASvF,EAAYwF,GACvC1yF,KAAKyyF,QAAUA,EACfzyF,KAAK+oF,SAAM,EACX/oF,KAAK+wF,WAAY,EACjB/wF,KAAK,mBAAoB,EACzBA,KAAK2yF,QAAS,EACd3yF,KAAK2oF,OAAS,IAAImB,EAAe0I,GAAQ,KAClCxyF,KAAK2yF,SACR3yF,KAAK2yF,QAAS,EACd9B,GAAgB7wF,MAClB,IAEFA,KAAK2oF,OAAO2C,SAAWtrF,KACvBA,KAAK2oF,OAAOV,OAASjoF,KAAK4yF,YAAcF,EACxC1yF,KAAK,kBAAoBktF,CAC3B,CACA,SAAIhxF,GACF,MAAM6nB,EAAOioE,GAAMhsF,MAMnB,OALA2wF,GAAc5sE,IACVA,EAAK4uE,QAAW5uE,EAAK6uE,aACvB7uE,EAAK4uE,QAAS,EACd5uE,EAAKutE,OAASvtE,EAAK4kE,OAAOT,OAErBnkE,EAAKutE,MACd,CACA,SAAIp1F,CAAM8uF,GACRhrF,KAAKyyF,QAAQzH,EACf,EAEF,SAASM,GAASuH,EAAiBC,EAAcJ,GAAQ,GACvD,IAAIF,EACAO,EACJ,MAAMC,GAAa,QAAWH,GAC1BG,GACFR,EAASK,EACTE,EAEI,OAEJP,EAASK,EAAgBr2E,IACzBu2E,EAASF,EAAgBp1E,KAE3B,MAAMw1E,EAAO,IAAIV,GAAgBC,EAAQO,EAAQC,IAAeD,EAAQL,GAKxE,OAAOO,CACT,C,6rCCt/BA,SAASC,EAAsBxvF,EAAIxE,EAAUX,EAAMyJ,GACjD,IAAI2lC,EACJ,IACEA,EAAM3lC,EAAOtE,KAAMsE,GAAQtE,GAC7B,CAAE,MAAOvH,GACPg3F,EAAYh3F,EAAK+C,EAAUX,EAC7B,CACA,OAAOovC,CACT,CACA,SAASylD,EAA2B1vF,EAAIxE,EAAUX,EAAMyJ,GACtD,IAAI,QAAWtE,GAAK,CAClB,MAAMiqC,EAAMulD,EAAsBxvF,EAAIxE,EAAUX,EAAMyJ,GAMtD,OALI2lC,IAAO,QAAUA,IACnBA,EAAIhxB,OAAOxgB,IACTg3F,EAAYh3F,EAAK+C,EAAUX,EAAK,IAG7BovC,CACT,CACA,MAAMtZ,EAAS,GACf,IAAK,IAAI3zB,EAAI,EAAGA,EAAIgD,EAAG9C,OAAQF,IAC7B2zB,EAAOnzB,KAAKkyF,EAA2B1vF,EAAGhD,GAAIxB,EAAUX,EAAMyJ,IAEhE,OAAOqsB,CACT,CACA,SAAS8+D,EAAYh3F,EAAK+C,EAAUX,EAAM80F,GAAa,GACrD,MAAMC,EAAep0F,EAAWA,EAASq0F,MAAQ,KACjD,GAAIr0F,EAAU,CACZ,IAAIs0F,EAAMt0F,EAAS27B,OACnB,MAAM44D,EAAkBv0F,EAASoxF,MAC3BoD,EAAiFn1F,EACvF,MAAOi1F,EAAK,CACV,MAAMG,EAAqBH,EAAII,GAC/B,GAAID,EACF,IAAK,IAAIjzF,EAAI,EAAGA,EAAIizF,EAAmB/yF,OAAQF,IAC7C,IAA+D,IAA3DizF,EAAmBjzF,GAAGvE,EAAKs3F,EAAiBC,GAC9C,OAINF,EAAMA,EAAI34D,MACZ,CACA,MAAMg5D,EAAkB30F,EAAS40F,WAAWh6F,OAAOi6F,aACnD,GAAIF,EAOF,YANAX,EACEW,EACA,KACA,GACA,CAAC13F,EAAKs3F,EAAiBC,GAI7B,CACAM,EAAS73F,EAAKoC,EAAM+0F,EAAcD,EACpC,CACA,SAASW,EAAS73F,EAAKoC,EAAM+0F,EAAcD,GAAa,GAgBpDnnF,QAAQhJ,MAAM/G,EAElB,CAEA,IAAI83F,GAAa,EACbC,GAAiB,EACrB,MAAMC,EAAQ,GACd,IAAIC,EAAa,EACjB,MAAMC,EAAsB,GAC5B,IAAIC,EAAqB,KACrBC,EAAiB,EACrB,MAAMC,EAAkCz6F,QAAQC,UAChD,IAAIy6F,EAAsB,KAE1B,SAASC,EAAShxF,GAChB,MAAMwM,EAAIukF,GAAuBD,EACjC,OAAO9wF,EAAKwM,EAAE1P,KAAKR,KAAO0D,EAAG9E,KAAKoB,MAAQ0D,GAAMwM,CAClD,CACA,SAASykF,EAAmBlxF,GAC1B,IAAIsc,EAAQq0E,EAAa,EACrBnqE,EAAMkqE,EAAMvzF,OAChB,MAAOmf,EAAQkK,EAAK,CAClB,MAAM2qE,EAAS70E,EAAQkK,IAAQ,EACzB4qE,EAAYV,EAAMS,GAClBE,EAAcC,EAAMF,GACtBC,EAAcrxF,GAAMqxF,IAAgBrxF,GAAMoxF,EAAUG,IACtDj1E,EAAQ60E,EAAS,EAEjB3qE,EAAM2qE,CAEV,CACA,OAAO70E,CACT,CACA,SAASk1E,EAASC,GACXf,EAAMvzF,QAAWuzF,EAAM1/E,SAC1BygF,EACAjB,GAAciB,EAAI1J,aAAe4I,EAAa,EAAIA,KAEpC,MAAVc,EAAIzxF,GACN0wF,EAAMjzF,KAAKg0F,GAEXf,EAAM/yF,OAAOuzF,EAAmBO,EAAIzxF,IAAK,EAAGyxF,GAE9CC,IAEJ,CACA,SAASA,IACFlB,GAAeC,IAClBA,GAAiB,EACjBO,EAAsBD,EAAgBh0F,KAAK40F,GAE/C,CACA,SAASC,EAAcH,GACrB,MAAMx0F,EAAIyzF,EAAMt3F,QAAQq4F,GACpBx0F,EAAI0zF,GACND,EAAM/yF,OAAOV,EAAG,EAEpB,CACA,SAAS40F,EAAiBz2D,IACnB,QAAQA,GAQXw1D,EAAoBnzF,QAAQ29B,GAPvBy1D,GAAuBA,EAAmB7/E,SAC7CoqB,EACAA,EAAG2sD,aAAe+I,EAAiB,EAAIA,IAEvCF,EAAoBnzF,KAAK29B,GAK7Bs2D,GACF,CACA,SAASI,EAAiBr2F,EAAUs2F,EAAM90F,GAAIuzF,EAAaG,EAAa,EAAI,IAI1E,IAHI,EAGG1zF,EAAIyzF,EAAMvzF,OAAQF,IAAK,CAC5B,MAAMm+B,EAAKs1D,EAAMzzF,GACjB,GAAIm+B,GAAMA,EAAGm2D,IAAK,CAChB,GAAI91F,GAAY2/B,EAAGp7B,KAAOvE,EAASu2F,IACjC,SAEE,EAGJtB,EAAM/yF,OAAOV,EAAG,GAChBA,IACAm+B,GACF,CACF,CACF,CACA,SAAS62D,EAAkBF,GACzB,GAAInB,EAAoBzzF,OAAQ,CAC9B,MAAM+0F,EAAU,IAAI,IAAI1tD,IAAIosD,IAE5B,GADAA,EAAoBzzF,OAAS,EACzB0zF,EAEF,YADAA,EAAmBpzF,QAAQy0F,GAQ7B,IALArB,EAAqBqB,EAIrBrB,EAAmBriF,MAAK,CAAClF,EAAGC,IAAM+nF,EAAMhoF,GAAKgoF,EAAM/nF,KAC9CunF,EAAiB,EAAGA,EAAiBD,EAAmB1zF,OAAQ2zF,IAInED,EAAmBC,KAErBD,EAAqB,KACrBC,EAAiB,CACnB,CACF,CACA,MAAMQ,EAASG,GAAkB,MAAVA,EAAIzxF,GAAamyF,IAAWV,EAAIzxF,GACjDoyF,EAAa,CAAC9oF,EAAGC,KACrB,MAAM8oF,EAAOf,EAAMhoF,GAAKgoF,EAAM/nF,GAC9B,GAAa,IAAT8oF,EAAY,CACd,GAAI/oF,EAAEioF,MAAQhoF,EAAEgoF,IACd,OAAQ,EACV,GAAIhoF,EAAEgoF,MAAQjoF,EAAEioF,IACd,OAAO,CACX,CACA,OAAOc,CAAI,EAEb,SAASV,EAAUI,GACjBtB,GAAiB,EACjBD,GAAa,EAIbE,EAAMliF,KAAK4jF,GAC2F,KACtG,IACE,IAAKzB,EAAa,EAAGA,EAAaD,EAAMvzF,OAAQwzF,IAAc,CAC5D,MAAMc,EAAMf,EAAMC,GACdc,IAAsB,IAAfA,EAAIjN,QAIbiL,EAAsBgC,EAAK,KAAM,GAErC,CACF,CAAE,QACAd,EAAa,EACbD,EAAMvzF,OAAS,EACf80F,EAAkBF,GAClBvB,GAAa,EACbQ,EAAsB,MAClBN,EAAMvzF,QAAUyzF,EAAoBzzF,SACtCw0F,EAAUI,EAEd,CACF,CAuOA,SAASO,EAAK72F,EAAUkmC,KAAU4wD,GAChC,GAAI92F,EAAS+2F,YACX,OACF,MAAMrzE,EAAQ1jB,EAASq0F,MAAM3wE,OAAS,KA0BtC,IAAI5a,EAAOguF,EACX,MAAME,EAAkB9wD,EAAMywC,WAAW,WACnCsgB,EAAWD,GAAmB9wD,EAAM5/B,MAAM,GAChD,GAAI2wF,GAAYA,KAAYvzE,EAAO,CACjC,MAAMwzE,EAAe,GAAgB,eAAbD,EAA4B,QAAUA,cACxD,OAAEtxF,EAAM,KAAEmC,GAAS4b,EAAMwzE,IAAiB,KAC5CpvF,IACFgB,EAAOguF,EAAQngF,KAAK9I,IAAM,QAASA,GAAKA,EAAE/F,OAAS+F,KAEjDlI,IACFmD,EAAOguF,EAAQngF,IAAI,MAEvB,CAeA,IAAIwgF,EACJ,IAAI3lD,EAAU9tB,EAAMyzE,GAAc,QAAajxD,KAC/CxiB,EAAMyzE,GAAc,SAAa,QAASjxD,MACrCsL,GAAWwlD,IACdxlD,EAAU9tB,EAAMyzE,GAAc,SAAa,QAAUjxD,MAEnDsL,GACF0iD,EACE1iD,EACAxxC,EACA,EACA8I,GAGJ,MAAMsuF,EAAc1zE,EAAMyzE,EAAc,QACxC,GAAIC,EAAa,CACf,GAAKp3F,EAASq3F,SAEP,GAAIr3F,EAASq3F,QAAQF,GAC1B,YAFAn3F,EAASq3F,QAAU,CAAC,EAItBr3F,EAASq3F,QAAQF,IAAe,EAChCjD,EACEkD,EACAp3F,EACA,EACA8I,EAEJ,CACF,CACA,SAASwuF,EAAsBjkC,EAAMuhC,EAAY2C,GAAU,GACzD,MAAMtzB,EAAQ2wB,EAAW4C,WACnBC,EAASxzB,EAAM3mD,IAAI+1C,GACzB,QAAe,IAAXokC,EACF,OAAOA,EAET,MAAMlG,EAAMl+B,EAAKqkC,MACjB,IAAIC,EAAa,CAAC,EACdC,GAAa,EACjB,KAA4B,QAAWvkC,GAAO,CAC5C,MAAMwkC,EAAeC,IACnB,MAAMC,EAAuBT,EAAsBQ,EAAMlD,GAAY,GACjEmD,IACFH,GAAa,GACb,QAAOD,EAAYI,GACrB,GAEGR,GAAW3C,EAAWoD,OAAOt2F,QAChCkzF,EAAWoD,OAAOt5F,QAAQm5F,GAExBxkC,EAAK4kC,SACPJ,EAAYxkC,EAAK4kC,SAEf5kC,EAAK2kC,QACP3kC,EAAK2kC,OAAOt5F,QAAQm5F,EAExB,CACA,OAAKtG,GAAQqG,IAMT,QAAQrG,GACVA,EAAI7yF,SAASE,GAAQ+4F,EAAW/4F,GAAO,QAEvC,QAAO+4F,EAAYpG,IAEjB,QAASl+B,IACX4Q,EAAM1lD,IAAI80C,EAAMskC,GAEXA,KAbD,QAAStkC,IACX4Q,EAAM1lD,IAAI80C,EAAM,MAEX,KAWX,CACA,SAAS6kC,EAAe7zF,EAASzF,GAC/B,SAAKyF,KAAY,QAAKzF,MAGtBA,EAAMA,EAAI0H,MAAM,GAAGpC,QAAQ,QAAS,KAC7B,QAAOG,EAASzF,EAAI,GAAGC,cAAgBD,EAAI0H,MAAM,MAAO,QAAOjC,GAAS,QAAUzF,MAAS,QAAOyF,EAASzF,GACpH,CAEA,IAAIu5F,EAA2B,KAC3BC,EAAiB,KACrB,SAASC,EAA4Br4F,GACnC,MAAMmrB,EAAOgtE,EAGb,OAFAA,EAA2Bn4F,EAC3Bo4F,EAAiBp4F,GAAYA,EAASX,KAAKi5F,WAAa,KACjDntE,CACT,CACA,SAASotE,EAAYh0F,GACnB6zF,EAAiB7zF,CACnB,CACA,SAASi0F,IACPJ,EAAiB,IACnB,CAEA,SAASK,EAAQj0F,EAAIk0F,EAAMP,EAA0BQ,GACnD,IAAKD,EACH,OAAOl0F,EACT,GAAIA,EAAGo0F,GACL,OAAOp0F,EAET,MAAMq0F,EAAsB,IAAI/vF,KAC1B+vF,EAAoB5uD,IACtB6uD,IAAkB,GAEpB,MAAMC,EAAeV,EAA4BK,GACjD,IAAIjqD,EACJ,IACEA,EAAMjqC,KAAMsE,EACd,CAAE,QACAuvF,EAA4BU,GACxBF,EAAoB5uD,IACtB6uD,GAAiB,EAErB,CAIA,OAAOrqD,CAAG,EAKZ,OAHAoqD,EAAoBD,IAAK,EACzBC,EAAoBn8E,IAAK,EACzBm8E,EAAoB5uD,IAAK,EAClB4uD,CACT,CAMA,SAASG,EAAoBh5F,GAC3B,MACEX,KAAM45F,EAAS,MACf5E,EAAK,MACLjD,EAAK,UACL8H,EAAS,MACTx1E,EACAy1E,cAAeA,GAAa,MAC5BC,EAAK,MACL3sC,EAAK,KACLoqC,EAAI,OACJwC,EAAM,YACNC,EAAW,KACXp+F,EAAI,WACJq+F,EAAU,IACVb,EAAG,aACHc,GACEx5F,EACJ,IAAI2M,EACA8sF,EACJ,MAAMtuE,EAAOktE,EAA4Br4F,GAIzC,IACE,GAAsB,EAAlBq0F,EAAMqF,UAAe,CACvB,MAAMC,EAAaT,GAAa9H,EAC1BwI,EASDD,EACLhtF,EAASktF,GACPR,EAAOn0F,KACL00F,EACAD,EACAL,EACA51E,EACA61E,EACAr+F,EACAw9F,IAGJe,EAAmBhtC,CACrB,KAAO,CACL,MAAMqtC,EAAUb,EACZ,EAGJtsF,EAASktF,GACPC,EAAQp4F,OAAS,EAAIo4F,EACnBp2E,EAQI,CAAE+oC,QAAO2sC,QAAOvC,SAClBiD,EACFp2E,EACA,OAIJ+1E,EAAmBR,EAAUv1E,MAAQ+oC,EAAQstC,EAAyBttC,EACxE,CACF,CAAE,MAAOxvD,GACP+8F,GAAWt4F,OAAS,EACpBuyF,EAAYh3F,EAAK+C,EAAU,GAC3B2M,EAASstF,GAAYC,GACvB,CACA,IAAI5+D,EAAO3uB,EAKX,GAAI8sF,IAAqC,IAAjBD,EAAwB,CAC9C,MAAM1yF,EAAOD,OAAOC,KAAK2yF,IACnB,UAAEC,GAAcp+D,EAClBx0B,EAAKpF,QACS,EAAZg4F,IACEP,GAAgBryF,EAAKo5B,KAAK,QAC5Bu5D,EAAmBU,EACjBV,EACAN,IAGJ79D,EAAO8+D,GAAW9+D,EAAMm+D,GA2B9B,CAwBA,OAvBIpF,EAAMgG,OAMR/+D,EAAO8+D,GAAW9+D,GAClBA,EAAK++D,KAAO/+D,EAAK++D,KAAO/+D,EAAK++D,KAAK12F,OAAO0wF,EAAMgG,MAAQhG,EAAMgG,MAE3DhG,EAAMiG,aAMRh/D,EAAKg/D,WAAajG,EAAMiG,YAKxB3tF,EAAS2uB,EAEX+8D,EAA4BltE,GACrBxe,CACT,CAwCA,MAAMotF,EAA4BttC,IAChC,IAAIhe,EACJ,IAAK,MAAM7vC,KAAO6tD,GACJ,UAAR7tD,GAA2B,UAARA,IAAmB,QAAKA,OAC5C6vC,IAAQA,EAAM,CAAC,IAAI7vC,GAAO6tD,EAAM7tD,IAGrC,OAAO6vC,CAAG,EAEN0rD,EAAuB,CAAC1tC,EAAO/oC,KACnC,MAAM+qB,EAAM,CAAC,EACb,IAAK,MAAM7vC,KAAO6tD,GACX,QAAgB7tD,IAAUA,EAAI0H,MAAM,KAAMod,IAC7C+qB,EAAI7vC,GAAO6tD,EAAM7tD,IAGrB,OAAO6vC,CAAG,EAKZ,SAAS8rD,EAAsBC,EAAWC,EAAWC,GACnD,MAAQh3E,MAAOi3E,EAAWC,SAAUC,EAAY,UAAErkF,GAAcgkF,GACxD92E,MAAOo3E,EAAWF,SAAUG,EAAY,UAAEC,GAAcP,EAC1D/C,EAAQlhF,EAAUykF,aAIxB,GAAIR,EAAUJ,MAAQI,EAAUH,WAC9B,OAAO,EAET,KAAII,GAAaM,GAAa,GAmB5B,SAAIH,IAAgBE,GACbA,GAAiBA,EAAaG,UAIjCP,IAAcG,IAGbH,GAGAG,GAGEK,EAAgBR,EAAWG,EAAWpD,KALlCoD,GA3BX,GAAgB,KAAZE,EACF,OAAO,EAET,GAAgB,GAAZA,EACF,OAAKL,EAGEQ,EAAgBR,EAAWG,EAAWpD,KAFlCoD,EAGN,GAAgB,EAAZE,EAAe,CACxB,MAAMI,EAAeX,EAAUW,aAC/B,IAAK,IAAI55F,EAAI,EAAGA,EAAI45F,EAAa15F,OAAQF,IAAK,CAC5C,MAAM5C,EAAMw8F,EAAa55F,GACzB,GAAIs5F,EAAUl8F,KAAS+7F,EAAU/7F,KAASs5F,EAAeR,EAAO94F,GAC9D,OAAO,CAEX,CACF,CAkBF,OAAO,CACT,CACA,SAASu8F,EAAgBR,EAAWG,EAAWG,GAC7C,MAAMI,EAAWx0F,OAAOC,KAAKg0F,GAC7B,GAAIO,EAAS35F,SAAWmF,OAAOC,KAAK6zF,GAAWj5F,OAC7C,OAAO,EAET,IAAK,IAAIF,EAAI,EAAGA,EAAI65F,EAAS35F,OAAQF,IAAK,CACxC,MAAM5C,EAAMy8F,EAAS75F,GACrB,GAAIs5F,EAAUl8F,KAAS+7F,EAAU/7F,KAASs5F,EAAe+C,EAAcr8F,GACrE,OAAO,CAEX,CACA,OAAO,CACT,CACA,SAAS08F,GAAgB,MAAEjH,EAAK,OAAE14D,GAAU4/D,GAC1C,MAAO5/D,GAAUA,EAAO6/D,UAAYnH,GACjCA,EAAQ14D,EAAO04D,OAAOkH,GAAKA,EAC5B5/D,EAASA,EAAOA,MAEpB,CAEA,MAAM8/D,EAAa,aACbC,EAAa,aACnB,SAASC,EAAiBl2F,EAAMm2F,GAC9B,OAAOC,EAAaJ,EAAYh2F,GAAM,EAAMm2F,IAAuBn2F,CACrE,CACA,MAAMq2F,EAAyBloF,OAAO4W,IAAI,SAC1C,SAASuxE,EAAwBvlF,GAC/B,OAAI,QAASA,GACJqlF,EAAaJ,EAAYjlF,GAAW,IAAUA,EAE9CA,GAAaslF,CAExB,CACA,SAASE,EAAiBv2F,GACxB,OAAOo2F,EAAaH,EAAYj2F,EAClC,CACA,SAASo2F,EAAax8F,EAAMoG,EAAMw2F,GAAc,EAAML,GAAqB,GACzE,MAAM57F,EAAWm4F,GAA4B+D,GAC7C,GAAIl8F,EAAU,CACZ,MAAMi5F,EAAYj5F,EAASX,KAC3B,GAAIA,IAASo8F,EAAY,CACvB,MAAMU,EAAWC,GACfnD,GACA,GAGF,GAAIkD,IAAaA,IAAa12F,GAAQ02F,KAAa,QAAS12F,IAAS02F,KAAa,SAAW,QAAS12F,KACpG,OAAOwzF,CAEX,CACA,MAAMxqD,EAGJ3zC,EAAQkF,EAASX,IAAS45F,EAAU55F,GAAOoG,IAC3C3K,EAAQkF,EAAS40F,WAAWv1F,GAAOoG,GAErC,OAAKgpC,GAAOmtD,EACH3C,EAOFxqD,CACT,CAKF,CACA,SAAS3zC,EAAQuhG,EAAU52F,GACzB,OAAO42F,IAAaA,EAAS52F,IAAS42F,GAAS,QAAS52F,KAAU42F,GAAS,SAAW,QAAS52F,KACjG,CAEA,MAAM62F,EAAcj9F,GAASA,EAAKk9F,aAsiBlC,SAASC,EAAwBh4F,EAAIi4F,GAC/BA,GAAYA,EAASC,eACnB,QAAQl4F,GACVi4F,EAAS5T,QAAQ7mF,QAAQwC,GAEzBi4F,EAAS5T,QAAQ7mF,KAAKwC,GAGxB4xF,EAAiB5xF,EAErB,CAeA,SAASm4F,GAAYlT,EAAQplF,GAC3B,OAAOu4F,GAAQnT,EAAQ,KAAMplF,EAC/B,CAeA,MAAMw4F,GAAwB,CAAC,EAC/B,SAASC,GAAM36F,EAAQw9B,EAAIt7B,GAMzB,OAAOu4F,GAAQz6F,EAAQw9B,EAAIt7B,EAC7B,CACA,SAASu4F,GAAQz6F,EAAQw9B,GAAI,UAAEo9D,EAAS,KAAEC,EAAI,MAAEC,EAAK,QAAEC,EAAO,UAAEC,GAAc,MAC5E,IAAIzoF,EAaJ,MAOM1U,GAAW,aAAiD,OAAzB0U,EAAKwnF,SAA2B,EAASxnF,EAAGoD,OAASokF,GAAkB,KAChH,IAAI5I,EAkDA8J,EAjDAC,GAAe,EACfC,GAAgB,EA4CpB,IA3CI,QAAMn7F,IACRmxF,EAAS,IAAMnxF,EAAOnF,MACtBqgG,GAAe,QAAYl7F,KAClB,QAAWA,IACpBmxF,EAAS,IAAMnxF,EACf66F,GAAO,IACE,QAAQ76F,IACjBm7F,GAAgB,EAChBD,EAAel7F,EAAO+9B,MAAMtqB,IAAM,QAAWA,KAAM,QAAYA,KAC/D09E,EAAS,IAAMnxF,EAAOwU,KAAKf,IACrB,QAAMA,GACDA,EAAE5Y,OACA,QAAW4Y,GACb2nF,GAAS3nF,IACP,QAAWA,GACbo+E,EAAsBp+E,EAAG5V,EAAU,QADrC,KAQPszF,GAFO,QAAWnxF,GAChBw9B,EACO,IAAMq0D,EAAsB7xF,EAAQnC,EAAU,GAE9C,KACP,IAAIA,IAAYA,EAAS+2F,YAMzB,OAHIqG,GACFA,IAEKlJ,EACL/xF,EACAnC,EACA,EACA,CAACw9F,GACF,EAII,KAGP79D,GAAMq9D,EAAM,CACd,MAAMS,EAAanK,EACnBA,EAAS,IAAMiK,GAASE,IAC1B,CAEA,IAMIC,EANAF,EAAah5F,IACf44F,EAAU3T,EAAOyB,OAAS,KACxB8I,EAAsBxvF,EAAIxE,EAAU,GACpCo9F,EAAU3T,EAAOyB,YAAS,CAAM,CACjC,EAGH,GAAIyS,GAAuB,CAWzB,GAVAH,EAAY,KACP79D,EAEMo9D,GACT7I,EAA2Bv0D,EAAI3/B,EAAU,EAAG,CAC1CszF,IACAgK,EAAgB,QAAK,EACrBE,IALFlK,IAQY,SAAV2J,EAIF,OAAO,KAJa,CACpB,MAAMvE,EAAMkF,KACZF,EAAahF,EAAImF,mBAAqBnF,EAAImF,iBAAmB,GAC/D,CAGF,CACA,IAAI9R,EAAWuR,EAAgB,IAAI75F,MAAMtB,EAAOT,QAAQo8F,KAAKjB,IAAyBA,GACtF,MAAM7G,EAAM,KACV,GAAKvM,EAAOV,OAGZ,GAAIppD,EAAI,CACN,MAAMmsD,EAAWrC,EAAOT,OACpBgU,GAAQK,IAAiBC,EAAgBxR,EAAS5rD,MAAK,CAAC/2B,EAAG3H,KAAM,QAAW2H,EAAG4iF,EAASvqF,OAAO,QAAWsqF,EAAUC,OAClHqR,GACFA,IAEFlJ,EAA2Bv0D,EAAI3/B,EAAU,EAAG,CAC1C8rF,EAEAC,IAAa8Q,QAAwB,EAASS,GAAiBvR,EAAS,KAAO8Q,GAAwB,GAAK9Q,EAC5GyR,IAEFzR,EAAWD,EAEf,MACErC,EAAOT,KACT,EAGF,IAAI6B,EADJmL,EAAI1J,eAAiB3sD,EAEP,SAAVs9D,EACFpS,EAAYmL,EACO,SAAViH,EACTpS,EAAY,IAAMkT,GAAsB/H,EAAKh2F,GAAYA,EAASy8F,WAElEzG,EAAIF,KAAM,EACN91F,IACFg2F,EAAIzxF,GAAKvE,EAASu2F,KACpB1L,EAAY,IAAMkL,EAASC,IAE7B,MAAMvM,EAAS,IAAI,KAAe6J,EAAQzI,GAKtClrD,EACEo9D,EACF/G,IAEAjK,EAAWtC,EAAOT,MAED,SAAViU,EACTc,GACEtU,EAAOT,IAAItpF,KAAK+pF,GAChBzpF,GAAYA,EAASy8F,UAGvBhT,EAAOT,MAET,MAAMgV,EAAU,KACdvU,EAAOL,OACHppF,GAAYA,EAAS8X,QACvB,QAAO9X,EAAS8X,MAAM+wE,QAASY,EACjC,EAIF,OAFIiU,GACFA,EAAW17F,KAAKg8F,GACXA,CACT,CACA,SAASC,GAAc97F,EAAQnF,EAAOqH,GACpC,MAAM65F,EAAap9F,KAAKswF,MAClBkC,GAAS,QAASnxF,GAAUA,EAAOoT,SAAS,KAAO4oF,GAAiBD,EAAY/7F,GAAU,IAAM+7F,EAAW/7F,GAAUA,EAAOzC,KAAKw+F,EAAYA,GACnJ,IAAIv+D,GACA,QAAW3iC,GACb2iC,EAAK3iC,GAEL2iC,EAAK3iC,EAAMw0C,QACXntC,EAAUrH,GAEZ,MAAMs3F,EAAM4H,GACZkC,GAAmBt9F,MACnB,MAAM2tC,EAAMmuD,GAAQtJ,EAAQ3zD,EAAGjgC,KAAKw+F,GAAa75F,GAMjD,OALIiwF,EACF8J,GAAmB9J,GAEnB+J,KAEK5vD,CACT,CACA,SAAS0vD,GAAiBzF,EAAK/uF,GAC7B,MAAM20F,EAAW30F,EAAKsC,MAAM,KAC5B,MAAO,KACL,IAAIqoF,EAAMoE,EACV,IAAK,IAAIl3F,EAAI,EAAGA,EAAI88F,EAAS58F,QAAU4yF,EAAK9yF,IAC1C8yF,EAAMA,EAAIgK,EAAS98F,IAErB,OAAO8yF,CAAG,CAEd,CACA,SAASiJ,GAASvgG,EAAOs5F,GACvB,KAAK,QAASt5F,IAAUA,EAAM,YAC5B,OAAOA,EAGT,GADAs5F,EAAOA,GAAwB,IAAIvtD,IAC/ButD,EAAKn4E,IAAInhB,GACX,OAAOA,EAGT,GADAs5F,EAAKttD,IAAIhsC,IACL,QAAMA,GACRugG,GAASvgG,EAAMA,MAAOs5F,QACjB,IAAI,QAAQt5F,GACjB,IAAK,IAAIwE,EAAI,EAAGA,EAAIxE,EAAM0E,OAAQF,IAChC+7F,GAASvgG,EAAMwE,GAAI80F,QAEhB,IAAI,QAAMt5F,KAAU,QAAMA,GAC/BA,EAAM0B,SAASyK,IACbo0F,GAASp0F,EAAGmtF,EAAK,SAEd,IAAI,QAAct5F,GACvB,IAAK,MAAM4B,KAAO5B,EAChBugG,GAASvgG,EAAM4B,GAAM03F,GAGzB,OAAOt5F,CACT,CAOA,SAASuhG,GAAelK,EAAOvhE,GAC7B,MAAM0rE,EAAmBrG,EACzB,GAAyB,OAArBqG,EAEF,OAAOnK,EAET,MAAMr0F,EAAWy+F,GAAeD,IAAqBA,EAAiBpN,MAChEsN,EAAWrK,EAAMgG,OAAShG,EAAMgG,KAAO,IAC7C,IAAK,IAAI74F,EAAI,EAAGA,EAAIsxB,EAAWpxB,OAAQF,IAAK,CAC1C,IAAKq6E,EAAK7+E,EAAOsZ,EAAKqoF,EAAY,MAAa7rE,EAAWtxB,GACtDq6E,KACE,QAAWA,KACbA,EAAM,CACJ+iB,QAAS/iB,EACTgjB,QAAShjB,IAGTA,EAAImhB,MACNO,GAASvgG,GAEX0hG,EAAS18F,KAAK,CACZ65E,MACA77E,WACAhD,QACA+uF,cAAU,EACVz1E,MACAqoF,cAGN,CACA,OAAOtK,CACT,CACA,SAASyK,GAAoBzK,EAAOmG,EAAWx6F,EAAUyF,GACvD,MAAMi5F,EAAWrK,EAAMgG,KACjB0E,EAAcvE,GAAaA,EAAUH,KAC3C,IAAK,IAAI74F,EAAI,EAAGA,EAAIk9F,EAASh9F,OAAQF,IAAK,CACxC,MAAMw9F,EAAUN,EAASl9F,GACrBu9F,IACFC,EAAQjT,SAAWgT,EAAYv9F,GAAGxE,OAEpC,IAAIiiG,EAAOD,EAAQnjB,IAAIp2E,GACnBw5F,KACF,UACA/K,EAA2B+K,EAAMj/F,EAAU,EAAG,CAC5Cq0F,EAAMkH,GACNyD,EACA3K,EACAmG,KAEF,UAEJ,CACF,CAEA,MAAM0E,GAAatrF,OAAO,YACpBurF,GAAavrF,OAAO,YAC1B,SAASwrF,KACP,MAAMpkD,EAAQ,CACZqkD,WAAW,EACXvjE,WAAW,EACXwjE,cAAc,EACdC,cAA+B,IAAIp6E,KAQrC,OANAq6E,IAAU,KACRxkD,EAAMqkD,WAAY,CAAI,IAExBI,IAAgB,KACdzkD,EAAMskD,cAAe,CAAI,IAEpBtkD,CACT,CACA,MAAM0kD,GAA0B,CAACl6E,SAAU/hB,OACrCk8F,GAAgC,CACpCp8B,KAAMz2C,OACN8yE,OAAQtqF,QACRuqF,UAAWvqF,QAEXwqF,cAAeJ,GACfK,QAASL,GACTM,aAAcN,GACdO,iBAAkBP,GAElBQ,cAAeR,GACfS,QAAST,GACTU,aAAcV,GACdW,iBAAkBX,GAElBY,eAAgBZ,GAChBa,SAAUb,GACVc,cAAed,GACfe,kBAAmBf,IAEfgB,GAAqB,CACzBj7F,KAAM,iBACNie,MAAOi8E,GACP,KAAAgB,CAAMj9E,GAAO,MAAE01E,IACb,MAAMp5F,EAAW4gG,KACX5lD,EAAQokD,KACd,IAAIyB,EACJ,MAAO,KACL,MAAMjG,EAAWxB,EAAMr3C,SAAW++C,GAAyB1H,EAAMr3C,WAAW,GAC5E,IAAK64C,IAAaA,EAASl5F,OACzB,OAEF,IAAIq/F,EAAQnG,EAAS,GACrB,GAAIA,EAASl5F,OAAS,EAAG,CACvB,IAAIs/F,GAAW,EACf,IAAK,MAAM5+F,KAAKw4F,EACd,GAAIx4F,EAAE/C,OAAS66F,GAAS,CAClB,EAMJ6G,EAAQ3+F,EACR4+F,GAAW,EAET,KACJ,CAEJ,CACA,MAAMC,GAAW,QAAMv9E,IACjB,KAAE6/C,GAAS09B,EAIjB,GAAIjmD,EAAMlf,UACR,OAAOolE,GAAiBH,GAE1B,MAAMI,EAAaC,GAAkBL,GACrC,IAAKI,EACH,OAAOD,GAAiBH,GAE1B,MAAMM,EAAaC,GACjBH,EACAF,EACAjmD,EACAh7C,GAEFuhG,GAAmBJ,EAAYE,GAC/B,MAAMG,EAAWxhG,EAASw7F,QACpBiG,EAAgBD,GAAYJ,GAAkBI,GACpD,IAAIE,GAAuB,EAC3B,MAAM,iBAAEC,GAAqBR,EAAW9hG,KACxC,GAAIsiG,EAAkB,CACpB,MAAM/iG,EAAM+iG,SACc,IAAtBd,EACFA,EAAoBjiG,EACXA,IAAQiiG,IACjBA,EAAoBjiG,EACpB8iG,GAAuB,EAE3B,CACA,GAAID,GAAiBA,EAAcpiG,OAAS66F,MAAa0H,GAAgBT,EAAYM,IAAkBC,GAAuB,CAC5H,MAAMG,EAAeP,GACnBG,EACAR,EACAjmD,EACAh7C,GAGF,GADAuhG,GAAmBE,EAAeI,GACrB,WAATt+B,EAQF,OAPAvoB,EAAMlf,WAAY,EAClB+lE,EAAaC,WAAa,KACxB9mD,EAAMlf,WAAY,GACa,IAA3B97B,EAASoW,OAAO2yE,QAClB/oF,EAASoW,QACX,EAEK8qF,GAAiBH,GACN,WAATx9B,GAAqB49B,EAAW9hG,OAAS66F,KAClD2H,EAAaE,WAAa,CAACxG,EAAIyG,EAAaC,KAC1C,MAAMC,EAAqBC,GACzBnnD,EACAymD,GAEFS,EAAmBp1E,OAAO20E,EAAc7iG,MAAQ6iG,EAChDlG,EAAG2D,IAAc,KACf8C,IACAzG,EAAG2D,SAAc,SACVmC,EAAWY,YAAY,EAEhCZ,EAAWY,aAAeA,CAAY,EAG5C,CACA,OAAOlB,CAAK,CAEhB,GAEIqB,GAAiB1B,GACvB,SAASyB,GAAuBnnD,EAAOq5C,GACrC,MAAM,cAAEkL,GAAkBvkD,EAC1B,IAAIknD,EAAqB3C,EAAcjiF,IAAI+2E,EAAMh1F,MAKjD,OAJK6iG,IACHA,EAAqCr7F,OAAO1G,OAAO,MACnDo/F,EAAchhF,IAAI81E,EAAMh1F,KAAM6iG,IAEzBA,CACT,CACA,SAASZ,GAAuBjN,EAAO3wE,EAAOs3B,EAAOh7C,GACnD,MAAM,OACJ4/F,EAAM,KACNr8B,EAAI,UACJs8B,GAAY,EAAK,cACjBC,EAAa,QACbC,EAAO,aACPC,EAAY,iBACZC,EAAgB,cAChBC,EAAa,QACbC,EAAO,aACPC,EAAY,iBACZC,EAAgB,eAChBC,EAAc,SACdC,EAAQ,cACRC,EAAa,kBACbC,GACE/8E,EACE9kB,EAAMkuB,OAAOunE,EAAMz1F,KACnBsjG,EAAqBC,GAAuBnnD,EAAOq5C,GACnDgO,EAAW,CAACpD,EAAMn2F,KACtBm2F,GAAQ/K,EACN+K,EACAj/F,EACA,EACA8I,EACD,EAEGw5F,EAAgB,CAACrD,EAAMn2F,KAC3B,MAAMxN,EAAOwN,EAAK,GAClBu5F,EAASpD,EAAMn2F,IACX,QAAQm2F,GACNA,EAAKhjD,OAAOsmD,GAAUA,EAAM7gG,QAAU,KACxCpG,IACO2jG,EAAKv9F,QAAU,GACxBpG,GACF,EAEIknG,EAAQ,CACZj/B,OACAs8B,YACA,WAAA4C,CAAYlH,GACV,IAAI0D,EAAOa,EACX,IAAK9kD,EAAMqkD,UAAW,CACpB,IAAIO,EAGF,OAFAX,EAAOqB,GAAkBR,CAI7B,CACIvE,EAAG2D,KACL3D,EAAG2D,KACD,GAIJ,MAAMwD,EAAeR,EAAmBtjG,GACpC8jG,GAAgBd,GAAgBvN,EAAOqO,IAAiBA,EAAanH,GAAG2D,KAC1EwD,EAAanH,GAAG2D,MAElBmD,EAASpD,EAAM,CAAC1D,GAClB,EACA,KAAA3+D,CAAM2+D,GACJ,IAAI0D,EAAOc,EACP4C,EAAY3C,EACZ4C,EAAa3C,EACjB,IAAKjlD,EAAMqkD,UAAW,CACpB,IAAIO,EAKF,OAJAX,EAAOsB,GAAYR,EACnB4C,EAAYnC,GAAiBR,EAC7B4C,EAAanC,GAAqBR,CAItC,CACA,IAAI4C,GAAS,EACb,MAAMvnG,EAAOigG,EAAG4D,IAAe2D,IACzBD,IAEJA,GAAS,EAEPR,EADES,EACOF,EAEAD,EAFY,CAACpH,IAIpBiH,EAAMP,cACRO,EAAMP,eAER1G,EAAG4D,SAAc,EAAM,EAErBF,EACFqD,EAAcrD,EAAM,CAAC1D,EAAIjgG,IAEzBA,GAEJ,EACA,KAAAqhC,CAAM4+D,EAAIjxF,GACR,MAAM4hF,EAAOp/D,OAAOunE,EAAMz1F,KAO1B,GANI28F,EAAG4D,KACL5D,EAAG4D,KACD,GAIAnkD,EAAMskD,aACR,OAAOh1F,IAET+3F,EAASnC,EAAe,CAAC3E,IACzB,IAAIsH,GAAS,EACb,MAAMvnG,EAAOigG,EAAG2D,IAAe4D,IACzBD,IAEJA,GAAS,EACTv4F,IAEE+3F,EADES,EACOzC,EAEAD,EAFkB,CAAC7E,IAI9BA,EAAG2D,SAAc,EACbgD,EAAmBhW,KAAUmI,UACxB6N,EAAmBhW,GAC5B,EAEFgW,EAAmBhW,GAAQmI,EACvB8L,EACFmC,EAAcnC,EAAS,CAAC5E,EAAIjgG,IAE5BA,GAEJ,EACA,KAAA0gC,CAAM+mE,GACJ,OAAOzB,GAAuByB,EAAQr/E,EAAOs3B,EAAOh7C,EACtD,GAEF,OAAOwiG,CACT,CACA,SAAStB,GAAiB7M,GACxB,GAAI2O,GAAY3O,GAGd,OAFAA,EAAQ+F,GAAW/F,GACnBA,EAAMuG,SAAW,KACVvG,CAEX,CACA,SAAS+M,GAAkB/M,GACzB,OAAO2O,GAAY3O,GAGwEA,EAAMuG,SAAWvG,EAAMuG,SAAS,QAAK,EAC5HvG,CACN,CACA,SAASkN,GAAmBlN,EAAOmO,GACX,EAAlBnO,EAAMqF,WAAiBrF,EAAM79E,UAC/B+qF,GAAmBlN,EAAM79E,UAAUglF,QAASgH,GACjB,IAAlBnO,EAAMqF,WACfrF,EAAM4O,UAAU3I,WAAakI,EAAMxmE,MAAMq4D,EAAM4O,WAC/C5O,EAAM6O,WAAW5I,WAAakI,EAAMxmE,MAAMq4D,EAAM6O,aAEhD7O,EAAMiG,WAAakI,CAEvB,CACA,SAAS1B,GAAyBlG,EAAUuI,GAAc,EAAOC,GAC/D,IAAIx0F,EAAM,GACNy0F,EAAqB,EACzB,IAAK,IAAI7hG,EAAI,EAAGA,EAAIo5F,EAASl5F,OAAQF,IAAK,CACxC,IAAIu/F,EAAQnG,EAASp5F,GACrB,MAAM5C,EAAmB,MAAbwkG,EAAoBrC,EAAMniG,IAAMkuB,OAAOs2E,GAAat2E,OAAoB,MAAbi0E,EAAMniG,IAAcmiG,EAAMniG,IAAM4C,GACnGu/F,EAAM1hG,OAASikG,IACK,IAAlBvC,EAAM/F,WACRqI,IACFz0F,EAAMA,EAAIjL,OACRm9F,GAAyBC,EAAMnG,SAAUuI,EAAavkG,MAE/CukG,GAAepC,EAAM1hG,OAAS66F,KACvCtrF,EAAI5M,KAAY,MAAPpD,EAAcw7F,GAAW2G,EAAO,CAAEniG,QAASmiG,EAExD,CACA,GAAIsC,EAAqB,EACvB,IAAK,IAAI7hG,EAAI,EAAGA,EAAIoN,EAAIlN,OAAQF,IAC9BoN,EAAIpN,GAAGw5F,WAAa,EAGxB,OAAOpsF,CACT;2BAIA,SAAS20F,GAAgBl/F,EAASm/F,GAChC,OAAO,QAAWn/F,GAGA,MAAO,QAAO,CAAEoB,KAAMpB,EAAQoB,MAAQ+9F,EAAc,CAAE7C,MAAOt8F,IAHlD,GAIzBA,CACN,CAEA,MAAMo/F,GAAkBjiG,KAAQA,EAAEnC,KAAKqkG;4BA2IvC,MAAMV,GAAe3O,GAAUA,EAAMh1F,KAAKskG,cAQpBv5F,OACAA,OAuLtB,SAASw5F,GAAQhpB,EAASn1E,GACxB,OAAI,QAAQm1E,GACHA,EAAQ16C,MAAMlvB,GAAM4yF,GAAQ5yF,EAAGvL,MAC7B,QAASm1E,GACXA,EAAQ3uE,MAAM,KAAKsJ,SAAS9P,MAC1B,QAASm1E,IACXA,EAAQpwE,KAAK/E,EAGxB,CACA,SAASo+F,GAAY5E,EAAM94F,GACzB29F,GAAsB7E,EAAM,IAAK94F,EACnC,CACA,SAAS49F,GAAc9E,EAAM94F,GAC3B29F,GAAsB7E,EAAM,KAAM94F,EACpC,CACA,SAAS29F,GAAsB7E,EAAM5/F,EAAM8G,EAAS+1F,IAClD,MAAM8H,EAAc/E,EAAKgF,QAAUhF,EAAKgF,MAAQ,KAC9C,IAAIlgE,EAAU59B,EACd,MAAO49B,EAAS,CACd,GAAIA,EAAQmgE,cACV,OAEFngE,EAAUA,EAAQpI,MACpB,CACA,OAAOsjE,GAAM,GAGf,GADAkF,GAAW9kG,EAAM2kG,EAAa79F,GAC1BA,EAAQ,CACV,IAAI49B,EAAU59B,EAAOw1B,OACrB,MAAOoI,GAAWA,EAAQpI,OACpBqnE,GAAYj/D,EAAQpI,OAAO04D,QAC7B+P,GAAsBJ,EAAa3kG,EAAM8G,EAAQ49B,GAEnDA,EAAUA,EAAQpI,MAEtB,CACF,CACA,SAASyoE,GAAsBnF,EAAM5/F,EAAM8G,EAAQk+F,GACjD,MAAMC,EAAWH,GACf9kG,EACA4/F,EACAoF,GACA,GAGFE,IAAY,MACV,QAAOF,EAAchlG,GAAOilG,EAAS,GACpCn+F,EACL,CACA,SAASq+F,GAAenQ,GACtBA,EAAMqF,YAAa,IACnBrF,EAAMqF,YAAa,GACrB,CACA,SAAS+K,GAAcpQ,GACrB,OAAyB,IAAlBA,EAAMqF,UAAkBrF,EAAM4O,UAAY5O,CACnD,CAEA,SAAS8P,GAAW9kG,EAAM4/F,EAAM94F,EAAS+1F,GAAiBwI,GAAU,GAClE,GAAIv+F,EAAQ,CACV,MAAMq8F,EAAQr8F,EAAO9G,KAAU8G,EAAO9G,GAAQ,IACxC2kG,EAAc/E,EAAK0F,QAAU1F,EAAK0F,MAAQ,IAAI77F,KAClD,GAAI3C,EAAO4wF,YACT,QAEF,UACAqH,GAAmBj4F,GACnB,MAAMsoC,EAAMylD,EAA2B+K,EAAM94F,EAAQ9G,EAAMyJ,GAG3D,OAFAu1F,MACA,UACO5vD,CAAG,GAOZ,OALIi2D,EACFlC,EAAMp/F,QAAQ4gG,GAEdxB,EAAMxgG,KAAKgiG,GAENA,CACT,CAMF,CACA,MAAMY,GAAcC,GAAc,CAAC5F,EAAM94F,EAAS+1F,OAE9CyB,IAAuC,OAAdkH,IAAuBV,GAAWU,GAAW,IAAI/7F,IAASm2F,KAAQn2F,IAAO3C,GAEhG2+F,GAAgBF,GAAW,MAC3BpF,GAAYoF,GAAW,KACvBG,GAAiBH,GAAW,MAC5BI,GAAYJ,GAAW,KACvBnF,GAAkBmF,GAAW,OAC7BL,GAAcK,GAAW,MACzBK,GAAmBL,GAAW,MAC9BM,GAAoBN,GACxB,OAEIO,GAAkBP,GACtB,OAEF,SAASQ,GAAgBnG,EAAM94F,EAAS+1F,IACtCiI,GAAW,KAAMlF,EAAM94F,EACzB,CAEA,SAASk/F,GAAWljG,EAAQmjG,EAAYrhC,EAAOhiE,GAC7C,IAAI2M,EACJ,MAAM6oF,EAASxzB,GAASA,EAAMhiE,GAC9B,IAAI,QAAQE,KAAW,QAASA,GAAS,CACvCyM,EAAM,IAAInL,MAAMtB,EAAOT,QACvB,IAAK,IAAIF,EAAI,EAAGC,EAAIU,EAAOT,OAAQF,EAAIC,EAAGD,IACxCoN,EAAIpN,GAAK8jG,EAAWnjG,EAAOX,GAAIA,OAAG,EAAQi2F,GAAUA,EAAOj2F,GAE/D,MAAO,GAAsB,kBAAXW,EAAqB,CACjC,EAGJyM,EAAM,IAAInL,MAAMtB,GAChB,IAAK,IAAIX,EAAI,EAAGA,EAAIW,EAAQX,IAC1BoN,EAAIpN,GAAK8jG,EAAW9jG,EAAI,EAAGA,OAAG,EAAQi2F,GAAUA,EAAOj2F,GAE3D,MAAO,IAAI,QAASW,GAClB,GAAIA,EAAOyR,OAAOC,UAChBjF,EAAMnL,MAAM49B,KACVl/B,GACA,CAACyP,EAAMpQ,IAAM8jG,EAAW1zF,EAAMpQ,OAAG,EAAQi2F,GAAUA,EAAOj2F,UAEvD,CACL,MAAMsF,EAAOD,OAAOC,KAAK3E,GACzByM,EAAM,IAAInL,MAAMqD,EAAKpF,QACrB,IAAK,IAAIF,EAAI,EAAGC,EAAIqF,EAAKpF,OAAQF,EAAIC,EAAGD,IAAK,CAC3C,MAAM5C,EAAMkI,EAAKtF,GACjBoN,EAAIpN,GAAK8jG,EAAWnjG,EAAOvD,GAAMA,EAAK4C,EAAGi2F,GAAUA,EAAOj2F,GAC5D,CACF,MAEAoN,EAAM,GAKR,OAHIq1D,IACFA,EAAMhiE,GAAS2M,GAEVA,CACT,CAEA,SAAS22F,GAAYnM,EAAOoM,GAC1B,IAAK,IAAIhkG,EAAI,EAAGA,EAAIgkG,EAAa9jG,OAAQF,IAAK,CAC5C,MAAMikG,EAAOD,EAAahkG,GAC1B,IAAI,QAAQikG,GACV,IAAK,IAAI9+B,EAAI,EAAGA,EAAI8+B,EAAK/jG,OAAQilE,IAC/ByyB,EAAMqM,EAAK9+B,GAAGlhE,MAAQggG,EAAK9+B,GAAGniE,QAEvBihG,IACTrM,EAAMqM,EAAKhgG,MAAQggG,EAAK7mG,IAAM,IAAIkK,KAChC,MAAM2lC,EAAMg3D,EAAKjhG,MAAMsE,GAGvB,OAFI2lC,IACFA,EAAI7vC,IAAM6mG,EAAK7mG,KACV6vC,CAAG,EACRg3D,EAAKjhG,GAEb,CACA,OAAO40F,CACT,CAEA,SAASsM,GAAWtM,EAAO3zF,EAAMie,EAAQ,CAAC,EAAGiiF,EAAUC,GACrD,GAAIzN,EAAyB0N,MAAQ1N,EAAyBx8D,QAAU8nE,GAAetL,EAAyBx8D,SAAWw8D,EAAyBx8D,OAAOkqE,KAGzJ,MAFa,YAATpgG,IACFie,EAAMje,KAAOA,GACRw0F,GAAY,OAAQv2E,EAAOiiF,GAAYA,KAEhD,IAAIF,EAAOrM,EAAM3zF,GAObggG,GAAQA,EAAK/oF,KACf+oF,EAAKx7D,IAAK,GAEZ67D,KACA,MAAMC,EAAmBN,GAAQO,GAAiBP,EAAK/hF,IACjDuiF,EAAWC,GACf5C,GACA,CACE1kG,IAAK8kB,EAAM9kB,KAEXmnG,GAAoBA,EAAiBnnG,KAAO,IAAI6G,KAElDsgG,IAAqBJ,EAAWA,IAAa,IAC7CI,GAAgC,IAAZ3M,EAAMn+E,EAAU,IAAM,GAQ5C,OANK2qF,GAAaK,EAASE,UACzBF,EAASG,aAAe,CAACH,EAASE,QAAU,OAE1CV,GAAQA,EAAK/oF,KACf+oF,EAAKx7D,IAAK,GAELg8D,CACT,CACA,SAASD,GAAiBK,GACxB,OAAOA,EAAOnmE,MAAM6gE,IACbuF,GAAQvF,IAETA,EAAM1hG,OAAS66F,MAEf6G,EAAM1hG,OAASikG,KAAa0C,GAAiBjF,EAAMnG,aAGpDyL,EAAS,IAChB,CAEA,SAASE,GAAW74F,EAAK84F,GACvB,MAAM53F,EAAM,CAAC,EAKb,IAAK,MAAMhQ,KAAO8O,EAChBkB,EAAI43F,GAA2B,QAAQh8F,KAAK5L,GAAO,MAAMA,KAAQ,QAAaA,IAAQ8O,EAAI9O,GAE5F,OAAOgQ,CACT,CAEA,MAAM63F,GAAqBjlG,GACpBA,EAEDklG,GAAoBllG,GACfi9F,GAAej9F,IAAMA,EAAE4vF,MACzBqV,GAAkBjlG,EAAEm6B,QAHlB,KAKLgrE,IAGY,QAAuB9/F,OAAO1G,OAAO,MAAO,CAC1DymG,EAAIplG,GAAMA,EACVqlG,IAAMrlG,GAAMA,EAAE6yF,MAAMkH,GACpBuL,MAAQtlG,GAAMA,EAAEtG,KAChB6rG,OAASvlG,GAA6EA,EAAEkiB,MACxFsjF,OAASxlG,GAA6EA,EAAEirD,MACxFw6C,OAASzlG,GAA6EA,EAAE43F,MACxF8N,MAAQ1lG,GAA4EA,EAAE2lG,KACtFC,QAAU5lG,GAAMilG,GAAkBjlG,EAAEm6B,QACpC0rE,MAAQ7lG,GAAMilG,GAAkBjlG,EAAE85B,MAClCgsE,MAAQ9lG,GAAMA,EAAEq1F,KAChB0Q,SAAW/lG,GAA4BgmG,GAAqBhmG,GAC5DimG,aAAejmG,GAAMA,EAAEsZ,IAAMtZ,EAAEsZ,EAAI,IAAMi7E,EAASv0F,EAAE4U,SACpDsxF,UAAYlmG,GAAMA,EAAEkS,IAAMlS,EAAEkS,EAAI8hF,EAAS91F,KAAK8B,EAAE4vF,QAChDuW,OAASnmG,GAA4By8F,GAAcv+F,KAAK8B,KAItDomG,GAAkB,CAAC5sD,EAAOp8C,IAAQo8C,IAAU,OAAcA,EAAM6sD,kBAAmB,QAAO7sD,EAAOp8C,GACjGkpG,GAA8B,CAClC,GAAAxqF,EAAMrC,EAAGjb,GAAYpB,GACnB,MAAM,IAAE85F,EAAG,WAAEa,EAAU,KAAEr+F,EAAI,MAAEwoB,EAAK,YAAEqkF,EAAW,KAAE1oG,EAAI,WAAEu1F,GAAe50F,EAIxE,IAAIgoG,EACJ,GAAe,MAAXppG,EAAI,GAAY,CAClB,MAAM8U,EAAIq0F,EAAYnpG,GACtB,QAAU,IAAN8U,EACF,OAAQA,GACN,KAAK,EACH,OAAO6lF,EAAW36F,GACpB,KAAK,EACH,OAAO1D,EAAK0D,GACd,KAAK,EACH,OAAO85F,EAAI95F,GACb,KAAK,EACH,OAAO8kB,EAAM9kB,OAEZ,IAAIgpG,GAAgBrO,EAAY36F,GAErC,OADAmpG,EAAYnpG,GAAO,EACZ26F,EAAW36F,GACb,GAAI1D,IAAS,OAAa,QAAOA,EAAM0D,GAE5C,OADAmpG,EAAYnpG,GAAO,EACZ1D,EAAK0D,GACP,IAGJopG,EAAkBhoG,EAASm5F,aAAa,MAAO,QAAO6O,EAAiBppG,GAGxE,OADAmpG,EAAYnpG,GAAO,EACZ8kB,EAAM9kB,GACR,GAAI85F,IAAQ,OAAa,QAAOA,EAAK95F,GAE1C,OADAmpG,EAAYnpG,GAAO,EACZ85F,EAAI95F,GACsBqpG,KACjCF,EAAYnpG,GAAO,EACrB,CACF,CACA,MAAMspG,EAAevB,GAAoB/nG,GACzC,IAAIupG,EAAWC,EACf,OAAIF,GACU,WAARtpG,IACF,QAAMoB,EAAU,MAAOpB,GAKlBspG,EAAaloG,KAGnBmoG,EAAY9oG,EAAKgpG,gBAAkBF,EAAYA,EAAUvpG,IAEnDupG,EACEzP,IAAQ,OAAa,QAAOA,EAAK95F,IAC1CmpG,EAAYnpG,GAAO,EACZ85F,EAAI95F,KAGXwpG,EAAmBxT,EAAWh6F,OAAOwtG,kBAAkB,QAAOA,EAAkBxpG,GAGvEwpG,EAAiBxpG,QALrB,EAsBT,EACA,GAAA2f,EAAMtD,EAAGjb,GAAYpB,EAAK5B,GACxB,MAAM,KAAE9B,EAAI,WAAEq+F,EAAU,IAAEb,GAAQ14F,EAClC,OAAI4nG,GAAgBrO,EAAY36F,IAC9B26F,EAAW36F,GAAO5B,GACX,GAIE9B,IAAS,OAAa,QAAOA,EAAM0D,IAC5C1D,EAAK0D,GAAO5B,GACL,KACE,QAAOgD,EAAS0jB,MAAO9kB,MAInB,MAAXA,EAAI,MAAcA,EAAI0H,MAAM,KAAMtG,MAalC04F,EAAI95F,GAAO5B,GAGR,GACT,EACA,GAAAmhB,EACElD,GAAG,KAAE/f,EAAI,WAAEq+F,EAAU,YAAEwO,EAAW,IAAErP,EAAG,WAAE9D,EAAU,aAAEuE,IACpDv6F,GACD,IAAIopG,EACJ,QAASD,EAAYnpG,IAAQ1D,IAAS,OAAa,QAAOA,EAAM0D,IAAQgpG,GAAgBrO,EAAY36F,KAASopG,EAAkB7O,EAAa,MAAO,QAAO6O,EAAiBppG,KAAQ,QAAO85F,EAAK95F,KAAQ,QAAO+nG,GAAqB/nG,KAAQ,QAAOg2F,EAAWh6F,OAAOwtG,iBAAkBxpG,EACxR,EACA,cAAAwkB,CAAejd,EAAQvH,EAAK+kB,GAM1B,OALsB,MAAlBA,EAAWrG,IACbnX,EAAO8U,EAAE8sF,YAAYnpG,GAAO,GACnB,QAAO+kB,EAAY,UAC5B7iB,KAAKyd,IAAIpY,EAAQvH,EAAK+kB,EAAW3mB,MAAO,MAEnC0nB,QAAQtB,eAAejd,EAAQvH,EAAK+kB,EAC7C,GAmLF,SAAS2kF,GAAsB5kF,GAC7B,OAAO,QAAQA,GAASA,EAAMvG,QAC5B,CAACw6E,EAAY3mF,KAAO2mF,EAAW3mF,GAAK,KAAM2mF,IAC1C,CAAC,GACCj0E,CACN,CAuEA,IAAIukF,IAAoB,EACxB,SAASM,GAAavoG,GACpB,MAAMqE,EAAUmjG,GAAqBxnG,GAC/Bk+F,EAAal+F,EAASoxF,MACtBsH,EAAM14F,EAAS04F,IACrBuP,IAAoB,EAChB5jG,EAAQmkG,cACVnG,GAASh+F,EAAQmkG,aAAcxoG,EAAU,MAE3C,MAEE9E,KAAMutG,EACNrc,SAAUsc,EAAe,QACzBC,EACA7L,MAAO8L,EACPC,QAASC,EACTC,OAAQC,EAAa,QAErBC,EAAO,YACPC,EAAW,QACXtK,EAAO,aACPuK,EAAY,QACZtK,EAAO,UACPuK,EAAS,YACTC,EAAW,cACXC,EAAa,cACbC,EAAa,UACbC,EAAS,UACTC,EAAS,OACTpQ,EAAM,cACNqQ,EAAa,gBACbC,EAAe,cACfC,EAAa,eACbC,EAAc,OAEdC,EAAM,aACNtQ,EAAY,WAEZuQ,EAAU,WACVj3E,EAAU,QACVk3E,GACE3lG,EACE4lG,EAAkG,KAYxG,GAHIjB,GACFkB,GAAkBlB,EAAetQ,EAAKuR,GAEpCtB,EACF,IAAK,MAAM/pG,KAAO+pG,EAAS,CACzB,MAAMwB,EAAgBxB,EAAQ/pG,IAC1B,QAAWurG,KASXzR,EAAI95F,GAAOurG,EAAczqG,KAAKw+F,GAUpC,CAEF,GAAIuK,EAAa,CACX,EAKJ,MAAMvtG,EAAOutG,EAAYvjG,KAAKg5F,EAAYA,GACtC,GAKC,QAAShjG,KAGZ8E,EAAS9E,MAAO,QAASA,GAe7B,CAEA,GADA+sG,IAAoB,EAChBS,EACF,IAAK,MAAM9pG,KAAO8pG,EAAiB,CACjC,MAAMh8F,EAAMg8F,EAAgB9pG,GACtB0e,GAAM,QAAW5Q,GAAOA,EAAIhN,KAAKw+F,EAAYA,IAAc,QAAWxxF,EAAI4Q,KAAO5Q,EAAI4Q,IAAI5d,KAAKw+F,EAAYA,GAAc,KAC1H,EAGJ,MAAM3/E,IAAO,QAAW7R,KAAQ,QAAWA,EAAI6R,KAAO7R,EAAI6R,IAAI7e,KAAKw+F,GAI/D,KACE97F,EAAIgqF,GAAS,CACjB9uE,MACAiB,QAEF1X,OAAOuc,eAAes1E,EAAK95F,EAAK,CAC9BmkB,YAAY,EACZM,cAAc,EACd/F,IAAK,IAAMlb,EAAEpF,MACbuhB,IAAMpV,GAAM/G,EAAEpF,MAAQmM,GAK1B,CAEF,GAAIy/F,EACF,IAAK,MAAMhqG,KAAOgqG,EAChBwB,GAAcxB,EAAahqG,GAAM85F,EAAKwF,EAAYt/F,GAGtD,GAAIkqG,EAAgB,CAClB,MAAMuB,GAAW,QAAWvB,GAAkBA,EAAe5jG,KAAKg5F,GAAc4K,EAChFpkF,QAAQjC,QAAQ4nF,GAAU3rG,SAASE,IACjCiqG,GAAQjqG,EAAKyrG,EAASzrG,GAAK,GAE/B,CAIA,SAAS0rG,EAAsB/2F,EAAU0rF,IACnC,QAAQA,GACVA,EAAKvgG,SAAS6rG,GAAUh3F,EAASg3F,EAAM7qG,KAAKw+F,MACnCe,GACT1rF,EAAS0rF,EAAKv/F,KAAKw+F,GAEvB,CAaA,GAtBI+K,GACF5G,GAAS4G,EAASjpG,EAAU,KAS9BsqG,EAAsBxF,GAAeoE,GACrCoB,EAAsB9K,GAAWZ,GACjC0L,EAAsBvF,GAAgBoE,GACtCmB,EAAsBtF,GAAWnG,GACjCyL,EAAsBzG,GAAauF,GACnCkB,EAAsBvG,GAAesF,GACrCiB,EAAsBlF,GAAiBwE,GACvCU,EAAsBnF,GAAiBuE,GACvCY,EAAsBpF,GAAmByE,GACzCW,EAAsB7K,GAAiB8J,GACvCe,EAAsB/F,GAAakF,GACnCa,EAAsBrF,GAAkB4E,IACpC,QAAQC,GACV,GAAIA,EAAOpoG,OAAQ,CACjB,MAAM8oG,EAAUxqG,EAASwqG,UAAYxqG,EAASwqG,QAAU,CAAC,GACzDV,EAAOprG,SAASE,IACdiI,OAAOuc,eAAeonF,EAAS5rG,EAAK,CAClC0e,IAAK,IAAM4gF,EAAWt/F,GACtB2f,IAAM5f,GAAQu/F,EAAWt/F,GAAOD,GAChC,GAEN,MAAYqB,EAASwqG,UACnBxqG,EAASwqG,QAAU,CAAC,GAGpBnR,GAAUr5F,EAASq5F,SAAW,OAChCr5F,EAASq5F,OAASA,GAEA,MAAhBG,IACFx5F,EAASw5F,aAAeA,GAEtBuQ,IACF/pG,EAAS+pG,WAAaA,GACpBj3E,IACF9yB,EAAS8yB,WAAaA,EAC1B,CACA,SAASo3E,GAAkBlB,EAAetQ,EAAKuR,EAA2B,OACpE,QAAQjB,KACVA,EAAgByB,GAAgBzB,IAElC,IAAK,MAAMpqG,KAAOoqG,EAAe,CAC/B,MAAMt8F,EAAMs8F,EAAcpqG,GAC1B,IAAI0lG,EAGAA,GAFA,QAAS53F,GACP,YAAaA,EACJq8F,GACTr8F,EAAI20B,MAAQziC,EACZ8N,EAAIq1C,SACJ,GAISgnD,GAAOr8F,EAAI20B,MAAQziC,GAGrBmqG,GAAOr8F,IAEhB,QAAM43F,GACRz9F,OAAOuc,eAAes1E,EAAK95F,EAAK,CAC9BmkB,YAAY,EACZM,cAAc,EACd/F,IAAK,IAAMgnF,EAAStnG,MACpBuhB,IAAMpV,GAAMm7F,EAAStnG,MAAQmM,IAG/BuvF,EAAI95F,GAAO0lG,CAKf,CACF,CACA,SAASjC,GAASpD,EAAMj/F,EAAUX,GAChC60F,GACE,QAAQ+K,GAAQA,EAAKtoF,KAAKlS,GAAMA,EAAE/E,KAAKM,EAASoxF,SAAU6N,EAAKv/F,KAAKM,EAASoxF,OAC7EpxF,EACAX,EAEJ,CACA,SAAS+qG,GAAc7Y,EAAKmH,EAAKwF,EAAYt/F,GAC3C,MAAM00F,EAAS10F,EAAI2W,SAAS,KAAO4oF,GAAiBD,EAAYt/F,GAAO,IAAMs/F,EAAWt/F,GACxF,IAAI,QAAS2yF,GAAM,CACjB,MAAM//C,EAAUknD,EAAInH,IAChB,QAAW//C,IACbsrD,GAAMxJ,EAAQ9hD,EAIlB,MAAO,IAAI,QAAW+/C,GACpBuL,GAAMxJ,EAAQ/B,EAAI7xF,KAAKw+F,SAClB,IAAI,QAAS3M,GAClB,IAAI,QAAQA,GACVA,EAAI7yF,SAASoV,GAAMs2F,GAAct2F,EAAG4kF,EAAKwF,EAAYt/F,SAChD,CACL,MAAM4yC,GAAU,QAAW+/C,EAAI//C,SAAW+/C,EAAI//C,QAAQ9xC,KAAKw+F,GAAcxF,EAAInH,EAAI//C,UAC7E,QAAWA,IACbsrD,GAAMxJ,EAAQ9hD,EAAS+/C,EAI3B,MACS,CAGb,CACA,SAASiW,GAAqBxnG,GAC5B,MAAM0qG,EAAO1qG,EAASX,MAChB,OAAE24F,EAAQC,QAAS0S,GAAmBD,GAE1C1S,OAAQ4S,EACRC,aAAc5mC,EACdrpE,QAAQ,sBAAEkwG,IACR9qG,EAAS40F,WACP6C,EAASxzB,EAAM3mD,IAAIotF,GACzB,IAAIK,EAmBJ,OAlBItT,EACFsT,EAAWtT,EACDmT,EAAalpG,QAAWs2F,GAAW2S,GAK7CI,EAAW,CAAC,EACRH,EAAalpG,QACfkpG,EAAalsG,SACViV,GAAMq3F,GAAaD,EAAUp3F,EAAGm3F,GAAuB,KAG5DE,GAAaD,EAAUL,EAAMI,IAT3BC,EAAWL,GAWX,QAASA,IACXzmC,EAAM1lD,IAAImsF,EAAMK,GAEXA,CACT,CACA,SAASC,GAAaC,EAAI5pE,EAAM6pE,EAAQ3T,GAAU,GAChD,MAAM,OAAES,EAAQC,QAAS0S,GAAmBtpE,EACxCspE,GACFK,GAAaC,EAAIN,EAAgBO,GAAQ,GAEvClT,GACFA,EAAOt5F,SACJiV,GAAMq3F,GAAaC,EAAIt3F,EAAGu3F,GAAQ,KAGvC,IAAK,MAAMtsG,KAAOyiC,EAChB,GAAIk2D,GAAmB,WAAR34F,OAIR,CACL,MAAMusG,EAAQC,GAA0BxsG,IAAQssG,GAAUA,EAAOtsG,GACjEqsG,EAAGrsG,GAAOusG,EAAQA,EAAMF,EAAGrsG,GAAMyiC,EAAKziC,IAAQyiC,EAAKziC,EACrD,CAEF,OAAOqsG,CACT,CACA,MAAMG,GAA4B,CAChClwG,KAAMmwG,GACN3nF,MAAO4nF,GACP5T,MAAO4T,GAEP3C,QAAS4C,GACTnf,SAAUmf,GAEV/C,aAAcgD,GACdvC,QAASuC,GACTtC,YAAasC,GACb5M,QAAS4M,GACTrC,aAAcqC,GACd3M,QAAS2M,GACTlC,cAAekC,GACfjC,cAAeiC,GACfhC,UAAWgC,GACX/B,UAAW+B,GACXpC,UAAWoC,GACXnC,YAAamC,GACb5B,cAAe4B,GACf3B,eAAgB2B,GAEhBzB,WAAYwB,GACZz4E,WAAYy4E,GAEZzO,MAAO2O,GAEP5C,QAASwC,GACTtC,OAAQ2C,IAEV,SAASL,GAAYJ,EAAI5pE,GACvB,OAAKA,EAGA4pE,EAGE,WACL,OAAO,EAAC,OACN,QAAWA,GAAMA,EAAG/lG,KAAKpE,KAAMA,MAAQmqG,GACvC,QAAW5pE,GAAQA,EAAKn8B,KAAKpE,KAAMA,MAAQugC,EAE/C,EAPSA,EAHA4pE,CAWX,CACA,SAASS,GAAYT,EAAI5pE,GACvB,OAAOkqE,GAAmBd,GAAgBQ,GAAKR,GAAgBppE,GACjE,CACA,SAASopE,GAAgBlZ,GACvB,IAAI,QAAQA,GAAM,CAChB,MAAM9iD,EAAM,CAAC,EACb,IAAK,IAAIjtC,EAAI,EAAGA,EAAI+vF,EAAI7vF,OAAQF,IAC9BitC,EAAI8iD,EAAI/vF,IAAM+vF,EAAI/vF,GAEpB,OAAOitC,CACT,CACA,OAAO8iD,CACT,CACA,SAASia,GAAaP,EAAI5pE,GACxB,OAAO4pE,EAAK,IAAI,IAAIliE,IAAI,GAAGplC,OAAOsnG,EAAI5pE,KAAUA,CAClD,CACA,SAASkqE,GAAmBN,EAAI5pE,GAC9B,OAAO4pE,GAAK,QAAuBpkG,OAAO1G,OAAO,MAAO8qG,EAAI5pE,GAAQA,CACtE,CACA,SAASiqE,GAAyBL,EAAI5pE,GACpC,OAAI4pE,GACE,QAAQA,KAAO,QAAQ5pE,GAClB,IAAoB,IAAI0H,IAAI,IAAIkiE,KAAO5pE,MAEzC,QACWx6B,OAAO1G,OAAO,MAC9BmoG,GAAsB2C,GACtB3C,GAA8B,MAARjnE,EAAeA,EAAO,CAAC,IAGxCA,CAEX,CACA,SAASoqE,GAAkBR,EAAI5pE,GAC7B,IAAK4pE,EACH,OAAO5pE,EACT,IAAKA,EACH,OAAO4pE,EACT,MAAMU,GAAS,QAAuB9kG,OAAO1G,OAAO,MAAO8qG,GAC3D,IAAK,MAAMrsG,KAAOyiC,EAChBsqE,EAAO/sG,GAAO4sG,GAAaP,EAAGrsG,GAAMyiC,EAAKziC,IAE3C,OAAO+sG,CACT,CAEA,SAASC,KACP,MAAO,CACLC,IAAK,KACLjxG,OAAQ,CACNkxG,YAAa,EAAAC,GACbC,aAAa,EACb5D,iBAAkB,CAAC,EACnB0C,sBAAuB,CAAC,EACxBjW,kBAAc,EACdoX,iBAAa,EACbC,gBAAiB,CAAC,GAEpBlU,OAAQ,GACR+R,WAAY,CAAC,EACbj3E,WAAY,CAAC,EACbu3E,SAA0BxjG,OAAO1G,OAAO,MACxC0qG,aAA8B,IAAI7uF,QAClCmwF,WAA4B,IAAInwF,QAChCw7E,WAA4B,IAAIx7E,QAEpC,CACA,IAAIowF,GAAQ,EACZ,SAASC,GAAahT,EAAQiT,GAC5B,OAAO,SAAmBC,EAAeC,EAAY,OAC9C,QAAWD,KACdA,GAAgB,QAAO,CAAC,EAAGA,IAEZ,MAAbC,IAAsB,QAASA,KAEjCA,EAAY,MAEd,MAAMzsG,EAAU6rG,KAahB,MAAMa,EAAmC,IAAIC,QAC7C,IAAIrN,GAAY,EAChB,MAAMwM,EAAM9rG,EAAQ8rG,IAAM,CACxBc,KAAMP,KACNQ,WAAYL,EACZM,OAAQL,EACRM,WAAY,KACZC,SAAUhtG,EACVitG,UAAW,KACXpgG,WACA,UAAIhS,GACF,OAAOmF,EAAQnF,MACjB,EACA,UAAIA,CAAOuO,GACL,CAKN,EACA,GAAA/E,CAAI07D,KAAWz7D,GAcb,OAbIooG,EAAiBtuF,IAAI2hD,KAEdA,IAAU,QAAWA,EAAOmtC,UACrCR,EAAiBzjE,IAAI82B,GACrBA,EAAOmtC,QAAQpB,KAAQxnG,KACd,QAAWy7D,KACpB2sC,EAAiBzjE,IAAI82B,GACrBA,EAAO+rC,KAAQxnG,KAMVwnG,CACT,EACA,KAAAqB,CAAMA,GAYJ,OAVOntG,EAAQi4F,OAAOziF,SAAS23F,IAC3BntG,EAAQi4F,OAAOh2F,KAAKkrG,GASjBrB,CACT,EACA,SAAAr1F,CAAU/Q,EAAM+Q,GAId,OAAKA,GAMLzW,EAAQgqG,WAAWtkG,GAAQ+Q,EACpBq1F,GANE9rG,EAAQgqG,WAAWtkG,EAO9B,EACA,SAAA0nG,CAAU1nG,EAAM0nG,GAId,OAAKA,GAMLptG,EAAQ+yB,WAAWrtB,GAAQ0nG,EACpBtB,GANE9rG,EAAQ+yB,WAAWrtB,EAO9B,EACA,KAAA2nG,CAAMC,EAAeC,EAAWC,GAC9B,IAAKlO,EAAW,CACV,EAMJ,MAAMhL,EAAQ4F,GAAYsS,EAAeC,GAmBzC,OAlBAnY,EAAMO,WAAa70F,EAMfutG,GAAahB,EACfA,EAAQjY,EAAOgZ,GAEfhU,EAAOhF,EAAOgZ,EAAeE,GAE/BlO,GAAY,EACZwM,EAAIiB,WAAaO,EACjBA,EAAcG,YAAc3B,EAKrBpN,GAAepK,EAAM79E,YAAc69E,EAAM79E,UAAU46E,KAC5D,CAMF,EACA,OAAAqc,GACMpO,IACFhG,EAAO,KAAMwS,EAAIiB,mBAKVjB,EAAIiB,WAAWU,YAI1B,EACA,OAAA3E,CAAQjqG,EAAK5B,GAOX,OADA+C,EAAQsqG,SAASzrG,GAAO5B,EACjB6uG,CACT,EACA,cAAA6B,CAAelpG,GACbmpG,GAAa9B,EACb,IACE,OAAOrnG,GACT,CAAE,QACAmpG,GAAa,IACf,CACF,GAEF,OAAO9B,CACT,CACF,CACA,IAAI8B,GAAa,KAEjB,SAAS9E,GAAQjqG,EAAK5B,GACpB,GAAKk/F,GAIE,CACL,IAAImO,EAAWnO,GAAgBmO,SAC/B,MAAMuD,EAAiB1R,GAAgBvgE,QAAUugE,GAAgBvgE,OAAO0uE,SACpEuD,IAAmBvD,IACrBA,EAAWnO,GAAgBmO,SAAWxjG,OAAO1G,OAAOytG,IAEtDvD,EAASzrG,GAAO5B,CAClB,MAVM,CAWR,CACA,SAAS+rG,GAAOnqG,EAAK80B,EAAcm6E,GAAwB,GACzD,MAAM7tG,EAAWk8F,IAAmB/D,EACpC,GAAIn4F,GAAY2tG,GAAY,CAC1B,MAAMtD,EAAWrqG,EAA8B,MAAnBA,EAAS27B,OAAiB37B,EAASq0F,MAAMO,YAAc50F,EAASq0F,MAAMO,WAAWyV,SAAWrqG,EAAS27B,OAAO0uE,SAAWsD,GAAWZ,SAAS1C,SACvK,GAAIA,GAAYzrG,KAAOyrG,EACrB,OAAOA,EAASzrG,GACX,GAAImK,UAAUrH,OAAS,EAC5B,OAAOmsG,IAAyB,QAAWn6E,GAAgBA,EAAaxuB,KAAKlF,GAAYA,EAASoxF,OAAS19D,CAI/G,MAAW,CAGb,CAKA,SAASo6E,GAAU9tG,EAAUihG,EAAU8M,EAAYva,GAAQ,GACzD,MAAM9vE,EAAQ,CAAC,EACT+oC,EAAQ,CAAC,GACf,QAAIA,EAAOuhD,GAAmB,GAC9BhuG,EAASiuG,cAAgCpnG,OAAO1G,OAAO,MACvD+tG,GAAaluG,EAAUihG,EAAUv9E,EAAO+oC,GACxC,IAAK,MAAM7tD,KAAOoB,EAASm5F,aAAa,GAChCv6F,KAAO8kB,IACXA,EAAM9kB,QAAO,GAMbmvG,EACF/tG,EAAS0jB,MAAQ8vE,EAAQ9vE,GAAQ,QAAgBA,GAE5C1jB,EAASX,KAAKqkB,MAGjB1jB,EAAS0jB,MAAQA,EAFjB1jB,EAAS0jB,MAAQ+oC,EAKrBzsD,EAASysD,MAAQA,CACnB,CAQA,SAAS0hD,GAAYnuG,EAAUihG,EAAUmN,EAAc1T,GACrD,MAAM,MACJh3E,EAAK,MACL+oC,EACA4nC,OAAO,UAAE2G,IACPh7F,EACEquG,GAAkB,QAAM3qF,IACvBrf,GAAWrE,EAASm5F,aAC3B,IAAImV,GAAkB,EACtB,KAI+E5T,GAAaM,EAAY,IAAoB,GAAZA,EAoCzG,CAIL,IAAIuT,EAHAL,GAAaluG,EAAUihG,EAAUv9E,EAAO+oC,KAC1C6hD,GAAkB,GAGpB,IAAK,MAAM1vG,KAAOyvG,EACXpN,KACJ,QAAOA,EAAUriG,KAEhB2vG,GAAW,QAAU3vG,MAAUA,IAAQ,QAAOqiG,EAAUsN,MACpDlqG,GACE+pG,QACmB,IAAtBA,EAAaxvG,SACa,IAA3BwvG,EAAaG,KACX7qF,EAAM9kB,GAAO4vG,GACXnqG,EACAgqG,EACAzvG,OACA,EACAoB,GACA,WAKG0jB,EAAM9kB,IAInB,GAAI6tD,IAAU4hD,EACZ,IAAK,MAAMzvG,KAAO6tD,EACXw0C,IAAa,QAAOA,EAAUriG,YAC1B6tD,EAAM7tD,GACb0vG,GAAkB,EAI1B,MAvEE,GAAgB,EAAZtT,EAAe,CACjB,MAAMyT,EAAgBzuG,EAASq0F,MAAM+G,aACrC,IAAK,IAAI55F,EAAI,EAAGA,EAAIitG,EAAc/sG,OAAQF,IAAK,CAC7C,IAAI5C,EAAM6vG,EAAcjtG,GACxB,GAAI02F,EAAel4F,EAASi7F,aAAcr8F,GACxC,SAEF,MAAM5B,EAAQikG,EAASriG,GACvB,GAAIyF,EACF,IAAI,QAAOooD,EAAO7tD,GACZ5B,IAAUyvD,EAAM7tD,KAClB6tD,EAAM7tD,GAAO5B,EACbsxG,GAAkB,OAEf,CACL,MAAMI,GAAe,QAAS9vG,GAC9B8kB,EAAMgrF,GAAgBF,GACpBnqG,EACAgqG,EACAK,EACA1xG,EACAgD,GACA,EAGJ,MAEIhD,IAAUyvD,EAAM7tD,KAClB6tD,EAAM7tD,GAAO5B,EACbsxG,GAAkB,EAGxB,CACF,CAuCEA,IACF,QAAQtuG,EAAU,MAAO,SAK7B,CACA,SAASkuG,GAAaluG,EAAUihG,EAAUv9E,EAAO+oC,GAC/C,MAAOpoD,EAASsqG,GAAgB3uG,EAASm5F,aACzC,IACIyV,EADAN,GAAkB,EAEtB,GAAIrN,EACF,IAAK,IAAIriG,KAAOqiG,EAAU,CACxB,IAAI,QAAeriG,GACjB,SAEF,MAAM5B,EAAQikG,EAASriG,GACvB,IAAIiwG,EACAxqG,IAAW,QAAOA,EAASwqG,GAAW,QAASjwG,IAC5C+vG,GAAiBA,EAAap5F,SAASs5F,IAGzCD,IAAkBA,EAAgB,CAAC,IAAIC,GAAY7xG,EAFpD0mB,EAAMmrF,GAAY7xG,EAIVk7F,EAAel4F,EAASi7F,aAAcr8F,IAC1CA,KAAO6tD,GAAUzvD,IAAUyvD,EAAM7tD,KACrC6tD,EAAM7tD,GAAO5B,EACbsxG,GAAkB,EAGxB,CAEF,GAAIK,EAAc,CAChB,MAAMN,GAAkB,QAAM3qF,GACxBorF,EAAaF,GAAiB,KACpC,IAAK,IAAIptG,EAAI,EAAGA,EAAImtG,EAAajtG,OAAQF,IAAK,CAC5C,MAAM5C,EAAM+vG,EAAantG,GACzBkiB,EAAM9kB,GAAO4vG,GACXnqG,EACAgqG,EACAzvG,EACAkwG,EAAWlwG,GACXoB,IACC,QAAO8uG,EAAYlwG,GAExB,CACF,CACA,OAAO0vG,CACT,CACA,SAASE,GAAiBnqG,EAASqf,EAAO9kB,EAAK5B,EAAOgD,EAAU+uG,GAC9D,MAAMriG,EAAMrI,EAAQzF,GACpB,GAAW,MAAP8N,EAAa,CACf,MAAMsiG,GAAa,QAAOtiG,EAAK,WAC/B,GAAIsiG,QAAwB,IAAVhyG,EAAkB,CAClC,MAAM02B,EAAehnB,EAAIq1C,QACzB,GAAIr1C,EAAIrN,OAASmmB,WAAa9Y,EAAIuiG,cAAe,QAAWv7E,GAAe,CACzE,MAAM,cAAEu6E,GAAkBjuG,EACtBpB,KAAOqvG,EACTjxG,EAAQixG,EAAcrvG,IAEtBw/F,GAAmBp+F,GACnBhD,EAAQixG,EAAcrvG,GAAO80B,EAAaxuB,KACxC,KACAwe,GAEF26E,KAEJ,MACErhG,EAAQ02B,CAEZ,CACIhnB,EAAI,KACFqiG,IAAaC,EACfhyG,GAAQ,GACC0P,EAAI,IAAsC,KAAV1P,GAAgBA,KAAU,QAAU4B,KAC7E5B,GAAQ,GAGd,CACA,OAAOA,CACT,CACA,SAASkyG,GAAsB77C,EAAMuhC,EAAY2C,GAAU,GACzD,MAAMtzB,EAAQ2wB,EAAWuX,WACnB1U,EAASxzB,EAAM3mD,IAAI+1C,GACzB,GAAIokC,EACF,OAAOA,EAET,MAAMlG,EAAMl+B,EAAK3vC,MACXi0E,EAAa,CAAC,EACdgX,EAAe,GACrB,IAAI/W,GAAa,EACjB,KAA4B,QAAWvkC,GAAO,CAC5C,MAAM87C,EAAerX,IACnBF,GAAa,EACb,MAAOl0E,EAAO5c,GAAQooG,GAAsBpX,EAAMlD,GAAY,IAC9D,QAAO+C,EAAYj0E,GACf5c,GACF6nG,EAAa3sG,QAAQ8E,EAAK,GAEzBywF,GAAW3C,EAAWoD,OAAOt2F,QAChCkzF,EAAWoD,OAAOt5F,QAAQywG,GAExB97C,EAAK4kC,SACPkX,EAAY97C,EAAK4kC,SAEf5kC,EAAK2kC,QACP3kC,EAAK2kC,OAAOt5F,QAAQywG,EAExB,CACA,IAAK5d,IAAQqG,EAIX,OAHI,QAASvkC,IACX4Q,EAAM1lD,IAAI80C,EAAM,MAEX,KAET,IAAI,QAAQk+B,GACV,IAAK,IAAI/vF,EAAI,EAAGA,EAAI+vF,EAAI7vF,OAAQF,IAAK,CAC/B,EAGJ,MAAM4tG,GAAgB,QAAS7d,EAAI/vF,IAC/B6tG,GAAiBD,KACnBzX,EAAWyX,GAAiB,KAEhC,MACK,GAAI7d,EAAK,CACV,EAGJ,IAAK,MAAM3yF,KAAO2yF,EAAK,CACrB,MAAM6d,GAAgB,QAASxwG,GAC/B,GAAIywG,GAAiBD,GAAgB,CACnC,MAAM1iG,EAAM6kF,EAAI3yF,GACV4H,EAAOmxF,EAAWyX,IAAiB,QAAQ1iG,KAAQ,QAAWA,GAAO,CAAErN,KAAMqN,IAAQ,QAAO,CAAC,EAAGA,GACtG,GAAIlG,EAAM,CACR,MAAM8oG,EAAeC,GAAaj6F,QAAS9O,EAAKnH,MAC1CmwG,EAAcD,GAAaziF,OAAQtmB,EAAKnH,MAC9CmH,EAAK,GAAsB8oG,GAAgB,EAC3C9oG,EAAK,GAA0BgpG,EAAc,GAAKF,EAAeE,GAC7DF,GAAgB,IAAK,QAAO9oG,EAAM,aACpCmoG,EAAa3sG,KAAKotG,EAEtB,CACF,CACF,CACF,CACA,MAAM3gE,EAAM,CAACkpD,EAAYgX,GAIzB,OAHI,QAASt7C,IACX4Q,EAAM1lD,IAAI80C,EAAM5kB,GAEXA,CACT,CACA,SAAS4gE,GAAiBzwG,GACxB,MAAe,MAAXA,EAAI,EAMV,CACA,SAAS6wG,GAAQv9B,GACf,MAAM/nE,EAAQ+nE,GAAQA,EAAKnxE,WAAWoJ,MAAM,8BAC5C,OAAOA,EAAQA,EAAM,GAAc,OAAT+nE,EAAgB,OAAS,EACrD,CACA,SAASw9B,GAAW7hG,EAAGC,GACrB,OAAO2hG,GAAQ5hG,KAAO4hG,GAAQ3hG,EAChC,CACA,SAASyhG,GAAalwG,EAAMswG,GAC1B,OAAI,QAAQA,GACHA,EAAc/vC,WAAWjqD,GAAM+5F,GAAW/5F,EAAGtW,MAC3C,QAAWswG,IACbD,GAAWC,EAAetwG,GAAQ,GAEnC,CACV,CAwGA,MAAMuwG,GAAiBhxG,GAAmB,MAAXA,EAAI,IAAsB,YAARA,EAC3CixG,GAAsB7yG,IAAU,QAAQA,GAASA,EAAM2Z,IAAIkjF,IAAkB,CAACA,GAAe78F,IAC7F8yG,GAAgB,CAAClxG,EAAKmxG,EAASrX,KACnC,GAAIqX,EAAQnX,GACV,OAAOmX,EAET,MAAMpY,EAAac,GAAQ,IAAI3vF,IAMtB+mG,GAAmBE,KAAWjnG,KACpC4vF,GAEH,OADAf,EAAWj7E,IAAK,EACTi7E,CAAU,EAEbqY,GAAuB,CAACC,EAAU7W,EAAOp5F,KAC7C,MAAM04F,EAAMuX,EAASC,KACrB,IAAK,MAAMtxG,KAAOqxG,EAAU,CAC1B,GAAIL,GAAchxG,GAChB,SACF,MAAM5B,EAAQizG,EAASrxG,GACvB,IAAI,QAAW5B,GACbo8F,EAAMx6F,GAAOkxG,GAAclxG,EAAK5B,EAAO07F,QAClC,GAAa,MAAT17F,EAAe,CACpB,EAKJ,MAAM26F,EAAakY,GAAmB7yG,GACtCo8F,EAAMx6F,GAAO,IAAM+4F,CACrB,CACF,GAEIwY,GAAsB,CAACnwG,EAAU46F,KAMrC,MAAMjD,EAAakY,GAAmBjV,GACtC56F,EAASo5F,MAAMr3C,QAAU,IAAM41C,CAAU,EAErCyY,GAAY,CAACpwG,EAAU46F,KAC3B,GAA+B,GAA3B56F,EAASq0F,MAAMqF,UAAgB,CACjC,MAAMr6F,EAAOu7F,EAAS3/E,EAClB5b,GACFW,EAASo5F,OAAQ,QAAMwB,IACvB,QAAIA,EAAU,IAAKv7F,IAEnB2wG,GACEpV,EACA56F,EAASo5F,MAAQ,CAAC,EAExB,MACEp5F,EAASo5F,MAAQ,CAAC,EACdwB,GACFuV,GAAoBnwG,EAAU46F,IAGlC,QAAI56F,EAASo5F,MAAO4U,GAAmB,EAAE,EAErCqC,GAAc,CAACrwG,EAAU46F,EAAUF,KACvC,MAAM,MAAErG,EAAK,MAAE+E,GAAUp5F,EACzB,IAAIswG,GAAoB,EACpBC,EAA2B,KAC/B,GAAsB,GAAlBlc,EAAMqF,UAAgB,CACxB,MAAMr6F,EAAOu7F,EAAS3/E,EAClB5b,EAISq7F,GAAsB,IAATr7F,EACtBixG,GAAoB,IAEpB,QAAOlX,EAAOwB,GACTF,GAAsB,IAATr7F,UACT+5F,EAAMn+E,IAIjBq1F,GAAqB1V,EAASM,QAC9B8U,GAAqBpV,EAAUxB,IAEjCmX,EAA2B3V,CAC7B,MAAWA,IACTuV,GAAoBnwG,EAAU46F,GAC9B2V,EAA2B,CAAExuD,QAAS,IAExC,GAAIuuD,EACF,IAAK,MAAM1xG,KAAOw6F,EACXwW,GAAchxG,IAAyC,MAAjC2xG,EAAyB3xG,WAC3Cw6F,EAAMx6F,EAGnB,EAGF,SAAS4xG,GAAOC,EAAQC,EAAWC,EAAgBtc,EAAOuc,GAAY,GACpE,IAAI,QAAQH,GAUV,YATAA,EAAO/xG,SACL,CAACoV,EAAGtS,IAAMgvG,GACR18F,EACA48F,KAAc,QAAQA,GAAaA,EAAUlvG,GAAKkvG,GAClDC,EACAtc,EACAuc,KAKN,GAAInN,GAAepP,KAAWuc,EAC5B,OAEF,MAAMC,EAA6B,EAAlBxc,EAAMqF,UAAgB+E,GAAepK,EAAM79E,YAAc69E,EAAM79E,UAAU46E,MAAQiD,EAAMkH,GAClGv+F,EAAQ4zG,EAAY,KAAOC,GACzBrvG,EAAGsvG,EAAOh9F,EAAGg+E,GAAQ2e,EAO7B,MAAMM,EAASL,GAAaA,EAAU58F,EAChCqzF,EAAO2J,EAAM3J,OAAS,KAAY2J,EAAM3J,KAAO,CAAC,EAAI2J,EAAM3J,KAC1D5N,EAAauX,EAAMvX,WAWzB,GAVc,MAAVwX,GAAkBA,IAAWjf,KAC3B,QAASif,IACX5J,EAAK4J,GAAU,MACX,QAAOxX,EAAYwX,KACrBxX,EAAWwX,GAAU,QAEd,QAAMA,KACfA,EAAO/zG,MAAQ,QAGf,QAAW80F,GACbkC,EAAsBlC,EAAKgf,EAAO,GAAI,CAAC9zG,EAAOmqG,QACzC,CACL,MAAM6J,GAAY,QAASlf,GACrBmf,GAAS,QAAMnf,GACrB,GAAIkf,GAAaC,EAAQ,CACvB,MAAMC,EAAQ,KACZ,GAAIT,EAAO31F,EAAG,CACZ,MAAMq2F,EAAWH,GAAY,QAAOzX,EAAYzH,GAAOyH,EAAWzH,GAAOqV,EAAKrV,GAAOA,EAAI90F,MACrF4zG,GACF,QAAQO,KAAa,QAAOA,EAAUN,IAEjC,QAAQM,GAWDA,EAAS57F,SAASs7F,IAC5BM,EAASnvG,KAAK6uG,GAXVG,GACF7J,EAAKrV,GAAO,CAAC+e,IACT,QAAOtX,EAAYzH,KACrByH,EAAWzH,GAAOqV,EAAKrV,MAGzBA,EAAI90F,MAAQ,CAAC6zG,GACTJ,EAAOt4F,IACTgvF,EAAKsJ,EAAOt4F,GAAK25E,EAAI90F,OAM/B,MAAWg0G,GACT7J,EAAKrV,GAAO90F,GACR,QAAOu8F,EAAYzH,KACrByH,EAAWzH,GAAO90F,IAEXi0G,IACTnf,EAAI90F,MAAQA,EACRyzG,EAAOt4F,IACTgvF,EAAKsJ,EAAOt4F,GAAKnb,GACkC,EAIrDA,GACFk0G,EAAM3sG,IAAM,EACZw5F,GAAsBmT,EAAOP,IAE7BO,GAEJ,MAAW,CAGb,CACF,CAkfA,SAASE,KAkBT,CAEA,MAAMrT,GAAwBvB,EAC9B,SAAS6U,GAAehtG,GACtB,OAAOitG,GAAmBjtG,EAC5B,CAIA,SAASitG,GAAmBjtG,EAASktG,GAEjCH,KAEF,MAAMjrG,GAAS,UACfA,EAAOqrG,SAAU,EAIjB,MACEC,OAAQC,EACRpnG,OAAQqnG,EACRC,UAAWC,EACX9mG,cAAe+mG,EACfC,WAAYC,EACZC,cAAeC,EACfC,QAASC,EACTC,eAAgBC,EAChBC,WAAYC,EACZC,YAAaC,EACbC,WAAYC,EAAiB,KAC7BC,oBAAqBC,GACnBzuG,EACEyZ,EAAQ,CAACi1F,EAAIC,EAAIC,EAAWC,EAAS,KAAMC,EAAkB,KAAMxC,EAAiB,KAAMpD,GAAQ,EAAOnH,EAAe,KAAM1L,IAAmFsY,EAAGI,mBACxN,GAAIL,IAAOC,EACT,OAEED,IAAOnR,GAAgBmR,EAAIC,KAC7BE,EAASG,EAAgBN,GACzBtF,EAAQsF,EAAII,EAAiBxC,GAAgB,GAC7CoC,EAAK,OAEe,IAAlBC,EAAGhY,YACLN,GAAY,EACZsY,EAAGI,gBAAkB,MAEvB,MAAM,KAAE/zG,EAAI,IAAEyyF,EAAG,UAAE4H,GAAcsZ,EACjC,OAAQ3zG,GACN,KAAKi0G,GACHC,EAAYR,EAAIC,EAAIC,EAAWC,GAC/B,MACF,KAAKhZ,GACHsZ,EAAmBT,EAAIC,EAAIC,EAAWC,GACtC,MACF,KAAKO,GACO,MAANV,GACFW,EAAgBV,EAAIC,EAAWC,EAAQ3F,GAIzC,MACF,KAAKjK,GACHqQ,EACEZ,EACAC,EACAC,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,GAEF,MACF,QACkB,EAAZhB,EACFka,EACEb,EACAC,EACAC,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,GAEmB,EAAZhB,EACTma,EACEd,EACAC,EACAC,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,IAEmB,GAAZhB,GAaY,IAAZA,IAZTr6F,EAAKiI,QACHyrG,EACAC,EACAC,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,EACAoZ,IAmBG,MAAPhiB,GAAeqhB,GACjB3C,GAAO1e,EAAKihB,GAAMA,EAAGjhB,IAAK6e,EAAgBqC,GAAMD,GAAKC,EACvD,EAEIO,EAAc,CAACR,EAAIC,EAAIC,EAAWC,KACtC,GAAU,MAANH,EACFrB,EACEsB,EAAGzX,GAAKyW,EAAegB,EAAGpY,UAC1BqY,EACAC,OAEG,CACL,MAAM3X,EAAKyX,EAAGzX,GAAKwX,EAAGxX,GAClByX,EAAGpY,WAAamY,EAAGnY,UACrBwX,EAAY7W,EAAIyX,EAAGpY,SAEvB,GAEI4Y,EAAqB,CAACT,EAAIC,EAAIC,EAAWC,KACnC,MAANH,EACFrB,EACEsB,EAAGzX,GAAK2W,EAAkBc,EAAGpY,UAAY,IACzCqY,EACAC,GAGFF,EAAGzX,GAAKwX,EAAGxX,EACb,EAEImY,EAAkB,CAACV,EAAIC,EAAWC,EAAQ3F,MAC7CyF,EAAGzX,GAAIyX,EAAGE,QAAUJ,EACnBE,EAAGpY,SACHqY,EACAC,EACA3F,EACAyF,EAAGzX,GACHyX,EAAGE,OACJ,EAiBGa,EAAiB,EAAGxY,KAAI2X,UAAUD,EAAWR,KACjD,IAAIz+F,EACJ,MAAOunF,GAAMA,IAAO2X,EAClBl/F,EAAO0+F,EAAgBnX,GACvBmW,EAAWnW,EAAI0X,EAAWR,GAC1BlX,EAAKvnF,EAEP09F,EAAWwB,EAAQD,EAAWR,EAAY,EAEtCuB,EAAmB,EAAGzY,KAAI2X,aAC9B,IAAIl/F,EACJ,MAAOunF,GAAMA,IAAO2X,EAClBl/F,EAAO0+F,EAAgBnX,GACvBoW,EAAWpW,GACXA,EAAKvnF,EAEP29F,EAAWuB,EAAO,EAEdU,EAAiB,CAACb,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBxC,EAAgBpD,EAAOnH,EAAc1L,KACvG6S,EAAQA,GAAqB,QAAZyF,EAAG3zG,KACV,MAAN0zG,EACFkB,EACEjB,EACAC,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,GAGFwZ,EACEnB,EACAC,EACAG,EACAxC,EACApD,EACAnH,EACA1L,EAEJ,EAEIuZ,EAAe,CAAC5f,EAAO4e,EAAWC,EAAQC,EAAiBxC,EAAgBpD,EAAOnH,EAAc1L,KACpG,IAAIa,EACA4Y,EACJ,MAAM,KAAE90G,EAAI,MAAEqkB,EAAK,UAAEg2E,EAAS,WAAEY,EAAU,KAAED,GAAShG,EAyBrD,GAxBAkH,EAAKlH,EAAMkH,GAAKuW,EACdzd,EAAMh1F,KACNkuG,EACA7pF,GAASA,EAAM0wF,GACf1wF,GAEc,EAAZg2E,EACF4Y,EAAmB/W,EAAIlH,EAAMuG,UACR,GAAZlB,GACT2a,EACEhgB,EAAMuG,SACNW,EACA,KACA4X,EACAxC,EACApD,GAAkB,kBAATluG,EACT+mG,EACA1L,GAGAL,GACFyE,GAAoBzK,EAAO,KAAM8e,EAAiB,WAEpDR,EAAWpX,EAAIlH,EAAOA,EAAM8R,QAASC,EAAc+M,GAC/CzvF,EAAO,CACT,IAAK,MAAM9kB,KAAO8kB,EACJ,UAAR9kB,IAAoB,QAAeA,IACrCizG,EACEtW,EACA38F,EACA,KACA8kB,EAAM9kB,GACN2uG,EACAlZ,EAAMuG,SACNuY,EACAxC,EACA2D,GAIF,UAAW5wF,GACbmuF,EAActW,EAAI,QAAS,KAAM73E,EAAM1mB,QAErCm3G,EAAYzwF,EAAM6wF,qBACpBC,GAAgBL,EAAWhB,EAAiB9e,EAEhD,CAWIgG,GACFyE,GAAoBzK,EAAO,KAAM8e,EAAiB,eAEpD,MAAMsB,EAA0BC,GAAe/D,EAAgBrW,GAC3Dma,GACFna,EAAWmI,YAAYlH,GAEzBmW,EAAWnW,EAAI0X,EAAWC,KACrBiB,EAAYzwF,GAASA,EAAMixF,iBAAmBF,GAA2Bpa,IAC5E0D,IAAsB,KACpBoW,GAAaK,GAAgBL,EAAWhB,EAAiB9e,GACzDogB,GAA2Bna,EAAW19D,MAAM2+D,GAC5ClB,GAAQyE,GAAoBzK,EAAO,KAAM8e,EAAiB,UAAU,GACnExC,EACL,EAEIgC,EAAa,CAACpX,EAAIlH,EAAO8R,EAASC,EAAc+M,KAIpD,GAHIhN,GACFyM,EAAerX,EAAI4K,GAEjBC,EACF,IAAK,IAAI5kG,EAAI,EAAGA,EAAI4kG,EAAa1kG,OAAQF,IACvCoxG,EAAerX,EAAI6K,EAAa5kG,IAGpC,GAAI2xG,EAAiB,CACnB,IAAI3X,EAAU2X,EAAgB3X,QAI9B,GAAInH,IAAUmH,EAAS,CACrB,MAAMoZ,EAAczB,EAAgB9e,MACpCse,EACEpX,EACAqZ,EACAA,EAAYzO,QACZyO,EAAYxO,aACZ+M,EAAgBx3E,OAEpB,CACF,GAEI04E,EAAgB,CAACzZ,EAAUqY,EAAWC,EAAQC,EAAiBxC,EAAgBpD,EAAOnH,EAAc1L,EAAW75E,EAAQ,KAC3H,IAAK,IAAIrf,EAAIqf,EAAOrf,EAAIo5F,EAASl5F,OAAQF,IAAK,CAC5C,MAAMu/F,EAAQnG,EAASp5F,GAAKk5F,EAAYma,GAAeja,EAASp5F,IAAMq4F,GAAee,EAASp5F,IAC9Fsc,EACE,KACAijF,EACAkS,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,EAEJ,GAEIwZ,EAAe,CAACnB,EAAIC,EAAIG,EAAiBxC,EAAgBpD,EAAOnH,EAAc1L,KAClF,MAAMa,EAAKyX,EAAGzX,GAAKwX,EAAGxX,GACtB,IAAI,UAAEP,EAAS,gBAAEoY,EAAe,KAAE/Y,GAAS2Y,EAC3ChY,GAA4B,GAAf+X,EAAG/X,UAChB,MAAM8Z,EAAW/B,EAAGrvF,OAAS,KACvBqxF,EAAW/B,EAAGtvF,OAAS,KAC7B,IAAIywF,EACJhB,GAAmB6B,GAAc7B,GAAiB,IAC9CgB,EAAYY,EAASE,sBACvBT,GAAgBL,EAAWhB,EAAiBH,EAAID,GAE9C1Y,GACFyE,GAAoBkU,EAAID,EAAII,EAAiB,gBAE/CA,GAAmB6B,GAAc7B,GAAiB,GAMlD,MAAM+B,EAAiB3H,GAAqB,kBAAZyF,EAAG3zG,KA2BnC,GA1BI+zG,EACF+B,EACEpC,EAAGK,gBACHA,EACA7X,EACA4X,EACAxC,EACAuE,EACA9O,GAKQ1L,GACV0a,EACErC,EACAC,EACAzX,EACA,KACA4X,EACAxC,EACAuE,EACA9O,GACA,GAGApL,EAAY,EAAG,CACjB,GAAgB,GAAZA,EACFqa,EACE9Z,EACAyX,EACA8B,EACAC,EACA5B,EACAxC,EACApD,QAWF,GARgB,EAAZvS,GACE8Z,EAASQ,QAAUP,EAASO,OAC9BzD,EAActW,EAAI,QAAS,KAAMwZ,EAASO,MAAO/H,GAGrC,EAAZvS,GACF6W,EAActW,EAAI,QAASuZ,EAASS,MAAOR,EAASQ,MAAOhI,GAE7C,EAAZvS,EAAe,CACjB,MAAMyT,EAAgBuE,EAAG5X,aACzB,IAAK,IAAI55F,EAAI,EAAGA,EAAIitG,EAAc/sG,OAAQF,IAAK,CAC7C,MAAM5C,EAAM6vG,EAAcjtG,GACpB2pB,EAAO2pF,EAASl2G,GAChBoV,EAAO+gG,EAASn2G,GAClBoV,IAASmX,GAAgB,UAARvsB,GACnBizG,EACEtW,EACA38F,EACAusB,EACAnX,EACAu5F,EACAwF,EAAGnY,SACHuY,EACAxC,EACA2D,EAGN,CACF,CAEc,EAAZtZ,GACE+X,EAAGnY,WAAaoY,EAAGpY,UACrB0X,EAAmB/W,EAAIyX,EAAGpY,SAGhC,MAAYF,GAAgC,MAAnB0Y,GACvBiC,EACE9Z,EACAyX,EACA8B,EACAC,EACA5B,EACAxC,EACApD,KAGC4G,EAAYY,EAASS,iBAAmBnb,IAC3C0D,IAAsB,KACpBoW,GAAaK,GAAgBL,EAAWhB,EAAiBH,EAAID,GAC7D1Y,GAAQyE,GAAoBkU,EAAID,EAAII,EAAiB,UAAU,GAC9DxC,EACL,EAEIwE,EAAqB,CAACM,EAAaC,EAAaC,EAAmBxC,EAAiBxC,EAAgBpD,EAAOnH,KAC/G,IAAK,IAAI5kG,EAAI,EAAGA,EAAIk0G,EAAYh0G,OAAQF,IAAK,CAC3C,MAAMo0G,EAAWH,EAAYj0G,GACvBq0G,EAAWH,EAAYl0G,GACvByxG,EAGJ2C,EAASra,KAERqa,EAASv2G,OAASikG,KAElB1B,GAAgBgU,EAAUC,IACN,GAArBD,EAASlc,WAAwB8Y,EAAeoD,EAASra,IAAM,EAMjEz9E,EACE83F,EACAC,EACA5C,EACA,KACAE,EACAxC,EACApD,EACAnH,GACA,EAEJ,GAEIiP,EAAa,CAAC9Z,EAAIlH,EAAOygB,EAAUC,EAAU5B,EAAiBxC,EAAgBpD,KAClF,GAAIuH,IAAaC,EAAU,CACzB,GAAID,IAAa,KACf,IAAK,MAAMl2G,KAAOk2G,GACX,QAAel2G,IAAUA,KAAOm2G,GACnClD,EACEtW,EACA38F,EACAk2G,EAASl2G,GACT,KACA2uG,EACAlZ,EAAMuG,SACNuY,EACAxC,EACA2D,GAKR,IAAK,MAAM11G,KAAOm2G,EAAU,CAC1B,IAAI,QAAen2G,GACjB,SACF,MAAMoV,EAAO+gG,EAASn2G,GAChBusB,EAAO2pF,EAASl2G,GAClBoV,IAASmX,GAAgB,UAARvsB,GACnBizG,EACEtW,EACA38F,EACAusB,EACAnX,EACAu5F,EACAlZ,EAAMuG,SACNuY,EACAxC,EACA2D,EAGN,CACI,UAAWS,GACblD,EAActW,EAAI,QAASuZ,EAAS93G,MAAO+3G,EAAS/3G,MAExD,GAEI22G,EAAkB,CAACZ,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBxC,EAAgBpD,EAAOnH,EAAc1L,KACxG,MAAMob,EAAsB9C,EAAGzX,GAAKwX,EAAKA,EAAGxX,GAAKyW,EAAe,IAC1D+D,EAAoB/C,EAAGE,OAASH,EAAKA,EAAGG,OAASlB,EAAe,IACtE,IAAI,UAAEhX,EAAS,gBAAEoY,EAAiBhN,aAAc4P,GAAyBhD,EAOrEgD,IACF5P,EAAeA,EAAeA,EAAaziG,OAAOqyG,GAAwBA,GAElE,MAANjD,GACFrB,EAAWoE,EAAqB7C,EAAWC,GAC3CxB,EAAWqE,EAAmB9C,EAAWC,GACzCmB,EACErB,EAAGpY,SACHqY,EACA8C,EACA5C,EACAxC,EACApD,EACAnH,EACA1L,IAGEM,EAAY,GAAiB,GAAZA,GAAkBoY,GAEvCL,EAAGK,iBACD+B,EACEpC,EAAGK,gBACHA,EACAH,EACAE,EACAxC,EACApD,EACAnH,IASU,MAAV4M,EAAGp0G,KAAeu0G,GAAmBH,IAAOG,EAAgB3X,UAE5Dya,GACElD,EACAC,GACA,IAKJoC,EACErC,EACAC,EACAC,EACA8C,EACA5C,EACAxC,EACApD,EACAnH,EACA1L,EAGN,EAEImZ,EAAmB,CAACd,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBxC,EAAgBpD,EAAOnH,EAAc1L,KACzGsY,EAAG5M,aAAeA,EACR,MAAN2M,EACiB,IAAfC,EAAGtZ,UACLyZ,EAAgBza,IAAIwd,SAClBlD,EACAC,EACAC,EACA3F,EACA7S,GAGFyb,EACEnD,EACAC,EACAC,EACAC,EACAxC,EACApD,EACA7S,GAIJ0b,EAAgBrD,EAAIC,EAAItY,EAC1B,EAEIyb,EAAiB,CAACE,EAAcpD,EAAWC,EAAQC,EAAiBxC,EAAgBpD,EAAO7S,KAC/F,MAAM16F,EAAYq2G,EAAa7/F,UAAY8/F,GACzCD,EACAlD,EACAxC,GAqBF,GAZI3N,GAAYqT,KACdr2G,EAAS04F,IAAI6d,SAAWzC,IAMxB0C,GAAex2G,GAKbA,EAASy2G,UAEX,GADA9F,GAAkBA,EAAe+F,YAAY12G,EAAU22G,IAClDN,EAAa9a,GAAI,CACpB,MAAMqb,EAAc52G,EAASw7F,QAAUvB,GAAYC,IACnDsZ,EAAmB,KAAMoD,EAAa3D,EAAWC,EACnD,OAGFyD,EACE32G,EACAq2G,EACApD,EACAC,EACAvC,EACApD,EACA7S,EAE8C,EAK5C0b,EAAkB,CAACrD,EAAIC,EAAItY,KAC/B,MAAM16F,EAAWgzG,EAAGx8F,UAAYu8F,EAAGv8F,UACnC,GAAI+jF,EAAsBwY,EAAIC,EAAItY,GAAY,CAC5C,GAAI16F,EAASy2G,WAAaz2G,EAAS62G,cAQjC,YAJAC,EAAyB92G,EAAUgzG,EAAItY,GAMvC16F,EAASgU,KAAOg/F,EAChB7c,EAAcn2F,EAASoW,QACvBpW,EAASoW,QAEb,MACE48F,EAAGzX,GAAKwX,EAAGxX,GACXv7F,EAASq0F,MAAQ2e,CACnB,EAEI2D,EAAoB,CAAC32G,EAAUq2G,EAAcpD,EAAWC,EAAQvC,EAAgBpD,EAAO7S,KAC3F,MAAMqc,EAAoB,KACxB,GAAK/2G,EAASq/F,UA0FP,CACL,IAEI8U,GAFA,KAAEngG,EAAI,GAAEgjG,EAAE,EAAEpxB,EAAC,OAAEjqD,EAAM,MAAE04D,GAAUr0F,EACjCi3G,EAAajjG,EAEb,EAGJghG,GAAch1G,GAAU,GACpBgU,GACFA,EAAKunF,GAAKlH,EAAMkH,GAChBub,EAAyB92G,EAAUgU,EAAM0mF,IAEzC1mF,EAAOqgF,EAEL2iB,IACF,QAAeA,IAEb7C,EAAYngG,EAAK0P,OAAS1P,EAAK0P,MAAMuxF,sBACvCT,GAAgBL,EAAWx4E,EAAQ3nB,EAAMqgF,GAE3C2gB,GAAch1G,GAAU,GAIxB,MAAMk3G,EAAWle,EAAoBh5F,GACjC,EAGJ,MAAMm3G,EAAWn3G,EAASw7F,QAC1Bx7F,EAASw7F,QAAU0b,EAInBp5F,EACEq5F,EACAD,EAEA1E,EAAe2E,EAAS5b,IAExB8X,EAAgB8D,GAChBn3G,EACA2wG,EACApD,GAKFv5F,EAAKunF,GAAK2b,EAAS3b,GACA,OAAf0b,GACF3b,EAAgBt7F,EAAUk3G,EAAS3b,IAEjC3V,GACFmY,GAAsBnY,EAAG+qB,IAEvBwD,EAAYngG,EAAK0P,OAAS1P,EAAK0P,MAAM8xF,iBACvCzX,IACE,IAAMyW,GAAgBL,EAAWx4E,EAAQ3nB,EAAMqgF,IAC/Csc,EASN,KA5JyB,CACvB,IAAIwD,EACJ,MAAM,GAAE5Y,EAAE,MAAE73E,GAAU2yF,GAChB,GAAEe,EAAE,EAAEzjG,EAAC,OAAEgoB,GAAW37B,EACpBq3G,EAAsB5T,GAAe4S,GAS3C,GARArB,GAAch1G,GAAU,GACpBo3G,IACF,QAAeA,IAEZC,IAAwBlD,EAAYzwF,GAASA,EAAM6wF,qBACtDC,GAAgBL,EAAWx4E,EAAQ06E,GAErCrB,GAAch1G,GAAU,GACpBu7F,GAAM+b,GAAa,CACrB,MAAMC,EAAiB,KAIrBv3G,EAASw7F,QAAUxC,EAAoBh5F,GAOvCs3G,GACE/b,EACAv7F,EAASw7F,QACTx7F,EACA2wG,EACA,KAE8C,EAI9C0G,EACFhB,EAAah3G,KAAKqkG,gBAAgBpiG,MAKhC,KAAOtB,EAAS+2F,aAAewgB,MAGjCA,GAEJ,KAAO,CACD,EAGJ,MAAM/b,EAAUx7F,EAASw7F,QAAUxC,EAAoBh5F,GACnD,EAMJ8d,EACE,KACA09E,EACAyX,EACAC,EACAlzG,EACA2wG,EACApD,GAKF8I,EAAa9a,GAAKC,EAAQD,EAC5B,CAIA,GAHI5nF,GACFoqF,GAAsBpqF,EAAGg9F,IAEtB0G,IAAwBlD,EAAYzwF,GAASA,EAAMixF,gBAAiB,CACvE,MAAM6C,EAAqBnB,EAC3BtY,IACE,IAAMyW,GAAgBL,EAAWx4E,EAAQ67E,IACzC7G,EAEJ,EAC6B,IAAzB0F,EAAa3c,WAAmB/9D,GAAU8nE,GAAe9nE,EAAO04D,QAAmC,IAAzB14D,EAAO04D,MAAMqF,YACzF15F,EAAS6N,GAAKkwF,GAAsB/9F,EAAS6N,EAAG8iG,GAElD3wG,EAASq/F,WAAY,EAIrBgX,EAAepD,EAAYC,EAAS,IACtC,CAkEA,EAEIzpB,EAASzpF,EAASypF,OAAS,IAAI,KACnCstB,GACA,IAAMhhB,EAAS3/E,IACfpW,EAAS8X,OAGL1B,EAASpW,EAASoW,OAAS,IAAMqzE,EAAOT,MAC9C5yE,EAAO7R,GAAKvE,EAASu2F,IACrBye,GAAch1G,GAAU,GAMxBoW,GAAQ,EAEJ0gG,EAA2B,CAAC92G,EAAUy6F,EAAWC,KACrDD,EAAUjkF,UAAYxW,EACtB,MAAM26F,EAAY36F,EAASq0F,MAAM3wE,MACjC1jB,EAASq0F,MAAQoG,EACjBz6F,EAASgU,KAAO,KAChBm6F,GAAYnuG,EAAUy6F,EAAU/2E,MAAOi3E,EAAWD,GAClD2V,GAAYrwG,EAAUy6F,EAAUG,SAAUF,IAC1C,UACArE,EAAiBr2F,IACjB,SAAe,EAEXo1G,EAAgB,CAACrC,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBxC,EAAgBpD,EAAOnH,EAAc1L,GAAY,KAClH,MAAM+c,EAAK1E,GAAMA,EAAGnY,SACd8c,EAAgB3E,EAAKA,EAAGrZ,UAAY,EACpCie,EAAK3E,EAAGpY,UACR,UAAEI,EAAS,UAAEtB,GAAcsZ,EACjC,GAAIhY,EAAY,EAAG,CACjB,GAAgB,IAAZA,EAYF,YAXA4c,EACEH,EACAE,EACA1E,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,GAGG,GAAgB,IAAZM,EAYT,YAXA6c,EACEJ,EACAE,EACA1E,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,EAIN,CACgB,EAAZhB,GACkB,GAAhBge,GACFpD,EAAgBmD,EAAItE,EAAiBxC,GAEnCgH,IAAOF,GACTnF,EAAmBW,EAAW0E,IAGZ,GAAhBD,EACc,GAAZhe,EACFke,EACEH,EACAE,EACA1E,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,GAGF4Z,EAAgBmD,EAAItE,EAAiBxC,GAAgB,IAGnC,EAAhB+G,GACFpF,EAAmBW,EAAW,IAEhB,GAAZvZ,GACF2a,EACEsD,EACA1E,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,GAIR,EAEImd,EAAuB,CAACJ,EAAIE,EAAI1E,EAAWC,EAAQC,EAAiBxC,EAAgBpD,EAAOnH,EAAc1L,KAC7G+c,EAAKA,GAAM,KACXE,EAAKA,GAAM,KACX,MAAMG,EAAYL,EAAG/1G,OACfuqF,EAAY0rB,EAAGj2G,OACfq2G,EAAe1oG,KAAKke,IAAIuqF,EAAW7rB,GACzC,IAAIzqF,EACJ,IAAKA,EAAI,EAAGA,EAAIu2G,EAAcv2G,IAAK,CACjC,MAAMw2G,EAAYL,EAAGn2G,GAAKk5F,EAAYma,GAAe8C,EAAGn2G,IAAMq4F,GAAe8d,EAAGn2G,IAChFsc,EACE25F,EAAGj2G,GACHw2G,EACA/E,EACA,KACAE,EACAxC,EACApD,EACAnH,EACA1L,EAEJ,CACIod,EAAY7rB,EACdqoB,EACEmD,EACAtE,EACAxC,GACA,GACA,EACAoH,GAGF1D,EACEsD,EACA1E,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,EACAqd,EAEJ,EAEIH,EAAqB,CAACH,EAAIE,EAAI1E,EAAWgF,EAAc9E,EAAiBxC,EAAgBpD,EAAOnH,EAAc1L,KACjH,IAAIl5F,EAAI,EACR,MAAM02G,EAAKP,EAAGj2G,OACd,IAAIy2G,EAAKV,EAAG/1G,OAAS,EACjB02G,EAAKF,EAAK,EACd,MAAO12G,GAAK22G,GAAM32G,GAAK42G,EAAI,CACzB,MAAMrF,EAAK0E,EAAGj2G,GACRwxG,EAAK2E,EAAGn2G,GAAKk5F,EAAYma,GAAe8C,EAAGn2G,IAAMq4F,GAAe8d,EAAGn2G,IACzE,IAAIogG,GAAgBmR,EAAIC,GAatB,MAZAl1F,EACEi1F,EACAC,EACAC,EACA,KACAE,EACAxC,EACApD,EACAnH,EACA1L,GAKJl5F,GACF,CACA,MAAOA,GAAK22G,GAAM32G,GAAK42G,EAAI,CACzB,MAAMrF,EAAK0E,EAAGU,GACRnF,EAAK2E,EAAGS,GAAM1d,EAAYma,GAAe8C,EAAGS,IAAOve,GAAe8d,EAAGS,IAC3E,IAAIxW,GAAgBmR,EAAIC,GAatB,MAZAl1F,EACEi1F,EACAC,EACAC,EACA,KACAE,EACAxC,EACApD,EACAnH,EACA1L,GAKJyd,IACAC,GACF,CACA,GAAI52G,EAAI22G,GACN,GAAI32G,GAAK42G,EAAI,CACX,MAAMC,EAAUD,EAAK,EACflF,EAASmF,EAAUH,EAAKP,EAAGU,GAAS9c,GAAK0c,EAC/C,MAAOz2G,GAAK42G,EACVt6F,EACE,KACA65F,EAAGn2G,GAAKk5F,EAAYma,GAAe8C,EAAGn2G,IAAMq4F,GAAe8d,EAAGn2G,IAC9DyxG,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,GAEFl5F,GAEJ,OACK,GAAIA,EAAI42G,EACb,MAAO52G,GAAK22G,EACV1K,EAAQgK,EAAGj2G,GAAI2xG,EAAiBxC,GAAgB,GAChDnvG,QAEG,CACL,MAAM82G,EAAK92G,EACL+2G,EAAK/2G,EACLg3G,EAAmC,IAAIrzF,IAC7C,IAAK3jB,EAAI+2G,EAAI/2G,GAAK42G,EAAI52G,IAAK,CACzB,MAAMw2G,EAAYL,EAAGn2G,GAAKk5F,EAAYma,GAAe8C,EAAGn2G,IAAMq4F,GAAe8d,EAAGn2G,IAC3D,MAAjBw2G,EAAUp5G,KAQZ45G,EAAiBj6F,IAAIy5F,EAAUp5G,IAAK4C,EAExC,CACA,IAAImlE,EACA8xC,EAAU,EACd,MAAMC,EAAcN,EAAKG,EAAK,EAC9B,IAAII,GAAQ,EACRC,EAAmB,EACvB,MAAMC,EAAwB,IAAIp1G,MAAMi1G,GACxC,IAAKl3G,EAAI,EAAGA,EAAIk3G,EAAal3G,IAC3Bq3G,EAAsBr3G,GAAK,EAC7B,IAAKA,EAAI82G,EAAI92G,GAAK22G,EAAI32G,IAAK,CACzB,MAAMs3G,EAAYrB,EAAGj2G,GACrB,GAAIi3G,GAAWC,EAAa,CAC1BjL,EAAQqL,EAAW3F,EAAiBxC,GAAgB,GACpD,QACF,CACA,IAAIoI,EACJ,GAAqB,MAAjBD,EAAUl6G,IACZm6G,EAAWP,EAAiBl7F,IAAIw7F,EAAUl6G,UAE1C,IAAK+nE,EAAI4xC,EAAI5xC,GAAKyxC,EAAIzxC,IACpB,GAAsC,IAAlCkyC,EAAsBlyC,EAAI4xC,IAAa3W,GAAgBkX,EAAWnB,EAAGhxC,IAAK,CAC5EoyC,EAAWpyC,EACX,KACF,MAGa,IAAboyC,EACFtL,EAAQqL,EAAW3F,EAAiBxC,GAAgB,IAEpDkI,EAAsBE,EAAWR,GAAM/2G,EAAI,EACvCu3G,GAAYH,EACdA,EAAmBG,EAEnBJ,GAAQ,EAEV76F,EACEg7F,EACAnB,EAAGoB,GACH9F,EACA,KACAE,EACAxC,EACApD,EACAnH,EACA1L,GAEF+d,IAEJ,CACA,MAAMO,EAA6BL,EAAQM,GAAYJ,GAAyB,KAEhF,IADAlyC,EAAIqyC,EAA2Bt3G,OAAS,EACnCF,EAAIk3G,EAAc,EAAGl3G,GAAK,EAAGA,IAAK,CACrC,MAAM03G,EAAYX,EAAK/2G,EACjBw2G,EAAYL,EAAGuB,GACfhG,EAASgG,EAAY,EAAIhB,EAAKP,EAAGuB,EAAY,GAAG3d,GAAK0c,EAC1B,IAA7BY,EAAsBr3G,GACxBsc,EACE,KACAk6F,EACA/E,EACAC,EACAC,EACAxC,EACApD,EACAnH,EACA1L,GAEOie,IACLhyC,EAAI,GAAKnlE,IAAMw3G,EAA2BryC,GAC5CwyC,EAAKnB,EAAW/E,EAAWC,EAAQ,GAEnCvsC,IAGN,CACF,GAEIwyC,EAAO,CAAC9kB,EAAO4e,EAAWC,EAAQkG,EAAUzI,EAAiB,QACjE,MAAM,GAAEpV,EAAE,KAAEl8F,EAAI,WAAEi7F,EAAU,SAAEM,EAAQ,UAAElB,GAAcrF,EACtD,GAAgB,EAAZqF,EAEF,YADAyf,EAAK9kB,EAAM79E,UAAUglF,QAASyX,EAAWC,EAAQkG,GAGnD,GAAgB,IAAZ1f,EAEF,YADArF,EAAMoI,SAAS0c,KAAKlG,EAAWC,EAAQkG,GAGzC,GAAgB,GAAZ1f,EAEF,YADAr6F,EAAK85G,KAAK9kB,EAAO4e,EAAWC,EAAQY,IAGtC,GAAIz0G,IAASikG,GAAU,CACrBoO,EAAWnW,EAAI0X,EAAWC,GAC1B,IAAK,IAAI1xG,EAAI,EAAGA,EAAIo5F,EAASl5F,OAAQF,IACnC23G,EAAKve,EAASp5F,GAAIyxG,EAAWC,EAAQkG,GAGvC,YADA1H,EAAWrd,EAAM6e,OAAQD,EAAWC,EAEtC,CACA,GAAI7zG,IAASo0G,GAEX,YADAM,EAAe1f,EAAO4e,EAAWC,GAGnC,MAAMmG,EAA+B,IAAbD,GAA8B,EAAZ1f,GAAiBY,EAC3D,GAAI+e,EACF,GAAiB,IAAbD,EACF9e,EAAWmI,YAAYlH,GACvBmW,EAAWnW,EAAI0X,EAAWC,GAC1BnV,IAAsB,IAAMzD,EAAW19D,MAAM2+D,IAAKoV,OAC7C,CACL,MAAM,MAAEh0E,EAAK,WAAEolE,EAAU,WAAED,GAAexH,EACpCgf,EAAU,IAAM5H,EAAWnW,EAAI0X,EAAWC,GAC1CqG,EAAe,KACnB58E,EAAM4+D,GAAI,KACR+d,IACAxX,GAAcA,GAAY,GAC1B,EAEAC,EACFA,EAAWxG,EAAI+d,EAASC,GAExBA,GAEJ,MAEA7H,EAAWnW,EAAI0X,EAAWC,EAC5B,EAEIzF,EAAU,CAACpZ,EAAO8e,EAAiBxC,EAAgB6I,GAAW,EAAO9e,GAAY,KACrF,MAAM,KACJr7F,EAAI,MACJqkB,EAAK,IACLouE,EAAG,SACH8I,EAAQ,gBACRwY,EAAe,UACf1Z,EAAS,UACTsB,EAAS,KACTX,GACEhG,EAIJ,GAHW,MAAPvC,GACF0e,GAAO1e,EAAK,KAAM6e,EAAgBtc,GAAO,GAE3B,IAAZqF,EAEF,YADAyZ,EAAgBza,IAAI+gB,WAAWplB,GAGjC,MAAMqlB,EAA+B,EAAZhgB,GAAiBW,EACpCsf,GAAyBlW,GAAepP,GAC9C,IAAI8f,EAIJ,GAHIwF,IAA0BxF,EAAYzwF,GAASA,EAAMk2F,uBACvDpF,GAAgBL,EAAWhB,EAAiB9e,GAE9B,EAAZqF,EACFmgB,EAAiBxlB,EAAM79E,UAAWm6F,EAAgB6I,OAC7C,CACL,GAAgB,IAAZ9f,EAEF,YADArF,EAAMoI,SAASgR,QAAQkD,EAAgB6I,GAGrCE,GACF5a,GAAoBzK,EAAO,KAAM8e,EAAiB,iBAEpC,GAAZzZ,EACFrF,EAAMh1F,KAAKiL,OACT+pF,EACA8e,EACAxC,EACAjW,EACAoZ,GACA0F,GAEOpG,IACV/zG,IAASikG,IAAYtI,EAAY,GAAiB,GAAZA,GACrCsZ,EACElB,EACAD,EACAxC,GACA,GACA,IAEOtxG,IAASikG,IAAwB,IAAZtI,IAA4BN,GAAyB,GAAZhB,IACvE4a,EAAgB1Z,EAAUuY,EAAiBxC,GAEzC6I,GACFlvG,EAAO+pF,EAEX,EACIslB,IAA0BxF,EAAYzwF,GAASA,EAAMo2F,mBAAqBJ,IAC5E3b,IAAsB,KACpBoW,GAAaK,GAAgBL,EAAWhB,EAAiB9e,GACzDqlB,GAAoB5a,GAAoBzK,EAAO,KAAM8e,EAAiB,YAAY,GACjFxC,EACL,EAEIrmG,EAAU+pF,IACd,MAAM,KAAEh1F,EAAI,GAAEk8F,EAAE,OAAE2X,EAAM,WAAE5Y,GAAejG,EACzC,GAAIh1F,IAASikG,GAYX,YAFEyW,EAAexe,EAAI2X,GAIvB,GAAI7zG,IAASo0G,GAEX,YADAO,EAAiB3f,GAGnB,MAAM2lB,EAAgB,KACpBrI,EAAWpW,GACPjB,IAAeA,EAAWuF,WAAavF,EAAWwH,YACpDxH,EAAWwH,YACb,EAEF,GAAsB,EAAlBzN,EAAMqF,WAAiBY,IAAeA,EAAWuF,UAAW,CAC9D,MAAM,MAAEljE,EAAK,WAAEolE,GAAezH,EACxBif,EAAe,IAAM58E,EAAM4+D,EAAIye,GACjCjY,EACFA,EAAW1N,EAAMkH,GAAIye,EAAeT,GAEpCA,GAEJ,MACES,GACF,EAEID,EAAiB,CAACzlB,EAAKvpE,KAC3B,IAAI/W,EACJ,MAAOsgF,IAAQvpE,EACb/W,EAAO0+F,EAAgBpe,GACvBqd,EAAWrd,GACXA,EAAMtgF,EAER29F,EAAW5mF,EAAI,EAEX8uF,EAAmB,CAAC75G,EAAU2wG,EAAgB6I,KAIlD,MAAM,IAAES,EAAG,MAAEniG,EAAK,OAAE1B,EAAM,QAAEolF,EAAO,GAAE0e,GAAOl6G,EACxCi6G,IACF,QAAeA,GAEjBniG,EAAMsxE,OACFhzE,IACFA,EAAO2yE,QAAS,EAChB0kB,EAAQjS,EAASx7F,EAAU2wG,EAAgB6I,IAEzCU,GACFnc,GAAsBmc,EAAIvJ,GAE5B5S,IAAsB,KACpB/9F,EAAS+2F,aAAc,CAAI,GAC1B4Z,GACCA,GAAkBA,EAAejU,gBAAkBiU,EAAe5Z,aAAe/2F,EAASy2G,WAAaz2G,EAAS62G,eAAiB72G,EAASm6G,aAAexJ,EAAeyJ,YAC1KzJ,EAAexmB,OACa,IAAxBwmB,EAAexmB,MACjBwmB,EAAe71G,UAGsD,EAIrEw5G,EAAkB,CAAC1Z,EAAUuY,EAAiBxC,EAAgB6I,GAAW,EAAO9e,GAAY,EAAO75E,EAAQ,KAC/G,IAAK,IAAIrf,EAAIqf,EAAOrf,EAAIo5F,EAASl5F,OAAQF,IACvCisG,EAAQ7S,EAASp5F,GAAI2xG,EAAiBxC,EAAgB6I,EAAU9e,EAClE,EAEI2Y,EAAmBhf,GACD,EAAlBA,EAAMqF,UACD2Z,EAAgBhf,EAAM79E,UAAUglF,SAEnB,IAAlBnH,EAAMqF,UACDrF,EAAMoI,SAASzoF,OAEjB0+F,EAAgBre,EAAM6e,QAAU7e,EAAMkH,IAEzClC,EAAS,CAAChF,EAAO4e,EAAW1F,KACnB,MAATlZ,EACE4e,EAAUoH,QACZ5M,EAAQwF,EAAUoH,OAAQ,KAAM,MAAM,GAGxCv8F,EAAMm1F,EAAUoH,QAAU,KAAMhmB,EAAO4e,EAAW,KAAM,KAAM,KAAM1F,GAEtElX,IACAG,IACAyc,EAAUoH,OAAShmB,CAAK,EAEpByf,GAAY,CAChB9iG,EAAG8M,EACHo8F,GAAIzM,EACJ95F,EAAGwlG,EACHrlG,EAAGxJ,EACHgwG,GAAInE,EACJoE,GAAIlG,EACJmG,GAAIpF,EACJqF,IAAKtF,EACLzhG,EAAG2/F,EACH5/F,EAAGpP,GAEL,IAAIioG,GACAgL,GAMJ,OALI/F,KACDjF,GAASgL,IAAe/F,EACvBuC,KAGG,CACLza,SACAiT,WACAoO,UAAWrO,GAAahT,EAAQiT,IAEpC,CACA,SAAS0I,IAAc,OAAEvrB,EAAM,OAAErzE,GAAUukG,GACzClxB,EAAO6C,aAAel2E,EAAOk2E,aAAequB,CAC9C,CACA,SAASjG,GAAe/D,EAAgBrW,GACtC,QAASqW,GAAkBA,IAAmBA,EAAejU,gBAAkBpC,IAAeA,EAAWuF,SAC3G,CACA,SAASoW,GAAuBlD,EAAIC,EAAI5lB,GAAU,GAChD,MAAMwtB,EAAM7H,EAAGnY,SACTigB,EAAM7H,EAAGpY,SACf,IAAI,QAAQggB,KAAQ,QAAQC,GAC1B,IAAK,IAAIr5G,EAAI,EAAGA,EAAIo5G,EAAIl5G,OAAQF,IAAK,CACnC,MAAMi2G,EAAKmD,EAAIp5G,GACf,IAAIm2G,EAAKkD,EAAIr5G,GACM,EAAfm2G,EAAGje,YAAkBie,EAAGvE,mBACtBuE,EAAG3c,WAAa,GAAsB,KAAjB2c,EAAG3c,aAC1B2c,EAAKkD,EAAIr5G,GAAKqzG,GAAegG,EAAIr5G,IACjCm2G,EAAGpc,GAAKkc,EAAGlc,IAERnO,GACH6oB,GAAuBwB,EAAIE,IAE3BA,EAAGt4G,OAASi0G,KACdqE,EAAGpc,GAAKkc,EAAGlc,GAKf,CAEJ,CACA,SAAS0d,GAAY5sG,GACnB,MAAM2E,EAAI3E,EAAI/F,QACRqG,EAAS,CAAC,GAChB,IAAInL,EAAGmlE,EAAGif,EAAGz8E,EAAG/G,EAChB,MAAMogB,EAAMnW,EAAI3K,OAChB,IAAKF,EAAI,EAAGA,EAAIghB,EAAKhhB,IAAK,CACxB,MAAMs5G,EAAOzuG,EAAI7K,GACjB,GAAa,IAATs5G,EAAY,CAEd,GADAn0C,EAAIh6D,EAAOA,EAAOjL,OAAS,GACvB2K,EAAIs6D,GAAKm0C,EAAM,CACjB9pG,EAAExP,GAAKmlE,EACPh6D,EAAO3K,KAAKR,GACZ,QACF,CACAokF,EAAI,EACJz8E,EAAIwD,EAAOjL,OAAS,EACpB,MAAOkkF,EAAIz8E,EACT/G,EAAIwjF,EAAIz8E,GAAK,EACTkD,EAAIM,EAAOvK,IAAM04G,EACnBl1B,EAAIxjF,EAAI,EAER+G,EAAI/G,EAGJ04G,EAAOzuG,EAAIM,EAAOi5E,MAChBA,EAAI,IACN50E,EAAExP,GAAKmL,EAAOi5E,EAAI,IAEpBj5E,EAAOi5E,GAAKpkF,EAEhB,CACF,CACAokF,EAAIj5E,EAAOjL,OACXyH,EAAIwD,EAAOi5E,EAAI,GACf,MAAOA,KAAM,EACXj5E,EAAOi5E,GAAKz8E,EACZA,EAAI6H,EAAE7H,GAER,OAAOwD,CACT,CAEA,MAAMouG,GAAc17G,GAASA,EAAK27G,aAC5BC,GAAsBv3F,GAAUA,IAAUA,EAAMw3F,UAA+B,KAAnBx3F,EAAMw3F,UAClEC,GAAeh1G,GAAiC,qBAAfi1G,YAA8Bj1G,aAAkBi1G,WACjFC,GAAgB,CAAC33F,EAAO43F,KAC5B,MAAMC,EAAiB73F,GAASA,EAAMunF,GACtC,IAAI,QAASsQ,GAAiB,CAC5B,GAAKD,EAKE,CACL,MAAMn1G,EAASm1G,EAAOC,GAMtB,OAAOp1G,CACT,CATE,OAAO,IAUX,CAIE,OAAOo1G,CACT,EAEIC,GAAe,CACnB/1G,KAAM,WACNu1G,cAAc,EACd,OAAA1zG,CAAQyrG,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBxC,EAAgBpD,EAAOnH,EAAc1L,EAAWoZ,GAClG,MACEyG,GAAIlG,EACJmG,GAAIpF,EACJqF,IAAKtF,EACL1hG,GAAG,OAAEg+F,EAAM,cAAEgK,EAAa,WAAE1J,EAAU,cAAEE,IACtC6B,EACEoH,EAAWD,GAAmBjI,EAAGtvF,OACvC,IAAI,UAAEg2E,EAAS,SAAEkB,EAAQ,gBAAEwY,GAAoBJ,EAK/C,GAAU,MAAND,EAAY,CACd,MAAM6D,EAAc5D,EAAGzX,GAAmFwW,EAAW,IAC/G2J,EAAa1I,EAAGE,OAAqFnB,EAAW,IACtHN,EAAOmF,EAAa3D,EAAWC,GAC/BzB,EAAOiK,EAAYzI,EAAWC,GAC9B,MAAM/sG,EAAS6sG,EAAG7sG,OAASk1G,GAAcrI,EAAGtvF,MAAO+3F,GAC7CE,EAAe3I,EAAG2I,aAAe5J,EAAW,IAC9C5rG,IACFsrG,EAAOkK,EAAcx1G,GACrBonG,EAAQA,GAAS4N,GAAYh1G,IAI/B,MAAMinG,EAAQ,CAACwO,EAAYC,KACT,GAAZniB,GACF2a,EACEzZ,EACAghB,EACAC,EACA1I,EACAxC,EACApD,EACAnH,EACA1L,EAEJ,EAEEwgB,EACF9N,EAAM6F,EAAWyI,GACRv1G,GACTinG,EAAMjnG,EAAQw1G,EAElB,KAAO,CACL3I,EAAGzX,GAAKwX,EAAGxX,GACX,MAAMmgB,EAAa1I,EAAGE,OAASH,EAAGG,OAC5B/sG,EAAS6sG,EAAG7sG,OAAS4sG,EAAG5sG,OACxBw1G,EAAe3I,EAAG2I,aAAe5I,EAAG4I,aACpCG,EAAcb,GAAmBlI,EAAGrvF,OACpCq4F,EAAmBD,EAAc7I,EAAY9sG,EAC7C61G,EAAgBF,EAAcJ,EAAaC,EA0BjD,GAzBApO,EAAQA,GAAS4N,GAAYh1G,GACzBitG,GACF+B,EACEpC,EAAGK,gBACHA,EACA2I,EACA5I,EACAxC,EACApD,EACAnH,GAEF6P,GAAuBlD,EAAIC,GAAI,IACrBtY,GACV0a,EACErC,EACAC,EACA+I,EACAC,EACA7I,EACAxC,EACApD,EACAnH,GACA,GAGA8U,EACGY,EASC9I,EAAGtvF,OAASqvF,EAAGrvF,OAASsvF,EAAGtvF,MAAMunF,KAAO8H,EAAGrvF,MAAMunF,KACnD+H,EAAGtvF,MAAMunF,GAAK8H,EAAGrvF,MAAMunF,IATzBgR,GACEjJ,EACAC,EACAyI,EACA5H,EACA,QAQJ,IAAKd,EAAGtvF,OAASsvF,EAAGtvF,MAAMunF,OAAS8H,EAAGrvF,OAASqvF,EAAGrvF,MAAMunF,IAAK,CAC3D,MAAMiR,EAAalJ,EAAG7sG,OAASk1G,GAC7BrI,EAAGtvF,MACH+3F,GAEES,GACFD,GACEjJ,EACAkJ,EACA,KACApI,EACA,EASN,MAAWgI,GACTG,GACEjJ,EACA7sG,EACAw1G,EACA7H,EACA,EAIR,CACAqI,GAAcnJ,EAChB,EACA,MAAA1oG,CAAO+pF,EAAO8e,EAAiBxC,EAAgBjW,GAAawf,GAAIzM,EAASh6F,GAAKnJ,OAAQqnG,IAAgB6H,GACpG,MAAM,UAAE9f,EAAS,SAAEkB,EAAQ,OAAEsY,EAAM,aAAEyI,EAAY,OAAEx1G,EAAM,MAAEud,GAAU2wE,EAKrE,GAJIluF,GACFwrG,EAAWgK,GAEbnC,GAAY7H,EAAWuB,GACP,GAAZxZ,EAAgB,CAClB,MAAM0iB,EAAe5C,IAAayB,GAAmBv3F,GACrD,IAAK,IAAIliB,EAAI,EAAGA,EAAIo5F,EAASl5F,OAAQF,IAAK,CACxC,MAAMu/F,EAAQnG,EAASp5F,GACvBisG,EACE1M,EACAoS,EACAxC,EACAyL,IACErb,EAAMqS,gBAEZ,CACF,CACF,EACA+F,KAAM8C,GACN3P,QAAS+P,IAEX,SAASJ,GAAa5nB,EAAO4e,EAAWgF,GAAgBxkG,GAAG,OAAEg+F,GAAU99F,EAAGwlG,GAAQC,EAAW,GAC1E,IAAbA,GACF3H,EAAOpd,EAAMsnB,aAAc1I,EAAWgF,GAExC,MAAM,GAAE1c,EAAE,OAAE2X,EAAM,UAAExZ,EAAS,SAAEkB,EAAQ,MAAEl3E,GAAU2wE,EAC7CioB,EAAyB,IAAblD,EAIlB,GAHIkD,GACF7K,EAAOlW,EAAI0X,EAAWgF,KAEnBqE,GAAarB,GAAmBv3F,KACnB,GAAZg2E,EACF,IAAK,IAAIl4F,EAAI,EAAGA,EAAIo5F,EAASl5F,OAAQF,IACnC23G,EACEve,EAASp5F,GACTyxG,EACAgF,EACA,GAKJqE,GACF7K,EAAOyB,EAAQD,EAAWgF,EAE9B,CACA,SAASoE,GAAgBl1F,EAAMktE,EAAO8e,EAAiBxC,EAAgBvK,EAAc1L,GACnFjnF,GAAG,YAAEg/F,EAAW,WAAEF,EAAU,cAAEkJ,IAC7Bc,GACD,MAAMp2G,EAASkuF,EAAMluF,OAASk1G,GAC5BhnB,EAAM3wE,MACN+3F,GAEF,GAAIt1G,EAAQ,CACV,MAAMq2G,EAAar2G,EAAOs2G,MAAQt2G,EAAOu2G,WACzC,GAAsB,GAAlBroB,EAAMqF,UACR,GAAIuhB,GAAmB5mB,EAAM3wE,OAC3B2wE,EAAM6e,OAASqJ,EACb9J,EAAYtrF,GACZktE,EACAke,EAAWprF,GACXgsF,EACAxC,EACAvK,EACA1L,GAEFrG,EAAMsnB,aAAea,MAChB,CACLnoB,EAAM6e,OAAST,EAAYtrF,GAC3B,IAAIw0F,EAAea,EACnB,MAAOb,EAEL,GADAA,EAAelJ,EAAYkJ,GACvBA,GAA0C,IAA1BA,EAAagB,UAAwC,oBAAtBhB,EAAazgH,KAA4B,CAC1Fm5F,EAAMsnB,aAAeA,EACrBx1G,EAAOs2G,KAAOpoB,EAAMsnB,cAAgBlJ,EAAYpe,EAAMsnB,cACtD,KACF,CAEFY,EACEC,EACAnoB,EACAluF,EACAgtG,EACAxC,EACAvK,EACA1L,EAEJ,CAEFyhB,GAAc9nB,EAChB,CACA,OAAOA,EAAM6e,QAAUT,EAAYpe,EAAM6e,OAC3C,CACA,MAAM0J,GAAWpB,GACjB,SAASW,GAAc9nB,GACrB,MAAMqE,EAAMrE,EAAMqE,IAClB,GAAIA,GAAOA,EAAImkB,GAAI,CACjB,IAAI11F,EAAOktE,EAAMuG,SAAS,GAAGW,GAC7B,MAAOp0E,GAAQA,IAASktE,EAAMsnB,aACN,IAAlBx0F,EAAKw1F,UACPx1F,EAAKjc,aAAa,eAAgBwtF,EAAInC,KACxCpvE,EAAOA,EAAKsrF,YAEd/Z,EAAImkB,IACN,CACF,CAEA,MAAMvZ,GAAW1vF,OAAO4W,IAAI,SACtB8oF,GAAO1/F,OAAO4W,IAAI,SAClB0vE,GAAUtmF,OAAO4W,IAAI,SACrBipF,GAAS7/F,OAAO4W,IAAI,SACpBwvE,GAAa,GACnB,IAAI8iB,GAAe,KACnB,SAAShX,GAAUiX,GAAkB,GACnC/iB,GAAWh4F,KAAK86G,GAAeC,EAAkB,KAAO,GAC1D,CACA,SAASC,KACPhjB,GAAWx+E,MACXshG,GAAe9iB,GAAWA,GAAWt4F,OAAS,IAAM,IACtD,CACA,IAAIu7G,GAAqB,EACzB,SAASnkB,GAAiB97F,GACxBigH,IAAsBjgH,CACxB,CACA,SAASkgH,GAAW7oB,GAMlB,OALAA,EAAM+e,gBAAkB6J,GAAqB,EAAIH,IAAgB,KAAY,KAC7EE,KACIC,GAAqB,GAAKH,IAC5BA,GAAa96G,KAAKqyF,GAEbA,CACT,CACA,SAAS8oB,GAAmB99G,EAAMqkB,EAAOk3E,EAAUI,EAAWI,EAAc1B,GAC1E,OAAOwjB,GACLE,GACE/9G,EACAqkB,EACAk3E,EACAI,EACAI,EACA1B,GACA,GAIN,CACA,SAASwM,GAAY7mG,EAAMqkB,EAAOk3E,EAAUI,EAAWI,GACrD,OAAO8hB,GACLjjB,GACE56F,EACAqkB,EACAk3E,EACAI,EACAI,GACA,GAIN,CACA,SAASkL,GAAQtpG,GACf,QAAOA,IAA8B,IAAtBA,EAAMqgH,WACvB,CACA,SAASzb,GAAgBmR,EAAIC,GAM3B,OAAOD,EAAG1zG,OAAS2zG,EAAG3zG,MAAQ0zG,EAAGn0G,MAAQo0G,EAAGp0G,GAC9C,CAKA,MAKMovG,GAAoB,cACpBsP,GAAe,EAAG1+G,SAAiB,MAAPA,EAAcA,EAAM,KAChD2+G,GAAe,EACnBzrB,MACA0rB,UACAC,cAEmB,kBAAR3rB,IACTA,EAAM,GAAKA,GAEC,MAAPA,GAAc,QAASA,KAAQ,QAAMA,KAAQ,QAAWA,GAAO,CAAEtwF,EAAG22F,EAA0BrkF,EAAGg+E,EAAK35E,EAAGqlG,EAAS1iG,IAAK2iG,GAAY3rB,EAAM,MAElJ,SAASsrB,GAAgB/9G,EAAMqkB,EAAQ,KAAMk3E,EAAW,KAAMI,EAAY,EAAGI,EAAe,KAAM1B,GAAYr6F,IAASikG,GAAW,EAAI,GAAGoa,GAAc,EAAOC,GAAgC,GAC5L,MAAMtpB,EAAQ,CACZgpB,aAAa,EACbO,UAAU,EACVv+G,OACAqkB,QACA9kB,IAAK8kB,GAAS45F,GAAa55F,GAC3BouE,IAAKpuE,GAAS65F,GAAa75F,GAC3ByiF,QAAS/N,EACTgO,aAAc,KACdxL,WACApkF,UAAW,KACXimF,SAAU,KACVwG,UAAW,KACXC,WAAY,KACZ7I,KAAM,KACNC,WAAY,KACZiB,GAAI,KACJ2X,OAAQ,KACR/sG,OAAQ,KACRw1G,aAAc,KACdkC,YAAa,EACbnkB,YACAsB,YACAI,eACAgY,gBAAiB,KACjBxe,WAAY,KACZ8D,IAAKP,GAwBP,OAtBIwlB,GACFG,GAAkBzpB,EAAOuG,GACT,IAAZlB,GACFr6F,EAAK0+G,UAAU1pB,IAERuG,IACTvG,EAAMqF,YAAa,QAASkB,GAAY,EAAI,IAK1CqiB,GAAqB,IACxBS,GACDZ,KAICzoB,EAAM2G,UAAY,GAAiB,EAAZtB,IAEJ,KAApBrF,EAAM2G,WACJ8hB,GAAa96G,KAAKqyF,GAEbA,CACT,CACA,MAAM4F,GAAyF+jB,GAC/F,SAASA,GAAa3+G,EAAMqkB,EAAQ,KAAMk3E,EAAW,KAAMI,EAAY,EAAGI,EAAe,KAAMsiB,GAAc,GAO3G,GANKr+G,GAAQA,IAASy8F,IAIpBz8F,EAAO66F,IAELoM,GAAQjnG,GAAO,CACjB,MAAMs5D,EAASyhC,GACb/6F,EACAqkB,GACA,GAcF,OAXIk3E,GACFkjB,GAAkBnlD,EAAQiiC,GAExBqiB,GAAqB,IAAMS,GAAeZ,KACrB,EAAnBnkD,EAAO+gC,UACTojB,GAAaA,GAAan/G,QAAQ0B,IAASs5D,EAE3CmkD,GAAa96G,KAAK22D,IAGtBA,EAAOqiC,YAAc,EACdriC,CACT,CAIA,GAHIslD,GAAiB5+G,KACnBA,EAAOA,EAAK6+G,WAEVx6F,EAAO,CACTA,EAAQy6F,GAAmBz6F,GAC3B,IAAM4xF,MAAO8I,EAAK,MAAE7I,GAAU7xF,EAC1B06F,KAAU,QAASA,KACrB16F,EAAM4xF,OAAQ,QAAe8I,KAE3B,QAAS7I,MACP,QAAQA,MAAW,QAAQA,KAC7BA,GAAQ,QAAO,CAAC,EAAGA,IAErB7xF,EAAM6xF,OAAQ,QAAeA,GAEjC,CACA,MAAM7b,GAAY,QAASr6F,GAAQ,EAAIi9F,EAAWj9F,GAAQ,IAAM07G,GAAW17G,GAAQ,IAAK,QAASA,GAAQ,GAAI,QAAWA,GAAQ,EAAI,EAUpI,OAAO+9G,GACL/9G,EACAqkB,EACAk3E,EACAI,EACAI,EACA1B,EACAgkB,GACA,EAEJ,CACA,SAASS,GAAmBz6F,GAC1B,OAAKA,GAEE,QAAQA,IAAUsqF,MAAqBtqF,GAAQ,QAAO,CAAC,EAAGA,GAASA,EADjE,IAEX,CACA,SAAS02E,GAAW/F,EAAOgqB,EAAYC,GAAW,GAChD,MAAM,MAAE56F,EAAK,IAAEouE,EAAG,UAAEkJ,EAAS,SAAEJ,GAAavG,EACtCkqB,EAAcF,EAAaG,GAAW96F,GAAS,CAAC,EAAG26F,GAAc36F,EACjEi1C,EAAS,CACb0kD,aAAa,EACbO,UAAU,EACVv+G,KAAMg1F,EAAMh1F,KACZqkB,MAAO66F,EACP3/G,IAAK2/G,GAAejB,GAAaiB,GACjCzsB,IAAKusB,GAAcA,EAAWvsB,IAI5BwsB,GAAYxsB,GAAM,QAAQA,GAAOA,EAAInuF,OAAO45G,GAAac,IAAe,CAACvsB,EAAKyrB,GAAac,IAAed,GAAac,GACrHvsB,EACJqU,QAAS9R,EAAM8R,QACfC,aAAc/R,EAAM+R,aACpBxL,SAA8HA,EAC9Hz0F,OAAQkuF,EAAMluF,OACdw1G,aAActnB,EAAMsnB,aACpBkC,YAAaxpB,EAAMwpB,YACnBnkB,UAAWrF,EAAMqF,UAKjBsB,UAAWqjB,GAAchqB,EAAMh1F,OAASikG,IAA0B,IAAftI,EAAmB,GAAiB,GAAZA,EAAiBA,EAC5FI,aAAc/G,EAAM+G,aACpBgY,gBAAiB/e,EAAM+e,gBACvBxe,WAAYP,EAAMO,WAClByF,KAAMhG,EAAMgG,KACZC,WAAYjG,EAAMiG,WAKlB9jF,UAAW69E,EAAM79E,UACjBimF,SAAUpI,EAAMoI,SAChBwG,UAAW5O,EAAM4O,WAAa7I,GAAW/F,EAAM4O,WAC/CC,WAAY7O,EAAM6O,YAAc9I,GAAW/F,EAAM6O,YACjD3H,GAAIlH,EAAMkH,GACV2X,OAAQ7e,EAAM6e,OACdxa,IAAKrE,EAAMqE,IACX+lB,GAAIpqB,EAAMoqB,IAEZ,OAAO9lD,CACT,CAQA,SAAS+lD,GAAgB3sG,EAAO,IAAK4sG,EAAO,GAC1C,OAAO1kB,GAAYqZ,GAAM,KAAMvhG,EAAM4sG,EACvC,CACA,SAASC,GAAkB5wG,EAAS6wG,GAClC,MAAMxqB,EAAQ4F,GAAYwZ,GAAQ,KAAMzlG,GAExC,OADAqmF,EAAMwpB,YAAcgB,EACbxqB,CACT,CACA,SAASyqB,GAAmB/sG,EAAO,GAAIgtG,GAAU,GAC/C,OAAOA,GAAWjZ,KAAaI,GAAYhM,GAAS,KAAMnoF,IAASkoF,GAAYC,GAAS,KAAMnoF,EAChG,CACA,SAAS8nF,GAAekH,GACtB,OAAa,MAATA,GAAkC,mBAAVA,EACnB9G,GAAYC,KACV,QAAQ6G,GACV9G,GACLqJ,GACA,KAEAvC,EAAMz6F,SAEkB,kBAAVy6F,EACT8T,GAAe9T,GAEf9G,GAAYqZ,GAAM,KAAMxmF,OAAOi0E,GAE1C,CACA,SAAS8T,GAAe9T,GACtB,OAAoB,OAAbA,EAAMxF,KAAoC,IAArBwF,EAAM/F,WAAoB+F,EAAMie,KAAOje,EAAQ3G,GAAW2G,EACxF,CACA,SAAS+c,GAAkBzpB,EAAOuG,GAChC,IAAIv7F,EAAO,EACX,MAAM,UAAEq6F,GAAcrF,EACtB,GAAgB,MAAZuG,EACFA,EAAW,UACN,IAAI,QAAQA,GACjBv7F,EAAO,QACF,GAAwB,kBAAbu7F,EAAuB,CACvC,GAAgB,GAAZlB,EAAsB,CACxB,MAAM+L,EAAO7K,EAAS74C,QAMtB,YALI0jD,IACFA,EAAK/oF,KAAO+oF,EAAKx7D,IAAK,GACtB6zE,GAAkBzpB,EAAOoR,KACzBA,EAAK/oF,KAAO+oF,EAAKx7D,IAAK,IAG1B,CAAO,CACL5qC,EAAO,GACP,MAAM4/G,EAAWrkB,EAAS3/E,EACrBgkG,GAAcjR,MAAqBpT,EAEhB,IAAbqkB,GAAkB9mB,IACc,IAArCA,EAAyBiB,MAAMn+E,EACjC2/E,EAAS3/E,EAAI,GAEb2/E,EAAS3/E,EAAI,EACbo5E,EAAM2G,WAAa,OANrBJ,EAASsV,KAAO/X,CASpB,CACF,MAAW,QAAWyC,IACpBA,EAAW,CAAE74C,QAAS64C,EAAUsV,KAAM/X,GACtC94F,EAAO,KAEPu7F,EAAW9tE,OAAO8tE,GACF,GAAZlB,GACFr6F,EAAO,GACPu7F,EAAW,CAAC8jB,GAAgB9jB,KAE5Bv7F,EAAO,GAGXg1F,EAAMuG,SAAWA,EACjBvG,EAAMqF,WAAar6F,CACrB,CACA,SAASm/G,MAAc11G,GACrB,MAAM8F,EAAM,CAAC,EACb,IAAK,IAAIpN,EAAI,EAAGA,EAAIsH,EAAKpH,OAAQF,IAAK,CACpC,MAAM09G,EAAUp2G,EAAKtH,GACrB,IAAK,MAAM5C,KAAOsgH,EAChB,GAAY,UAARtgH,EACEgQ,EAAI0mG,QAAU4J,EAAQ5J,QACxB1mG,EAAI0mG,OAAQ,QAAe,CAAC1mG,EAAI0mG,MAAO4J,EAAQ5J,cAE5C,GAAY,UAAR12G,EACTgQ,EAAI2mG,OAAQ,QAAe,CAAC3mG,EAAI2mG,MAAO2J,EAAQ3J,aAC1C,IAAI,QAAK32G,GAAM,CACpB,MAAMuyG,EAAWviG,EAAIhQ,GACfugH,EAAWD,EAAQtgH,IACrBugH,GAAYhO,IAAagO,IAAc,QAAQhO,IAAaA,EAAS57F,SAAS4pG,KAChFvwG,EAAIhQ,GAAOuyG,EAAW,GAAGxtG,OAAOwtG,EAAUgO,GAAYA,EAE1D,KAAmB,KAARvgH,IACTgQ,EAAIhQ,GAAOsgH,EAAQtgH,GAGzB,CACA,OAAOgQ,CACT,CACA,SAAS4lG,GAAgBvV,EAAMj/F,EAAUq0F,EAAOmG,EAAY,MAC1DtG,EAA2B+K,EAAMj/F,EAAU,EAAG,CAC5Cq0F,EACAmG,GAEJ,CAEA,MAAM4kB,GAAkBxT,KACxB,IAAIrV,GAAM,EACV,SAAS+f,GAAwBjiB,EAAO14D,EAAQ8gE,GAC9C,MAAMp9F,EAAOg1F,EAAMh1F,KACbu1F,GAAcj5D,EAASA,EAAOi5D,WAAaP,EAAMO,aAAewqB,GAChEp/G,EAAW,CACfu2F,IAAKA,KACLlC,QACAh1F,OACAs8B,SACAi5D,aACAt5D,KAAM,KAENtnB,KAAM,KACNwnF,QAAS,KAET/R,OAAQ,KACRrzE,OAAQ,KAER0B,MAAO,IAAI,MACT,GAGFuhF,OAAQ,KACRjI,MAAO,KACPoZ,QAAS,KACT6U,YAAa,KACbnmB,UAAW,KACXmR,SAAU1uE,EAASA,EAAO0uE,SAAWxjG,OAAO1G,OAAOy0F,EAAWyV,UAC9DtC,YAAa,KACbzO,YAAa,GAEbyQ,WAAY,KACZj3E,WAAY,KAEZqmE,aAAc+V,GAAsB7vG,EAAMu1F,GAC1CqG,aAAc3D,EAAsBj4F,EAAMu1F,GAE1CiC,KAAM,KAENQ,QAAS,KAET4W,cAAe,KAEfzU,aAAcn6F,EAAKm6F,aAEnBd,IAAK,KACLx9F,KAAM,KACNwoB,MAAO,KACP+oC,MAAO,KACP2sC,MAAO,KACP+N,KAAM,KACN5N,WAAY,KACZ+lB,aAAc,KACdC,WAAY,KACZC,WAAY,KAEZ/iB,WACA0d,WAAY1d,EAAWA,EAAS2d,UAAY,EAC5C3D,SAAU,KACVI,eAAe,EAGfxX,WAAW,EACXtI,aAAa,EACbmN,eAAe,EACfub,GAAI,KACJr9G,EAAG,KACHg1G,GAAI,KACJzjG,EAAG,KACHqjG,GAAI,KACJpxB,EAAG,KACHs0B,GAAI,KACJD,IAAK,KACLyF,GAAI,KACJ7xG,EAAG,KACH8xG,IAAK,KACLC,IAAK,KACLlrB,GAAI,KACJmrB,GAAI,MAYN,OAPE7/G,EAAS04F,IAAM,CAAEz9E,EAAGjb,GAEtBA,EAASs7B,KAAOK,EAASA,EAAOL,KAAOt7B,EACvCA,EAAS62F,KAAOA,EAAKn3F,KAAK,KAAMM,GAC5Bq0F,EAAMoqB,IACRpqB,EAAMoqB,GAAGz+G,GAEJA,CACT,CACA,IAAIk8F,GAAkB,KACtB,MAAM0E,GAAqB,IAAM1E,IAAmB/D,EACpD,IAAI2nB,GACAC,GACAC,GAAa,4BAETD,IAA+B,UAAgBC,OACnDD,IAA+B,UAAgBC,IAAc,IAE/DD,GAA6B/9G,MAAMR,GAAM06F,GAAkB16F,IAC3Ds+G,GAA8B9/G,IACxB+/G,GAA6Br+G,OAAS,EACxCq+G,GAA6BrhH,SAASkX,GAAMA,EAAE5V,KAE9C+/G,GAA6B,GAAG//G,EAClC,EAGJ,MAAMo+F,GAAsBp+F,IAC1B8/G,GAA2B9/G,GAC3BA,EAAS8X,MAAMoxE,IAAI,EAEfmV,GAAuB,KAC3BnC,IAAmBA,GAAgBpkF,MAAMqxE,MACzC22B,GAA2B,KAAK,EAWlC,SAASpZ,GAAoB1mG,GAC3B,OAAkC,EAA3BA,EAASq0F,MAAMqF,SACxB,CACA,IAyGIumB,GACAC,GA1GAviB,IAAwB,EAC5B,SAAS6Y,GAAex2G,EAAUwzF,GAAQ,GACxCmK,GAAwBnK,EACxB,MAAM,MAAE9vE,EAAK,SAAEk3E,GAAa56F,EAASq0F,MAC/B0Z,EAAarH,GAAoB1mG,GACvC8tG,GAAU9tG,EAAU0jB,EAAOqqF,EAAYva,GACvC4c,GAAUpwG,EAAU46F,GACpB,MAAMulB,EAAcpS,EAAaqS,GAAuBpgH,EAAUwzF,QAAS,EAE3E,OADAmK,IAAwB,EACjBwiB,CACT,CACA,SAASC,GAAuBpgH,EAAUwzF,GAExC,MAAMyF,EAAYj5F,EAASX,KAuB3BW,EAAS+nG,YAA8BlhG,OAAO1G,OAAO,MACrDH,EAASoxF,OAAQ,QAAQ,IAAI1rE,MAAM1lB,EAAS04F,IAAKoP,KAIjD,MAAM,MAAEnH,GAAU1H,EAClB,GAAI0H,EAAO,CACT,MAAM2e,EAAet/G,EAASs/G,aAAe3e,EAAMj/F,OAAS,EAAI2+G,GAAmBrgH,GAAY,KAC/Fo+F,GAAmBp+F,IACnB,UACA,MAAMmgH,EAAcnsB,EAClB2M,EACA3gG,EACA,EACA,CAA+EA,EAAS0jB,MAAO47F,IAIjG,IAFA,UACAjhB,MACI,QAAU8hB,GAAc,CAE1B,GADAA,EAAY7+G,KAAK+8F,GAAsBA,IACnC7K,EACF,OAAO2sB,EAAY7+G,MAAMg/G,IACvBC,GAAkBvgH,EAAUsgH,EAAgB9sB,EAAM,IACjD/1E,OAAO1V,IACRksF,EAAYlsF,EAAG/H,EAAU,EAAE,IAG7BA,EAASy2G,SAAW0J,CAQxB,MACEI,GAAkBvgH,EAAUmgH,EAAa3sB,EAE7C,MACEgtB,GAAqBxgH,EAAUwzF,EAEnC,CACA,SAAS+sB,GAAkBvgH,EAAUmgH,EAAa3sB,IAC5C,QAAW2sB,GACTngH,EAASX,KAAKohH,kBAChBzgH,EAAS0gH,UAAYP,EAErBngH,EAASq5F,OAAS8mB,GAEX,QAASA,KASlBngH,EAASu5F,YAAa,QAAU4mB,IASlCK,GAAqBxgH,EAAUwzF,EACjC,CAYA,SAASgtB,GAAqBxgH,EAAUwzF,EAAOmtB,GAC7C,MAAM1nB,EAAYj5F,EAASX,KAC3B,IAAKW,EAASq5F,OAAQ,CACpB,IAAK7F,GAASysB,KAAYhnB,EAAUI,OAAQ,CAC1C,MAAMunB,EAAW3nB,EAAU2nB,UAAYpZ,GAAqBxnG,GAAU4gH,SACtE,GAAIA,EAAU,CACR,EAGJ,MAAM,gBAAEC,EAAe,gBAAE3U,GAAoBlsG,EAAS40F,WAAWh6F,QAC3D,WAAEkmH,EAAY5U,gBAAiB6U,GAA6B9nB,EAC5D+nB,GAAuB,SAC3B,QACE,CACEH,kBACAC,cAEF5U,GAEF6U,GAEF9nB,EAAUI,OAAS4mB,GAAQW,EAAUI,EAIvC,CACF,CACAhhH,EAASq5F,OAASJ,EAAUI,QAAU,KAClC6mB,IACFA,GAAiBlgH,EAErB,CAEEo+F,GAAmBp+F,IACnB,UACA,IACEuoG,GAAavoG,EACf,CAAE,SACA,UACAq+F,IACF,CAYJ,CACA,SAAS4iB,GAAcjhH,GACrB,OAAOA,EAASu/G,aAAev/G,EAASu/G,WAAa,IAAI75F,MACvD1lB,EAASysD,MAeL,CACF,GAAAnvC,CAAInX,EAAQvH,GAEV,OADA,QAAMoB,EAAU,MAAO,UAChBmG,EAAOvH,EAChB,IAGN,CASA,SAASyhH,GAAmBrgH,GAC1B,MAAM8pG,EAAUU,IAqBdxqG,EAASwqG,QAAUA,GAAW,CAAC,CAAC,EAgBhC,MAAO,CACL,SAAI/9C,GACF,OAAOw0D,GAAcjhH,EACvB,EACAo5F,MAAOp5F,EAASo5F,MAChBvC,KAAM72F,EAAS62F,KACfiT,SAGN,CACA,SAASrL,GAAez+F,GACtB,GAAIA,EAASwqG,QACX,OAAOxqG,EAASq/G,cAAgBr/G,EAASq/G,YAAc,IAAI35F,OAAM,SAAU,QAAQ1lB,EAASwqG,UAAW,CACrG,GAAAltF,CAAInX,EAAQvH,GACV,OAAIA,KAAOuH,EACFA,EAAOvH,GACLA,KAAO+nG,GACTA,GAAoB/nG,GAAKoB,QAD3B,CAGT,EACA,GAAAme,CAAIhY,EAAQvH,GACV,OAAOA,KAAOuH,GAAUvH,KAAO+nG,EACjC,IAGN,CAGA,SAASvK,GAAiBnD,EAAWioB,GAAkB,GACrD,OAAO,QAAWjoB,GAAaA,EAAUkoB,aAAeloB,EAAUxzF,KAAOwzF,EAAUxzF,MAAQy7G,GAAmBjoB,EAAUmoB,MAC1H,CAuBA,SAASnD,GAAiBjhH,GACxB,OAAO,QAAWA,IAAU,cAAeA,CAC7C,CAEA,MAAMovF,GAAW,CAACuH,EAAiBC,KAC1B,QAAWD,EAAiBC,EAAc+J,IAGnD,SAASl5F,GAAEpF,EAAMgiH,EAAiBzmB,GAChC,MAAMn5F,EAAIsH,UAAUrH,OACpB,OAAU,IAAND,GACE,QAAS4/G,MAAqB,QAAQA,GACpC/a,GAAQ+a,GACHpnB,GAAY56F,EAAM,KAAM,CAACgiH,IAE3BpnB,GAAY56F,EAAMgiH,GAElBpnB,GAAY56F,EAAM,KAAMgiH,IAG7B5/G,EAAI,EACNm5F,EAAWn3F,MAAMxD,UAAUqG,MAAMpB,KAAK6D,UAAW,GAClC,IAANtH,GAAW6kG,GAAQ1L,KAC5BA,EAAW,CAACA,IAEPX,GAAY56F,EAAMgiH,EAAiBzmB,GAE9C,CAEA,MAAM0mB,GAAgB1tG,OAAO4W,IAAI,SAC3BozE,GAAgB,KACpB,CACE,MAAMlF,EAAMqQ,GAAOuY,IAMnB,OAAO5oB,CACT,GAgNF,MAAM9rF,GAAU,Q,iTC5oPhB,MAAM20G,EAAQ,6BACR1sE,EAA0B,qBAAb3qC,SAA2BA,SAAW,KACnDs3G,EAAoB3sE,GAAuBA,EAAI9pC,cAAc,YAC7D02G,EAAU,CACdhQ,OAAQ,CAAC1Q,EAAOplE,EAAQu3E,KACtBv3E,EAAO+lF,aAAa3gB,EAAOmS,GAAU,KAAK,EAE5C5oG,OAASy2F,IACP,MAAMplE,EAASolE,EAAMwR,WACjB52E,GACFA,EAAOgmF,YAAY5gB,EACrB,EAEFh2F,cAAe,CAAC0iB,EAAK8/E,EAAO6G,EAAI1wF,KAC9B,MAAM63E,EAAKgS,EAAQ14D,EAAI+sE,gBAAgBL,EAAO9zF,GAAOonB,EAAI9pC,cAAc0iB,EAAK2mF,EAAK,CAAEA,WAAO,GAI1F,MAHY,WAAR3mF,GAAoB/J,GAA2B,MAAlBA,EAAMm+F,UACrCtmB,EAAGrwF,aAAa,WAAYwY,EAAMm+F,UAE7BtmB,CAAE,EAEXwW,WAAahgG,GAAS8iC,EAAIitE,eAAe/vG,GACzCkgG,cAAgBlgG,GAAS8iC,EAAIo9D,cAAclgG,GAC3CogG,QAAS,CAAChrF,EAAMpV,KACdoV,EAAK46F,UAAYhwG,CAAI,EAEvBsgG,eAAgB,CAAC9W,EAAIxpF,KACnBwpF,EAAGymB,YAAcjwG,CAAI,EAEvBwgG,WAAaprF,GAASA,EAAKorF,WAC3BE,YAActrF,GAASA,EAAKsrF,YAC5BgJ,cAAgBwG,GAAaptE,EAAI4mE,cAAcwG,GAC/C,UAAAtP,CAAWpX,EAAIh3F,GACbg3F,EAAGrwF,aAAa3G,EAAI,GACtB,EAKA,mBAAAsuG,CAAoB7kG,EAAS2tB,EAAQu3E,EAAQ3F,EAAO1sF,EAAOkK,GACzD,MAAMg0C,EAASm0C,EAASA,EAAOgP,gBAAkBvmF,EAAOwmF,UACxD,GAAIthG,IAAUA,IAAUkK,GAAOlK,EAAM4xF,cACnC,MAAO,EAEL,GADA92E,EAAO+lF,aAAa7gG,EAAMuhG,WAAU,GAAOlP,GACvCryF,IAAUkK,KAASlK,EAAQA,EAAM4xF,aACnC,UAEC,CACL+O,EAAkBa,UAAY9U,EAAQ,QAAQv/F,UAAkBA,EAChE,MAAM4yG,EAAWY,EAAkBxzG,QACnC,GAAIu/F,EAAO,CACT,MAAM+U,EAAU1B,EAASlE,WACzB,MAAO4F,EAAQ5F,WACbkE,EAAS2B,YAAYD,EAAQ5F,YAE/BkE,EAASe,YAAYW,EACvB,CACA3mF,EAAO+lF,aAAad,EAAU1N,EAChC,CACA,MAAO,CAELn0C,EAASA,EAAO0zC,YAAc92E,EAAO+gF,WAErCxJ,EAASA,EAAOgP,gBAAkBvmF,EAAOwmF,UAE7C,GAGIK,EAAa,aACbC,EAAY,YACZC,EAAS9uG,OAAO,QAChB+uG,EAAa,CAACj/F,GAAS01E,YAAY,IAAA30F,GAAE,KAAgBm+G,EAAuBl/F,GAAQ01E,GAC1FupB,EAAWxB,YAAc,aACzB,MAAM0B,EAA+B,CACnCp9G,KAAMqnB,OACNztB,KAAMytB,OACNg2F,IAAK,CACHzjH,KAAMiW,QACNysC,SAAS,GAEXghE,SAAU,CAACj2F,OAAQ5d,OAAQrI,QAC3Bm8G,eAAgBl2F,OAChBm2F,iBAAkBn2F,OAClBo2F,aAAcp2F,OACdq2F,gBAAiBr2F,OACjBs2F,kBAAmBt2F,OACnBu2F,cAAev2F,OACfw2F,eAAgBx2F,OAChBy2F,iBAAkBz2F,OAClB02F,aAAc12F,QAEV22F,EAA4Bd,EAAWj/F,OAAwB,QACnE,CAAC,EACD,KACAm/F,GAEIxgB,EAAW,CAACpD,EAAMn2F,EAAO,OACzB,QAAQm2F,GACVA,EAAKvgG,SAASglH,GAAOA,KAAM56G,KAClBm2F,GACTA,KAAQn2F,EACV,EAEI66G,EAAuB1kB,KACpBA,KAAO,QAAQA,GAAQA,EAAK/+D,MAAMwjF,GAAOA,EAAGhiH,OAAS,IAAKu9F,EAAKv9F,OAAS,GAEjF,SAASkhH,EAAuB3hB,GAC9B,MAAM2iB,EAAY,CAAC,EACnB,IAAK,MAAMhlH,KAAOqiG,EACVriG,KAAOikH,IACXe,EAAUhlH,GAAOqiG,EAASriG,IAG9B,IAAqB,IAAjBqiG,EAAS6hB,IACX,OAAOc,EAET,MAAM,KACJn+G,EAAO,IAAG,KACVpG,EAAI,SACJ0jH,EAAQ,eACRC,EAAiB,GAAGv9G,eAAiB,iBACrCw9G,EAAmB,GAAGx9G,iBAAmB,aACzCy9G,EAAe,GAAGz9G,aAAe,gBACjC09G,EAAkBH,EAAc,kBAChCI,EAAoBH,EAAgB,cACpCI,EAAgBH,EAAY,eAC5BI,EAAiB,GAAG79G,eAAiB,iBACrC89G,EAAmB,GAAG99G,iBAAmB,aACzC+9G,EAAe,GAAG/9G,cAChBw7F,EACE4iB,EAAYC,EAAkBf,GAC9BgB,EAAgBF,GAAaA,EAAU,GACvCG,EAAgBH,GAAaA,EAAU,IACvC,cACJ/jB,EAAa,QACbC,EAAO,iBACPE,EAAgB,QAChBE,EAAO,iBACPE,EAAgB,eAChBC,EAAiBR,EAAa,SAC9BS,EAAWR,EAAO,kBAClBU,EAAoBR,GAClB2jB,EACEK,EAAc,CAAC1oB,EAAI2oB,EAAU5oH,KACjC6oH,EAAsB5oB,EAAI2oB,EAAWb,EAAgBH,GACrDiB,EAAsB5oB,EAAI2oB,EAAWd,EAAoBH,GACzD3nH,GAAQA,GAAM,EAEV8oH,EAAc,CAAC7oB,EAAIjgG,KACvBigG,EAAG8oB,YAAa,EAChBF,EAAsB5oB,EAAI+nB,GAC1Ba,EAAsB5oB,EAAIioB,GAC1BW,EAAsB5oB,EAAIgoB,GAC1BjoH,GAAQA,GAAM,EAEVgpH,EAAiBJ,GACd,CAAC3oB,EAAIjgG,KACV,MAAM2jG,EAAOilB,EAAW3jB,EAAWR,EAC7BjlG,EAAU,IAAMmpH,EAAY1oB,EAAI2oB,EAAU5oH,GAChD+mG,EAASpD,EAAM,CAAC1D,EAAIzgG,IACpBypH,GAAU,KACRJ,EAAsB5oB,EAAI2oB,EAAWf,EAAkBH,GACvDwB,EAAmBjpB,EAAI2oB,EAAWb,EAAgBH,GAC7CS,EAAoB1kB,IACvBwlB,EAAmBlpB,EAAIl8F,EAAM0kH,EAAejpH,EAC9C,GACA,EAGN,OAAO,QAAO8oH,EAAW,CACvB,aAAA9jB,CAAcvE,GACZ8G,EAASvC,EAAe,CAACvE,IACzBipB,EAAmBjpB,EAAIynB,GACvBwB,EAAmBjpB,EAAI0nB,EACzB,EACA,cAAA3iB,CAAe/E,GACb8G,EAAS/B,EAAgB,CAAC/E,IAC1BipB,EAAmBjpB,EAAI4nB,GACvBqB,EAAmBjpB,EAAI6nB,EACzB,EACArjB,QAASukB,GAAc,GACvB/jB,SAAU+jB,GAAc,GACxB,OAAAnkB,CAAQ5E,EAAIjgG,GACVigG,EAAG8oB,YAAa,EAChB,MAAMvpH,EAAU,IAAMspH,EAAY7oB,EAAIjgG,GACtCkpH,EAAmBjpB,EAAI+nB,GACvBoB,IACAF,EAAmBjpB,EAAIgoB,GACvBgB,GAAU,KACHhpB,EAAG8oB,aAGRF,EAAsB5oB,EAAI+nB,GAC1BkB,EAAmBjpB,EAAIioB,GAClBG,EAAoBxjB,IACvBskB,EAAmBlpB,EAAIl8F,EAAM2kH,EAAelpH,GAC9C,IAEFunG,EAASlC,EAAS,CAAC5E,EAAIzgG,GACzB,EACA,gBAAAmlG,CAAiB1E,GACf0oB,EAAY1oB,GAAI,GAChB8G,EAASpC,EAAkB,CAAC1E,GAC9B,EACA,iBAAAkF,CAAkBlF,GAChB0oB,EAAY1oB,GAAI,GAChB8G,EAAS5B,EAAmB,CAAClF,GAC/B,EACA,gBAAA8E,CAAiB9E,GACf6oB,EAAY7oB,GACZ8G,EAAShC,EAAkB,CAAC9E,GAC9B,GAEJ,CACA,SAASuoB,EAAkBf,GACzB,GAAgB,MAAZA,EACF,OAAO,KACF,IAAI,QAASA,GAClB,MAAO,CAAC4B,EAAS5B,EAASnmF,OAAQ+nF,EAAS5B,EAASpmF,QAC/C,CACL,MAAMjpB,EAAIixG,EAAS5B,GACnB,MAAO,CAACrvG,EAAGA,EACb,CACF,CACA,SAASixG,EAAShmH,GAChB,MAAM8vC,GAAM,QAAS9vC,GAIrB,OAAO8vC,CACT,CACA,SAAS+1E,EAAmBjpB,EAAIqpB,GAC9BA,EAAI34G,MAAM,OAAOvN,SAAS0D,GAAMA,GAAKm5F,EAAGspB,UAAU77E,IAAI5mC,MACrDm5F,EAAGmnB,KAAYnnB,EAAGmnB,GAA0B,IAAI35E,MAAQC,IAAI47E,EAC/D,CACA,SAAST,EAAsB5oB,EAAIqpB,GACjCA,EAAI34G,MAAM,OAAOvN,SAAS0D,GAAMA,GAAKm5F,EAAGspB,UAAUv6G,OAAOlI,KACzD,MAAM0iH,EAAOvpB,EAAGmnB,GACZoC,IACFA,EAAK9+E,OAAO4+E,GACPE,EAAK7yG,OACRspF,EAAGmnB,QAAU,GAGnB,CACA,SAAS6B,EAAU5kF,GACjBolF,uBAAsB,KACpBA,sBAAsBplF,EAAG,GAE7B,CACA,IAAIqlF,EAAQ,EACZ,SAASP,EAAmBlpB,EAAI0pB,EAAcC,EAAiBpqH,GAC7D,MAAMyJ,EAAKg3F,EAAG4pB,SAAWH,EACnBI,EAAoB,KACpB7gH,IAAOg3F,EAAG4pB,QACZrqH,GACF,EAEF,GAAIoqH,EACF,OAAOtnH,WAAWwnH,EAAmBF,GAEvC,MAAM,KAAE7lH,EAAI,QAAE9B,EAAO,UAAE8nH,GAAcC,EAAkB/pB,EAAI0pB,GAC3D,IAAK5lH,EACH,OAAOvE,IAET,MAAMyqH,EAAWlmH,EAAO,MACxB,IAAImmH,EAAQ,EACZ,MAAMz6F,EAAM,KACVwwE,EAAG7/F,oBAAoB6pH,EAAUE,GACjCL,GAAmB,EAEfK,EAAS19G,IACTA,EAAE5B,SAAWo1F,KAAQiqB,GAASH,GAChCt6F,GACF,EAEFntB,YAAW,KACL4nH,EAAQH,GACVt6F,GACF,GACCxtB,EAAU,GACbg+F,EAAGt8F,iBAAiBsmH,EAAUE,EAChC,CACA,SAASH,EAAkB/pB,EAAI0pB,GAC7B,MAAMS,EAAS/5G,OAAOg6G,iBAAiBpqB,GACjCqqB,EAAsBhnH,IAAS8mH,EAAO9mH,IAAQ,IAAIqN,MAAM,MACxD45G,EAAmBD,EAAmB,GAAGpD,UACzCsD,EAAsBF,EAAmB,GAAGpD,aAC5CuD,EAAoBC,EAAWH,EAAkBC,GACjDG,EAAkBL,EAAmB,GAAGnD,UACxCyD,EAAqBN,EAAmB,GAAGnD,aAC3C0D,EAAmBH,EAAWC,EAAiBC,GACrD,IAAI7mH,EAAO,KACP9B,EAAU,EACV8nH,EAAY,EACZJ,IAAiBzC,EACfuD,EAAoB,IACtB1mH,EAAOmjH,EACPjlH,EAAUwoH,EACVV,EAAYS,EAAoBpkH,QAEzBujH,IAAiBxC,EACtB0D,EAAmB,IACrB9mH,EAAOojH,EACPllH,EAAU4oH,EACVd,EAAYa,EAAmBxkH,SAGjCnE,EAAU8R,KAAK8S,IAAI4jG,EAAmBI,GACtC9mH,EAAO9B,EAAU,EAAIwoH,EAAoBI,EAAmB3D,EAAaC,EAAY,KACrF4C,EAAYhmH,EAAOA,IAASmjH,EAAasD,EAAoBpkH,OAASwkH,EAAmBxkH,OAAS,GAEpG,MAAM0kH,EAAe/mH,IAASmjH,GAAc,yBAAyBh4G,KACnEo7G,EAAmB,GAAGpD,aAAsBzhH,YAE9C,MAAO,CACL1B,OACA9B,UACA8nH,YACAe,eAEJ,CACA,SAASJ,EAAWK,EAAQxC,GAC1B,MAAOwC,EAAO3kH,OAASmiH,EAAUniH,OAC/B2kH,EAASA,EAAO1iH,OAAO0iH,GAEzB,OAAOh3G,KAAK8S,OAAO0hG,EAAUltG,KAAI,CAAC9F,EAAGrP,IAAM8kH,EAAKz1G,GAAKy1G,EAAKD,EAAO7kH,MACnE,CACA,SAAS8kH,EAAK1wG,GACZ,MAAU,SAANA,EACK,EACyC,IAA3C1G,OAAO0G,EAAEtP,MAAM,GAAI,GAAGpC,QAAQ,IAAK,KAC5C,CACA,SAASwgH,IACP,OAAOx6G,SAAS+O,KAAKstG,YACvB,CAEA,SAASC,EAAWjrB,EAAIv+F,EAAOuwG,GAC7B,MAAMkZ,EAAoBlrB,EAAGmnB,GACzB+D,IACFzpH,GAASA,EAAQ,CAACA,KAAUypH,GAAqB,IAAIA,IAAoBn9G,KAAK,MAEnE,MAATtM,EACFu+F,EAAGmrB,gBAAgB,SACVnZ,EACThS,EAAGrwF,aAAa,QAASlO,GAEzBu+F,EAAGorB,UAAY3pH,CAEnB,CAEA,MAAM4pH,EAAchzG,OAAO,QACrBizG,EAAQ,CACZ,WAAA3d,CAAY3N,GAAI,MAAEv+F,IAAS,WAAEs9F,IAC3BiB,EAAGqrB,GAAoC,SAArBrrB,EAAGga,MAAMuR,QAAqB,GAAKvrB,EAAGga,MAAMuR,QAC1DxsB,GAAct9F,EAChBs9F,EAAWmI,YAAYlH,GAEvBwrB,EAAWxrB,EAAIv+F,EAEnB,EACA,OAAA4hG,CAAQrD,GAAI,MAAEv+F,IAAS,WAAEs9F,IACnBA,GAAct9F,GAChBs9F,EAAW19D,MAAM2+D,EAErB,EACA,OAAAsD,CAAQtD,GAAI,MAAEv+F,EAAK,SAAE+uF,IAAY,WAAEuO,KAC5Bt9F,KAAW+uF,IAEZuO,EACEt9F,GACFs9F,EAAWmI,YAAYlH,GACvBwrB,EAAWxrB,GAAI,GACfjB,EAAW19D,MAAM2+D,IAEjBjB,EAAW39D,MAAM4+D,GAAI,KACnBwrB,EAAWxrB,GAAI,EAAM,IAIzBwrB,EAAWxrB,EAAIv+F,GAEnB,EACA,aAAAusG,CAAchO,GAAI,MAAEv+F,IAClB+pH,EAAWxrB,EAAIv+F,EACjB,GAEF,SAAS+pH,EAAWxrB,EAAIv+F,GACtBu+F,EAAGga,MAAMuR,QAAU9pH,EAAQu+F,EAAGqrB,GAAe,MAC/C,CASA,MAAMI,EAAepzG,OAAoE,IA+DzF,SAASqzG,EAAW1rB,EAAIpwE,EAAMnX,GAC5B,MAAMuhG,EAAQha,EAAGga,MACX2R,GAAc,QAASlzG,GAC7B,GAAIA,IAASkzG,EAAa,CACxB,GAAI/7F,KAAS,QAASA,GACpB,IAAK,MAAMvsB,KAAOusB,EACC,MAAbnX,EAAKpV,IACPuoH,EAAS5R,EAAO32G,EAAK,IAI3B,IAAK,MAAMA,KAAOoV,EAChBmzG,EAAS5R,EAAO32G,EAAKoV,EAAKpV,GAE9B,KAAO,CACL,MAAMwoH,EAAiB7R,EAAMuR,QAC7B,GAAII,GACF,GAAI/7F,IAASnX,EAAM,CACjB,MAAMqzG,EAAa9R,EAAMyR,GACrBK,IACFrzG,GAAQ,IAAMqzG,GAEhB9R,EAAM+R,QAAUtzG,CAClB,OACSmX,GACTowE,EAAGmrB,gBAAgB,SAEjBE,KAAerrB,IACjBga,EAAMuR,QAAUM,EAEpB,CACF,CACA,MACMG,EAAc,iBACpB,SAASJ,EAAS5R,EAAO9vG,EAAM9G,GAC7B,IAAI,QAAQA,GACVA,EAAID,SAASyK,GAAMg+G,EAAS5R,EAAO9vG,EAAM0D,UAWzC,GATW,MAAPxK,IACFA,EAAM,IAQJ8G,EAAKkxE,WAAW,MAClB4+B,EAAMiS,YAAY/hH,EAAM9G,OACnB,CACL,MAAM8oH,EAAWC,EAAWnS,EAAO9vG,GAC/B8hH,EAAY/8G,KAAK7L,GACnB42G,EAAMiS,aACJ,QAAUC,GACV9oH,EAAIuF,QAAQqjH,EAAa,IACzB,aAGFhS,EAAMkS,GAAY9oH,CAEtB,CAEJ,CACA,MAAMgpH,EAAW,CAAC,SAAU,MAAO,MAC7BC,EAAc,CAAC,EACrB,SAASF,EAAWnS,EAAOsS,GACzB,MAAMpwB,EAASmwB,EAAYC,GAC3B,GAAIpwB,EACF,OAAOA,EAET,IAAIhyF,GAAO,QAASoiH,GACpB,GAAa,WAATpiH,GAAqBA,KAAQ8vG,EAC/B,OAAOqS,EAAYC,GAAWpiH,EAEhCA,GAAO,QAAWA,GAClB,IAAK,IAAIjE,EAAI,EAAGA,EAAImmH,EAASjmH,OAAQF,IAAK,CACxC,MAAMimH,EAAWE,EAASnmH,GAAKiE,EAC/B,GAAIgiH,KAAYlS,EACd,OAAOqS,EAAYC,GAAWJ,CAElC,CACA,OAAOI,CACT,CAEA,MAAMC,EAAU,+BAChB,SAASC,EAAUxsB,EAAI38F,EAAK5B,EAAOuwG,EAAOvtG,GACxC,GAAIutG,GAAS3uG,EAAI+3E,WAAW,UACb,MAAT35E,EACFu+F,EAAGysB,kBAAkBF,EAASlpH,EAAI0H,MAAM,EAAG1H,EAAI8C,SAE/C65F,EAAG0sB,eAAeH,EAASlpH,EAAK5B,OAE7B,CACL,MAAMkrH,GAAY,QAAqBtpH,GAC1B,MAAT5B,GAAiBkrH,KAAc,QAAmBlrH,GACpDu+F,EAAGmrB,gBAAgB9nH,GAEnB28F,EAAGrwF,aAAatM,EAAKspH,EAAY,GAAKlrH,EAE1C,CACF,CAEA,SAASmrH,EAAa5sB,EAAI38F,EAAK5B,EAAO69F,EAAcsY,EAAiBxC,EAAgB2D,GACnF,GAAY,cAAR11G,GAA+B,gBAARA,EAKzB,OAJIi8F,GACFyZ,EAAgBzZ,EAAcsY,EAAiBxC,QAEjDpV,EAAG38F,GAAgB,MAAT5B,EAAgB,GAAKA,GAGjC,MAAMywB,EAAM8tE,EAAG6sB,QACf,GAAY,UAARxpH,GAA2B,aAAR6uB,IACtBA,EAAIlY,SAAS,KAAM,CAClBgmF,EAAGnJ,OAASp1F,EACZ,MAAM+uF,EAAmB,WAARt+D,EAAmB8tE,EAAG8sB,aAAa,SAAW9sB,EAAGv+F,MAC5D8uF,EAAoB,MAAT9uF,EAAgB,GAAKA,EAOtC,OANI+uF,IAAaD,IACfyP,EAAGv+F,MAAQ8uF,QAEA,MAAT9uF,GACFu+F,EAAGmrB,gBAAgB9nH,GAGvB,CACA,IAAI0pH,GAAa,EACjB,GAAc,KAAVtrH,GAAyB,MAATA,EAAe,CACjC,MAAMqC,SAAck8F,EAAG38F,GACV,YAATS,EACFrC,GAAQ,QAAmBA,GACT,MAATA,GAA0B,WAATqC,GAC1BrC,EAAQ,GACRsrH,GAAa,GACK,WAATjpH,IACTrC,EAAQ,EACRsrH,GAAa,EAEjB,CACA,IACE/sB,EAAG38F,GAAO5B,CACZ,CAAE,MAAO+K,GACH,CAMN,CACAugH,GAAc/sB,EAAGmrB,gBAAgB9nH,EACnC,CAEA,SAASK,EAAiBs8F,EAAIr1D,EAAOsL,EAASntC,GAC5Ck3F,EAAGt8F,iBAAiBinC,EAAOsL,EAASntC,EACtC,CACA,SAAS3I,EAAoB6/F,EAAIr1D,EAAOsL,EAASntC,GAC/Ck3F,EAAG7/F,oBAAoBwqC,EAAOsL,EAASntC,EACzC,CACA,MAAMkkH,EAAS30G,OAAO,QACtB,SAAS40G,EAAWjtB,EAAIssB,EAASY,EAAWC,EAAW1oH,EAAW,MAChE,MAAM2oH,EAAWptB,EAAGgtB,KAAYhtB,EAAGgtB,GAAU,CAAC,GACxCK,EAAkBD,EAASd,GACjC,GAAIa,GAAaE,EACfA,EAAgB5rH,MAAQ0rH,MACnB,CACL,MAAOjjH,EAAMpB,GAAW2tB,EAAU61F,GAClC,GAAIa,EAAW,CACb,MAAMG,EAAUF,EAASd,GAAWiB,EAAcJ,EAAW1oH,GAC7Df,EAAiBs8F,EAAI91F,EAAMojH,EAASxkH,EACtC,MAAWukH,IACTltH,EAAoB6/F,EAAI91F,EAAMmjH,EAAiBvkH,GAC/CskH,EAASd,QAAW,EAExB,CACF,CACA,MAAMkB,EAAoB,4BAC1B,SAAS/2F,EAAUvsB,GACjB,IAAIpB,EACJ,GAAI0kH,EAAkBv+G,KAAK/E,GAAO,CAEhC,IAAIkO,EADJtP,EAAU,CAAC,EAEX,MAAOsP,EAAIlO,EAAK0E,MAAM4+G,GACpBtjH,EAAOA,EAAKa,MAAM,EAAGb,EAAK/D,OAASiS,EAAE,GAAGjS,QACxC2C,EAAQsP,EAAE,GAAG9U,gBAAiB,CAElC,CACA,MAAMqnC,EAAoB,MAAZzgC,EAAK,GAAaA,EAAKa,MAAM,IAAK,QAAUb,EAAKa,MAAM,IACrE,MAAO,CAAC4/B,EAAO7hC,EACjB,CACA,IAAI2kH,EAAY,EAChB,MAAMh4G,EAAoBnW,QAAQC,UAC5BmuH,EAAS,IAAMD,IAAch4G,EAAE1P,MAAK,IAAM0nH,EAAY,IAAIA,EAAYh/G,KAAKO,OACjF,SAASu+G,EAAcI,EAAclpH,GACnC,MAAM6oH,EAAW9gH,IACf,GAAKA,EAAEohH,MAEA,GAAIphH,EAAEohH,MAAQN,EAAQO,SAC3B,YAFArhH,EAAEohH,KAAOn/G,KAAKO,OAIhB,QACE8+G,GAA8BthH,EAAG8gH,EAAQ7rH,OACzCgD,EACA,EACA,CAAC+H,GACF,EAIH,OAFA8gH,EAAQ7rH,MAAQksH,EAChBL,EAAQO,SAAWH,IACZJ,CACT,CACA,SAASQ,GAA8BthH,EAAG/K,GACxC,IAAI,QAAQA,GAAQ,CAClB,MAAMssH,EAAevhH,EAAEwhH,yBAKvB,OAJAxhH,EAAEwhH,yBAA2B,KAC3BD,EAAapkH,KAAK6C,GAClBA,EAAEyhH,UAAW,CAAI,EAEZxsH,EAAM2Z,KAAKnS,GAAQ4zG,IAAQA,EAAGoR,UAAYhlH,GAAMA,EAAG4zG,IAC5D,CACE,OAAOp7G,CAEX,CAEA,MAAMysH,GAAc7qH,GAA8B,MAAtBA,EAAIqP,WAAW,IAAoC,MAAtBrP,EAAIqP,WAAW,IACxErP,EAAIqP,WAAW,GAAK,IAAMrP,EAAIqP,WAAW,GAAK,IACxC2jG,GAAY,CAACrW,EAAI38F,EAAK6pH,EAAWC,EAAWnb,GAAQ,EAAO1S,EAAcsY,EAAiBxC,EAAgB2D,KAClG,UAAR11G,EACF4nH,EAAWjrB,EAAImtB,EAAWnb,GACT,UAAR3uG,EACTqoH,EAAW1rB,EAAIktB,EAAWC,IACjB,QAAK9pH,IACT,QAAgBA,IACnB4pH,EAAWjtB,EAAI38F,EAAK6pH,EAAWC,EAAWvV,IAExB,MAAXv0G,EAAI,IAAcA,EAAMA,EAAI0H,MAAM,GAAI,GAAmB,MAAX1H,EAAI,IAAcA,EAAMA,EAAI0H,MAAM,GAAI,GAASojH,GAAgBnuB,EAAI38F,EAAK8pH,EAAWnb,IAC1I4a,EACE5sB,EACA38F,EACA8pH,EACA7tB,EACAsY,EACAxC,EACA2D,IAGU,eAAR11G,EACF28F,EAAGouB,WAAajB,EACC,gBAAR9pH,IACT28F,EAAGquB,YAAclB,GAEnBX,EAAUxsB,EAAI38F,EAAK8pH,EAAWnb,GAChC,EAEF,SAASmc,GAAgBnuB,EAAI38F,EAAK5B,EAAOuwG,GACvC,GAAIA,EACF,MAAY,cAAR3uG,GAA+B,gBAARA,MAGvBA,KAAO28F,GAAMkuB,GAAW7qH,KAAQ,QAAW5B,IAKjD,GAAY,eAAR4B,GAAgC,cAARA,GAA+B,cAARA,EACjD,OAAO,EAET,GAAY,SAARA,EACF,OAAO,EAET,GAAY,SAARA,GAAiC,UAAf28F,EAAG6sB,QACvB,OAAO,EAET,GAAY,SAARxpH,GAAiC,aAAf28F,EAAG6sB,QACvB,OAAO,EAET,GAAY,UAARxpH,GAA2B,WAARA,EAAkB,CACvC,MAAM6uB,EAAM8tE,EAAG6sB,QACf,GAAY,QAAR36F,GAAyB,UAARA,GAA2B,WAARA,GAA4B,WAARA,EAC1D,OAAO,CAEX,CACA,QAAIg8F,GAAW7qH,MAAQ,QAAS5B,KAGzB4B,KAAO28F,CAChB;;;AAkByC,qBAAhBsuB,aAA8BA,YAmOvD,MAAMC,GAA8B,IAAI9tG,QAClC+tG,GAAiC,IAAI/tG,QACrCguG,GAAYp2G,OAAO,WACnBurF,GAAavrF,OAAO,YACpBq2G,GAAsB,CAC1BxkH,KAAM,kBACNie,OAAuB,QAAO,CAAC,EAAG+/F,EAA2B,CAC3Dh2F,IAAKX,OACLo9F,UAAWp9F,SAEb,KAAA6zE,CAAMj9E,GAAO,MAAE01E,IACb,MAAMp5F,GAAW,UACXg7C,GAAQ,UACd,IAAI6/C,EACAD,EAmCJ,OAlCA,SAAU,KACR,IAAKC,EAAan5F,OAChB,OAEF,MAAMwoH,EAAYxmG,EAAMwmG,WAAa,GAAGxmG,EAAMje,MAAQ,WACtD,IAAK0kH,GACHtvB,EAAa,GAAGU,GAChBv7F,EAASq0F,MAAMkH,GACf2uB,GAEA,OAEFrvB,EAAan8F,QAAQ0rH,IACrBvvB,EAAan8F,QAAQ2rH,IACrB,MAAMC,EAAgBzvB,EAAa74E,OAAOuoG,IAC1C7F,IACA4F,EAAc5rH,SAAS0D,IACrB,MAAMm5F,EAAKn5F,EAAEm5F,GACPga,EAAQha,EAAGga,MACjBiP,EAAmBjpB,EAAI2uB,GACvB3U,EAAMiV,UAAYjV,EAAMkV,gBAAkBlV,EAAMmV,mBAAqB,GACrE,MAAM/qF,EAAK47D,EAAGyuB,IAAcjiH,IACtBA,GAAKA,EAAE5B,SAAWo1F,GAGjBxzF,IAAK,aAAayC,KAAKzC,EAAE4iH,gBAC5BpvB,EAAG7/F,oBAAoB,gBAAiBikC,GACxC47D,EAAGyuB,IAAa,KAChB7F,EAAsB5oB,EAAI2uB,GAC5B,EAEF3uB,EAAGt8F,iBAAiB,gBAAiB0gC,EAAG,GACxC,IAEG,KACL,MAAMshE,GAAW,QAAMv9E,GACjBknG,EAAqBhI,EAAuB3hB,GAClD,IAAIxzE,EAAMwzE,EAASxzE,KAAO,KAC1BotE,EAAeD,EACfA,EAAWxB,EAAMr3C,SAAU,QAAyBq3C,EAAMr3C,WAAa,GACvE,IAAK,IAAIvgD,EAAI,EAAGA,EAAIo5F,EAASl5F,OAAQF,IAAK,CACxC,MAAMu/F,EAAQnG,EAASp5F,GACN,MAAbu/F,EAAMniG,MACR,QACEmiG,GACA,QAAuBA,EAAO6pB,EAAoB5vE,EAAOh7C,GAK/D,CACA,GAAI66F,EACF,IAAK,IAAIr5F,EAAI,EAAGA,EAAIq5F,EAAan5F,OAAQF,IAAK,CAC5C,MAAMu/F,EAAQlG,EAAar5F,IAC3B,QACEu/F,GACA,QAAuBA,EAAO6pB,EAAoB5vE,EAAOh7C,IAE3D8pH,GAAYvrG,IAAIwiF,EAAOA,EAAMxF,GAAGsvB,wBAClC,CAEF,OAAO,QAAYp9F,EAAK,KAAMmtE,EAAS,CAE3C,GAGyBqvB,GAAoBvmG,MAC/C,MAAMonG,GAAkBb,GACxB,SAASG,GAAehoH,GACtB,MAAMm5F,EAAKn5F,EAAEm5F,GACTA,EAAGyuB,KACLzuB,EAAGyuB,MAEDzuB,EAAG4D,KACL5D,EAAG4D,KAEP,CACA,SAASkrB,GAAejoH,GACtB2nH,GAAexrG,IAAInc,EAAGA,EAAEm5F,GAAGsvB,wBAC7B,CACA,SAASN,GAAiBnoH,GACxB,MAAM2oH,EAASjB,GAAYxsG,IAAIlb,GACzB4oH,EAASjB,GAAezsG,IAAIlb,GAC5B6oH,EAAKF,EAAOtlF,KAAOulF,EAAOvlF,KAC1BylF,EAAKH,EAAOI,IAAMH,EAAOG,IAC/B,GAAIF,GAAMC,EAAI,CACZ,MAAMt1G,EAAIxT,EAAEm5F,GAAGga,MAGf,OAFA3/F,EAAE40G,UAAY50G,EAAE60G,gBAAkB,aAAaQ,OAAQC,OACvDt1G,EAAE80G,mBAAqB,KAChBtoH,CACT,CACF,CACA,SAAS+nH,GAAgB5uB,EAAIjgE,EAAM4uF,GACjC,MAAMluF,EAAQu/D,EAAG6mB,YACX0C,EAAOvpB,EAAGmnB,GACZoC,GACFA,EAAKpmH,SAASkmH,IACZA,EAAI34G,MAAM,OAAOvN,SAAS0D,GAAMA,GAAK45B,EAAM6oF,UAAUv6G,OAAOlI,IAAG,IAGnE8nH,EAAUj+G,MAAM,OAAOvN,SAAS0D,GAAMA,GAAK45B,EAAM6oF,UAAU77E,IAAI5mC,KAC/D45B,EAAMu5E,MAAMuR,QAAU,OACtB,MAAM7T,EAA8B,IAAlB33E,EAAKqhF,SAAiBrhF,EAAOA,EAAKi3E,WACpDU,EAAUsP,YAAYvmF,GACtB,MAAM,aAAEoqF,GAAiBd,EAAkBtpF,GAE3C,OADAi3E,EAAU0O,YAAY3lF,GACfoqF,CACT,CAEA,MAAMgF,GAAoB/2B,IACxB,MAAM7vF,EAAK6vF,EAAM3wE,MAAM,yBAA0B,EACjD,OAAO,QAAQlf,GAAOxH,IAAU,QAAewH,EAAIxH,GAASwH,CAAE,EAEhE,SAAS6mH,GAAmBtjH,GAC1BA,EAAE5B,OAAOmlH,WAAY,CACvB,CACA,SAASC,GAAiBxjH,GACxB,MAAM5B,EAAS4B,EAAE5B,OACbA,EAAOmlH,YACTnlH,EAAOmlH,WAAY,EACnBnlH,EAAOqlH,cAAc,IAAIC,MAAM,UAEnC,CACA,MAAMC,GAAY93G,OAAO,WACnB+3G,GAAa,CACjB,OAAA1iB,CAAQ1N,GAAMoD,WAAW,KAAEitB,EAAI,KAAE9jH,EAAI,OAAEnC,IAAY0uF,GACjDkH,EAAGmwB,IAAaN,GAAiB/2B,GACjC,MAAMw3B,EAAelmH,GAAU0uF,EAAM3wE,OAA8B,WAArB2wE,EAAM3wE,MAAMrkB,KAC1DJ,EAAiBs8F,EAAIqwB,EAAO,SAAW,SAAU7jH,IAC/C,GAAIA,EAAE5B,OAAOmlH,UACX,OACF,IAAIQ,EAAWvwB,EAAGv+F,MACd8K,IACFgkH,EAAWA,EAAShkH,QAElB+jH,IACFC,GAAW,QAAcA,IAE3BvwB,EAAGmwB,IAAWI,EAAS,IAErBhkH,GACF7I,EAAiBs8F,EAAI,UAAU,KAC7BA,EAAGv+F,MAAQu+F,EAAGv+F,MAAM8K,MAAM,IAGzB8jH,IACH3sH,EAAiBs8F,EAAI,mBAAoB8vB,IACzCpsH,EAAiBs8F,EAAI,iBAAkBgwB,IACvCtsH,EAAiBs8F,EAAI,SAAUgwB,IAEnC,EAEA,OAAA3sB,CAAQrD,GAAI,MAAEv+F,IACZu+F,EAAGv+F,MAAiB,MAATA,EAAgB,GAAKA,CAClC,EACA,YAAAmsG,CAAa5N,GAAI,MAAEv+F,EAAO2hG,WAAW,KAAEitB,EAAI,KAAE9jH,EAAI,OAAEnC,IAAY0uF,GAE7D,GADAkH,EAAGmwB,IAAaN,GAAiB/2B,GAC7BkH,EAAG+vB,UACL,OACF,MAAMS,EAAUpmH,GAAsB,WAAZ41F,EAAGl8F,MAAoB,QAAck8F,EAAGv+F,OAASu+F,EAAGv+F,MACxE8uF,EAAoB,MAAT9uF,EAAgB,GAAKA,EACtC,GAAI+uH,IAAYjgC,EAAhB,CAGA,GAAI5hF,SAAS8hH,gBAAkBzwB,GAAkB,UAAZA,EAAGl8F,KAAkB,CACxD,GAAIusH,EACF,OAEF,GAAI9jH,GAAQyzF,EAAGv+F,MAAM8K,SAAWgkF,EAC9B,MAEJ,CACAyP,EAAGv+F,MAAQ8uF,CATX,CAUF,GAEImgC,GAAiB,CAErBjvB,MAAM,EACN,OAAAiM,CAAQ1N,EAAItgF,EAAGo5E,GACbkH,EAAGmwB,IAAaN,GAAiB/2B,GACjCp1F,EAAiBs8F,EAAI,UAAU,KAC7B,MAAM2wB,EAAa3wB,EAAG4wB,YAChBC,EAAeC,GAAS9wB,GACxB+wB,EAAU/wB,EAAG+wB,QACbv8G,EAASwrF,EAAGmwB,IAClB,IAAI,QAAQQ,GAAa,CACvB,MAAMjqH,GAAQ,QAAaiqH,EAAYE,GACjCG,GAAmB,IAAXtqH,EACd,GAAIqqH,IAAYC,EACdx8G,EAAOm8G,EAAWvoH,OAAOyoH,SACpB,IAAKE,GAAWC,EAAO,CAC5B,MAAMlwC,EAAW,IAAI6vC,GACrB7vC,EAASn6E,OAAOD,EAAO,GACvB8N,EAAOssE,EACT,CACF,MAAO,IAAI,QAAM6vC,GAAa,CAC5B,MAAMvzD,EAAS,IAAI5vB,IAAImjF,GACnBI,EACF3zD,EAAO3vB,IAAIojF,GAEXzzD,EAAO3yB,OAAOomF,GAEhBr8G,EAAO4oD,EACT,MACE5oD,EAAOy8G,GAAiBjxB,EAAI+wB,GAC9B,GAEJ,EAEA1tB,QAAS6tB,GACT,YAAAtjB,CAAa5N,EAAIyD,EAAS3K,GACxBkH,EAAGmwB,IAAaN,GAAiB/2B,GACjCo4B,GAAWlxB,EAAIyD,EAAS3K,EAC1B,GAEF,SAASo4B,GAAWlxB,GAAI,MAAEv+F,EAAK,SAAE+uF,GAAYsI,GAC3CkH,EAAG4wB,YAAcnvH,GACb,QAAQA,GACVu+F,EAAG+wB,SAAU,QAAatvH,EAAOq3F,EAAM3wE,MAAM1mB,QAAU,GAC9C,QAAMA,GACfu+F,EAAG+wB,QAAUtvH,EAAMmhB,IAAIk2E,EAAM3wE,MAAM1mB,OAC1BA,IAAU+uF,IACnBwP,EAAG+wB,SAAU,QAAWtvH,EAAOwvH,GAAiBjxB,GAAI,IAExD,CACA,MAAMmxB,GAAc,CAClB,OAAAzjB,CAAQ1N,GAAI,MAAEv+F,GAASq3F,GACrBkH,EAAG+wB,SAAU,QAAWtvH,EAAOq3F,EAAM3wE,MAAM1mB,OAC3Cu+F,EAAGmwB,IAAaN,GAAiB/2B,GACjCp1F,EAAiBs8F,EAAI,UAAU,KAC7BA,EAAGmwB,IAAWW,GAAS9wB,GAAI,GAE/B,EACA,YAAA4N,CAAa5N,GAAI,MAAEv+F,EAAK,SAAE+uF,GAAYsI,GACpCkH,EAAGmwB,IAAaN,GAAiB/2B,GAC7Br3F,IAAU+uF,IACZwP,EAAG+wB,SAAU,QAAWtvH,EAAOq3F,EAAM3wE,MAAM1mB,OAE/C,GAEI2vH,GAAe,CAEnB3vB,MAAM,EACN,OAAAiM,CAAQ1N,GAAI,MAAEv+F,EAAO2hG,WAAW,OAAEh5F,IAAY0uF,GAC5C,MAAMu4B,GAAa,QAAM5vH,GACzBiC,EAAiBs8F,EAAI,UAAU,KAC7B,MAAMsxB,EAAcppH,MAAMxD,UAAU+hB,OAAO9c,KAAKq2F,EAAGl3F,SAAUoP,GAAMA,EAAEq5G,WAAUn2G,KAC5ElD,GAAM9N,GAAS,QAAc0mH,GAAS54G,IAAM44G,GAAS54G,KAExD8nF,EAAGmwB,IACDnwB,EAAGsmB,SAAW+K,EAAa,IAAI7jF,IAAI8jF,GAAeA,EAAcA,EAAY,GAC7E,IAEHtxB,EAAGmwB,IAAaN,GAAiB/2B,EACnC,EAGA,OAAAuK,CAAQrD,GAAI,MAAEv+F,IACZ+vH,GAAYxxB,EAAIv+F,EAClB,EACA,YAAAmsG,CAAa5N,EAAIyxB,EAAU34B,GACzBkH,EAAGmwB,IAAaN,GAAiB/2B,EACnC,EACA,OAAAwK,CAAQtD,GAAI,MAAEv+F,IACZ+vH,GAAYxxB,EAAIv+F,EAClB,GAEF,SAAS+vH,GAAYxxB,EAAIv+F,GACvB,MAAMiwH,EAAa1xB,EAAGsmB,SACtB,IAAIoL,IAAe,QAAQjwH,KAAW,QAAMA,GAA5C,CAMA,IAAK,IAAIwE,EAAI,EAAGC,EAAI85F,EAAGl3F,QAAQ3C,OAAQF,EAAIC,EAAGD,IAAK,CACjD,MAAM0rH,EAAS3xB,EAAGl3F,QAAQ7C,GACpB2rH,EAAcd,GAASa,GAC7B,GAAID,GACE,QAAQjwH,GACVkwH,EAAOJ,UAAW,QAAa9vH,EAAOmwH,IAAgB,EAEtDD,EAAOJ,SAAW9vH,EAAMmhB,IAAIgvG,QAG9B,IAAI,QAAWd,GAASa,GAASlwH,GAG/B,YAFIu+F,EAAG6xB,gBAAkB5rH,IACvB+5F,EAAG6xB,cAAgB5rH,GAI3B,CACKyrH,IAAoC,IAAtB1xB,EAAG6xB,gBACpB7xB,EAAG6xB,eAAiB,EAnBtB,CAqBF,CACA,SAASf,GAAS9wB,GAChB,MAAO,WAAYA,EAAKA,EAAGnJ,OAASmJ,EAAGv+F,KACzC,CACA,SAASwvH,GAAiBjxB,EAAI+wB,GAC5B,MAAM1tH,EAAM0tH,EAAU,aAAe,cACrC,OAAO1tH,KAAO28F,EAAKA,EAAG38F,GAAO0tH,CAC/B,CACA,MAAMe,GAAgB,CACpB,OAAApkB,CAAQ1N,EAAIyD,EAAS3K,GACnBi5B,GAAc/xB,EAAIyD,EAAS3K,EAAO,KAAM,UAC1C,EACA,OAAAuK,CAAQrD,EAAIyD,EAAS3K,GACnBi5B,GAAc/xB,EAAIyD,EAAS3K,EAAO,KAAM,UAC1C,EACA,YAAA8U,CAAa5N,EAAIyD,EAAS3K,EAAOmG,GAC/B8yB,GAAc/xB,EAAIyD,EAAS3K,EAAOmG,EAAW,eAC/C,EACA,OAAAqE,CAAQtD,EAAIyD,EAAS3K,EAAOmG,GAC1B8yB,GAAc/xB,EAAIyD,EAAS3K,EAAOmG,EAAW,UAC/C,GAEF,SAAS+yB,GAAoBnF,EAAS/oH,GACpC,OAAQ+oH,GACN,IAAK,SACH,OAAOuE,GACT,IAAK,WACH,OAAOhB,GACT,QACE,OAAQtsH,GACN,IAAK,WACH,OAAO4sH,GACT,IAAK,QACH,OAAOS,GACT,QACE,OAAOf,IAGjB,CACA,SAAS2B,GAAc/xB,EAAIyD,EAAS3K,EAAOmG,EAAWyE,GACpD,MAAMuuB,EAAaD,GACjBhyB,EAAG6sB,QACH/zB,EAAM3wE,OAAS2wE,EAAM3wE,MAAMrkB,MAEvBmF,EAAKgpH,EAAWvuB,GACtBz6F,GAAMA,EAAG+2F,EAAIyD,EAAS3K,EAAOmG,EAC/B,CAoCA,MAAMizB,GAAkB,CAAC,OAAQ,QAAS,MAAO,QAC3CC,GAAiB,CACrBtkC,KAAOrhF,GAAMA,EAAE4lH,kBACfC,QAAU7lH,GAAMA,EAAE8lH,iBAClBhpG,KAAO9c,GAAMA,EAAE5B,SAAW4B,EAAE+lH,cAC5BC,KAAOhmH,IAAOA,EAAEimH,QAChBpqH,MAAQmE,IAAOA,EAAEkmH,SACjBC,IAAMnmH,IAAOA,EAAEomH,OACfC,KAAOrmH,IAAOA,EAAEsmH,QAChB5oF,KAAO19B,GAAM,WAAYA,GAAkB,IAAbA,EAAEumH,OAChC54B,OAAS3tF,GAAM,WAAYA,GAAkB,IAAbA,EAAEumH,OAClC5oF,MAAQ39B,GAAM,WAAYA,GAAkB,IAAbA,EAAEumH,OACjCC,MAAO,CAACxmH,EAAG42F,IAAc8uB,GAAgBvtF,MAAMvsB,GAAM5L,EAAE,GAAG4L,UAAYgrF,EAAUppF,SAAS5B,MAErF66G,GAAgB,CAAChqH,EAAIm6F,KACzB,MAAM16B,EAAQz/D,EAAGiqH,YAAcjqH,EAAGiqH,UAAY,CAAC,GACzCtqD,EAAWw6B,EAAUr1F,KAAK,KAChC,OAAO26D,EAAME,KAAcF,EAAME,GAAY,CAACj+B,KAAUp9B,KACtD,IAAK,IAAItH,EAAI,EAAGA,EAAIm9F,EAAUj9F,OAAQF,IAAK,CACzC,MAAMktH,EAAQhB,GAAe/uB,EAAUn9F,IACvC,GAAIktH,GAASA,EAAMxoF,EAAOy4D,GACxB,MACJ,CACA,OAAOn6F,EAAG0hC,KAAUp9B,EAAK,EACzB,EAEE6lH,GAAW,CACfC,IAAK,SACLC,MAAO,IACPC,GAAI,WACJrpF,KAAM,aACNC,MAAO,cACPqpF,KAAM,aACN/oF,OAAQ,aAEJgpF,GAAW,CAACxqH,EAAIm6F,KACpB,MAAM16B,EAAQz/D,EAAGyqH,YAAczqH,EAAGyqH,UAAY,CAAC,GACzC9qD,EAAWw6B,EAAUr1F,KAAK,KAChC,OAAO26D,EAAME,KAAcF,EAAME,GAAaj+B,IAC5C,KAAM,QAASA,GACb,OAEF,MAAMgpF,GAAW,QAAUhpF,EAAMtnC,KACjC,OAAI+/F,EAAUz+D,MAAM/nB,GAAMA,IAAM+2G,GAAYP,GAASx2G,KAAO+2G,IACnD1qH,EAAG0hC,QADZ,CAEA,EACA,EAGEipF,IAAkC,QAAO,CAAEvd,cAAa6P,GAC9D,IAAIlL,GAEJ,SAAS6Y,KACP,OAAO7Y,KAAaA,IAAW,QAAe4Y,IAChD,CAMA,MAMMzU,GAAY,IAAI5xG,KACpB,MAAM+iG,EAAMujB,KAAiB1U,aAAa5xG,GAK1C,MAAM,MAAEskG,GAAUvB,EAiBlB,OAhBAA,EAAIuB,MAASiiB,IACX,MAAMpc,EAAYqc,GAAmBD,GACrC,IAAKpc,EACH,OACF,MAAMz8F,EAAYq1F,EAAIe,YACjB,QAAWp2F,IAAeA,EAAU6iF,QAAW7iF,EAAUoqG,WAC5DpqG,EAAUoqG,SAAW3N,EAAUoP,WAEjCpP,EAAUoP,UAAY,GACtB,MAAMjxB,EAAQgc,EAAM6F,GAAW,EAAOA,aAAqBmI,YAK3D,OAJInI,aAAqBsc,UACvBtc,EAAUyT,gBAAgB,WAC1BzT,EAAU/nG,aAAa,aAAc,KAEhCkmF,CAAK,EAEPya,CAAG,EAoDZ,SAASyjB,GAAmBrc,GAC1B,IAAI,QAASA,GAAY,CACvB,MAAMxkE,EAAMvkC,SAASuxG,cAAcxI,GAMnC,OAAOxkE,CACT,CAMA,OAAOwkE,CACT,C,qCCrgDA,SAASuc,EAAQhiH,EAAKiiH,GACpB,MAAM94G,EAAsB9P,OAAO1G,OAAO,MACpCw7E,EAAOnuE,EAAIvB,MAAM,KACvB,IAAK,IAAIzK,EAAI,EAAGA,EAAIm6E,EAAKj6E,OAAQF,IAC/BmV,EAAIglE,EAAKn6E,KAAM,EAEjB,OAAOiuH,EAAoB9wH,KAAUgY,EAAIhY,EAAIE,eAAkBF,KAAUgY,EAAIhY,EAC/E,C,8/BAEA,MAAM+wH,EAA4E,CAAC,EAC7EC,EAA4E,GAC5EC,EAAO,OAEP7jB,EAAK,KAAM,EACX8jB,EAAQjxH,GAA8B,MAAtBA,EAAIqP,WAAW,IAAoC,MAAtBrP,EAAIqP,WAAW,KACjErP,EAAIqP,WAAW,GAAK,KAAOrP,EAAIqP,WAAW,GAAK,IAC1C+oF,EAAmBp4F,GAAQA,EAAI+3E,WAAW,aAC1Cz2E,EAAS2G,OAAOkJ,OAChBzF,EAAS,CAAC+B,EAAKkvF,KACnB,MAAM/5F,EAAI6K,EAAI1O,QAAQ49F,GAClB/5F,GAAK,GACP6K,EAAInK,OAAOV,EAAG,EAChB,EAEImM,EAAiB9G,OAAO5G,UAAU0N,eAClCmiH,EAAS,CAACnxH,EAAKC,IAAQ+O,EAAezI,KAAKvG,EAAKC,GAChDyH,EAAU5C,MAAM4C,QAChB0pH,EAASpxH,GAA8B,iBAAtBqxH,EAAarxH,GAC9BsxH,EAAStxH,GAA8B,iBAAtBqxH,EAAarxH,GAC9ByK,EAAUzK,GAA8B,kBAAtBqxH,EAAarxH,GAC/BuxH,EAAYvxH,GAA8B,oBAAtBqxH,EAAarxH,GACjC2O,EAAc3O,GAAuB,oBAARA,EAC7BgJ,EAAYhJ,GAAuB,kBAARA,EAC3BwxH,EAAYxxH,GAAuB,kBAARA,EAC3B8J,EAAY9J,GAAgB,OAARA,GAA+B,kBAARA,EAC3CyxH,EAAazxH,IACT8J,EAAS9J,IAAQ2O,EAAW3O,KAAS2O,EAAW3O,EAAI2C,OAASgM,EAAW3O,EAAI8e,OAEhF4yG,EAAiBxpH,OAAO5G,UAAUc,SAClCivH,EAAgBhzH,GAAUqzH,EAAenrH,KAAKlI,GAC9CszH,EAAatzH,GACVgzH,EAAahzH,GAAOsJ,MAAM,GAAI,GAEjCF,EAAiBzH,GAA8B,oBAAtBqxH,EAAarxH,GACtC4xH,EAAgB3xH,GAAQ+I,EAAS/I,IAAgB,QAARA,GAA4B,MAAXA,EAAI,IAAc,GAAK87C,SAAS97C,EAAK,MAAQA,EACvG4xH,EAAiChB,EAErC,uIAKIiB,EAAuBjsH,IAC3B,MAAMy/D,EAAwBp9D,OAAO1G,OAAO,MAC5C,OAAQqN,IACN,MAAMkjH,EAAMzsD,EAAMz2D,GAClB,OAAOkjH,IAAQzsD,EAAMz2D,GAAOhJ,EAAGgJ,GAAK,CACrC,EAEGmjH,EAAa,SACbC,EAAWH,GAAqBjjH,GAC7BA,EAAItJ,QAAQysH,GAAY,CAAC11G,EAAG7Y,IAAMA,EAAIA,EAAEhF,cAAgB,OAE3DyzH,EAAc,aACdC,EAAYL,GACfjjH,GAAQA,EAAItJ,QAAQ2sH,EAAa,OAAOhyH,gBAErCkyH,EAAaN,GAAqBjjH,GAC/BA,EAAI9B,OAAO,GAAGtO,cAAgBoQ,EAAIlH,MAAM,KAE3C0qH,EAAeP,GAAqBjjH,IACxC,MAAMoI,EAAIpI,EAAM,KAAKujH,EAAWvjH,KAAS,GACzC,OAAOoI,CAAC,IAEJq7G,EAAa,CAACj0H,EAAO+uF,KAAcllF,OAAOutG,GAAGp3G,EAAO+uF,GACpDmlC,EAAiB,CAACjqH,EAAKqP,KAC3B,IAAK,IAAI9U,EAAI,EAAGA,EAAIyF,EAAIvF,OAAQF,IAC9ByF,EAAIzF,GAAG8U,EACT,EAEI8+B,EAAM,CAAC1nC,EAAK9O,EAAK5B,KACrB6J,OAAOuc,eAAe1V,EAAK9O,EAAK,CAC9BykB,cAAc,EACdN,YAAY,EACZ/lB,SACA,EAEEm0H,EAAiBxyH,IACrB,MAAM+U,EAAI09G,WAAWzyH,GACrB,OAAO4xB,MAAM7c,GAAK/U,EAAM+U,CAAC,EAErB29G,EAAY1yH,IAChB,MAAM+U,EAAI/L,EAAShJ,GAAOuQ,OAAOvQ,GAAO2yH,IACxC,OAAO/gG,MAAM7c,GAAK/U,EAAM+U,CAAC,EAE3B,IAAI69G,EACJ,MAAMC,EAAgB,IACbD,IAAgBA,EAAoC,qBAAfE,WAA6BA,WAA6B,qBAAT5sG,KAAuBA,KAAyB,qBAAXlZ,OAAyBA,OAA2B,qBAAX,EAAAqP,EAAyB,EAAAA,EAAS,CAAC,GAOhN,MAuBM02G,EAAkB,2MAClBC,EAAoCnC,EAAQkC,GA2ClD,SAASE,EAAe50H,GACtB,GAAIqJ,EAAQrJ,GAAQ,CAClB,MAAMyxC,EAAM,CAAC,EACb,IAAK,IAAIjtC,EAAI,EAAGA,EAAIxE,EAAM0E,OAAQF,IAAK,CACrC,MAAMoQ,EAAO5U,EAAMwE,GACbm2F,EAAahwF,EAASiK,GAAQigH,EAAiBjgH,GAAQggH,EAAehgH,GAC5E,GAAI+lF,EACF,IAAK,MAAM/4F,KAAO+4F,EAChBlpD,EAAI7vC,GAAO+4F,EAAW/4F,EAG5B,CACA,OAAO6vC,CACT,CAAO,GAAI9mC,EAAS3K,IAAUyL,EAASzL,GACrC,OAAOA,CAEX,CACA,MAAM80H,EAAkB,gBAClBC,EAAsB,UACtBC,EAAiB,iBACvB,SAASH,EAAiBvK,GACxB,MAAM14G,EAAM,CAAC,EAOb,OANA04G,EAAQpjH,QAAQ8tH,EAAgB,IAAI/lH,MAAM6lH,GAAiBpzH,SAASkT,IAClE,GAAIA,EAAM,CACR,MAAMqgH,EAAMrgH,EAAK3F,MAAM8lH,GACvBE,EAAIvwH,OAAS,IAAMkN,EAAIqjH,EAAI,GAAGnqH,QAAUmqH,EAAI,GAAGnqH,OACjD,KAEK8G,CACT,CAeA,SAASsjH,EAAel1H,GACtB,IAAIyxC,EAAM,GACV,GAAI9mC,EAAS3K,GACXyxC,EAAMzxC,OACD,GAAIqJ,EAAQrJ,GACjB,IAAK,IAAIwE,EAAI,EAAGA,EAAIxE,EAAM0E,OAAQF,IAAK,CACrC,MAAMm2F,EAAau6B,EAAel1H,EAAMwE,IACpCm2F,IACFlpD,GAAOkpD,EAAa,IAExB,MACK,GAAIlvF,EAASzL,GAClB,IAAK,MAAMyI,KAAQzI,EACbA,EAAMyI,KACRgpC,GAAOhpC,EAAO,KAIpB,OAAOgpC,EAAI3mC,MACb,CACA,SAASqqH,EAAezuG,GACtB,IAAKA,EACH,OAAO,KACT,IAAM4xF,MAAO8I,EAAK,MAAE7I,GAAU7xF,EAO9B,OANI06F,IAAUz2G,EAASy2G,KACrB16F,EAAM4xF,MAAQ4c,EAAe9T,IAE3B7I,IACF7xF,EAAM6xF,MAAQqc,EAAerc,IAExB7xF,CACT,CAEA,MAOM0uG,EAAsB,8EACtBC,GAAuC7C,EAAQ4C,GAIrD,SAASE,GAAmBt1H,GAC1B,QAASA,GAAmB,KAAVA,CACpB,CAsEA,SAASu1H,GAAmB1kH,EAAGC,GAC7B,GAAID,EAAEnM,SAAWoM,EAAEpM,OACjB,OAAO,EACT,IAAI8wH,GAAQ,EACZ,IAAK,IAAIhxH,EAAI,EAAGgxH,GAAShxH,EAAIqM,EAAEnM,OAAQF,IACrCgxH,EAAQC,GAAW5kH,EAAErM,GAAIsM,EAAEtM,IAE7B,OAAOgxH,CACT,CACA,SAASC,GAAW5kH,EAAGC,GACrB,GAAID,IAAMC,EACR,OAAO,EACT,IAAI4kH,EAAatpH,EAAOyE,GACpB8kH,EAAavpH,EAAO0E,GACxB,GAAI4kH,GAAcC,EAChB,SAAOD,IAAcC,IAAa9kH,EAAEmB,YAAclB,EAAEkB,UAItD,GAFA0jH,EAAavC,EAAStiH,GACtB8kH,EAAaxC,EAASriH,GAClB4kH,GAAcC,EAChB,OAAO9kH,IAAMC,EAIf,GAFA4kH,EAAarsH,EAAQwH,GACrB8kH,EAAatsH,EAAQyH,GACjB4kH,GAAcC,EAChB,SAAOD,IAAcC,IAAaJ,GAAmB1kH,EAAGC,GAI1D,GAFA4kH,EAAajqH,EAASoF,GACtB8kH,EAAalqH,EAASqF,GAClB4kH,GAAcC,EAAY,CAC5B,IAAKD,IAAeC,EAClB,OAAO,EAET,MAAMC,EAAa/rH,OAAOC,KAAK+G,GAAGnM,OAC5BmxH,EAAahsH,OAAOC,KAAKgH,GAAGpM,OAClC,GAAIkxH,IAAeC,EACjB,OAAO,EAET,IAAK,MAAMj0H,KAAOiP,EAAG,CACnB,MAAMilH,EAAUjlH,EAAEF,eAAe/O,GAC3Bm0H,EAAUjlH,EAAEH,eAAe/O,GACjC,GAAIk0H,IAAYC,IAAYD,GAAWC,IAAYN,GAAW5kH,EAAEjP,GAAMkP,EAAElP,IACtE,OAAO,CAEX,CACF,CACA,OAAOkuB,OAAOjf,KAAOif,OAAOhf,EAC9B,CACA,SAASklH,GAAa3mH,EAAK1N,GACzB,OAAO0N,EAAIuzD,WAAWhuD,GAAS6gH,GAAW7gH,EAAMjT,IAClD,CAEA,MAAMs0H,GAAmBt0H,GAChBgJ,EAAShJ,GAAOA,EAAa,MAAPA,EAAc,GAAK0H,EAAQ1H,IAAQ8J,EAAS9J,KAASA,EAAIoC,WAAasvH,IAAmB/iH,EAAW3O,EAAIoC,WAAa6G,KAAKI,UAAUrJ,EAAKu0H,GAAU,GAAKpmG,OAAOnuB,GAExLu0H,GAAW,CAACngC,EAAMp0F,IAClBA,GAAOA,EAAIkzF,UACNqhC,GAASngC,EAAMp0F,EAAI3B,OACjB+yH,EAAMpxH,GACR,CACL,CAAC,OAAOA,EAAIsT,SAAU,IAAItT,EAAI6qC,WAAWrsB,QACvC,CAACqsB,GAAU5qC,EAAKu0H,GAAO3xH,KACrBgoC,EAAQ4pF,GAAgBx0H,EAAK4C,GAAK,OAAS2xH,EACpC3pF,IAET,CAAC,IAGIymF,EAAMtxH,GACR,CACL,CAAC,OAAOA,EAAIsT,SAAU,IAAItT,EAAIw2B,UAAUxe,KAAKxN,GAAMiqH,GAAgBjqH,MAE5DgnH,EAASxxH,GACXy0H,GAAgBz0H,IACd8J,EAAS9J,IAAS0H,EAAQ1H,IAASyH,EAAczH,GAGrDA,EAFEmuB,OAAOnuB,GAIZy0H,GAAkB,CAACjqH,EAAG3H,EAAI,MAC9B,IAAIkT,EACJ,OAAOy7G,EAAShnH,GAAK,UAAkC,OAAvBuL,EAAKvL,EAAEzD,aAAuBgP,EAAKlT,KAAO2H,CAAC,C;;;;;ACxZ7E,ICLI,EDKAkqH,EAAqC,WASvC,SAASA,EAAsBn4H,GAC7B,IAAI+mB,EAAO/mB,GAAQ,CAAC,EAClBwqD,EAAiBzjC,EAAKyjC,eACtBF,EAAWvjC,EAAKujC,SAChBC,EAAWxjC,EAAKwjC,SAChB6tE,EAAiBrxG,EAAKqxG,eACtB3tE,EAAiB1jC,EAAK0jC,eACxB7kD,KAAKyjD,eAAiBmB,GAAkB,CAAC,EACzC5kD,KAAKyyH,eAAiBD,GAAkB,CAAC,EACzCxyH,KAAKoiD,eAAiByC,GAAkB,CAAC,EACzC7kD,KAAK/E,SAAWypD,EAChB1kD,KAAK9E,SAAWypD,CAClB,CAKA,IAAIz6B,EAASqoG,EAAsBpzH,UAgCnC,OA/BA+qB,EAAOs7B,YAAc,WACnB,OAAOxlD,KAAK/E,QACd,EAKAivB,EAAOwoG,YAAc,WACnB,OAAO1yH,KAAK9E,QACd,EAKAgvB,EAAOyoG,kBAAoB,WACzB,OAAO3yH,KAAKyjD,cACd,EAKAv5B,EAAO0oG,kBAAoB,WACzB,OAAO5yH,KAAKyyH,cACd,EAKAvoG,EAAO2oG,kBAAoB,WACzB,OAAO7yH,KAAKoiD,cACd,EACOmwE,CACT,CA3DyC,G,gFCazC,GAfsB,qBAAX1nH,QAA0BA,OAAOk0C,SAC1C,EAASl0C,OAAOk0C,SAIb,GAA4B,qBAAXl0C,QAA0BA,OAAOs1E,WACrD,EAASt1E,OAAOs1E,WAIb,GAA4B,qBAAX,EAAAjmE,GAA0B,EAAAA,EAAO6kC,SACrD,EAAS,EAAA7kC,EAAO6kC,SAIb,EACH,IACE,EAAS,EAAQ,MACnB,CAAE,MAAO5iD,IAAM,CAOF,SAAS22H,IACtB,GAAI,EAAQ,CAEV,GAAsC,oBAA3B,EAAO9zE,gBAChB,IACE,OAAO,EAAOA,gBAAgB,IAAIomC,YAAY,IAAI,EACpD,CAAE,MAAOjpF,IAAM,CAIjB,GAAkC,oBAAvB,EAAO42H,YAChB,IACE,OAAO,EAAOA,YAAY,GAAGC,aAC/B,CAAE,MAAO72H,IAAM,CAEnB,CACA,MAAM,IAAI8H,MAAM,sEAClB,CCpCA,SAASgvH,EAAaC,GAOpB,IALA,IAAIC,EAAQD,EAAUC,MAClBC,EAAWF,EAAUE,SAGrBC,EAAW,GACN3yH,EAAI,EAAGA,EAAI0yH,EAAU1yH,IAAK,CACjC,IAAI4yH,EAAOH,EAAMzyH,IAAM,KAAO,GAAKA,EAAI,EAAI,EAAI,IAC/C2yH,EAASnyH,MAAMoyH,IAAS,GAAGrzH,SAAS,KACpCozH,EAASnyH,MAAa,GAAPoyH,GAAarzH,SAAS,IACvC,CACA,OAAOozH,EAAS7qH,KAAK,GACvB,CACA,ICsCI+qH,EDtCAC,EAAyB,WAC3B,SAASA,EAAUL,EAAOC,GACxBD,EAAQnzH,KAAKmzH,MAAQA,GAAS,GAE5BnzH,KAAKozH,cADS11H,GAAZ01H,EACcA,EAEe,EAAfD,EAAMvyH,MAE1B,CACA,IAAIspB,EAASspG,EAAUr0H,UAWvB,OAVA+qB,EAAOw0B,OAAS,SAAgB+0E,GAE9B,IADA,IAAIN,EAAQ,GACHzyH,EAAI,EAAGA,EAAI+yH,EAAQ/yH,GAAK,EAC/ByyH,EAAMjyH,KAAK4xH,KAEb,OAAO,IAAIU,EAAUL,EAAOM,EAC9B,EACAvpG,EAAOjqB,SAAW,WAChB,OAAOgzH,EAAajzH,KACtB,EACOwzH,CACT,CArB6B,GCN7B,IAkCA,SAAS,EAAWzmH,EAAGC,GACZ,MAALD,GAAW/M,KAAK0zH,WAAW3mH,EAAGC,EACpC,CAGA,SAAS2mH,IACP,OAAO,IAAI,EAAW,KACxB,CAMA,IAAIC,EAAS,eACTC,EAA8B,WAAb,SAATD,GAUZ,SAASE,EAAIpzH,EAAGu+B,EAAG+pD,EAAGnjB,EAAGvkE,EAAGsR,GAC1B,QAASA,GAAK,EAAG,CACf,IAAIvK,EAAI42B,EAAIj/B,KAAKU,KAAOsoF,EAAEnjB,GAAKvkE,EAC/BA,EAAIiN,KAAKC,MAAMnG,EAAI,UACnB2gF,EAAEnjB,KAAW,SAAJx9D,CACX,CACA,OAAO/G,CACT,CAIA,SAASyyH,EAAIrzH,EAAGu+B,EAAG+pD,EAAGnjB,EAAGvkE,EAAGsR,GAC1B,IAAIohH,EAAS,MAAJ/0F,EACPg1F,EAAKh1F,GAAK,GACZ,QAASrsB,GAAK,EAAG,CACf,IAAIjS,EAAc,MAAVX,KAAKU,GACTiD,EAAI3D,KAAKU,MAAQ,GACjBmS,EAAIohH,EAAKtzH,EAAIgD,EAAIqwH,EACrBrzH,EAAIqzH,EAAKrzH,IAAU,MAAJkS,IAAe,IAAMm2E,EAAEnjB,IAAU,WAAJvkE,GAC5CA,GAAKX,IAAM,KAAOkS,IAAM,IAAMohH,EAAKtwH,GAAKrC,IAAM,IAC9C0nF,EAAEnjB,KAAW,WAAJllE,CACX,CACA,OAAOW,CACT,CAGA,SAAS4yH,EAAIxzH,EAAGu+B,EAAG+pD,EAAGnjB,EAAGvkE,EAAGsR,GAC1B,IAAIohH,EAAS,MAAJ/0F,EACPg1F,EAAKh1F,GAAK,GACZ,QAASrsB,GAAK,EAAG,CACf,IAAIjS,EAAc,MAAVX,KAAKU,GACTiD,EAAI3D,KAAKU,MAAQ,GACjBmS,EAAIohH,EAAKtzH,EAAIgD,EAAIqwH,EACrBrzH,EAAIqzH,EAAKrzH,IAAU,MAAJkS,IAAe,IAAMm2E,EAAEnjB,GAAKvkE,EAC3CA,GAAKX,GAAK,KAAOkS,GAAK,IAAMohH,EAAKtwH,EACjCqlF,EAAEnjB,KAAW,UAAJllE,CACX,CACA,OAAOW,CACT,CACA,IAAI6yH,EAAiC,qBAAdrqH,UACnBqqH,GAAaN,GAA6B,+BAArB/pH,UAAUsqH,SACjC,EAAWj1H,UAAUk1H,GAAKN,EAC1BR,EAAQ,IACCY,GAAaN,GAA6B,YAArB/pH,UAAUsqH,SACxC,EAAWj1H,UAAUk1H,GAAKP,EAC1BP,EAAQ,KAGR,EAAWp0H,UAAUk1H,GAAKH,EAC1BX,EAAQ,IAEV,EAAWp0H,UAAUm1H,GAAKf,EAC1B,EAAWp0H,UAAUo1H,IAAM,GAAKhB,GAAS,EACzC,EAAWp0H,UAAUq1H,GAAK,GAAKjB,EAC/B,IAAIkB,EAAQ,GACZ,EAAWt1H,UAAUu1H,GAAKnmH,KAAK86D,IAAI,EAAGorD,GACtC,EAAWt1H,UAAUw1H,GAAKF,EAAQlB,EAClC,EAAWp0H,UAAUy1H,GAAK,EAAIrB,EAAQkB,EAGtC,IAEII,EAAIC,EAFJC,EAAQ,uCACRC,EAAQ,IAAIryH,MAGhB,IADAkyH,EAAK,IAAI1nH,WAAW,GACf2nH,EAAK,EAAGA,GAAM,IAAKA,EAAIE,EAAMH,KAAQC,EAE1C,IADAD,EAAK,IAAI1nH,WAAW,GACf2nH,EAAK,GAAIA,EAAK,KAAMA,EAAIE,EAAMH,KAAQC,EAE3C,IADAD,EAAK,IAAI1nH,WAAW,GACf2nH,EAAK,GAAIA,EAAK,KAAMA,EAAIE,EAAMH,KAAQC,EAC3C,SAASG,EAASriH,GAChB,OAAOmiH,EAAMnqH,OAAOgI,EACtB,CACA,SAASsiH,EAAMpgH,EAAGpU,GAChB,IAAIY,EAAI0zH,EAAMlgH,EAAE3H,WAAWzM,IAC3B,OAAY,MAALY,GAAa,EAAIA,CAC1B,CAGA,SAAS6zH,EAAUniH,GACjB,IAAK,IAAItS,EAAIV,KAAK6U,EAAI,EAAGnU,GAAK,IAAKA,EAAGsS,EAAEtS,GAAKV,KAAKU,GAClDsS,EAAE6B,EAAI7U,KAAK6U,EACX7B,EAAE8B,EAAI9U,KAAK8U,CACb,CAGA,SAASsgH,EAAWn2F,GAClBj/B,KAAK6U,EAAI,EACT7U,KAAK8U,EAAImqB,EAAI,GAAK,EAAI,EAClBA,EAAI,EAAGj/B,KAAK,GAAKi/B,EAAWA,GAAK,EAAGj/B,KAAK,GAAKi/B,EAAIj/B,KAAKw0H,GAAQx0H,KAAK6U,EAAI,CAC9E,CAGA,SAASwgH,EAAI30H,GACX,IAAIsS,EAAI2gH,IAER,OADA3gH,EAAEsiH,QAAQ50H,GACHsS,CACT,CAGA,SAASuiH,EAAczgH,EAAG9H,GACxB,IAAIqK,EACJ,GAAS,IAALrK,EAASqK,EAAI,OAAO,GAAS,GAALrK,EAAQqK,EAAI,OAAO,GAAS,GAALrK,EAAQqK,EAAI,OAAO,GAAS,IAALrK,EAASqK,EAAI,MAAO,IAAS,GAALrK,EAAmB,MAAM,IAAI/I,MAAM,4CAA3BoT,EAAI,CAAkE,CAChLrX,KAAK6U,EAAI,EACT7U,KAAK8U,EAAI,EACT,IAAIpU,EAAIoU,EAAElU,OACR40H,GAAK,EACLC,EAAK,EACP,QAAS/0H,GAAK,EAAG,CACf,IAAIu+B,EAAIi2F,EAAMpgH,EAAGpU,GACbu+B,EAAI,EACa,KAAfnqB,EAAElK,OAAOlK,KAAW80H,GAAK,IAG/BA,GAAK,EACK,GAANC,EAASz1H,KAAKA,KAAK6U,KAAOoqB,EAAWw2F,EAAKp+G,EAAIrX,KAAKs0H,IACrDt0H,KAAKA,KAAK6U,EAAI,KAAOoqB,GAAK,GAAKj/B,KAAKs0H,GAAKmB,GAAM,IAAMA,EACrDz1H,KAAKA,KAAK6U,KAAOoqB,GAAKj/B,KAAKs0H,GAAKmB,GAC3Bz1H,KAAKA,KAAK6U,EAAI,IAAMoqB,GAAKw2F,EAChCA,GAAMp+G,EACFo+G,GAAMz1H,KAAKs0H,KAAImB,GAAMz1H,KAAKs0H,IAChC,CACAt0H,KAAK01H,QACDF,GAAI,EAAWG,KAAKC,MAAM51H,KAAMA,KACtC,CAGA,SAAS61H,IACP,IAAIv0H,EAAItB,KAAK8U,EAAI9U,KAAKu0H,GACtB,MAAOv0H,KAAK6U,EAAI,GAAK7U,KAAKA,KAAK6U,EAAI,IAAMvT,IAAKtB,KAAK6U,CACrD,CAGA,SAASihH,EAAW9oH,GAClB,GAAIhN,KAAK8U,EAAI,EAAG,MAAO,IAAM9U,KAAK+1H,SAAS91H,SAAS+M,GACpD,IAAIqK,EACJ,GAAS,IAALrK,EAASqK,EAAI,OAAO,GAAS,GAALrK,EAAQqK,EAAI,OAAO,GAAS,GAALrK,EAAQqK,EAAI,OAAO,GAAS,IAALrK,EAASqK,EAAI,MAAO,IAAS,GAALrK,EAAmB,MAAM,IAAI/I,MAAM,4CAA3BoT,EAAI,CAAkE,CAChL,IACEtH,EADEimH,GAAM,GAAK3+G,GAAK,EAElBxE,GAAI,EACJG,EAAI,GACJtS,EAAIV,KAAK6U,EACP3E,EAAIlQ,KAAKs0H,GAAK5zH,EAAIV,KAAKs0H,GAAKj9G,EAChC,GAAI3W,KAAM,EAAG,CACPwP,EAAIlQ,KAAKs0H,KAAOvkH,EAAI/P,KAAKU,IAAMwP,GAAK,IACtC2C,GAAI,EACJG,EAAIiiH,EAASllH,IAEf,MAAOrP,GAAK,EACNwP,EAAImH,GACNtH,GAAK/P,KAAKU,IAAM,GAAKwP,GAAK,IAAMmH,EAAInH,EACpCH,GAAK/P,OAAOU,KAAOwP,GAAKlQ,KAAKs0H,GAAKj9G,KAElCtH,EAAI/P,KAAKU,KAAOwP,GAAKmH,GAAK2+G,EACtB9lH,GAAK,IACPA,GAAKlQ,KAAKs0H,KACR5zH,IAGFqP,EAAI,IAAG8C,GAAI,GACXA,IAAGG,GAAKiiH,EAASllH,GAEzB,CACA,OAAO8C,EAAIG,EAAI,GACjB,CAGA,SAASijH,IACP,IAAIjjH,EAAI2gH,IAER,OADA,EAAWgC,KAAKC,MAAM51H,KAAMgT,GACrBA,CACT,CAGA,SAASkjH,IACP,OAAOl2H,KAAK8U,EAAI,EAAI9U,KAAK+1H,SAAW/1H,IACtC,CAGA,SAASm2H,EAAYppH,GACnB,IAAIiG,EAAIhT,KAAK8U,EAAI/H,EAAE+H,EACnB,GAAS,GAAL9B,EAAQ,OAAOA,EACnB,IAAItS,EAAIV,KAAK6U,EAEb,GADA7B,EAAItS,EAAIqM,EAAE8H,EACD,GAAL7B,EAAQ,OAAOhT,KAAK8U,EAAI,GAAK9B,EAAIA,EACrC,QAAStS,GAAK,KAA+B,IAAvBsS,EAAIhT,KAAKU,GAAKqM,EAAErM,IAAU,OAAOsS,EACvD,OAAO,CACT,CAGA,SAASojH,EAAMn3F,GACb,IACEpqB,EADE7B,EAAI,EAsBR,OApBsB,IAAjB6B,EAAIoqB,IAAM,MACbA,EAAIpqB,EACJ7B,GAAK,IAEa,IAAf6B,EAAIoqB,GAAK,KACZA,EAAIpqB,EACJ7B,GAAK,GAEa,IAAf6B,EAAIoqB,GAAK,KACZA,EAAIpqB,EACJ7B,GAAK,GAEa,IAAf6B,EAAIoqB,GAAK,KACZA,EAAIpqB,EACJ7B,GAAK,GAEa,IAAf6B,EAAIoqB,GAAK,KACZA,EAAIpqB,EACJ7B,GAAK,GAEAA,CACT,CAGA,SAASqjH,IACP,OAAIr2H,KAAK6U,GAAK,EAAU,EACjB7U,KAAKs0H,IAAMt0H,KAAK6U,EAAI,GAAKuhH,EAAMp2H,KAAKA,KAAK6U,EAAI,GAAK7U,KAAK8U,EAAI9U,KAAKu0H,GACzE,CAGA,SAAS+B,EAAa1jH,EAAGI,GACvB,IAAItS,EACJ,IAAKA,EAAIV,KAAK6U,EAAI,EAAGnU,GAAK,IAAKA,EAAGsS,EAAEtS,EAAIkS,GAAK5S,KAAKU,GAClD,IAAKA,EAAIkS,EAAI,EAAGlS,GAAK,IAAKA,EAAGsS,EAAEtS,GAAK,EACpCsS,EAAE6B,EAAI7U,KAAK6U,EAAIjC,EACfI,EAAE8B,EAAI9U,KAAK8U,CACb,CAGA,SAASyhH,EAAa3jH,EAAGI,GACvB,IAAK,IAAItS,EAAIkS,EAAGlS,EAAIV,KAAK6U,IAAKnU,EAAGsS,EAAEtS,EAAIkS,GAAK5S,KAAKU,GACjDsS,EAAE6B,EAAItG,KAAK8S,IAAIrhB,KAAK6U,EAAIjC,EAAG,GAC3BI,EAAE8B,EAAI9U,KAAK8U,CACb,CAGA,SAAS0hH,EAAY5jH,EAAGI,GACtB,IAKEtS,EALE+1H,EAAK7jH,EAAI5S,KAAKs0H,GACdoC,EAAM12H,KAAKs0H,GAAKmC,EAChBngB,GAAM,GAAKogB,GAAO,EAClBC,EAAKpoH,KAAKC,MAAMoE,EAAI5S,KAAKs0H,IAC3BhzH,EAAItB,KAAK8U,GAAK2hH,EAAKz2H,KAAKu0H,GAE1B,IAAK7zH,EAAIV,KAAK6U,EAAI,EAAGnU,GAAK,IAAKA,EAC7BsS,EAAEtS,EAAIi2H,EAAK,GAAK32H,KAAKU,IAAMg2H,EAAMp1H,EACjCA,GAAKtB,KAAKU,GAAK41G,IAAOmgB,EAExB,IAAK/1H,EAAIi2H,EAAK,EAAGj2H,GAAK,IAAKA,EAAGsS,EAAEtS,GAAK,EACrCsS,EAAE2jH,GAAMr1H,EACR0R,EAAE6B,EAAI7U,KAAK6U,EAAI8hH,EAAK,EACpB3jH,EAAE8B,EAAI9U,KAAK8U,EACX9B,EAAE0iH,OACJ,CAGA,SAASkB,EAAYhkH,EAAGI,GACtBA,EAAE8B,EAAI9U,KAAK8U,EACX,IAAI6hH,EAAKpoH,KAAKC,MAAMoE,EAAI5S,KAAKs0H,IAC7B,GAAIqC,GAAM32H,KAAK6U,EACb7B,EAAE6B,EAAI,MADR,CAIA,IAAI4hH,EAAK7jH,EAAI5S,KAAKs0H,GACdoC,EAAM12H,KAAKs0H,GAAKmC,EAChBngB,GAAM,GAAKmgB,GAAM,EACrBzjH,EAAE,GAAKhT,KAAK22H,IAAOF,EACnB,IAAK,IAAI/1H,EAAIi2H,EAAK,EAAGj2H,EAAIV,KAAK6U,IAAKnU,EACjCsS,EAAEtS,EAAIi2H,EAAK,KAAO32H,KAAKU,GAAK41G,IAAOogB,EACnC1jH,EAAEtS,EAAIi2H,GAAM32H,KAAKU,IAAM+1H,EAErBA,EAAK,IAAGzjH,EAAEhT,KAAK6U,EAAI8hH,EAAK,KAAO32H,KAAK8U,EAAIwhG,IAAOogB,GACnD1jH,EAAE6B,EAAI7U,KAAK6U,EAAI8hH,EACf3jH,EAAE0iH,OAXF,CAYF,CAGA,SAASmB,EAAS9pH,EAAGiG,GACnB,IAAItS,EAAI,EACNY,EAAI,EACJuR,EAAItE,KAAKke,IAAI1f,EAAE8H,EAAG7U,KAAK6U,GACzB,MAAOnU,EAAImS,EACTvR,GAAKtB,KAAKU,GAAKqM,EAAErM,GACjBsS,EAAEtS,KAAOY,EAAItB,KAAKu0H,GAClBjzH,IAAMtB,KAAKs0H,GAEb,GAAIvnH,EAAE8H,EAAI7U,KAAK6U,EAAG,CAChBvT,GAAKyL,EAAE+H,EACP,MAAOpU,EAAIV,KAAK6U,EACdvT,GAAKtB,KAAKU,GACVsS,EAAEtS,KAAOY,EAAItB,KAAKu0H,GAClBjzH,IAAMtB,KAAKs0H,GAEbhzH,GAAKtB,KAAK8U,CACZ,KAAO,CACLxT,GAAKtB,KAAK8U,EACV,MAAOpU,EAAIqM,EAAE8H,EACXvT,GAAKyL,EAAErM,GACPsS,EAAEtS,KAAOY,EAAItB,KAAKu0H,GAClBjzH,IAAMtB,KAAKs0H,GAEbhzH,GAAKyL,EAAE+H,CACT,CACA9B,EAAE8B,EAAIxT,EAAI,GAAK,EAAI,EACfA,GAAK,EAAG0R,EAAEtS,KAAOV,KAAKw0H,GAAKlzH,EAAWA,EAAI,IAAG0R,EAAEtS,KAAOY,GAC1D0R,EAAE6B,EAAInU,EACNsS,EAAE0iH,OACJ,CAIA,SAASoB,EAAc/pH,EAAGiG,GACxB,IAAIisB,EAAIj/B,KAAKsU,MACX2F,EAAIlN,EAAEuH,MACJ5T,EAAIu+B,EAAEpqB,EACV7B,EAAE6B,EAAInU,EAAIuZ,EAAEpF,EACZ,QAASnU,GAAK,EAAGsS,EAAEtS,GAAK,EACxB,IAAKA,EAAI,EAAGA,EAAIuZ,EAAEpF,IAAKnU,EAAGsS,EAAEtS,EAAIu+B,EAAEpqB,GAAKoqB,EAAEo1F,GAAG,EAAGp6G,EAAEvZ,GAAIsS,EAAGtS,EAAG,EAAGu+B,EAAEpqB,GAChE7B,EAAE8B,EAAI,EACN9B,EAAE0iH,QACE11H,KAAK8U,GAAK/H,EAAE+H,GAAG,EAAW6gH,KAAKC,MAAM5iH,EAAGA,EAC9C,CAGA,SAAS+jH,EAAY/jH,GACnB,IAAIisB,EAAIj/B,KAAKsU,MACT5T,EAAIsS,EAAE6B,EAAI,EAAIoqB,EAAEpqB,EACpB,QAASnU,GAAK,EAAGsS,EAAEtS,GAAK,EACxB,IAAKA,EAAI,EAAGA,EAAIu+B,EAAEpqB,EAAI,IAAKnU,EAAG,CAC5B,IAAIY,EAAI29B,EAAEo1F,GAAG3zH,EAAGu+B,EAAEv+B,GAAIsS,EAAG,EAAItS,EAAG,EAAG,IAC9BsS,EAAEtS,EAAIu+B,EAAEpqB,IAAMoqB,EAAEo1F,GAAG3zH,EAAI,EAAG,EAAIu+B,EAAEv+B,GAAIsS,EAAG,EAAItS,EAAI,EAAGY,EAAG29B,EAAEpqB,EAAInU,EAAI,KAAOu+B,EAAEu1F,KAC3ExhH,EAAEtS,EAAIu+B,EAAEpqB,IAAMoqB,EAAEu1F,GAChBxhH,EAAEtS,EAAIu+B,EAAEpqB,EAAI,GAAK,EAErB,CACI7B,EAAE6B,EAAI,IAAG7B,EAAEA,EAAE6B,EAAI,IAAMoqB,EAAEo1F,GAAG3zH,EAAGu+B,EAAEv+B,GAAIsS,EAAG,EAAItS,EAAG,EAAG,IACtDsS,EAAE8B,EAAI,EACN9B,EAAE0iH,OACJ,CAIA,SAASsB,EAAYnkH,EAAGokH,EAAGjkH,GACzB,IAAIkkH,EAAKrkH,EAAEyB,MACX,KAAI4iH,EAAGriH,GAAK,GAAZ,CACA,IAAIsiH,EAAKn3H,KAAKsU,MACd,GAAI6iH,EAAGtiH,EAAIqiH,EAAGriH,EAGZ,OAFS,MAALoiH,GAAWA,EAAE3B,QAAQ,QAChB,MAALtiH,GAAWhT,KAAKo3H,OAAOpkH,IAGpB,MAALA,IAAWA,EAAI2gH,KACnB,IAAI15G,EAAI05G,IACN17C,EAAKj4E,KAAK8U,EACVuiH,EAAKxkH,EAAEiC,EACLwiH,EAAMt3H,KAAKs0H,GAAK8B,EAAMc,EAAGA,EAAGriH,EAAI,IAEhCyiH,EAAM,GACRJ,EAAGK,SAASD,EAAKr9G,GACjBk9G,EAAGI,SAASD,EAAKtkH,KAEjBkkH,EAAGE,OAAOn9G,GACVk9G,EAAGC,OAAOpkH,IAEZ,IAAIwkH,EAAKv9G,EAAEpF,EACP4iH,EAAKx9G,EAAEu9G,EAAK,GAChB,GAAU,GAANC,EAAJ,CACA,IAAIC,EAAKD,GAAM,GAAKz3H,KAAK20H,KAAO6C,EAAK,EAAIv9G,EAAEu9G,EAAK,IAAMx3H,KAAK40H,GAAK,GAC5D+C,EAAK33H,KAAK00H,GAAKgD,EACjBE,GAAM,GAAK53H,KAAK20H,IAAM+C,EACtBzwH,EAAI,GAAKjH,KAAK40H,GACZl0H,EAAIsS,EAAE6B,EACRgxD,EAAInlE,EAAI82H,EACR3iH,EAAS,MAALoiH,EAAYtD,IAAQsD,EAC1Bh9G,EAAE49G,UAAUhyD,EAAGhxD,GACX7B,EAAE8kH,UAAUjjH,IAAM,IACpB7B,EAAEA,EAAE6B,KAAO,EACX7B,EAAE4iH,MAAM/gH,EAAG7B,IAEb,EAAW+kH,IAAIF,UAAUL,EAAI3iH,GAC7BA,EAAE+gH,MAAM37G,EAAGA,GAEX,MAAOA,EAAEpF,EAAI2iH,EAAIv9G,EAAEA,EAAEpF,KAAO,EAC5B,QAASgxD,GAAK,EAAG,CAEf,IAAImyD,EAAKhlH,IAAItS,IAAM+2H,EAAKz3H,KAAKu0H,GAAKhmH,KAAKC,MAAMwE,EAAEtS,GAAKi3H,GAAM3kH,EAAEtS,EAAI,GAAKuG,GAAK2wH,GAC1E,IAAK5kH,EAAEtS,IAAMuZ,EAAEo6G,GAAG,EAAG2D,EAAIhlH,EAAG6yD,EAAG,EAAG2xD,IAAOQ,EAAI,CAE3C/9G,EAAE49G,UAAUhyD,EAAGhxD,GACf7B,EAAE4iH,MAAM/gH,EAAG7B,GACX,MAAOA,EAAEtS,KAAOs3H,EAAIhlH,EAAE4iH,MAAM/gH,EAAG7B,EACjC,CACF,CACS,MAALikH,IACFjkH,EAAEilH,UAAUT,EAAIP,GACZh/C,GAAMo/C,GAAI,EAAW1B,KAAKC,MAAMqB,EAAGA,IAEzCjkH,EAAE6B,EAAI2iH,EACNxkH,EAAE0iH,QACE4B,EAAM,GAAGtkH,EAAEklH,SAASZ,EAAKtkH,GAEzBilE,EAAK,GAAG,EAAW09C,KAAKC,MAAM5iH,EAAGA,EAnClB,CAtBE,CA0DvB,CAGA,SAASmlH,EAAMprH,GACb,IAAIiG,EAAI2gH,IAGR,OAFA3zH,KAAKsU,MAAM8jH,SAASrrH,EAAG,KAAMiG,GACzBhT,KAAK8U,EAAI,GAAK9B,EAAE8kH,UAAU,EAAWnC,MAAQ,GAAG5oH,EAAE6oH,MAAM5iH,EAAGA,GACxDA,CACT,CAYA,SAASqlH,IACP,GAAIr4H,KAAK6U,EAAI,EAAG,OAAO,EACvB,IAAIoqB,EAAIj/B,KAAK,GACb,GAAe,IAAN,EAAJi/B,GAAa,OAAO,EACzB,IAAIhlB,EAAQ,EAAJglB,EAaR,OAXAhlB,EAAIA,GAAK,GAAS,GAAJglB,GAAWhlB,GAAK,GAE9BA,EAAIA,GAAK,GAAS,IAAJglB,GAAYhlB,GAAK,IAE/BA,EAAIA,GAAK,IAAU,MAAJglB,GAAchlB,EAAI,QAAW,MAI5CA,EAAIA,GAAK,EAAIglB,EAAIhlB,EAAIja,KAAKw0H,IAAMx0H,KAAKw0H,GAG9Bv6G,EAAI,EAAIja,KAAKw0H,GAAKv6G,GAAKA,CAChC,CACA,SAASq+G,EAASvrH,GAChB,OAA4B,GAArB/M,KAAK83H,UAAU/qH,EACxB,CAGA,SAASwrH,GAASxrH,EAAGiG,GACnB,IAAItS,EAAI,EACNY,EAAI,EACJuR,EAAItE,KAAKke,IAAI1f,EAAE8H,EAAG7U,KAAK6U,GACzB,MAAOnU,EAAImS,EACTvR,GAAKtB,KAAKU,GAAKqM,EAAErM,GACjBsS,EAAEtS,KAAOY,EAAItB,KAAKu0H,GAClBjzH,IAAMtB,KAAKs0H,GAEb,GAAIvnH,EAAE8H,EAAI7U,KAAK6U,EAAG,CAChBvT,GAAKyL,EAAE+H,EACP,MAAOpU,EAAIV,KAAK6U,EACdvT,GAAKtB,KAAKU,GACVsS,EAAEtS,KAAOY,EAAItB,KAAKu0H,GAClBjzH,IAAMtB,KAAKs0H,GAEbhzH,GAAKtB,KAAK8U,CACZ,KAAO,CACLxT,GAAKtB,KAAK8U,EACV,MAAOpU,EAAIqM,EAAE8H,EACXvT,GAAKyL,EAAErM,GACPsS,EAAEtS,KAAOY,EAAItB,KAAKu0H,GAClBjzH,IAAMtB,KAAKs0H,GAEbhzH,GAAKyL,EAAE+H,CACT,CACA9B,EAAE8B,EAAIxT,EAAI,GAAK,EAAI,EACfA,EAAI,EAAG0R,EAAEtS,KAAOY,EAAWA,GAAK,IAAG0R,EAAEtS,KAAOV,KAAKw0H,GAAKlzH,GAC1D0R,EAAE6B,EAAInU,EACNsS,EAAE0iH,OACJ,CAGA,SAAS8C,GAAMzrH,GACb,IAAIiG,EAAI2gH,IAER,OADA3zH,KAAKy4H,MAAM1rH,EAAGiG,GACPA,CACT,CAGA,SAAS0lH,GAAW3rH,GAClB,IAAIiG,EAAI2gH,IAER,OADA3zH,KAAK41H,MAAM7oH,EAAGiG,GACPA,CACT,CAGA,SAAS2lH,GAAW5rH,GAClB,IAAIiG,EAAI2gH,IAER,OADA3zH,KAAK44H,WAAW7rH,EAAGiG,GACZA,CACT,CAGA,SAAS6lH,GAAS9rH,GAChB,IAAIiG,EAAI2gH,IAER,OADA3zH,KAAKo4H,SAASrrH,EAAGiG,EAAG,MACbA,CACT,CAGA,SAAS8lH,GAAWjmH,GAClB7S,KAAK6S,EAAIA,EACT7S,KAAK+4H,GAAKlmH,EAAEmmH,WACZh5H,KAAKi5H,IAAgB,MAAVj5H,KAAK+4H,GAChB/4H,KAAKk5H,IAAMl5H,KAAK+4H,IAAM,GACtB/4H,KAAKo5G,IAAM,GAAKvmG,EAAEyhH,GAAK,IAAM,EAC7Bt0H,KAAKm5H,IAAM,EAAItmH,EAAEgC,CACnB,CAGA,SAASukH,GAAYn6F,GACnB,IAAIjsB,EAAI2gH,IAIR,OAHA10F,EAAE3qB,MAAMujH,UAAU73H,KAAK6S,EAAEgC,EAAG7B,GAC5BA,EAAEolH,SAASp4H,KAAK6S,EAAG,KAAMG,GACrBisB,EAAEnqB,EAAI,GAAK9B,EAAE8kH,UAAU,EAAWnC,MAAQ,GAAG31H,KAAK6S,EAAE+iH,MAAM5iH,EAAGA,GAC1DA,CACT,CAGA,SAASqmH,GAAWp6F,GAClB,IAAIjsB,EAAI2gH,IAGR,OAFA10F,EAAEm4F,OAAOpkH,GACThT,KAAKqc,OAAOrJ,GACLA,CACT,CAGA,SAASsmH,GAAWr6F,GAClB,MAAOA,EAAEpqB,GAAK7U,KAAKm5H,IAEnBl6F,EAAEA,EAAEpqB,KAAO,EACX,IAAK,IAAInU,EAAI,EAAGA,EAAIV,KAAK6S,EAAEgC,IAAKnU,EAAG,CAEjC,IAAImlE,EAAW,MAAP5mC,EAAEv+B,GACN64H,EAAK1zD,EAAI7lE,KAAKi5H,MAAQpzD,EAAI7lE,KAAKk5H,KAAOj6F,EAAEv+B,IAAM,IAAMV,KAAKi5H,IAAMj5H,KAAKo5G,KAAO,IAAMn6E,EAAEs1F,GAEvF1uD,EAAInlE,EAAIV,KAAK6S,EAAEgC,EACfoqB,EAAE4mC,IAAM7lE,KAAK6S,EAAEwhH,GAAG,EAAGkF,EAAIt6F,EAAGv+B,EAAG,EAAGV,KAAK6S,EAAEgC,GAEzC,MAAOoqB,EAAE4mC,IAAM5mC,EAAEu1F,GACfv1F,EAAE4mC,IAAM5mC,EAAEu1F,GACVv1F,IAAI4mC,IAER,CACA5mC,EAAEy2F,QACFz2F,EAAEg5F,UAAUj4H,KAAK6S,EAAEgC,EAAGoqB,GAClBA,EAAE64F,UAAU93H,KAAK6S,IAAM,GAAGosB,EAAE22F,MAAM51H,KAAK6S,EAAGosB,EAChD,CAGA,SAASu6F,GAAUv6F,EAAGjsB,GACpBisB,EAAEw6F,SAASzmH,GACXhT,KAAKqc,OAAOrJ,EACd,CAGA,SAAS0mH,GAAUz6F,EAAGhlB,EAAGjH,GACvBisB,EAAE25F,WAAW3+G,EAAGjH,GAChBhT,KAAKqc,OAAOrJ,EACd,CAQA,SAAS2mH,GAAS1yH,EAAG4L,EAAGvH,GACtB,IACE+L,EADE3W,EAAIuG,EAAE2+D,YAER5yD,EAAIqiH,EAAI,GACRuE,EAAI,IAAId,GAAWjmH,GACrB,GAAInS,GAAK,EAAG,OAAOsS,EAAmBqE,EAAR3W,EAAI,GAAQ,EAAWA,EAAI,GAAQ,EAAWA,EAAI,IAAS,EAAWA,EAAI,IAAS,EAAW,EAG5H,IAAIwZ,EAAI,IAAIvX,MACViQ,EAAI,EACJinH,EAAKxiH,EAAI,EACT2+G,GAAM,GAAK3+G,GAAK,EAElB,GADA6C,EAAE,GAAK0/G,EAAEE,QAAQ95H,MACbqX,EAAI,EAAG,CACT,IAAI0iH,EAAKpG,IACTiG,EAAEI,MAAM9/G,EAAE,GAAI6/G,GACd,MAAOnnH,GAAKojH,EACV97G,EAAEtH,GAAK+gH,IACPiG,EAAEK,MAAMF,EAAI7/G,EAAEtH,EAAI,GAAIsH,EAAEtH,IACxBA,GAAK,CAET,CACA,IACEo2E,EAGAn0E,EAJEgxD,EAAI5+D,EAAE4N,EAAI,EAEZqlH,GAAM,EACNC,EAAKxG,IAEPjzH,EAAI01H,EAAMnvH,EAAE4+D,IAAM,EAClB,MAAOA,GAAK,EAAG,CACTnlE,GAAKm5H,EAAI7wC,EAAI/hF,EAAE4+D,IAAMnlE,EAAIm5H,EAAK7D,GAChChtC,GAAK/hF,EAAE4+D,IAAM,GAAKnlE,EAAI,GAAK,IAAMm5H,EAAKn5H,EAClCmlE,EAAI,IAAGmjB,GAAK/hF,EAAE4+D,EAAI,IAAM7lE,KAAKs0H,GAAK5zH,EAAIm5H,IAE5CjnH,EAAIyE,EACJ,MAAkB,IAAN,EAAJ2xE,GACNA,IAAM,IACJp2E,EAMJ,IAJKlS,GAAKkS,GAAK,IACblS,GAAKV,KAAKs0H,KACRzuD,GAEAq0D,EAEFhgH,EAAE8uE,GAAGouC,OAAOpkH,GACZknH,GAAM,MACD,CACL,MAAOtnH,EAAI,EACTgnH,EAAEI,MAAMhnH,EAAGmnH,GACXP,EAAEI,MAAMG,EAAInnH,GACZJ,GAAK,EAEHA,EAAI,EAAGgnH,EAAEI,MAAMhnH,EAAGmnH,IACpBtlH,EAAI7B,EACJA,EAAImnH,EACJA,EAAKtlH,GAEP+kH,EAAEK,MAAME,EAAIjgH,EAAE8uE,GAAIh2E,EACpB,CACA,MAAO6yD,GAAK,GAAwB,IAAlB5+D,EAAE4+D,GAAK,GAAKnlE,GAC5Bk5H,EAAEI,MAAMhnH,EAAGmnH,GACXtlH,EAAI7B,EACJA,EAAImnH,EACJA,EAAKtlH,IACCnU,EAAI,IACRA,EAAIV,KAAKs0H,GAAK,IACZzuD,EAGR,CACA,IAAIh6D,EAAS+tH,EAAEQ,OAAOpnH,GAEtB,OADA1H,EAAS,KAAMO,GACRA,CACT;;;;;AChsBA,SAASknH,GAAYU,GACnB,OAAO,KAAOlzF,MAAK,IAAIizF,GAAY90E,OAAO+0E,GAAQxzH,WAAY,MAChE,CD8mBA64H,GAAW35H,UAAU26H,QAAUV,GAC/BN,GAAW35H,UAAUi7H,OAASf,GAC9BP,GAAW35H,UAAUkd,OAASi9G,GAC9BR,GAAW35H,UAAU86H,MAAQP,GAC7BZ,GAAW35H,UAAU66H,MAAQR,GA+E7B,EAAWr6H,UAAUi4H,OAASjC,EAC9B,EAAWh2H,UAAUm2H,QAAUF,EAC/B,EAAWj2H,UAAUu0H,WAAa6B,EAClC,EAAWp2H,UAAUu2H,MAAQG,EAC7B,EAAW12H,UAAU04H,UAAYvB,EACjC,EAAWn3H,UAAU84H,UAAY1B,EACjC,EAAWp3H,UAAUo4H,SAAWf,EAChC,EAAWr3H,UAAU+4H,SAAWtB,EAChC,EAAWz3H,UAAUy2H,MAAQiB,EAC7B,EAAW13H,UAAUy5H,WAAa9B,EAClC,EAAW33H,UAAUs6H,SAAW1C,EAChC,EAAW53H,UAAUi5H,SAAWpB,EAChC,EAAW73H,UAAU65H,SAAWX,EAChC,EAAWl5H,UAAUs5H,MAAQF,GAG7B,EAAWp5H,UAAUc,SAAW61H,EAChC,EAAW32H,UAAU42H,OAASE,EAC9B,EAAW92H,UAAUmV,IAAM4hH,EAC3B,EAAW/2H,UAAU24H,UAAY3B,EACjC,EAAWh3H,UAAUymE,UAAYywD,EACjC,EAAWl3H,UAAUk7H,IAAMlC,EAC3B,EAAWh5H,UAAUm7H,OAAShC,EAC9B,EAAWn5H,UAAU+oC,IAAMswF,GAC3B,EAAWr5H,UAAUo7H,SAAW7B,GAChC,EAAWv5H,UAAUq7H,SAAW7B,GAChC,EAAWx5H,UAAUs7H,OAAS5B,GAC9B,EAAW15H,UAAUu7H,OAASf,GAG9B,EAAWhE,KAAON,EAAI,GACtB,EAAW0C,IAAM1C,EAAI,GC1tBrB,IAAIsF,GAAgB,YAChBC,GAAQ,mwBACRC,GAAkD,kBAGlDC,GAAoC,WAKtC,SAASA,EAAqBC,GAC5B/6H,KAAKg7H,EAAI,IAAIC,EAAWL,GAAO,IAC/B56H,KAAKka,EAAI,IAAI+gH,EAAW,IAAK,IAC7Bj7H,KAAKqX,EAAI,IAAI4jH,EAAWj7H,KAAKk7H,QAAQ,GAAKl7H,KAAKm7H,OAAOn7H,KAAKg7H,GAAKh7H,KAAKm7H,OAAOn7H,KAAKka,IAAK,IACtFla,KAAKo7H,YAAcp7H,KAAKq7H,uBACxBr7H,KAAKs7H,gBAAe,WAAa,IACjCt7H,KAAKu7H,SAAW,KAAOh7F,KAAK,sBAAuB,QACnDvgC,KAAKw7H,SAAWT,CAClB,CAKA,IAAI7wG,EAAS4wG,EAAqB37H,UAkSlC,OAjSA+qB,EAAOuxG,eAAiB,WACtB,OAAOz7H,KAAKo7H,WACd,EAMAlxG,EAAOoxG,eAAiB,SAAwBhwH,GAC9C,IAAIgF,EAAQtQ,KACRA,KAAK07H,YACPpwH,EAAS,KAAMtL,KAAK07H,aAEpB17H,KAAK27H,WAAW37H,KAAKo7H,aAAa,SAAUj/H,EAAKu/H,GAC3Cv/H,GACFmP,EAASnP,EAAK,MAEhBmU,EAAMorH,YAAcA,EACpBpwH,EAAS,KAAMgF,EAAMorH,YACvB,GAEJ,EAOAxxG,EAAOmxG,qBAAuB,WAE5B,IAAIO,EAAY7I,GAAY,KAAK9yH,SAAS,OACtC47H,EAAe,IAAIZ,EAAWW,EAAW,IAI7C,OAAOC,CACT,EAOA3xG,EAAO0xD,qBAAuB,WAC5B,OAAOm3C,GAAY,IAAI9yH,SAAS,SAClC,EAKAiqB,EAAO4xG,kBAAoB,WACzB,OAAO97H,KAAK+7H,cACd,EAKA7xG,EAAO8xG,eAAiB,WACtB,OAAOh8H,KAAKi8H,iBACd,EAKA/xG,EAAOgyG,mBAAqB,WAC1B,OAAOl8H,KAAKm8H,eACd,EASAjyG,EAAOkyG,mBAAqB,SAA4BC,EAAgBphI,EAAUqQ,GAChF,IAAIipB,EAASv0B,KACbA,KAAK+7H,eAAiB/7H,KAAK47E,uBAC3B,IAAI0gD,EAAiB,GAAKD,EAAiBphI,EAAW,IAAM+E,KAAK+7H,eAC7DQ,EAAev8H,KAAKwK,KAAK8xH,GACzBV,EAAY7I,GAAY,IAAI9yH,SAAS,OAGzCD,KAAKi8H,kBAAoBj8H,KAAKm7H,OAAO,IAAIF,EAAWW,EAAW,KAC/D57H,KAAKka,EAAEwgH,OAAO,IAAIO,EAAWj7H,KAAKk7H,QAAQl7H,KAAKi8H,kBAAoBM,GAAe,IAAKv8H,KAAKg7H,GAAG,SAAU7+H,EAAKqgI,GACxGrgI,GACFmP,EAASnP,EAAK,MAEhBo4B,EAAO4nG,gBAAkB5nG,EAAO4mG,OAAOqB,GACvClxH,EAAS,KAAM,KACjB,GACF,EAUA4e,EAAOyxG,WAAa,SAAoB5uH,EAAGzB,GACzC,IAAImxH,EAASz8H,KACbA,KAAKka,EAAEwgH,OAAO3tH,EAAG/M,KAAKg7H,GAAG,SAAU7+H,EAAKugI,GAClCvgI,GACFmP,EAASnP,EAAK,MAEZugI,EAAErC,IAAIoC,EAAOzB,GAAGV,OAAOW,EAAWtF,OACpCrqH,EAAS,IAAIrH,MAAM,2CAA4C,MAEjEqH,EAAS,KAAMoxH,EACjB,GACF,EASAxyG,EAAOyyG,WAAa,SAAoBD,EAAGE,GACzC58H,KAAK68H,SAAW78H,KAAKk7H,QAAQl7H,KAAKm7H,OAAOuB,GAAK18H,KAAKm7H,OAAOyB,IAC1D,IAAIE,EAAS,IAAI7B,EAAWj7H,KAAK68H,SAAU,IAC3C,OAAOC,CACT,EAQA5yG,EAAO1f,KAAO,SAAcy1E,GAC1B,IAAIvzE,EAAMuzE,aAAe,KAAS,QAAauzC,UAAUn0H,OAAO4gF,GAAOA,EACnE88C,EAAU,IAAOrwH,GAAKzM,WAC1B,OAAO,IAAI0C,MAAM,GAAKo6H,EAAQn8H,QAAQ4H,KAAK,KAAOu0H,CACpD,EAQA7yG,EAAOgxG,QAAU,SAAiB8B,GAChC,OAAOh9H,KAAKwK,KAAK,KAAO+1B,KAAKy8F,EAAQ,OACvC,EASA9yG,EAAO+yG,YAAc,SAAqBC,EAAKC,GAC7C,IAAIC,EAAoB,QAAa5J,UAAUn0H,OAAO,KAAOwD,OAAO,CAAC7C,KAAKu7H,SAAU,KAAOh7F,KAAKvU,OAAO0D,aAAa,GAAI,WACpH2tG,EAAeH,aAAe,KAAS,QAAa1J,UAAUn0H,OAAO69H,GAAOA,EAC5EI,EAAgBH,aAAgB,KAAS,QAAa3J,UAAUn0H,OAAO89H,GAAQA,EAC/EI,EAAM,IAAWF,EAAcC,GAC/BnsD,EAAO,IAAWisD,EAAmBG,GACzC,OAAO,KAAOh9F,KAAK4wC,EAAKlxE,WAAY,OAAOuF,MAAM,EAAG,GACtD,EAWA0kB,EAAOszG,6BAA+B,SAAsCviI,EAAUC,EAAUuiI,EAAcN,EAAM7xH,GAClH,IAAIoyH,EAAS19H,KACb,GAAIy9H,EAAapD,IAAIr6H,KAAKg7H,GAAGV,OAAOW,EAAWtF,MAC7C,MAAM,IAAI1xH,MAAM,qBAGlB,GADAjE,KAAK29H,OAAS39H,KAAK28H,WAAW38H,KAAK07H,YAAa+B,GAC5Cz9H,KAAK29H,OAAOrD,OAAOW,EAAWtF,MAChC,MAAM,IAAI1xH,MAAM,qBAElB,IAAI25H,EAAmB,GAAK59H,KAAKw7H,SAAWvgI,EAAW,IAAMC,EACzD2iI,EAAuB79H,KAAKwK,KAAKozH,GACjCE,EAAS,IAAI7C,EAAWj7H,KAAKk7H,QAAQl7H,KAAKm7H,OAAOgC,GAAQU,GAAuB,IACpF79H,KAAK+9H,WAAWD,EAAQL,GAAc,SAAUthI,EAAK6hI,GAC/C7hI,GACFmP,EAASnP,EAAK,MAEhB,IAAI8hI,EAAOP,EAAOT,YAAY,KAAO18F,KAAKm9F,EAAOvC,OAAO6C,GAAS,OAAQ,KAAOz9F,KAAKm9F,EAAOvC,OAAOuC,EAAOC,QAAS,QACnHryH,EAAS,KAAM2yH,EACjB,GACF,EASA/zG,EAAO6zG,WAAa,SAAoBD,EAAQL,EAAcnyH,GAC5D,IAAI4yH,EAASl+H,KACbA,KAAKka,EAAEwgH,OAAOoD,EAAQ99H,KAAKg7H,GAAG,SAAU7+H,EAAKgiI,GACvChiI,GACFmP,EAASnP,EAAK,MAEhB,IAAIiiI,EAAYX,EAAalD,SAAS2D,EAAO7mH,EAAEmjH,SAAS2D,IACxDC,EAAU1D,OAAOwD,EAAO9C,YAAYlzF,IAAIg2F,EAAOP,OAAOnD,SAASsD,IAAUI,EAAOlD,GAAG,SAAUqD,EAAMxyH,GAC7FwyH,GACF/yH,EAAS+yH,EAAM,MAEjB/yH,EAAS,KAAMO,EAAOwuH,IAAI6D,EAAOlD,GACnC,GACF,GACF,EAMA9wG,EAAOo0G,mDAAqD,WAC1D,OAAOzD,EACT,EA4BA3wG,EAAOixG,OAAS,SAAgBoD,GAC9B,KAAMA,aAAkBtD,GACtB,MAAM,IAAIh3H,MAAM,oBAElB,IAAIu6H,EAAaD,EAAOzG,UAAUmD,EAAWtF,MAAQ,EAGjDqH,EAASuB,EAAOjqH,MAAMrU,SAAS,IAOnC,GAJA+8H,EAASA,EAAOp8H,OAAS,IAAM,EAAI,IAAMo8H,EAASA,EAGlDA,EAASrC,GAAcjxH,KAAKszH,GAAU,KAAOA,EAASA,EAClDwB,EAAY,CAEd,IAAIC,EAAkBzB,EAAO7xH,MAAM,IAAI0K,KAAI,SAAUopB,GACnD,IAAIy/F,EAAoC,IAAlB9kF,SAAS3a,EAAG,IAClC,MAAO,mBAAmBr0B,OAAO8zH,EACnC,IAAGl2H,KAAK,IAGJm2H,EAAgB,IAAI1D,EAAWwD,EAAiB,IAAIv2F,IAAI+yF,EAAWlD,KACvEiF,EAAS2B,EAAc1+H,SAAS,IAQ5B+8H,EAAO1gI,cAAcu5E,WAAW,SAClCmnD,EAASA,EAAOzqH,UAAU,GAE9B,CACA,OAAOyqH,CACT,EACOlC,CACT,CArTwC,GCxBpC8D,GAA+B,WAKjC,SAASA,EAAgBr+H,GAEvBP,KAAK6+H,SAAWt+H,GAAS,GACzBP,KAAK2J,QAAU3J,KAAKysD,eACtB,CAKA,IAAIviC,EAAS00G,EAAgBz/H,UA8B7B,OA7BA+qB,EAAOsnB,YAAc,WACnB,OAAOxxC,KAAK6+H,QACd,EAKA30G,EAAO40G,cAAgB,WACrB,OAAO9+H,KAAK2J,QAAQo1H,GACtB,EAKA70G,EAAO80G,YAAc,WACnB,OAAOh/H,KAAK2J,QAAQs1H,GACtB,EAKA/0G,EAAOuiC,cAAgB,WACrB,IAAI9iD,EAAU3J,KAAK6+H,SAAS1zH,MAAM,KAAK,GACvC,IACE,OAAOrE,KAAKC,MAAM,KAAOw5B,KAAK52B,EAAS,UAAU1J,SAAS,QAC5D,CAAE,MAAO9D,IACP,MAAO,CAAC,CACV,CACF,EACOyiI,CACT,CA7CmC,GCRnC,SAASM,GAAeh8G,EAAUC,GAAcD,EAAS/jB,UAAY4G,OAAO1G,OAAO8jB,EAAWhkB,WAAY+jB,EAAS/jB,UAAUiN,YAAc8W,EAAUE,GAAgBF,EAAUC,EAAa,CAC5L,SAASC,GAAgBzQ,EAAGzC,GAA6I,OAAxIkT,GAAkBrd,OAAOiK,eAAiBjK,OAAOiK,eAAepR,OAAS,SAAyB+T,EAAGzC,GAAsB,OAAjByC,EAAE1C,UAAYC,EAAUyC,CAAG,EAAUyQ,GAAgBzQ,EAAGzC,EAAI;;;;GASvM,IAAIivH,GAAkC,SAAUC,GAM9C,SAASD,EAAmBE,GAC1B,IAAIl+G,OAAiB,IAAVk+G,EAAmB,CAAC,EAAIA,EACjC1vE,EAAcxuC,EAAKwuC,YACrB,OAAOyvE,EAAiBh7H,KAAKpE,KAAM2vD,GAAe,KAAO3vD,IAC3D,CACA,OAVAk/H,GAAeC,EAAoBC,GAU5BD,CACT,CAZsC,CAYpCP,ICtBF,SAAS,GAAe17G,EAAUC,GAAcD,EAAS/jB,UAAY4G,OAAO1G,OAAO8jB,EAAWhkB,WAAY+jB,EAAS/jB,UAAUiN,YAAc8W,EAAU,GAAgBA,EAAUC,EAAa,CAC5L,SAAS,GAAgBxQ,EAAGzC,GAA6I,OAAxI,GAAkBnK,OAAOiK,eAAiBjK,OAAOiK,eAAepR,OAAS,SAAyB+T,EAAGzC,GAAsB,OAAjByC,EAAE1C,UAAYC,EAAUyC,CAAG,EAAU,GAAgBA,EAAGzC,EAAI;;;;GASvM,IAAIovH,GAA8B,SAAUF,GAM1C,SAASE,EAAeD,GACtB,IAAIl+G,OAAiB,IAAVk+G,EAAmB,CAAC,EAAIA,EACjC5vE,EAAUtuC,EAAKsuC,QACjB,OAAO2vE,EAAiBh7H,KAAKpE,KAAMyvD,GAAW,KAAOzvD,IACvD,CACA,OAVA,GAAes/H,EAAgBF,GAUxBE,CACT,CAZkC,CAYhCV,ICjBEW,GAAmC,WAKrC,SAASA,EAAoBF,GAC3B,IAAIl+G,OAAiB,IAAVk+G,EAAmB,CAAC,EAAIA,EACjC3vE,EAAevuC,EAAKuuC,aAEtB1vD,KAAKO,MAAQmvD,GAAgB,EAC/B,CAKA,IAAIxlC,EAASq1G,EAAoBpgI,UAIjC,OAHA+qB,EAAOs1G,SAAW,WAChB,OAAOx/H,KAAKO,KACd,EACOg/H,CACT,CApBuC,G,uBCAnCE,GAAkC,WAQpC,SAASA,EAAmBJ,GAC1B,IAAIl+G,OAAiB,IAAVk+G,EAAmB,CAAC,EAAIA,EACjC5vE,EAAUtuC,EAAKsuC,QACfC,EAAevuC,EAAKuuC,aACpBC,EAAcxuC,EAAKwuC,YACnB+vE,EAAav+G,EAAKu+G,WACpB,GAAmB,MAAf/vE,GAAkC,MAAXF,EACzB,MAAM,IAAIxrD,MAAM,8CAElBjE,KAAKw9C,QAAUiS,EACfzvD,KAAKu9C,aAAemS,EACpB1vD,KAAKs9C,YAAcqS,EACnB3vD,KAAK2/H,gBAA4BjiI,IAAfgiI,EAA2B1/H,KAAK4/H,sBAAwBF,CAC5E,CAKA,IAAIx1G,EAASu1G,EAAmBtgI,UA6ChC,OA5CA+qB,EAAO0lC,WAAa,WAClB,OAAO5vD,KAAKw9C,OACd,EAKAtzB,EAAO21G,gBAAkB,WACvB,OAAO7/H,KAAKu9C,YACd,EAKArzB,EAAOqnB,eAAiB,WACtB,OAAOvxC,KAAKs9C,WACd,EAKApzB,EAAO41G,cAAgB,WACrB,OAAO9/H,KAAK2/H,UACd,EAKAz1G,EAAO01G,oBAAsB,WAC3B,IAAIn2H,EAAM8E,KAAKC,MAAM,IAAItF,KAAS,KAC9B+1H,EAAM1wH,KAAKke,IAAIzsB,KAAKs9C,YAAY0hF,cAAeh/H,KAAKw9C,QAAQwhF,eAChE,OAAOv1H,EAAMw1H,CACf,EAOA/0G,EAAO61G,QAAU,WACf,IAAIt2H,EAAM8E,KAAKC,MAAM,IAAItF,KAAS,KAC9B82H,EAAWv2H,EAAMzJ,KAAK2/H,WAC1B,OAAOK,EAAWhgI,KAAKs9C,YAAYwhF,iBAAmBkB,EAAWhgI,KAAKw9C,QAAQshF,eAChF,EACOW,CACT,CAxEsC,GCAlCQ,GAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,GAAY,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAGvDC,GAA0B,WAC5B,SAASA,IAAc,CACvB,IAAIj2G,EAASi2G,EAAWhhI,UA2BxB,OAvBA+qB,EAAOk2G,aAAe,WACpB,IAAI32H,EAAM,IAAIP,KACVm3H,EAAUH,GAAUz2H,EAAI62H,aACxBxsH,EAAQmsH,GAAWx2H,EAAI82H,eACvBxsH,EAAMtK,EAAI+2H,aACVC,EAAQh3H,EAAIi3H,cACZD,EAAQ,KACVA,EAAQ,IAAMA,GAEhB,IAAIE,EAAUl3H,EAAIm3H,gBACdD,EAAU,KACZA,EAAU,IAAMA,GAElB,IAAIE,EAAUp3H,EAAIq3H,gBACdD,EAAU,KACZA,EAAU,IAAMA,GAElB,IAAIhtH,EAAOpK,EAAIs3H,iBAGXC,EAAUX,EAAU,IAAMvsH,EAAQ,IAAMC,EAAM,IAAM0sH,EAAQ,IAAME,EAAU,IAAME,EAAU,QAAUhtH,EAC1G,OAAOmtH,CACT,EACOb,CACT,CA9B8B,GCJ1Bc,GAAoC,WAMtC,SAASA,EAAqB5B,GAC5B,IAAIl+G,OAAiB,IAAVk+G,EAAmB,CAAC,EAAIA,EACjC1nG,EAAOxW,EAAKwW,KACZqsB,EAAQ7iC,EAAK6iC,MACfhkD,KAAK23B,KAAOA,GAAQ,GACpB33B,KAAKgkD,MAAQA,GAAS,EACxB,CAKA,IAAI95B,EAAS+2G,EAAqB9hI,UAgDlC,OA/CA+qB,EAAOqhG,SAAW,WAChB,OAAOvrH,KAAKgkD,KACd,EAOA95B,EAAOg3G,SAAW,SAAkBhlI,GAElC,OADA8D,KAAKgkD,MAAQ9nD,EACN8D,IACT,EAKAkqB,EAAOi3G,QAAU,WACf,OAAOnhI,KAAK23B,IACd,EAOAzN,EAAOk3G,QAAU,SAAiBz8H,GAEhC,OADA3E,KAAK23B,KAAOhzB,EACL3E,IACT,EAKAkqB,EAAOjqB,SAAW,WAChB,OAAO6G,KAAKI,UAAUlH,KACxB,EAKAkqB,EAAOxlB,OAAS,WACd,MAAO,CACLizB,KAAM33B,KAAK23B,KACXqsB,MAAOhkD,KAAKgkD,MAEhB,EACOi9E,CACT,CAlEwC,GCApCxiD,GAAa,CAAC,EAGPC,GAA6B,WACtC,SAASA,IAAiB,CAuC1B,OAhCAA,EAAc7vE,QAAU,SAAiB/Q,EAAK5B,GAE5C,OADAuiF,GAAW3gF,GAAO5B,EACXuiF,GAAW3gF,EACpB,EAQA4gF,EAAc9vE,QAAU,SAAiB9Q,GACvC,OAAOiI,OAAO5G,UAAU0N,eAAezI,KAAKq6E,GAAY3gF,GAAO2gF,GAAW3gF,QAAOJ,CACnF,EAOAghF,EAAc5vE,WAAa,SAAoBhR,GAC7C,cAAc2gF,GAAW3gF,EAC3B,EAMA4gF,EAAc/vE,MAAQ,WAEpB,OADA8vE,GAAa,CAAC,EACPA,EACT,EACOC,CACT,CAzCwC,GA4CpC/wE,GAA6B,WAK/B,SAASA,IACP,IACE3N,KAAK2+E,cAAgB9zE,OAAOguC,aAC5B74C,KAAK2+E,cAAc9vE,QAAQ,sBAAuB,GAClD7O,KAAK2+E,cAAc7vE,WAAW,sBAChC,CAAE,MAAO8vE,GACP5+E,KAAK2+E,cAAgBD,EACvB,CACF,CAMA,IAAIx0D,EAASvc,EAAcxO,UAI3B,OAHA+qB,EAAOtc,WAAa,WAClB,OAAO5N,KAAK2+E,aACd,EACOhxE,CACT,CAxBiC,GCO7BgrC,GAAiC,qBAAd7uC,UACnBC,GAAY4uC,GAAY7uC,UAAUC,UAAY,SAG9Cs3H,GAA2B,WAQ7B,SAASA,EAAYjnI,GACnB,GAAY,MAARA,GAAiC,MAAjBA,EAAKsqD,UAAiC,MAAbtqD,EAAK+1D,KAChD,MAAM,IAAIlsD,MAAM,+CAElBjE,KAAK/E,SAAWb,EAAKsqD,UAAY,GACjC1kD,KAAKshI,KAAOlnI,EAAK+1D,KACjBnwD,KAAKuhI,QAAU,KACfvhI,KAAK2mC,OAASvsC,EAAK+1D,KAAKxpB,OACxB3mC,KAAKwhI,kBAAoB,KACzBxhI,KAAKowD,uBAAyB,gBAC9BpwD,KAAK0N,QAAUtT,EAAK68C,UAAW,IAAItpC,IAAgBC,aACnD5N,KAAKoN,UAAY,kCAAoCpN,KAAKshI,KAAKG,cAC/DzhI,KAAK0hI,YAAc1hI,KAAKoN,UAAY,IAAMpN,KAAK/E,SAAW,WAC5D,CAOA,IAAIivB,EAASm3G,EAAYliI,UAirDzB,OAhrDA+qB,EAAO2lC,qBAAuB,SAA8B2xE,GAC1DxhI,KAAK2hI,sBACL3hI,KAAKwhI,kBAAoBA,EACzBxhI,KAAK4hI,aACP,EAKA13G,EAAO23G,qBAAuB,WAC5B,OAAO7hI,KAAKwhI,iBACd,EAKAt3G,EAAOs7B,YAAc,WACnB,OAAOxlD,KAAK/E,QACd,EAKAivB,EAAO43G,0BAA4B,WACjC,OAAO9hI,KAAKowD,sBACd,EAOAlmC,EAAOm9B,0BAA4B,SAAmC+I,GACpEpwD,KAAKowD,uBAAyBA,CAChC,EAYAlmC,EAAOo9B,aAAe,SAAsB7C,EAAan5C,GACvD,IAAIgF,EAAQtQ,KACRyyH,EAAiBhuE,EAAYmuE,oBACjCH,EAAesP,SAAW/hI,KAAK/E,SAC/B,IAAIopD,EAAyE,IAAxDt+C,OAAOC,KAAKy+C,EAAYkuE,qBAAqB/xH,OAAe6jD,EAAYkuE,oBAAsBluE,EAAYouE,oBAC3HmP,EAAU,CACZC,SAAU,cACVx/E,SAAUziD,KAAKshI,KAAKG,cACpBjP,eAAgBC,EAChB5tE,eAAgBR,GAEdrkD,KAAKkiI,uBACPF,EAAQG,gBAAkBniI,KAAKkiI,sBAEjCliI,KAAK2mC,OAAO7rC,QAAQ,eAAgBknI,GAAS,SAAU7lI,EAAK/B,GAC1D,GAAI+B,EACF,OAAOmP,EAASi8B,UAAUprC,GAE5B,IAAI0qD,EAAgBzsD,EAAKgoI,cACrBC,EAAsBjoI,EAAKkoI,oBAC/B,MAAsB,qBAAlBz7E,GACFv2C,EAAMixH,QAAUnnI,EAAKmnI,QACdj2H,EAASo7C,gBAAgB27E,KAElC/xH,EAAMkxH,kBAAoBlxH,EAAMiyH,sBAAsBnoI,EAAKooI,sBAC3DlyH,EAAMsxH,cACCt2H,EAASg8B,UAAUh3B,EAAMkxH,mBAClC,GACF,EAiBAt3G,EAAOu7B,iBAAmB,SAA0BhB,EAAan5C,GAC/D,MAAoC,uBAAhCtL,KAAKowD,uBACApwD,KAAKyiI,sCAAsCh+E,EAAan5C,GACtB,kBAAhCtL,KAAKowD,wBAA8E,gBAAhCpwD,KAAKowD,uBAC1DpwD,KAAK0iI,4BAA4Bj+E,EAAan5C,GAEhDA,EAASi8B,UAAU,IAAItjC,MAAM,wCACtC,EAmBAimB,EAAOw4G,4BAA8B,SAAqCj+E,EAAan5C,GACrF,IAGImyH,EACAN,EAJA5oG,EAASv0B,KACT2iI,EAAuB,IAAI7H,GAAqB96H,KAAKshI,KAAKsB,mBAC1DC,EAAa,IAAI1C,GAGjB1N,EAAiB,CAAC,EACA,MAAlBzyH,KAAK8iI,YACPrQ,EAAesQ,WAAa/iI,KAAK8iI,WAEnCrQ,EAAesP,SAAW/hI,KAAK/E,SAC/B0nI,EAAqBrH,gBAAe,SAAU0H,EAAaC,GAErDD,GACF13H,EAASi8B,UAAUy7F,GAErBvQ,EAAeyQ,MAAQD,EAAOhjI,SAAS,IACD,gBAAlCs0B,EAAO67B,yBACTqiE,EAAe0Q,eAAiB,SAElC,IAAI9+E,EAAyE,IAAxDt+C,OAAOC,KAAKy+C,EAAYkuE,qBAAqB/xH,OAAe6jD,EAAYkuE,oBAAsBluE,EAAYouE,oBAC3HmP,EAAU,CACZC,SAAU1tG,EAAO67B,uBACjB3N,SAAUluB,EAAO+sG,KAAKG,cACtBjP,eAAgBC,EAChB5tE,eAAgBR,GAEd9vB,EAAO2tG,mBAAmB3tG,EAAOt5B,YACnC+mI,EAAQG,gBAAkB5tG,EAAO2tG,mBAAmB3tG,EAAOt5B,WAE7Ds5B,EAAOoS,OAAO7rC,QAAQ,eAAgBknI,GAAS,SAAU7lI,EAAK/B,GAC5D,GAAI+B,EACF,OAAOmP,EAASi8B,UAAUprC,GAE5B,IAAIkmI,EAAsBjoI,EAAKkoI,oBAC/B/tG,EAAOt5B,SAAWonI,EAAoBe,gBACtC7uG,EAAOmtG,YAAcntG,EAAOnnB,UAAY,IAAMmnB,EAAOt5B,SAAW,YAChEwiI,EAAe,IAAIxC,EAAWoH,EAAoBgB,MAAO,IACzDlG,EAAO,IAAIlC,EAAWoH,EAAoBiB,KAAM,IAChD/uG,EAAOo8B,gCACPgyE,EAAqBnF,6BAA6BjpG,EAAOt5B,SAAUwpD,EAAYiuE,cAAe+K,EAAcN,GAAM,SAAUoG,EAAWtF,GAEjIsF,GACFj4H,EAASi8B,UAAUg8F,GAErB,IAAIvC,EAAU6B,EAAWzC,eACrBrgI,EAAU,QAAayzH,UAAUn0H,OAAO,KAAOwD,OAAO,CAAC,KAAO09B,KAAKhM,EAAO+sG,KAAKsB,kBAAmB,QAAS,KAAOriG,KAAKhM,EAAOt5B,SAAU,QAAS,KAAOslC,KAAK8hG,EAAoBmB,aAAc,UAAW,KAAOjjG,KAAKygG,EAAS,WAC/NljI,EAAM,QAAa01H,UAAUn0H,OAAO4+H,GACpCwF,EAAkB,eAAiB,IAAW1jI,EAASjC,IACvDwsD,EAAqB,CAAC,EAC1BA,EAAmBy3E,SAAWxtG,EAAOt5B,SACrCqvD,EAAmBo5E,4BAA8BrB,EAAoBmB,aACrEl5E,EAAmBq5E,UAAY3C,EAC/B12E,EAAmBs5E,yBAA2BH,EACtB,MAApBlvG,EAAOuuG,YACTx4E,EAAmBy4E,WAAaxuG,EAAOuuG,WAEzC,IAAIe,EAAyB,SAASA,EAAuBC,EAAWC,GACtE,OAAOxvG,EAAOoS,OAAO7rC,QAAQ,yBAA0BgpI,GAAW,SAAUE,EAAcC,GACxF,OAAID,GAAsC,8BAAtBA,EAAahgI,OAAkG,IAA1DggI,EAAajkI,QAAQhC,cAAclB,QAAQ,WAClHytD,EAAmBy4E,WAAa,KAChCxuG,EAAOuuG,UAAY,KACnBvuG,EAAOwnG,eAAiB,KACxBxnG,EAAO8nG,eAAiB,KACxB9nG,EAAO2vG,kCACAL,EAAuBC,EAAWC,IAEpCA,EAAkBC,EAAcC,EACzC,GACF,EACIE,EAAc,CAChB/B,cAAe,oBACf3/E,SAAUluB,EAAO+sG,KAAKG,cACtB2C,mBAAoB95E,EACpBi3E,QAASnnI,EAAKmnI,QACd18E,eAAgBR,GAEd9vB,EAAO2tG,uBACTiC,EAAYhC,gBAAkB5tG,EAAO2tG,sBAEvC2B,EAAuBM,GAAa,SAAUE,EAAiBC,GAC7D,OAAID,EACK/4H,EAASi8B,UAAU88F,GAErB9vG,EAAOgwG,yBAAyBD,EAAkB3B,EAAsBr3H,EACjF,GAGF,GAGF,GAEF,GACF,EAaA4e,EAAOu4G,sCAAwC,SAA+Ch+E,EAAan5C,GACzG,IAAImxH,EAASz8H,KACTyyH,EAAiB,CAAC,EAGtB,GAFAA,EAAesP,SAAW/hI,KAAK/E,SAC/Bw3H,EAAe+R,SAAW//E,EAAYiuE,cACjCD,EAAe+R,SAApB,CAIA,IAAI7B,EAAuB,IAAI7H,GAAqB96H,KAAKshI,KAAKsB,mBAC9D5iI,KAAK2wD,gCACiB,MAAlB3wD,KAAK8iI,YACPrQ,EAAesQ,WAAa/iI,KAAK8iI,WAEnC,IAAIz+E,EAAyE,IAAxDt+C,OAAOC,KAAKy+C,EAAYkuE,qBAAqB/xH,OAAe6jD,EAAYkuE,oBAAsBluE,EAAYouE,oBAC3HmP,EAAU,CACZC,SAAU,qBACVx/E,SAAUziD,KAAKshI,KAAKG,cACpBjP,eAAgBC,EAChB5tE,eAAgBR,GAEdrkD,KAAKkiI,mBAAmBliI,KAAK/E,YAC/B+mI,EAAQG,gBAAkBniI,KAAKkiI,mBAAmBliI,KAAK/E,WAIzD+E,KAAK2mC,OAAO7rC,QAAQ,eAAgBknI,GAAS,SAAU7lI,EAAKsoI,GAC1D,OAAItoI,EACKmP,EAASi8B,UAAUprC,GAErBsgI,EAAO8H,yBAAyBE,EAAY9B,EAAsBr3H,EAC3E,GAvBA,MAFEA,EAASi8B,UAAU,IAAItjC,MAAM,kCA0BjC,EAUAimB,EAAOq6G,yBAA2B,SAAkCD,EAAkB3B,EAAsBr3H,GAC1G,IAAIoyH,EAAS19H,KACT6mD,EAAgBy9E,EAAiBlC,cACjCC,EAAsBiC,EAAiBhC,oBAC3C,GAAsB,YAAlBz7E,EAEF,OADA7mD,KAAKuhI,QAAU+C,EAAiB/C,QACzBj2H,EAASs7C,YAAYC,EAAew7E,GAE7C,GAAsB,oBAAlBx7E,EAEF,OADA7mD,KAAKuhI,QAAU+C,EAAiB/C,QACzBj2H,EAAS67C,cAAcN,EAAew7E,GAE/C,GAAsB,cAAlBx7E,EAEF,OADA7mD,KAAKuhI,QAAU+C,EAAiB/C,QACzBj2H,EAASw7C,SAASD,EAAew7E,GAE1C,GAAsB,uBAAlBx7E,EAEF,OADA7mD,KAAKuhI,QAAU+C,EAAiB/C,QACzBj2H,EAAS47C,aAAaL,EAAew7E,GAE9C,GAAsB,qBAAlBx7E,EAEF,OADA7mD,KAAKuhI,QAAU+C,EAAiB/C,QACzBj2H,EAASo7C,gBAAgB27E,GAElC,GAAsB,0BAAlBx7E,EAA2C,CAC7C7mD,KAAKuhI,QAAU+C,EAAiB/C,QAChC,IAAIv6E,EAAiB,KACjB09E,EAAwB,KACxBz9E,EAAqB,GACrB09E,EAAuBhC,EAAqBrE,qDAKhD,GAJI+D,IACFr7E,EAAiBlgD,KAAKC,MAAMu9H,EAAiBhC,oBAAoBt7E,gBACjE09E,EAAwB59H,KAAKC,MAAMu9H,EAAiBhC,oBAAoBr7E,qBAEtEy9E,EACF,IAAK,IAAIhkI,EAAI,EAAGA,EAAIgkI,EAAsB9jI,OAAQF,IAChDumD,EAAmBvmD,GAAKgkI,EAAsBhkI,GAAG2K,OAAOs5H,EAAqB/jI,QAGjF,OAAO0K,EAASy7C,oBAAoBC,EAAgBC,EACtD,CACA,GAAsB,oBAAlBJ,EAGF,OAFA7mD,KAAKuhI,QAAU+C,EAAiB/C,aAChCvhI,KAAK4kI,kBAAkBt5H,GAGzBtL,KAAKwhI,kBAAoBxhI,KAAKuiI,sBAAsB+B,EAAiB9B,sBACrExiI,KAAK6mD,cAAgBA,EACrB7mD,KAAK4hI,cACL,IAAIiD,EAAoBP,EAAiB9B,qBAAqBsC,kBAC9D,GAAyB,MAArBD,EACF,OAAOv5H,EAASg8B,UAAUtnC,KAAKwhI,mBAEjCmB,EAAqBvG,mBAAmBkI,EAAiB9B,qBAAqBsC,kBAAkBC,eAAgBT,EAAiB9B,qBAAqBsC,kBAAkBrzE,WAAW,SAAUuzE,GAC3L,GAAIA,EACF,OAAO15H,EAASi8B,UAAUy9F,GAE5B,IAAIC,EAA6B,CAC/BC,KAAM,KAAO3kG,KAAKoiG,EAAqB3G,iBAAkB,OAAO/7H,SAAS,UACzEklI,iBAAkB,KAAO5kG,KAAKoiG,EAAqBzG,qBAAsB,OAAOj8H,SAAS,WAE3Fy9H,EAAOvB,gBAAkB8I,EAA2BE,iBACpDzH,EAAOrB,eAAiBwI,EAAkBE,eAC1CrH,EAAO3B,eAAiB4G,EAAqB7G,oBAC7C4B,EAAO/2F,OAAO7rC,QAAQ,gBAAiB,CACrC22D,UAAWozE,EAAkBpzE,UAC7B9B,YAAa+tE,EAAO8D,kBAAkBjwF,iBAAiBC,cACvD4zF,2BAA4BH,EAC5BI,WAAYt7H,KACX,SAAUu7H,EAAYC,GACvB,OAAID,EACKh6H,EAASi8B,UAAU+9F,IAE5B5H,EAAOoF,UAAYwB,EAAiB9B,qBAAqBsC,kBAAkBrzE,UAC3EisE,EAAO8H,6BACuC,IAA1CD,EAAYE,0BACPn6H,EAASg8B,UAAUo2F,EAAO8D,kBAAmB+D,EAAYE,2BAE3Dn6H,EAASg8B,UAAUo2F,EAAO8D,mBACnC,GAEF,GAEF,EAiBAt3G,EAAOigC,6BAA+B,SAAsCkE,EAAaq3E,EAAuBp6H,EAAU82C,GACxH,IAAI87E,EAASl+H,KACb,IAAKquD,EACH,OAAO/iD,EAASi8B,UAAU,IAAItjC,MAAM,8BAEtC,IAAI0+H,EAAuB,IAAI7H,GAAqB96H,KAAKshI,KAAKsB,mBAC1D+B,EAAuBhC,EAAqBrE,qDAC5CqH,EAAsB,CAAC,EACvBD,GACF3/H,OAAOC,KAAK0/H,GAAuB9nI,SAAQ,SAAUE,GACnD6nI,EAAoBhB,EAAuB7mI,GAAO4nI,EAAsB5nI,EAC1E,IAEF6nI,EAAoBC,aAAev3E,EACnCs3E,EAAoB5D,SAAW/hI,KAAK/E,SACpC,IAAI+mI,EAAU,CACZI,cAAe,wBACf3/E,SAAUziD,KAAKshI,KAAKG,cACpB2C,mBAAoBuB,EACpBpE,QAASvhI,KAAKuhI,QACd18E,eAAgBzC,GAEdpiD,KAAKkiI,uBACPF,EAAQG,gBAAkBniI,KAAKkiI,sBAEjCliI,KAAK2mC,OAAO7rC,QAAQ,yBAA0BknI,GAAS,SAAUqC,EAAiBC,GAChF,OAAID,EACK/4H,EAASi8B,UAAU88F,GAErBnG,EAAOqG,yBAAyBD,EAAkB3B,EAAsBr3H,EACjF,GAEF,EAaA4e,EAAO06G,kBAAoB,SAA2Bt5H,EAAU82C,GAC9D,IAAIyjF,EAAS7lI,KACT2iI,EAAuB,IAAI7H,GAAqB96H,KAAKq8H,gBACrDwG,EAAa,IAAI1C,GACjB1N,EAAiB,CAAC,EACtBA,EAAesP,SAAW/hI,KAAK/E,SAC/Bw3H,EAAesQ,WAAa/iI,KAAK8iI,UACjCH,EAAqBrH,gBAAe,SAAUwK,EAAW7C,GAEnD6C,GACFx6H,EAASi8B,UAAUu+F,GAErBrT,EAAeyQ,MAAQD,EAAOhjI,SAAS,IACvC,IAAI+hI,EAAU,CACZI,cAAe,kBACf3/E,SAAUojF,EAAOvE,KAAKG,cACtB2C,mBAAoB3R,EACpB5tE,eAAgBzC,EAChBm/E,QAASsE,EAAOtE,SAEdsE,EAAO3D,uBACTF,EAAQG,gBAAkB0D,EAAO3D,sBAEnC2D,EAAOl/F,OAAO7rC,QAAQ,yBAA0BknI,GAAS,SAAU7lI,EAAK/B,GACtE,GAAI+B,EACF,OAAOmP,EAASi8B,UAAUprC,GAE5B,IAAIkmI,EAAsBjoI,EAAKkoI,oBAC3B7E,EAAe,IAAIxC,EAAWoH,EAAoBgB,MAAO,IACzDlG,EAAO,IAAIlC,EAAWoH,EAAoBiB,KAAM,IACpDX,EAAqBnF,6BAA6BqI,EAAO/C,UAAW+C,EAAO9J,eAAgB0B,EAAcN,GAAM,SAAU4I,EAAS9H,GAEhI,GAAI8H,EACF,OAAOz6H,EAASi8B,UAAUw+F,GAE5B,IAAI/E,EAAU6B,EAAWzC,eACrBrgI,EAAU,QAAayzH,UAAUn0H,OAAO,KAAOwD,OAAO,CAAC,KAAO09B,KAAKslG,EAAOxJ,eAAgB,QAAS,KAAO97F,KAAKslG,EAAO/C,UAAW,QAAS,KAAOviG,KAAK8hG,EAAoBmB,aAAc,UAAW,KAAOjjG,KAAKygG,EAAS,WACxNljI,EAAM,QAAa01H,UAAUn0H,OAAO4+H,GACpCwF,EAAkB,eAAiB,IAAW1jI,EAASjC,IACvDwsD,EAAqB,CAAC,EAC1BA,EAAmBy3E,SAAW8D,EAAO5qI,SACrCqvD,EAAmBo5E,4BAA8BrB,EAAoBmB,aACrEl5E,EAAmBq5E,UAAY3C,EAC/B12E,EAAmBs5E,yBAA2BH,EAC9Cn5E,EAAmBy4E,WAAa8C,EAAO/C,UACvC,IAAIqB,EAAc,CAChB/B,cAAe,2BACf3/E,SAAUojF,EAAOvE,KAAKG,cACtB2C,mBAAoB95E,EACpBi3E,QAASnnI,EAAKmnI,SAEZsE,EAAO3D,uBACTiC,EAAYhC,gBAAkB0D,EAAO3D,sBAEvC2D,EAAOl/F,OAAO7rC,QAAQ,yBAA0BqpI,GAAa,SAAUE,EAAiBC,GACtF,OAAID,EACK/4H,EAASi8B,UAAU88F,IAE5BwB,EAAOrE,kBAAoBqE,EAAOtD,sBAAsB+B,EAAiB9B,sBACzEqD,EAAOjE,cACAt2H,EAASg8B,UAAUu+F,EAAOrE,mBACnC,GAGF,GAGF,GAEF,GACF,EAUAt3G,EAAO47B,oBAAsB,SAA6BkgF,EAAkBngF,EAAoBv6C,EAAU82C,GACxG,IAAI4/E,EAAU,CACZv/E,SAAUziD,KAAKshI,KAAKG,cACpBwE,iBAAkBD,EAClBthF,SAAU1kD,KAAK/E,SACfirI,mBAAoBrgF,EACpBhB,eAAgBzC,GAEdpiD,KAAKkiI,uBACPF,EAAQG,gBAAkBniI,KAAKkiI,sBAEjCliI,KAAK2mC,OAAO7rC,QAAQ,gBAAiBknI,GAAS,SAAU7lI,GACtD,OAAIA,EACKmP,EAASnP,EAAK,MAEhBmP,EAAS,KAAM,UACxB,GACF,EAaA4e,EAAOmgC,0BAA4B,SAAmC87E,EAAiB76H,EAAU82C,GAC/F,IAAIgkF,EAASpmI,KACTsqD,EAAqB,CAAC,EAC1BA,EAAmBy3E,SAAW/hI,KAAK/E,SACnCqvD,EAAmB+7E,OAASF,EAC5B,IAAIxD,EAAuB,IAAI7H,GAAqB96H,KAAKshI,KAAKsB,mBAC9D5iI,KAAK2wD,gCACiB,MAAlB3wD,KAAK8iI,YACPx4E,EAAmBy4E,WAAa/iI,KAAK8iI,WAEvC,IAAId,EAAU,CACZI,cAAe,mBACfgC,mBAAoB95E,EACpB7H,SAAUziD,KAAKshI,KAAKG,cACpBF,QAASvhI,KAAKuhI,QACd18E,eAAgBzC,GAEdpiD,KAAKkiI,uBACPF,EAAQG,gBAAkBniI,KAAKkiI,sBAEjCliI,KAAK2mC,OAAO7rC,QAAQ,yBAA0BknI,GAAS,SAAU7lI,EAAK/B,GACpE,OAAI+B,EACKmP,EAASi8B,UAAUprC,GAErBiqI,EAAO7B,yBAAyBnqI,EAAMuoI,EAAsBr3H,EACrE,GACF,EAYA4e,EAAO8/B,YAAc,SAAqBg8E,EAAkB16H,EAAUu8C,EAASzF,GAC7E,IAAIkkF,EAAStmI,KACTsqD,EAAqB,CAAC,EAC1BA,EAAmBy3E,SAAW/hI,KAAK/E,SACnCqvD,EAAmBi8E,aAAeP,EAClC,IAAIQ,EAAmB3+E,GAAW,UACT,uBAArB2+E,IACFl8E,EAAmBm8E,wBAA0BT,GAEzB,MAAlBhmI,KAAK8iI,YACPx4E,EAAmBy4E,WAAa/iI,KAAK8iI,WAEvC,IAAId,EAAU,CACZI,cAAeoE,EACfpC,mBAAoB95E,EACpB7H,SAAUziD,KAAKshI,KAAKG,cACpBF,QAASvhI,KAAKuhI,QACd18E,eAAgBzC,GAEdpiD,KAAKkiI,uBACPF,EAAQG,gBAAkBniI,KAAKkiI,sBAEjCliI,KAAK2mC,OAAO7rC,QAAQ,yBAA0BknI,GAAS,SAAU7lI,EAAKmoI,GACpE,GAAInoI,EACF,OAAOmP,EAASi8B,UAAUprC,GAE5B,IAAI0qD,EAAgBy9E,EAAiBlC,cACrC,GAAsB,oBAAlBv7E,EAAJ,CAMA,GAFAy/E,EAAO9E,kBAAoB8E,EAAO/D,sBAAsB+B,EAAiB9B,sBACzE8D,EAAO1E,cACwD,MAA3D0C,EAAiB9B,qBAAqBsC,kBACxC,OAAOx5H,EAASg8B,UAAUg/F,EAAO9E,mBAEnC,IAAImB,EAAuB,IAAI7H,GAAqBwL,EAAOhF,KAAKsB,mBAChED,EAAqBvG,mBAAmBkI,EAAiB9B,qBAAqBsC,kBAAkBC,eAAgBT,EAAiB9B,qBAAqBsC,kBAAkBrzE,WAAW,SAAUuzE,GAC3L,GAAIA,EACF,OAAO15H,EAASi8B,UAAUy9F,GAE5B,IAAIC,EAA6B,CAC/BC,KAAM,KAAO3kG,KAAKoiG,EAAqB3G,iBAAkB,OAAO/7H,SAAS,UACzEklI,iBAAkB,KAAO5kG,KAAKoiG,EAAqBzG,qBAAsB,OAAOj8H,SAAS,WAE3FqmI,EAAOnK,gBAAkB8I,EAA2BE,iBACpDmB,EAAOjK,eAAiBiI,EAAiB9B,qBAAqBsC,kBAAkBC,eAChFuB,EAAOvK,eAAiB4G,EAAqB7G,oBAC7CwK,EAAO3/F,OAAO7rC,QAAQ,gBAAiB,CACrC22D,UAAW6yE,EAAiB9B,qBAAqBsC,kBAAkBrzE,UACnE9B,YAAa22E,EAAO9E,kBAAkBjwF,iBAAiBC,cACvD4zF,2BAA4BH,EAC5BI,WAAYt7H,KACX,SAAUu7H,EAAYC,GACvB,OAAID,EACKh6H,EAASi8B,UAAU+9F,IAE5BgB,EAAOxD,UAAYwB,EAAiB9B,qBAAqBsC,kBAAkBrzE,UAC3E60E,EAAOd,6BACuC,IAA1CD,EAAYE,0BACPn6H,EAASg8B,UAAUg/F,EAAO9E,kBAAmB+D,EAAYE,2BAE3Dn6H,EAASg8B,UAAUg/F,EAAO9E,mBACnC,GAEF,GAnCA,MAFE8E,EAAO1B,kBAAkBt5H,EAuC7B,GACF,EAUA4e,EAAOikC,eAAiB,SAAwBu4E,EAAiBC,EAAiBr7H,EAAU82C,GAC1F,GAAgC,MAA1BpiD,KAAKwhI,oBAA6BxhI,KAAKwhI,kBAAkBzB,UAC7D,OAAOz0H,EAAS,IAAIrH,MAAM,6BAA8B,MAE1DjE,KAAK2mC,OAAO7rC,QAAQ,iBAAkB,CACpC8rI,iBAAkBF,EAClBG,iBAAkBF,EAClBh3E,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,cACrDqT,eAAgBzC,IACf,SAAUjmD,GACX,OAAIA,EACKmP,EAASnP,EAAK,MAEhBmP,EAAS,KAAM,UACxB,GAEF,EAQA4e,EAAOq/B,UAAY,SAAmBj+C,GACpC,GAA8B,MAA1BtL,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAAS,IAAIrH,MAAM,6BAA8B,MAE1D,IAAIujD,EAAa,GACbs/E,EAAa,CACfC,eAAgB,MAChBC,cAAe,gBAEjBx/E,EAAWtmD,KAAK4lI,GAChB9mI,KAAK2mC,OAAO7rC,QAAQ,kBAAmB,CACrCutD,WAAYb,EACZmI,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,gBACpD,SAAUr1C,GACX,OAAIA,EACKmP,EAASnP,EAAK,MAEhBmP,EAAS,KAAM,UACxB,GAEF,EASA4e,EAAOg/B,qBAAuB,SAA8BP,EAAgBs+E,EAA0B37H,GACpG,GAA8B,MAA1BtL,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAAS,IAAIrH,MAAM,6BAA8B,MAE1DjE,KAAK2mC,OAAO7rC,QAAQ,uBAAwB,CAC1CosI,eAAgBv+E,EAChBw+E,yBAA0BF,EAC1Bt3E,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,gBACpD,SAAUr1C,GACX,OAAIA,EACKmP,EAASnP,EAAK,MAEhBmP,EAAS,KAAM,UACxB,GAEF,EAQA4e,EAAOm/B,WAAa,SAAoB/9C,GACtC,GAA8B,MAA1BtL,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAAS,IAAIrH,MAAM,6BAA8B,MAE1D,IAAIujD,EAAa,GACjBxnD,KAAK2mC,OAAO7rC,QAAQ,kBAAmB,CACrCutD,WAAYb,EACZmI,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,gBACpD,SAAUr1C,GACX,OAAIA,EACKmP,EAASnP,EAAK,MAEhBmP,EAAS,KAAM,UACxB,GAEF,EAQA4e,EAAO0gC,WAAa,SAAoBt/C,EAAU82C,GAChD,IAAIglF,EAASpnI,KACb,GAA8B,MAA1BA,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAAS,IAAIrH,MAAM,6BAA8B,MAE1DjE,KAAK2mC,OAAO7rC,QAAQ,aAAc,CAChC60D,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,cACrDqT,eAAgBzC,IACf,SAAUjmD,GACX,OAAIA,EACKmP,EAASnP,EAAK,OAEvBirI,EAAOC,kBACA/7H,EAAS,KAAM,WACxB,GAEF,EAYA4e,EAAOshC,iBAAmB,SAA0BhI,EAAYl4C,EAAU82C,GACxE,IAAIklF,EAAUtnI,KACd,GAA8B,MAA1BA,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAAS,IAAIrH,MAAM,6BAA8B,MAE1DjE,KAAK2mC,OAAO7rC,QAAQ,uBAAwB,CAC1C60D,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,cACrDqb,eAAgBrJ,EAChBqB,eAAgBzC,IACf,SAAUjmD,GACX,OAAIA,EACKmP,EAASnP,EAAK,MAIhBmrI,EAAQ3/E,aAAY,WACzB,OAAOr8C,EAAS,KAAM,UACxB,GAAG,CACDo8C,aAAa,GAEjB,GAEF,EAOAx9B,EAAOuhC,kBAAoB,SAA2BngD,GACpD,GAAgC,MAA1BtL,KAAKwhI,oBAA6BxhI,KAAKwhI,kBAAkBzB,UAC7D,OAAOz0H,EAAS,IAAIrH,MAAM,6BAA8B,MAE1DjE,KAAK2mC,OAAO7rC,QAAQ,UAAW,CAC7B60D,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,gBACpD,SAAUr1C,EAAKusD,GAChB,GAAIvsD,EACF,OAAOmP,EAASnP,EAAK,MAGvB,IADA,IAAImvD,EAAgB,GACX5qD,EAAI,EAAGA,EAAIgoD,EAASmE,eAAejsD,OAAQF,IAAK,CACvD,IAAIisD,EAAY,CACdh1B,KAAM+wB,EAASmE,eAAensD,GAAGi3B,KACjCqsB,MAAO0E,EAASmE,eAAensD,GAAGsjD,OAEhC4I,EAAgB,IAAIq0E,GAAqBt0E,GAC7CrB,EAAcpqD,KAAK0rD,EACrB,CACA,OAAOthD,EAAS,KAAMggD,EACxB,GAEF,EAUAphC,EAAOq9B,cAAgB,SAAuBj8C,GAC5C,GAAgC,MAA1BtL,KAAKwhI,oBAA6BxhI,KAAKwhI,kBAAkBzB,UAC7D,OAAOz0H,EAAS,IAAIrH,MAAM,6BAA8B,MAE1DjE,KAAK2mC,OAAO7rC,QAAQ,UAAW,CAC7B60D,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,gBACpD,SAAUr1C,EAAKusD,GAChB,OAAIvsD,EACKmP,EAASnP,EAAK,MAEhBmP,EAAS,KAAMo9C,EAASL,WACjC,GAEF,EAMAn+B,EAAOq9G,qBAAuB,WAC5B,OAAOvnI,KAAK2mC,OAAO6gG,iBAAiB,UAAW,CAC7C73E,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,eAEzD,EAMAtnB,EAAOu9G,yBAA2B,SAAkClkI,GAClE,IAAImkI,EAAU1nI,KAKd,YAJgB,IAAZuD,IACFA,EAAU,CAAC,GAGN,IAAIxJ,SAAQ,SAAUC,GAC3B,IAAI2tI,EAAUD,EAAQlG,kBAAkB3B,kBACpC8H,GAAWA,EAAQnI,WACrBkI,EAAQhwD,eAAeiwD,EAAS3tI,EAASuJ,EAAQ6+C,gBAEjDpoD,GAEJ,GACF,EAcAkwB,EAAOy9B,YAAc,SAAqBr8C,EAAU/O,GAClD,IAAIqrI,EAAU5nI,KACd,GAAgC,MAA1BA,KAAKwhI,oBAA6BxhI,KAAKwhI,kBAAkBzB,UAE7D,OADA//H,KAAK2hI,sBACEr2H,EAAS,IAAIrH,MAAM,6BAA8B,MAE1D,IAAIykD,EAAW1oD,KAAK6nI,uBACpB,GAAKn/E,EAML,GAAI1oD,KAAK8nI,gCAAgCvrI,GACvCyD,KAAK+nI,gBAAgBvnI,MAAK,SAAUpG,GAClC,OAAOwtI,EAAQH,yBAAyBlrI,GAAQiE,MAAK,WACnD,OAAOpG,CACT,GACF,IAAGoG,MAAK,SAAUpG,GAChB,OAAOkR,EAAS,KAAMlR,EACxB,IAAG,SAASkR,QAGd,IAEE,YADAA,EAAS,KAAMxE,KAAKC,MAAM2hD,GAE5B,CAAE,MAAOvsD,IAGP,OAFA6D,KAAK2hI,2BACLr2H,EAASnP,GAAK,KAEhB,MAtBE6D,KAAK+nI,gBAAgBvnI,MAAK,SAAUpG,GAClCkR,EAAS,KAAMlR,EACjB,IAAG,SAASkR,EAqBhB,EAOA4e,EAAO29G,qBAAuB,WAC5B,IAAIn/E,EAAW1oD,KAAK0N,QAAQkB,QAAQ5O,KAAK0hI,aACzC,OAAOh5E,CACT,EAOAx+B,EAAO49G,gCAAkC,SAAyCvrI,GAChF,IAAI4kB,EAAO5kB,GAAU,CAAC,EACpByrI,EAAmB7mH,EAAKumC,YACxBA,OAAmC,IAArBsgF,GAAsCA,EACtD,OAAOtgF,CACT,EAMAx9B,EAAO69G,cAAgB,WACrB,IAAIE,EAAUjoI,KACd,OAAOA,KAAKunI,uBAAuB/mI,MAAK,SAAUpG,GAEhD,OADA6tI,EAAQC,cAAc9tI,GACfA,CACT,GACF,EAQA8vB,EAAOygC,iBAAmB,SAA0BW,EAAehgD,GACjE,IAAI68H,EAAUnoI,KACd,GAAgC,MAA1BA,KAAKwhI,oBAA6BxhI,KAAKwhI,kBAAkBzB,UAC7D,OAAOz0H,EAAS,IAAIrH,MAAM,6BAA8B,MAE1DjE,KAAK2mC,OAAO7rC,QAAQ,uBAAwB,CAC1CstI,mBAAoB98E,EACpBqE,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,gBACpD,SAAUr1C,GACX,OAAIA,EACKmP,EAASnP,EAAK,MAIhBgsI,EAAQxgF,aAAY,WACzB,OAAOr8C,EAAS,KAAM,UACxB,GAAG,CACDo8C,aAAa,GAEjB,GAEF,EAQAx9B,EAAO87B,uBAAyB,SAAgC16C,EAAU82C,GACxE,IAAI4/E,EAAU,CACZv/E,SAAUziD,KAAKshI,KAAKG,cACpB/8E,SAAU1kD,KAAK/E,SACf4pD,eAAgBzC,GAElBpiD,KAAK2mC,OAAO7rC,QAAQ,yBAA0BknI,GAAS,SAAU7lI,EAAK0P,GACpE,OAAI1P,EACKmP,EAASnP,EAAK,MAEhBmP,EAAS,KAAMO,EACxB,GACF,EAeAqe,EAAO+gC,WAAa,SAAoB3/C,EAAU/H,GAIhD,QAHgB,IAAZA,IACFA,EAAU,CAAC,GAEQ,MAAjBvD,KAAK/E,SACP,OAAOqQ,EAAS,IAAIrH,MAAM,mDAAoD,MAEhF,GAA8B,MAA1BjE,KAAKwhI,mBAA6BxhI,KAAKwhI,kBAAkBzB,UAC3D,OAAOz0H,EAAS,KAAMtL,KAAKwhI,mBAE7B,IAAIp0H,EAAY,kCAAoCpN,KAAKshI,KAAKG,cAAgB,IAAMzhI,KAAK/E,SACrFotI,EAAaj7H,EAAY,WACzBk7H,EAAiBl7H,EAAY,eAC7Bm7H,EAAkBn7H,EAAY,gBAC9Bo7H,EAAgBp7H,EAAY,cAChC,GAAIpN,KAAK0N,QAAQkB,QAAQy5H,GAAa,CACpC,IAAI7qF,EAAU,IAAI8hF,GAAe,CAC/B7vE,QAASzvD,KAAK0N,QAAQkB,QAAQy5H,KAE5B/qF,EAAc,IAAI6hF,GAAmB,CACvCxvE,YAAa3vD,KAAK0N,QAAQkB,QAAQ05H,KAEhC/qF,EAAe,IAAIgiF,GAAoB,CACzC7vE,aAAc1vD,KAAK0N,QAAQkB,QAAQ25H,KAEjC5I,EAAa/lF,SAAS55C,KAAK0N,QAAQkB,QAAQ45H,GAAgB,IAAM,EACjEC,EAAc,CAChBh5E,QAASjS,EACTmS,YAAarS,EACboS,aAAcnS,EACdmiF,WAAYC,GAEV+I,EAAgB,IAAIjJ,GAAmBgJ,GAC3C,GAAIC,EAAc3I,UAEhB,OADA//H,KAAKwhI,kBAAoBkH,EAClBp9H,EAAS,KAAMtL,KAAKwhI,mBAE7B,IAAKjkF,EAAaiiF,WAChB,OAAOl0H,EAAS,IAAIrH,MAAM,uDAAwD,MAEpFjE,KAAK03E,eAAen6B,EAAcjyC,EAAU/H,EAAQ6+C,eACtD,MACE92C,EAAS,IAAIrH,MAAM,6DAA8D,KAGrF,EASAimB,EAAOwtD,eAAiB,SAAwBn6B,EAAcjyC,EAAU82C,GACtE,IAAIumF,EAAU3oI,KACV4oI,EAAkB5oI,KAAKshI,KAAK3/E,2BAA6B3hD,KAAKshI,KAAK3/E,2BAA2Br2C,GAAYA,EAC1GmnH,EAAiB,CAAC,EACtBA,EAAeoW,cAAgBtrF,EAAaiiF,WAC5C,IAAIpyH,EAAY,kCAAoCpN,KAAKshI,KAAKG,cAC1DqH,EAAc17H,EAAY,gBAC9B,GAAIpN,KAAK0N,QAAQkB,QAAQk6H,GAAc,CACrC9oI,KAAK/E,SAAW+E,KAAK0N,QAAQkB,QAAQk6H,GACrC,IAAIC,EAAe37H,EAAY,IAAMpN,KAAK/E,SAAW,aACrD+E,KAAK8iI,UAAY9iI,KAAK0N,QAAQkB,QAAQm6H,GACtCtW,EAAesQ,WAAa/iI,KAAK8iI,SACnC,CACA,IAAId,EAAU,CACZv/E,SAAUziD,KAAKshI,KAAKG,cACpBQ,SAAU,qBACVzP,eAAgBC,EAChB5tE,eAAgBzC,GAEdpiD,KAAKkiI,uBACPF,EAAQG,gBAAkBniI,KAAKkiI,sBAEjCliI,KAAK2mC,OAAO7rC,QAAQ,eAAgBknI,GAAS,SAAU7lI,EAAKsoI,GAC1D,GAAItoI,EAIF,MAHiB,2BAAbA,EAAI6H,MACN2kI,EAAQtB,kBAEHuB,EAAgBzsI,EAAK,MAE9B,GAAIsoI,EAAY,CACd,IAAIuE,EAAuBvE,EAAWjC,qBAMtC,OALKz8H,OAAO5G,UAAU0N,eAAezI,KAAK4kI,EAAsB,kBAC9DA,EAAqBt5E,aAAenS,EAAaiiF,YAEnDmJ,EAAQnH,kBAAoBmH,EAAQpG,sBAAsByG,GAC1DL,EAAQ/G,cACDgH,EAAgB,KAAMD,EAAQnH,kBACvC,CAEF,GACF,EAMAt3G,EAAO03G,YAAc,WACnB,IAAIx0H,EAAY,kCAAoCpN,KAAKshI,KAAKG,cAC1D4G,EAAaj7H,EAAY,IAAMpN,KAAK/E,SAAW,WAC/CqtI,EAAiBl7H,EAAY,IAAMpN,KAAK/E,SAAW,eACnDstI,EAAkBn7H,EAAY,IAAMpN,KAAK/E,SAAW,gBACpDutI,EAAgBp7H,EAAY,IAAMpN,KAAK/E,SAAW,cAClD6tI,EAAc17H,EAAY,gBAC9BpN,KAAK0N,QAAQmB,QAAQw5H,EAAYroI,KAAKwhI,kBAAkB5xE,aAAape,eACrExxC,KAAK0N,QAAQmB,QAAQy5H,EAAgBtoI,KAAKwhI,kBAAkBjwF,iBAAiBC,eAC7ExxC,KAAK0N,QAAQmB,QAAQ05H,EAAiBvoI,KAAKwhI,kBAAkB3B,kBAAkBL,YAC/Ex/H,KAAK0N,QAAQmB,QAAQ25H,EAAe,GAAKxoI,KAAKwhI,kBAAkB1B,iBAChE9/H,KAAK0N,QAAQmB,QAAQi6H,EAAa9oI,KAAK/E,SACzC,EAKAivB,EAAOg+G,cAAgB,SAAuBx/E,GAC5C1oD,KAAK0N,QAAQmB,QAAQ7O,KAAK0hI,YAAa56H,KAAKI,UAAUwhD,GACxD,EAKAx+B,EAAOy3G,oBAAsB,WAC3B3hI,KAAK0N,QAAQoB,WAAW9O,KAAK0hI,YAC/B,EACAx3G,EAAOm9G,gBAAkB,WACvBrnI,KAAKipI,oBACLjpI,KAAK2hI,qBACP,EAMAz3G,EAAOs7G,0BAA4B,WACjC,IAAIp4H,EAAY,kCAAoCpN,KAAKshI,KAAKG,cAAgB,IAAMzhI,KAAK/E,SACrF8tI,EAAe37H,EAAY,aAC3B87H,EAAoB97H,EAAY,qBAChC+7H,EAAoB/7H,EAAY,kBACpCpN,KAAK0N,QAAQmB,QAAQk6H,EAAc/oI,KAAK8iI,WACxC9iI,KAAK0N,QAAQmB,QAAQq6H,EAAmBlpI,KAAK+7H,gBAC7C/7H,KAAK0N,QAAQmB,QAAQs6H,EAAmBnpI,KAAKq8H,eAC/C,EAMAnyG,EAAOymC,8BAAgC,WACrC,IAAIvjD,EAAY,kCAAoCpN,KAAKshI,KAAKG,cAAgB,IAAMzhI,KAAK/E,SACrF8tI,EAAe37H,EAAY,aAC3B87H,EAAoB97H,EAAY,qBAChC+7H,EAAoB/7H,EAAY,kBAChCpN,KAAK0N,QAAQkB,QAAQm6H,KACvB/oI,KAAK8iI,UAAY9iI,KAAK0N,QAAQkB,QAAQm6H,GACtC/oI,KAAK+7H,eAAiB/7H,KAAK0N,QAAQkB,QAAQs6H,GAC3ClpI,KAAKq8H,eAAiBr8H,KAAK0N,QAAQkB,QAAQu6H,GAE/C,EAMAj/G,EAAOg6G,gCAAkC,WACvC,IAAI92H,EAAY,kCAAoCpN,KAAKshI,KAAKG,cAAgB,IAAMzhI,KAAK/E,SACrF8tI,EAAe37H,EAAY,aAC3B87H,EAAoB97H,EAAY,qBAChC+7H,EAAoB/7H,EAAY,kBACpCpN,KAAK0N,QAAQoB,WAAWi6H,GACxB/oI,KAAK0N,QAAQoB,WAAWo6H,GACxBlpI,KAAK0N,QAAQoB,WAAWq6H,EAC1B,EAMAj/G,EAAO++G,kBAAoB,WACzB,IAAI77H,EAAY,kCAAoCpN,KAAKshI,KAAKG,cAC1D4G,EAAaj7H,EAAY,IAAMpN,KAAK/E,SAAW,WAC/CqtI,EAAiBl7H,EAAY,IAAMpN,KAAK/E,SAAW,eACnDstI,EAAkBn7H,EAAY,IAAMpN,KAAK/E,SAAW,gBACpD6tI,EAAc17H,EAAY,gBAC1Bo7H,EAAgBp7H,EAAY,IAAMpN,KAAK/E,SAAW,cACtD+E,KAAK0N,QAAQoB,WAAWu5H,GACxBroI,KAAK0N,QAAQoB,WAAWw5H,GACxBtoI,KAAK0N,QAAQoB,WAAWy5H,GACxBvoI,KAAK0N,QAAQoB,WAAWg6H,GACxB9oI,KAAK0N,QAAQoB,WAAW05H,EAC1B,EAQAt+G,EAAOq4G,sBAAwB,SAA+BkC,GAC5D,IAAIjnF,EAAU,IAAI8hF,GAAemF,GAC7BnnF,EAAc,IAAI6hF,GAAmBsF,GACrClnF,EAAe,IAAIgiF,GAAoBkF,GACvCgE,EAAc,CAChBh5E,QAASjS,EACTmS,YAAarS,EACboS,aAAcnS,GAEhB,OAAO,IAAIkiF,GAAmBgJ,EAChC,EAYAv+G,EAAOokC,eAAiB,SAAwBhjD,EAAU82C,GACxD,IAAI4/E,EAAU,CACZv/E,SAAUziD,KAAKshI,KAAKG,cACpB/8E,SAAU1kD,KAAK/E,SACf4pD,eAAgBzC,GAEdpiD,KAAKkiI,uBACPF,EAAQG,gBAAkBniI,KAAKkiI,sBAEjCliI,KAAK2mC,OAAO7rC,QAAQ,iBAAkBknI,GAAS,SAAU7lI,EAAK/B,GAC5D,OAAI+B,EACKmP,EAASi8B,UAAUprC,GAEkB,oBAAnCmP,EAASijD,sBACXjjD,EAASijD,sBAAsBn0D,GAEjCkR,EAASg8B,UAAUltC,EAC5B,GACF,EAYA8vB,EAAOukC,gBAAkB,SAAyBu3E,EAAkB33E,EAAa/iD,EAAU82C,GACzF,IAAI4/E,EAAU,CACZv/E,SAAUziD,KAAKshI,KAAKG,cACpB/8E,SAAU1kD,KAAK/E,SACfgrI,iBAAkBD,EAClBrhF,SAAU0J,EACVxJ,eAAgBzC,GAEdpiD,KAAKkiI,uBACPF,EAAQG,gBAAkBniI,KAAKkiI,sBAEjCliI,KAAK2mC,OAAO7rC,QAAQ,wBAAyBknI,GAAS,SAAU7lI,GAC9D,OAAIA,EACKmP,EAASi8B,UAAUprC,GAErBmP,EAASg8B,UAAU,UAC5B,GACF,EAWApd,EAAOojC,6BAA+B,SAAsC87E,EAAe99H,EAAU82C,GACnG,GAA8B,MAA1BpiD,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAASi8B,UAAU,IAAItjC,MAAM,8BAEtCjE,KAAK2mC,OAAO7rC,QAAQ,mCAAoC,CACtDksI,cAAeoC,EACfz5E,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,cACrDqT,eAAgBzC,IACf,SAAUjmD,EAAK/B,GAChB,OAAI+B,EACKmP,EAASi8B,UAAUprC,GAEkB,oBAAnCmP,EAASijD,sBACXjjD,EAASijD,sBAAsBn0D,GAEjCkR,EAASg8B,UAAU,UAC5B,GAEF,EAWApd,EAAOujC,gBAAkB,SAAyB27E,EAAepD,EAAkB16H,GACjF,GAA8B,MAA1BtL,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAASi8B,UAAU,IAAItjC,MAAM,8BAEtCjE,KAAK2mC,OAAO7rC,QAAQ,sBAAuB,CACzCksI,cAAeoC,EACfzvE,KAAMqsE,EACNr2E,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,gBACpD,SAAUr1C,GACX,OAAIA,EACKmP,EAASi8B,UAAUprC,GAErBmP,EAASg8B,UAAU,UAC5B,GAEF,EASApd,EAAOm/G,UAAY,SAAmB/9H,GACpC,GAA8B,MAA1BtL,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAASi8B,UAAU,IAAItjC,MAAM,8BAEtCjE,KAAK2mC,OAAO7rC,QAAQ,YAAa,CAC/B60D,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,cACrDigB,UAAWzxD,KAAK8iI,YACf,SAAU3mI,EAAK/B,GAChB,OAAI+B,EACKmP,EAASi8B,UAAUprC,GAErBmP,EAASg8B,UAAUltC,EAC5B,GAEF,EAUA8vB,EAAOo/G,qBAAuB,SAA8BxG,EAAWx3H,GACrE,GAA8B,MAA1BtL,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAASi8B,UAAU,IAAItjC,MAAM,8BAEtCjE,KAAK2mC,OAAO7rC,QAAQ,eAAgB,CAClC60D,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,cACrDigB,UAAWqxE,IACV,SAAU3mI,GACX,OAAIA,EACKmP,EAASi8B,UAAUprC,GAErBmP,EAASg8B,UAAU,UAC5B,GAEF,EASApd,EAAO6mC,aAAe,SAAsBzlD,GAC1C,IAAIi+H,EAAUvpI,KACdA,KAAKspI,qBAAqBtpI,KAAK8iI,UAAW,CACxCv7F,UAAWj8B,EAASi8B,UACpBD,UAAW,SAAmBz7B,GAK5B,OAJA09H,EAAQzG,UAAY,KACpByG,EAAQlN,eAAiB,KACzBkN,EAAQxN,eAAiB,KACzBwN,EAAQrF,kCACD54H,EAASg8B,UAAUz7B,EAC5B,GAEJ,EASAqe,EAAO0mC,0BAA4B,SAAmCtlD,GACpE,GAA8B,MAA1BtL,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAASi8B,UAAU,IAAItjC,MAAM,8BAEtCjE,KAAK2mC,OAAO7rC,QAAQ,qBAAsB,CACxC60D,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,cACrDigB,UAAWzxD,KAAK8iI,UAChB0G,uBAAwB,eACvB,SAAUrtI,GACX,OAAIA,EACKmP,EAASi8B,UAAUprC,GAErBmP,EAASg8B,UAAU,UAC5B,GAEF,EASApd,EAAOu/G,6BAA+B,SAAsCn+H,GAC1E,GAA8B,MAA1BtL,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAASi8B,UAAU,IAAItjC,MAAM,8BAEtCjE,KAAK2mC,OAAO7rC,QAAQ,qBAAsB,CACxC60D,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,cACrDigB,UAAWzxD,KAAK8iI,UAChB0G,uBAAwB,mBACvB,SAAUrtI,GACX,OAAIA,EACKmP,EAASi8B,UAAUprC,GAErBmP,EAASg8B,UAAU,UAC5B,GAEF,EAYApd,EAAOwnC,YAAc,SAAqBwT,EAAOwkE,EAAiBp+H,GAChE,GAA8B,MAA1BtL,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAASi8B,UAAU,IAAItjC,MAAM,8BAEtC,IAAI0lI,EAAgB,CAClBh6E,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,cACrDo4F,MAAO1kE,GAELwkE,IACFC,EAAcE,gBAAkBH,GAElC1pI,KAAK2mC,OAAO7rC,QAAQ,cAAe6uI,GAAe,SAAUxtI,EAAK/B,GAC/D,OAAI+B,EACKmP,EAASi8B,UAAUprC,GAErBmP,EAASg8B,UAAUltC,EAC5B,GAEF,EASA8vB,EAAO8jC,cAAgB,SAAuB1iD,GAC5C,IAAIw+H,EAAU9pI,KACd,GAA8B,MAA1BA,KAAKwhI,oBAA8BxhI,KAAKwhI,kBAAkBzB,UAC5D,OAAOz0H,EAASi8B,UAAU,IAAItjC,MAAM,8BAEtCjE,KAAK2mC,OAAO7rC,QAAQ,gBAAiB,CACnC60D,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,gBACpD,SAAUr1C,GACX,OAAIA,EACKmP,EAASi8B,UAAUprC,IAE5B2tI,EAAQzC,kBACD/7H,EAASg8B,UAAU,WAC5B,GAEF,EAMApd,EAAO+zB,QAAU,SAAiB8rF,GAChC,IAAIC,EAAUhqI,KAET+pI,GAAsD,oBAAxBA,EAInC/pI,KAAKirD,YAAW,SAAU/nD,EAAO+mI,GAC/B,GAAI/mI,EACF,OAAO6mI,EAAoB7mI,GAE7B8mI,EAAQE,cAAa,SAAU/tI,GAC7B6tI,EAAQG,kBACRJ,EAAoB5tI,EACtB,GACF,IAXE6D,KAAKmqI,iBAYT,EACAjgH,EAAOggH,aAAe,SAAsBH,GAI1C,QAH4B,IAAxBA,IACFA,EAAsB,WAAgC,GAErB,oBAAxBA,EACT,MAAM,IAAI9lI,MAAM,yDAGlB,IAAKjE,KAAKwhI,kBAAmB,CAC3B,IAAIt+H,EAAQ,IAAIe,MAAM,6BACtB,OAAO8lI,EAAoB7mI,EAC7B,CACA,IAAKlD,KAAKwhI,kBAAkBjwF,iBAAkB,CAC5C,IAAI64F,EAAS,IAAInmI,MAAM,6BACvB,OAAO8lI,EAAoBK,EAC7B,CACA,IAAI7sF,EAAev9C,KAAKwhI,kBAAkB3B,kBAAkBL,WACxDliF,EAAct9C,KAAKwhI,kBAAkBjwF,iBACzC,GAAIvxC,KAAKqqI,mBAAmB/sF,IACtBC,EACF,OAAOv9C,KAAKsqI,YAAY,CACtB/pI,MAAOg9C,EACPjyC,SAAUy+H,IAIhBA,GACF,EACA7/G,EAAOmgH,mBAAqB,SAA4B9pI,GACtD,GAAIA,GAAwC,oBAAxBA,EAAMksD,cACxB,IACE,IAAI89E,EAAwBhqI,EAAMksD,gBAChC+9E,EAAaD,EAAsBC,WACrC,QAASA,CACX,CAAE,MAAOruI,IAET,CAEF,OAAO,CACT,EACA+tB,EAAOigH,gBAAkB,WACvBnqI,KAAKwhI,kBAAoB,KACzBxhI,KAAKqnI,iBACP,EACAn9G,EAAOogH,YAAc,SAAqBhpH,GACxC,IAAI/gB,EAAQ+gB,EAAM/gB,MAChB+K,EAAWgW,EAAMhW,SACnBtL,KAAK2mC,OAAO8jG,iBAAiB,cAAe,CAC1CtgH,MAAO5pB,EACPkiD,SAAUziD,KAAKshI,KAAKG,gBACnB,SAAUtlI,GACX,GAAIA,EACF,OAAOmP,EAASnP,GAElBmP,GACF,GACF,EAQA4e,EAAOwgH,uBAAyB,SAAgCvE,EAAiB76H,GAC/E,IAAIq/H,EAAU3qI,KACVsqD,EAAqB,CAAC,EAC1BA,EAAmBy3E,SAAW/hI,KAAK/E,SACnCqvD,EAAmB+7E,OAASF,EAC5B,IAAInE,EAAU,CACZI,cAAe,kBACfgC,mBAAoB95E,EACpB7H,SAAUziD,KAAKshI,KAAKG,cACpBF,QAASvhI,KAAKuhI,SAEZvhI,KAAKkiI,uBACPF,EAAQG,gBAAkBniI,KAAKkiI,sBAEjCliI,KAAK2mC,OAAO7rC,QAAQ,yBAA0BknI,GAAS,SAAU7lI,EAAK/B,GACpE,OAAI+B,EACKmP,EAASi8B,UAAUprC,IAE5BwuI,EAAQpJ,QAAUnnI,EAAKmnI,QACC,YAApB4E,EACK76H,EAASs7C,YAAYxsD,EAAKgoI,cAAehoI,EAAKkoI,qBAE/B,uBAApB6D,EACK76H,EAAS47C,aAAa9sD,EAAKgoI,cAAehoI,EAAKkoI,0BADxD,EAIF,GACF,EAMAp4G,EAAOg4G,mBAAqB,WAC1B,IAAIZ,EAAOthI,KAAKshI,KAChB,OAAOA,EAAKY,mBAAmBliI,KAAK/E,SACtC,EAOAivB,EAAOu/B,uBAAyB,SAAgCn+C,GAC9D,IAAIs/H,EAAU5qI,KACkB,MAA1BA,KAAKwhI,mBAA6BxhI,KAAKwhI,kBAAkBzB,UAW7D//H,KAAK2mC,OAAO7rC,QAAQ,yBAA0B,CAC5C60D,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,gBACpD,SAAUr1C,EAAK/B,GAChB,OAAI+B,EACKmP,EAASi8B,UAAUprC,GAErBmP,EAASo+C,oBAAoBtvD,EAAKywI,WAC3C,IAjBA7qI,KAAK2mC,OAAO7rC,QAAQ,yBAA0B,CAC5CymI,QAASvhI,KAAKuhI,UACb,SAAUplI,EAAK/B,GAChB,OAAI+B,EACKmP,EAASi8B,UAAUprC,IAE5ByuI,EAAQrJ,QAAUnnI,EAAKmnI,QAChBj2H,EAASo+C,oBAAoBtvD,EAAKywI,YAC3C,GAWJ,EASA3gH,EAAO4/B,oBAAsB,SAA6BghF,EAAUC,EAAoBz/H,GACtF,IAAI0/H,EAAUhrI,KACkB,MAA1BA,KAAKwhI,mBAA6BxhI,KAAKwhI,kBAAkBzB,UAgC7D//H,KAAK2mC,OAAO7rC,QAAQ,sBAAuB,CACzC60D,YAAa3vD,KAAKwhI,kBAAkBjwF,iBAAiBC,cACrDy5F,SAAUH,EACVI,mBAAoBH,IACnB,SAAU5uI,EAAK/B,GAChB,OAAI+B,EACKmP,EAASi8B,UAAUprC,GAErBmP,EAASg8B,UAAUltC,EAC5B,IAxCA4F,KAAK2mC,OAAO7rC,QAAQ,sBAAuB,CACzCymI,QAASvhI,KAAKuhI,QACd0J,SAAUH,EACVI,mBAAoBH,IACnB,SAAU5uI,EAAK/B,GAChB,GAAI+B,EACF,OAAOmP,EAASi8B,UAAUprC,GAE5B6uI,EAAQzJ,QAAUnnI,EAAKmnI,QACvB,IAAIj3E,EAAqB,CAAC,EAC1BA,EAAmBy3E,SAAWiJ,EAAQ/vI,SACtC,IAAI+mI,EAAU,CACZI,cAAe,YACf3/E,SAAUuoF,EAAQ1J,KAAKG,cACvB2C,mBAAoB95E,EACpBi3E,QAASyJ,EAAQzJ,SAEfyJ,EAAQ9I,uBACVF,EAAQG,gBAAkB6I,EAAQ9I,sBAEpC8I,EAAQrkG,OAAO7rC,QAAQ,yBAA0BknI,GAAS,SAAUmJ,EAAYC,GAC9E,OAAID,EACK7/H,EAASi8B,UAAU4jG,IAE5BH,EAAQxJ,kBAAoBwJ,EAAQzI,sBAAsB6I,EAAY5I,sBACtEwI,EAAQpJ,cACDt2H,EAASg8B,UAAU0jG,EAAQxJ,mBACpC,GAEF,GAaJ,EACOH,CACT,CA9sD+B,GC9DpBv1H,I,SAAU,SCIjByyE,GAAkB,eAAiBzyE,GAC5BiQ,GAAW,CACpBhS,UAAWw0E,GAAkB,MAC7B5xE,QAAS,GACT7C,UAAW,KACXkS,eAAe,GAEjB,GAAyB,qBAAdlS,WAA6BA,UAAU6C,QAGhD,OAFAoP,GAASpP,QAAU7C,UAAU6C,SAAW,GACxCoP,GAASjS,UAAYA,WAAa,KAC1BA,UAAU6C,SAChB,IAAK,cACHoP,GAAShS,UAAYw0E,GAAkB,gBACvCxiE,GAASC,eAAgB,EACzB,MACF,QACED,GAAShS,UAAYw0E,GAAkB,MACvCxiE,GAASC,eAAgB,EACzB,MAGC,IAAIqvH,GAAe,WACxB,OAAOtvH,GAAShS,SAClB,EC1BA,SAASuhI,KAAa,CAEtBA,GAAUnsI,UAAU4K,UAAYshI,KACzB,IAaP,MClBA,SAAS,GAAenoH,EAAUC,GAAcD,EAAS/jB,UAAY4G,OAAO1G,OAAO8jB,EAAWhkB,WAAY+jB,EAAS/jB,UAAUiN,YAAc8W,EAAU,GAAgBA,EAAUC,EAAa,CAC5L,SAASe,GAAiBC,GAAS,IAAIC,EAAwB,oBAARC,IAAqB,IAAIA,SAAQ3mB,EAA8nB,OAAnnBwmB,GAAmB,SAA0BC,GAAS,GAAc,OAAVA,IAAmBG,GAAkBH,GAAQ,OAAOA,EAAO,GAAqB,oBAAVA,EAAwB,MAAM,IAAI/jB,UAAU,sDAAyD,GAAsB,qBAAXgkB,EAAwB,CAAE,GAAIA,EAAO/G,IAAI8G,GAAQ,OAAOC,EAAO5H,IAAI2H,GAAQC,EAAO3G,IAAI0G,EAAOI,EAAU,CAAE,SAASA,IAAY,OAAOC,GAAWL,EAAOlc,UAAWyb,GAAgB1jB,MAAMoM,YAAc,CAAkJ,OAAhJmY,EAAQplB,UAAY4G,OAAO1G,OAAO8kB,EAAMhlB,UAAW,CAAEiN,YAAa,CAAElQ,MAAOqoB,EAAStC,YAAY,EAAOO,UAAU,EAAMD,cAAc,KAAkB,GAAgBgC,EAASJ,EAAQ,EAAUD,GAAiBC,EAAQ,CACtvB,SAASK,GAAWC,EAAQzc,EAAMmc,GAA4V,OAAhTK,GAA/BhB,KAA4CI,QAAQC,UAAUjlB,OAA8B,SAAoB6lB,EAAQzc,EAAMmc,GAAS,IAAIpX,EAAI,CAAC,MAAOA,EAAE7L,KAAK0B,MAAMmK,EAAG/E,GAAO,IAAI0a,EAAcgC,SAAS9lB,KAAKgE,MAAM6hB,EAAQ1X,GAAQ7N,EAAW,IAAIwjB,EAAsE,OAAnDyB,GAAO,GAAgBjlB,EAAUilB,EAAMhlB,WAAmBD,CAAU,EAAYslB,GAAW5hB,MAAM,KAAMqF,UAAY,CACxa,SAASub,KAA8B,GAAuB,qBAAZI,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUc,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFpQ,QAAQrV,UAAUosI,QAAQnnI,KAAKwf,QAAQC,UAAUrP,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOvN,GAAK,OAAO,CAAO,CAAE,CACxU,SAASqd,GAAkB5gB,GAAM,OAAgE,IAAzDghB,SAASzkB,SAASmE,KAAKV,GAAI7G,QAAQ,gBAAyB,CACpG,SAAS,GAAgB8V,EAAGzC,GAA6I,OAAxI,GAAkBnK,OAAOiK,eAAiBjK,OAAOiK,eAAepR,OAAS,SAAyB+T,EAAGzC,GAAsB,OAAjByC,EAAE1C,UAAYC,EAAUyC,CAAG,EAAU,GAAgBA,EAAGzC,EAAI,CACvM,SAASwT,GAAgB/Q,GAA+J,OAA1J+Q,GAAkB3d,OAAOiK,eAAiBjK,OAAOwG,eAAe3N,OAAS,SAAyB+T,GAAK,OAAOA,EAAE1C,WAAalK,OAAOwG,eAAeoG,EAAI,EAAU+Q,GAAgB/Q,EAAI,CAGnN,IAAI64H,GAA4B,SAAU1mH,GAExC,SAAS0mH,EAAazrI,EAASiE,EAAMW,EAAM8yD,GACzC,IAAInnD,EAKJ,OAJAA,EAAQwU,EAAO1gB,KAAKpE,KAAMD,IAAYC,KACtCsQ,EAAMtM,KAAOA,EACbsM,EAAM3L,KAAOA,EACb2L,EAAMmnD,WAAaA,EACZnnD,CACT,CACA,OATA,GAAek7H,EAAc1mH,GAStB0mH,CACT,CAXgC,CAWhBtnH,GAAiBjgB,QAE7By7D,GAAsB,WAOxB,SAASA,EAAOhpD,EAAQoF,EAAU2vH,GAChCzrI,KAAK8b,SAAWA,GAAY,uBAAyBpF,EAAS,kBAC9D,IAAIyK,EAAOsqH,GAAgB,CAAC,EAC1BhvH,EAAc0E,EAAK1E,YACrBzc,KAAKyrI,aAAehvH,EAAc,CAChCA,YAAaA,GACX,CAAC,CACP,CASA,IAAIyN,EAASw1C,EAAOvgE,UAsGpB,OArGA+qB,EAAOs9G,iBAAmB,SAA0B11G,EAAWv1B,GAC7D,IAAIg4B,EAASv0B,KACb,OAAO,IAAIjG,SAAQ,SAAUC,EAASC,GACpCs6B,EAAOz5B,QAAQg3B,EAAWv1B,GAAQ,SAAUJ,EAAK/B,GAC3C+B,EACFlC,EAAO,IAAIuxI,GAAarvI,EAAI4D,QAAS5D,EAAI6H,KAAM7H,EAAIwI,KAAMxI,EAAIs7D,aAE7Dz9D,EAAQI,EAEZ,GACF,GACF,EACA8vB,EAAOugH,iBAAmB,SAA0B34G,EAAWv1B,EAAQ+O,GACrE,IAAImxH,EAASz8H,KACT0rI,EAAsB,IAC1B7rD,IAAyB,SAAU3vE,GACjC,OAAO,IAAInW,SAAQ,SAAU4zC,EAAKC,GAChC6uF,EAAO3hI,QAAQg3B,EAAW5hB,GAAG,SAAUhN,EAAO2I,GACxC3I,EACF0qC,EAAI1qC,GAEJyqC,EAAI9hC,EAER,GACF,GACF,GAAG,CAACtP,GAASmvI,GAAqBlrI,MAAK,SAAUqL,GAC/C,OAAOP,EAAS,KAAMO,EACxB,IAAG,UAAS,SAAU3I,GACpB,OAAOoI,EAASpI,EAClB,GACF,EAUAgnB,EAAOpvB,QAAU,SAAiBg3B,EAAWv1B,EAAQ+O,GACnD,IAYIxP,EAZAxB,EAAU,CACZ,eAAgB,6BAChB,eAAgB,qCAAuCw3B,EACvD,mBAAoB,GAAU3yB,UAAU4K,UACxC,gBAAiB,YAEfxG,EAAUwC,OAAOkJ,OAAO,CAAC,EAAGjP,KAAKyrI,aAAc,CACjDnxI,QAASA,EACT+B,OAAQ,OACRomE,KAAM,OACNtqD,KAAMrR,KAAKI,UAAU3K,KAIvB6gD,MAAMp9C,KAAK8b,SAAUvY,GAAS/C,MAAK,SAAUm3D,GAE3C,OADA77D,EAAW67D,EACJA,CACT,IAAG,SAAUx7D,GAGX,GAAIA,aAAeiE,UACjB,MAAM,IAAI6D,MAAM,iBAElB,MAAM9H,CACR,IAAGqE,MAAK,SAAUm3D,GAChB,OAAOA,EAAKta,OAAO,UAAS,WAC1B,MAAO,CAAC,CACV,GACF,IAAG78C,MAAK,SAAUpG,GAEhB,GAAI0B,EAAS6vI,GAAI,OAAOrgI,EAAS,KAAMlR,GACvCwxI,EAIA,IAAI5nI,GAAQ5J,EAAKyxI,QAAUzxI,EAAK4J,MAAMmH,MAAM,KAAKuP,MAC7CxX,EAAQ,IAAIe,MAAM7J,EAAK2F,SAAW3F,EAAKw/D,SAAW,MAGtD,OAFA12D,EAAMyB,KAAOX,EACbd,EAAMc,KAAOA,EACNsH,EAASpI,EAClB,IAAG,UAAS,SAAU/G,GAEpB,GAAIL,GAAYA,EAASxB,SAAWwB,EAASxB,QAAQkiB,IAAI,oBACvD,IACE,IAAIxY,EAAOlI,EAASxB,QAAQkiB,IAAI,oBAAoBrR,MAAM,KAAK,GAC3DjI,EAAQ,IAAIe,MAAMnI,EAASE,OAASF,EAASE,OAAOiE,WAAa,MAIrE,OAHAiD,EAAMc,KAAOA,EACbd,EAAMyB,KAAOX,EACbd,EAAMu0D,WAAa37D,EAASE,OACrBsP,EAASpI,EAClB,CAAE,MAAO4oI,GACP,OAAOxgI,EAASnP,EAClB,MAESA,aAAe8H,OAAyB,kBAAhB9H,EAAI4D,UACrC5D,EAAI6H,KAAO,gBAEb,OAAOsH,EAASnP,EAClB,GACF,EACOujE,CACT,CA9H0B,GAgItB3wD,GAAS,CACXqI,MAAO,WAEP,GAgBE2nE,GAAsB,SAA6BnyE,GACrD,IAAI9O,EAAM,eACV,OAAO8O,GAAOA,EAAI9O,EACpB,EACA,SAASupE,GAAM2X,EAAiBh3E,EAAMi3E,EAASE,GAI7C,QAHgB,IAAZA,IACFA,EAAU,GAEmB,oBAApBH,EACT,MAAM/6E,MAAM,sCAGd,OADA8K,GAAOqI,MAAM4nE,EAAgBr6E,KAAO,aAAew6E,EAAU,eAAiBr4E,KAAKI,UAAUc,IACtFg3E,EAAgBp8E,WAAM,EAAQoF,GAAM,UAAS,SAAU7L,GAE5D,GADA4S,GAAOqI,MAAM,YAAc4nE,EAAgBr6E,KAAMxI,GAC7C4iF,GAAoB5iF,GAEtB,MADA4S,GAAOqI,MAAM4nE,EAAgBr6E,KAAO,uBAAwBxI,GACtDA,EAER,IAAI4vI,EAAU9sD,EAAQE,EAASn3E,EAAM7L,GAErC,GADA4S,GAAOqI,MAAM4nE,EAAgBr6E,KAAO,gBAAkBonI,EAAU,QAChD,IAAZA,EACF,OAAO,IAAIhyI,SAAQ,SAAU4zC,GAC3B,OAAO7wC,WAAW6wC,EAAKo+F,EACzB,IAAGvrI,MAAK,WACN,OAAO6mE,GAAM2X,EAAiBh3E,EAAMi3E,EAASE,EAAU,EACzD,IAEA,MAAMhjF,CAEV,GACF,CACA,SAASqjF,GAAgBC,GACvB,IAAIC,EAAe,IACfC,EAAgB,IACpB,OAAO,SAAUR,GACf,IAAIS,EAAQrxE,KAAK86D,IAAI,EAAG8V,GAAWO,EAAeC,EAAgBpxE,KAAKmwC,SACvE,QAAOkhC,EAAQH,IAAqBG,CACtC,CACF,CACA,IAAI/7C,GAAe,IACnB,SAASg8C,GAAyBb,EAAiBh3E,EAAMy3E,GAIvD,YAHmB,IAAfA,IACFA,EAAa57C,IAERwjC,GAAM2X,EAAiBh3E,EAAMw3E,GAAgBC,GACtD;;;;;AC9MA,IAAIusD,GAA0B,GAG1BC,GAA+B,WAejC,SAASA,EAAgB7xI,EAAMunD,GAC7B,IAAIxgC,EAAO/mB,GAAQ,CAAC,EAClBooD,EAAarhC,EAAKqhC,WAClBC,EAAWthC,EAAKshC,SAChB3mC,EAAWqF,EAAKrF,SAChB2vH,EAAetqH,EAAKsqH,aACpBS,EAAqC/qH,EAAK+qH,mCAC5C,IAAK1pF,IAAeC,EAClB,MAAM,IAAIx+C,MAAM,8CAElB,GAAIu+C,EAAW5hD,OAASorI,KAA4B,wBAAwBtiI,KAAK84C,GAC/E,MAAM,IAAIv+C,MAAM,8BAElB,IAAIyS,EAAS8rC,EAAWr3C,MAAM,KAAK,GACnCnL,KAAKw2C,WAAagM,EAClBxiD,KAAK8kC,SAAW2d,EAChBziD,KAAK2mC,OAAS,IAAI+4B,GAAOhpD,EAAQoF,EAAU2vH,GAM3CzrI,KAAKmsI,oCAA4E,IAAvCD,EAC1ClsI,KAAK0N,QAAUtT,EAAK68C,UAAW,IAAItpC,IAAgBC,aAC/C+zC,IACF3hD,KAAK2hD,2BAA6BA,EAEtC,CAKA,IAAIz3B,EAAS+hH,EAAgB9sI,UAiH7B,OAhHA+qB,EAAOkiH,cAAgB,WACrB,OAAOpsI,KAAKw2C,UACd,EAKAtsB,EAAO04G,gBAAkB,WACvB,OAAO5iI,KAAKosI,gBAAgBjhI,MAAM,KAAK,EACzC,EAKA+e,EAAOu3G,YAAc,WACnB,OAAOzhI,KAAK8kC,QACd,EAkBA5a,EAAOk5B,OAAS,SAAgBnoD,EAAUC,EAAU8rD,EAAgBvD,EAAgBn4C,EAAU82C,GAC5F,IAAI9xC,EAAQtQ,KACRgiI,EAAU,CACZv/E,SAAUziD,KAAK8kC,SACf4f,SAAUzpD,EACV0pD,SAAUzpD,EACV2xD,eAAgB7F,EAChBpC,eAAgBnB,EAChBoB,eAAgBzC,GAEdpiD,KAAKkiI,mBAAmBjnI,KAC1B+mI,EAAQG,gBAAkBniI,KAAKkiI,mBAAmBjnI,IAEpD+E,KAAK2mC,OAAO7rC,QAAQ,SAAUknI,GAAS,SAAU7lI,EAAK/B,GACpD,GAAI+B,EACF,OAAOmP,EAASnP,EAAK,MAEvB,IAAIkwI,EAAc,CAChB3nF,SAAUzpD,EACVk1D,KAAM7/C,EACN2mC,QAAS3mC,EAAM5C,SAEb4+H,EAAa,CACf9qF,KAAM,IAAI6/E,GAAYgL,GACtBvnF,cAAe1qD,EAAKmyI,cACpBC,QAASpyI,EAAKqyI,QACdC,oBAAqBtyI,EAAKuyI,qBAE5B,OAAOrhI,EAAS,KAAMghI,EACxB,GACF,EAOApiH,EAAO8gC,eAAiB,WACtB,IAAI89E,EAAc,kCAAoC9oI,KAAK8kC,SAAW,gBAClE8nG,EAAe5sI,KAAK0N,QAAQkB,QAAQk6H,GACxC,GAAI8D,EAAc,CAChB,IAAIP,EAAc,CAChB3nF,SAAUkoF,EACVz8E,KAAMnwD,KACNi3C,QAASj3C,KAAK0N,SAEhB,OAAO,IAAI2zH,GAAYgL,EACzB,CACA,OAAO,IACT,EAUAniH,EAAOg4G,mBAAqB,SAA4BjnI,GACtD,GAAiD,qBAAtC4xI,kCAAX,CAIA,IAAIC,EAAyCD,kCAG7C,GAAI7sI,KAAKmsI,mCAAoC,CAC3C,IAAIY,EAAuBD,EAAuCE,QAAQ/xI,EAAU+E,KAAKw2C,WAAYx2C,KAAK8kC,UAC1G,GAAIioG,EAAsB,CACxB,IAAIE,EAAkB,CACpBC,YAAaH,GAEf,OAAOE,CACT,CACF,CACA,MAAO,CAAC,CAdR,CAeF,EACOhB,CACT,CAjKmC,G,YCR/BkB,GAA6B,WAU/B,SAASA,EAAc/yI,GACrB,IAAIA,EAAK0O,OAGP,MAAM,IAAI7E,MAAM,qDAiBlB,GAnBEjE,KAAK8I,OAAS1O,EAAK0O,OAIjB1O,EAAKyO,KACP7I,KAAK6I,KAAOzO,EAAKyO,KAEjB7I,KAAK6I,KAAO,IAEV9C,OAAO5G,UAAU0N,eAAezI,KAAKhK,EAAM,WAC7C4F,KAAK4I,QAAUxO,EAAKwO,QAEpB5I,KAAK4I,QAAU,IAEb7C,OAAO5G,UAAU0N,eAAezI,KAAKhK,EAAM,UAC7C4F,KAAK+I,OAAS3O,EAAK2O,OAEnB/I,KAAK+I,QAAS,EAEZhD,OAAO5G,UAAU0N,eAAezI,KAAKhK,EAAM,YAAa,CAC1D,IAAK,CAAC,SAAU,MAAO,QAAQqa,SAASra,EAAKk/C,UAC3C,MAAM,IAAIr1C,MAAM,0EAElB,GAAsB,SAAlB7J,EAAKk/C,WAAwBt5C,KAAK+I,OACpC,MAAM,IAAI9E,MAAM,6EAElBjE,KAAKs5C,SAAWl/C,EAAKk/C,QACvB,MACEt5C,KAAKs5C,SAAW,IAEpB,CAQA,IAAIpvB,EAASijH,EAAchuI,UAwD3B,OAvDA+qB,EAAOrb,QAAU,SAAiB/Q,EAAK5B,GACrC,IAAIqH,EAAU,CACZsF,KAAM7I,KAAK6I,KACXD,QAAS5I,KAAK4I,QACdE,OAAQ9I,KAAK8I,OACbC,OAAQ/I,KAAK+I,QAMf,OAJI/I,KAAKs5C,WACP/1C,EAAQ+1C,SAAWt5C,KAAKs5C,UAE1B,OAAYx7C,EAAK5B,EAAOqH,GACjB,OAAYzF,EACrB,EAQAosB,EAAOtb,QAAU,SAAiB9Q,GAChC,OAAO,OAAYA,EACrB,EAOAosB,EAAOpb,WAAa,SAAoBhR,GACtC,IAAIyF,EAAU,CACZsF,KAAM7I,KAAK6I,KACXD,QAAS5I,KAAK4I,QACdE,OAAQ9I,KAAK8I,OACbC,OAAQ/I,KAAK+I,QAKf,OAHI/I,KAAKs5C,WACP/1C,EAAQ+1C,SAAWt5C,KAAKs5C,UAEnB,UAAex7C,EAAKyF,EAC7B,EAOA2mB,EAAOvb,MAAQ,WAGb,IAFA,IAAIrV,EAAU,SACV8zI,EAAUrnI,OAAOC,KAAK1M,GAASsH,OAC1BO,EAAQ,EAAGA,EAAQisI,IAAWjsI,EACrCnB,KAAK8O,WAAW/I,OAAOC,KAAK1M,GAAS6H,IAEvC,MAAO,CAAC,CACV,EACOgsI,CACT,CA3GiC,E,wBCHjCj0I,EAAOC,QAAU,EAAjB,M,qCCEA,IAAIC,EAAQ,EAAQ,MAChBC,EAAS,EAAQ,MACjBC,EAAU,EAAQ,OAClBC,EAAW,EAAQ,OACnBC,EAAgB,EAAQ,OACxBC,EAAe,EAAQ,OACvBC,EAAkB,EAAQ,OAC1B2zI,EAAuB,EAAQ,OAC/BC,EAAa,EAAQ,MACrBC,EAAgB,EAAQ,OACxBC,EAAgB,EAAQ,OAE5Bt0I,EAAOC,QAAU,SAAoBW,GACnC,OAAO,IAAIC,SAAQ,SAA4BC,EAASC,GACtD,IAGIC,EAHAC,EAAcL,EAAOM,KACrBC,EAAiBP,EAAOQ,QACxBC,EAAeT,EAAOS,aAE1B,SAASC,IACHV,EAAOW,aACTX,EAAOW,YAAYC,YAAYR,GAG7BJ,EAAOa,QACTb,EAAOa,OAAOC,oBAAoB,QAASV,EAE/C,CAEId,EAAMyB,WAAWV,IAAgBf,EAAMiE,+BAClChD,EAAe,gBAGxB,IAAIS,EAAU,IAAIC,eAGlB,GAAIjB,EAAOkB,KAAM,CACf,IAAIC,EAAWnB,EAAOkB,KAAKC,UAAY,GACnCC,EAAWpB,EAAOkB,KAAKE,SAAWC,SAASC,mBAAmBtB,EAAOkB,KAAKE,WAAa,GAC3Fb,EAAegB,cAAgB,SAAWC,KAAKL,EAAW,IAAMC,EAClE,CAEA,IAAIK,EAAW/B,EAAcM,EAAO0B,QAAS1B,EAAO2B,KAOpD,SAASC,IACP,GAAKZ,EAAL,CAIA,IAAIa,EAAkB,0BAA2Bb,EAAUrB,EAAaqB,EAAQc,yBAA2B,KACvGC,EAAgBtB,GAAiC,SAAjBA,GAA6C,SAAjBA,EACvCO,EAAQgB,SAA/BhB,EAAQiB,aACND,EAAW,CACb1B,KAAMyB,EACNG,OAAQlB,EAAQkB,OAChBC,WAAYnB,EAAQmB,WACpB3B,QAASqB,EACT7B,OAAQA,EACRgB,QAASA,GAGXzB,GAAO,SAAkB6C,GACvBlC,EAAQkC,GACR1B,GACF,IAAG,SAAiB2B,GAClBlC,EAAOkC,GACP3B,GACF,GAAGsB,GAGHhB,EAAU,IAvBV,CAwBF,CAmEA,GAnGAA,EAAQsB,KAAKtC,EAAOuC,OAAOC,cAAe/C,EAASgC,EAAUzB,EAAOyC,OAAQzC,EAAO0C,mBAAmB,GAGtG1B,EAAQ2B,QAAU3C,EAAO2C,QA+BrB,cAAe3B,EAEjBA,EAAQY,UAAYA,EAGpBZ,EAAQ4B,mBAAqB,WACtB5B,GAAkC,IAAvBA,EAAQ6B,aAQD,IAAnB7B,EAAQkB,QAAkBlB,EAAQ8B,aAAwD,IAAzC9B,EAAQ8B,YAAYC,QAAQ,WAKjFC,WAAWpB,EACb,EAIFZ,EAAQiC,QAAU,WACXjC,IAILb,EAAO,IAAIqzI,EAAW,kBAAmBA,EAAWG,aAAc3zI,EAAQgB,IAG1EA,EAAU,KACZ,EAGAA,EAAQkC,QAAU,WAGhB/C,EAAO,IAAIqzI,EAAW,gBAAiBA,EAAWI,YAAa5zI,EAAQgB,EAASA,IAGhFA,EAAU,IACZ,EAGAA,EAAQmC,UAAY,WAClB,IAAIC,EAAsBpD,EAAO2C,QAAU,cAAgB3C,EAAO2C,QAAU,cAAgB,mBACxFU,EAAerD,EAAOqD,cAAgBkwI,EACtCvzI,EAAOoD,sBACTA,EAAsBpD,EAAOoD,qBAE/BjD,EAAO,IAAIqzI,EACTpwI,EACAC,EAAaC,oBAAsBkwI,EAAWK,UAAYL,EAAWG,aACrE3zI,EACAgB,IAGFA,EAAU,IACZ,EAKI1B,EAAMiE,uBAAwB,CAEhC,IAAIC,GAAaxD,EAAOyD,iBAAmB7D,EAAgB6B,KAAczB,EAAO0D,eAC9ElE,EAAQmE,KAAK3D,EAAO0D,qBACpBE,EAEEJ,IACFjD,EAAeP,EAAO6D,gBAAkBL,EAE5C,CAGI,qBAAsBxC,GACxB1B,EAAMwE,QAAQvD,GAAgB,SAA0BwD,EAAKC,GAChC,qBAAhB3D,GAAqD,iBAAtB2D,EAAIC,qBAErC1D,EAAeyD,GAGtBhD,EAAQkD,iBAAiBF,EAAKD,EAElC,IAIGzE,EAAM6E,YAAYnE,EAAOyD,mBAC5BzC,EAAQyC,kBAAoBzD,EAAOyD,iBAIjChD,GAAiC,SAAjBA,IAClBO,EAAQP,aAAeT,EAAOS,cAIS,oBAA9BT,EAAOoE,oBAChBpD,EAAQqD,iBAAiB,WAAYrE,EAAOoE,oBAIP,oBAA5BpE,EAAOsE,kBAAmCtD,EAAQuD,QAC3DvD,EAAQuD,OAAOF,iBAAiB,WAAYrE,EAAOsE,mBAGjDtE,EAAOW,aAAeX,EAAOa,UAG/BT,EAAa,SAASoE,GACfxD,IAGLb,GAAQqE,GAAWA,GAAUA,EAAOC,KAAQ,IAAIgvI,EAAkBjvI,GAClExD,EAAQ0D,QACR1D,EAAU,KACZ,EAEAhB,EAAOW,aAAeX,EAAOW,YAAYgE,UAAUvE,GAC/CJ,EAAOa,SACTb,EAAOa,OAAO+D,QAAUxE,IAAeJ,EAAOa,OAAOwD,iBAAiB,QAASjE,KAI9EC,IACHA,EAAc,MAGhB,IAAIkQ,EAAWmjI,EAAcjyI,GAEzB8O,IAA+D,IAAnD,CAAE,OAAQ,QAAS,QAASxN,QAAQwN,GAClDpQ,EAAO,IAAIqzI,EAAW,wBAA0BjjI,EAAW,IAAKijI,EAAWM,gBAAiB9zI,IAM9FgB,EAAQ6D,KAAKxE,EACf,GACF,C,qCC3NA,IAAIf,EAAQ,EAAQ,MAChBwF,EAAO,EAAQ,OACfC,EAAQ,EAAQ,OAChBC,EAAc,EAAQ,OACtBlF,EAAW,EAAQ,OAQvB,SAASmF,EAAeC,GACtB,IAAIC,EAAU,IAAIJ,EAAMG,GACpBE,EAAWN,EAAKC,EAAMM,UAAUrE,QAASmE,GAa7C,OAVA7F,EAAMgG,OAAOF,EAAUL,EAAMM,UAAWF,GAGxC7F,EAAMgG,OAAOF,EAAUD,GAGvBC,EAASG,OAAS,SAAgBC,GAChC,OAAOP,EAAeD,EAAYE,EAAeM,GACnD,EAEOJ,CACT,CAGA,IAAIK,EAAQR,EAAenF,GAG3B2F,EAAMV,MAAQA,EAGdU,EAAMguI,cAAgB,EAAQ,OAC9BhuI,EAAMC,YAAc,EAAQ,MAC5BD,EAAME,SAAW,EAAQ,OACzBF,EAAMG,QAAU,iBAChBH,EAAMsuI,WAAa,EAAQ,OAG3BtuI,EAAM+tI,WAAa,EAAQ,MAG3B/tI,EAAM1F,OAAS0F,EAAMguI,cAGrBhuI,EAAMI,IAAM,SAAaC,GACvB,OAAO7F,QAAQ4F,IAAIC,EACrB,EACAL,EAAMM,OAAS,EAAQ,OAGvBN,EAAMO,aAAe,EAAQ,OAE7B5G,EAAOC,QAAUoG,EAGjBrG,EAAOC,QAAP,WAAyBoG,C,oCC7DzB,IAAIguI,EAAgB,EAAQ,OAQ5B,SAAS/tI,EAAYW,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAIC,UAAU,gCAGtB,IAAIC,EAEJL,KAAKM,QAAU,IAAIvG,SAAQ,SAAyBC,GAClDqG,EAAiBrG,CACnB,IAEA,IAAIuG,EAAQP,KAGZA,KAAKM,QAAQE,MAAK,SAASlC,GACzB,GAAKiC,EAAME,WAAX,CAEA,IAAIC,EACAC,EAAIJ,EAAME,WAAWG,OAEzB,IAAKF,EAAI,EAAGA,EAAIC,EAAGD,IACjBH,EAAME,WAAWC,GAAGpC,GAEtBiC,EAAME,WAAa,IARU,CAS/B,IAGAT,KAAKM,QAAQE,KAAO,SAASK,GAC3B,IAAIC,EAEAR,EAAU,IAAIvG,SAAQ,SAASC,GACjCuG,EAAM9B,UAAUzE,GAChB8G,EAAW9G,CACb,IAAGwG,KAAKK,GAMR,OAJAP,EAAQhC,OAAS,WACfiC,EAAM7F,YAAYoG,EACpB,EAEOR,CACT,EAEAH,GAAS,SAAgBJ,GACnBQ,EAAMQ,SAKVR,EAAMQ,OAAS,IAAIwsI,EAAcxtI,GACjCM,EAAeE,EAAMQ,QACvB,GACF,CAKAvB,EAAYL,UAAU6B,iBAAmB,WACvC,GAAIhB,KAAKe,OACP,MAAMf,KAAKe,MAEf,EAMAvB,EAAYL,UAAUV,UAAY,SAAmBwC,GAC/CjB,KAAKe,OACPE,EAASjB,KAAKe,QAIZf,KAAKS,WACPT,KAAKS,WAAWS,KAAKD,GAErBjB,KAAKS,WAAa,CAACQ,EAEvB,EAMAzB,EAAYL,UAAUzE,YAAc,SAAqBuG,GACvD,GAAKjB,KAAKS,WAAV,CAGA,IAAIU,EAAQnB,KAAKS,WAAW5D,QAAQoE,IACrB,IAAXE,GACFnB,KAAKS,WAAWW,OAAOD,EAAO,EAHhC,CAKF,EAMA3B,EAAY6B,OAAS,WACnB,IAAI/C,EACAiC,EAAQ,IAAIf,GAAY,SAAkB8B,GAC5ChD,EAASgD,CACX,IACA,MAAO,CACLf,MAAOA,EACPjC,OAAQA,EAEZ,EAEApF,EAAOC,QAAUqG,C,qCCpHjB,IAAI8tI,EAAa,EAAQ,MACrBl0I,EAAQ,EAAQ,MAQpB,SAASm0I,EAAcxtI,GAErButI,EAAWlpI,KAAKpE,KAAiB,MAAXD,EAAkB,WAAaA,EAASutI,EAAWQ,cACzE9tI,KAAK2E,KAAO,eACd,CAEAvL,EAAM20I,SAASR,EAAeD,EAAY,CACxCptI,YAAY,IAGdhH,EAAOC,QAAUo0I,C,iCCnBjBr0I,EAAOC,QAAU,SAAkB+C,GACjC,SAAUA,IAASA,EAAMgE,WAC3B,C,qCCFA,IAAI9G,EAAQ,EAAQ,MAChBG,EAAW,EAAQ,OACnBgI,EAAqB,EAAQ,OAC7BC,EAAkB,EAAQ,OAC1B1C,EAAc,EAAQ,OACtBtF,EAAgB,EAAQ,OACxBiI,EAAY,EAAQ,OAEpBC,EAAaD,EAAUC,WAM3B,SAAS7C,EAAMS,GACbU,KAAKpG,SAAW0F,EAChBU,KAAK2B,aAAe,CAClB7G,QAAS,IAAIyG,EACbzF,SAAU,IAAIyF,EAElB,CAOA1C,EAAMM,UAAUrE,QAAU,SAAiB8G,EAAa9H,GAG3B,kBAAhB8H,GACT9H,EAASA,GAAU,CAAC,EACpBA,EAAO2B,IAAMmG,GAEb9H,EAAS8H,GAAe,CAAC,EAG3B9H,EAASgF,EAAYkB,KAAKpG,SAAUE,GAGhCA,EAAOuC,OACTvC,EAAOuC,OAASvC,EAAOuC,OAAO0B,cACrBiC,KAAKpG,SAASyC,OACvBvC,EAAOuC,OAAS2D,KAAKpG,SAASyC,OAAO0B,cAErCjE,EAAOuC,OAAS,MAGlB,IAAIc,EAAerD,EAAOqD,kBAELO,IAAjBP,GACFsE,EAAUI,cAAc1E,EAAc,CACpC2E,kBAAmBJ,EAAWvE,aAAauE,EAAWK,SACtDC,kBAAmBN,EAAWvE,aAAauE,EAAWK,SACtD3E,oBAAqBsE,EAAWvE,aAAauE,EAAWK,WACvD,GAIL,IAAIE,EAA0B,GAC1BC,GAAiC,EACrClC,KAAK2B,aAAa7G,QAAQ8C,SAAQ,SAAoCuE,GACjC,oBAAxBA,EAAYC,UAA0D,IAAhCD,EAAYC,QAAQtI,KAIrEoI,EAAiCA,GAAkCC,EAAYE,YAE/EJ,EAAwBK,QAAQH,EAAYI,UAAWJ,EAAYK,UACrE,IAEA,IAKIlC,EALAmC,EAA2B,GAO/B,GANAzC,KAAK2B,aAAa7F,SAAS8B,SAAQ,SAAkCuE,GACnEM,EAAyBvB,KAAKiB,EAAYI,UAAWJ,EAAYK,SACnE,KAIKN,EAAgC,CACnC,IAAIQ,EAAQ,CAAClB,OAAiB9D,GAE9BiF,MAAMxD,UAAUmD,QAAQM,MAAMF,EAAOT,GACrCS,EAAQA,EAAMG,OAAOJ,GAErBnC,EAAUvG,QAAQC,QAAQF,GAC1B,MAAO4I,EAAM9B,OACXN,EAAUA,EAAQE,KAAKkC,EAAMI,QAASJ,EAAMI,SAG9C,OAAOxC,CACT,CAGA,IAAIyC,EAAYjJ,EAChB,MAAOmI,EAAwBrB,OAAQ,CACrC,IAAIoC,EAAcf,EAAwBa,QACtCG,EAAahB,EAAwBa,QACzC,IACEC,EAAYC,EAAYD,EAC1B,CAAE,MAAOG,GACPD,EAAWC,GACX,KACF,CACF,CAEA,IACE5C,EAAUkB,EAAgBuB,EAC5B,CAAE,MAAOG,GACP,OAAOnJ,QAAQE,OAAOiJ,EACxB,CAEA,MAAOT,EAAyB7B,OAC9BN,EAAUA,EAAQE,KAAKiC,EAAyBK,QAASL,EAAyBK,SAGpF,OAAOxC,CACT,EAEAzB,EAAMM,UAAUgE,OAAS,SAAgBrJ,GACvCA,EAASgF,EAAYkB,KAAKpG,SAAUE,GACpC,IAAIyB,EAAW/B,EAAcM,EAAO0B,QAAS1B,EAAO2B,KACpD,OAAOlC,EAASgC,EAAUzB,EAAOyC,OAAQzC,EAAO0C,iBAClD,EAGApD,EAAMwE,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BvB,GAE/EwC,EAAMM,UAAU9C,GAAU,SAASZ,EAAK3B,GACtC,OAAOkG,KAAKlF,QAAQgE,EAAYhF,GAAU,CAAC,EAAG,CAC5CuC,OAAQA,EACRZ,IAAKA,EACLrB,MAAON,GAAU,CAAC,GAAGM,OAEzB,CACF,IAEAhB,EAAMwE,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BvB,GAGrE,SAAS2xI,EAAmBC,GAC1B,OAAO,SAAoBxyI,EAAKrB,EAAMN,GACpC,OAAOkG,KAAKlF,QAAQgE,EAAYhF,GAAU,CAAC,EAAG,CAC5CuC,OAAQA,EACR/B,QAAS2zI,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLxyI,IAAKA,EACLrB,KAAMA,IAEV,CACF,CAEAyE,EAAMM,UAAU9C,GAAU2xI,IAE1BnvI,EAAMM,UAAU9C,EAAS,QAAU2xI,GAAmB,EACxD,IAEA90I,EAAOC,QAAU0F,C,oCC7JjB,IAAIzF,EAAQ,EAAQ,MAYpB,SAASk0I,EAAWvtI,EAASiE,EAAMlK,EAAQgB,EAASgB,GAClDmI,MAAMG,KAAKpE,MACXA,KAAKD,QAAUA,EACfC,KAAK2E,KAAO,aACZX,IAAShE,KAAKgE,KAAOA,GACrBlK,IAAWkG,KAAKlG,OAASA,GACzBgB,IAAYkF,KAAKlF,QAAUA,GAC3BgB,IAAakE,KAAKlE,SAAWA,EAC/B,CAEA1C,EAAM20I,SAAST,EAAYrpI,MAAO,CAChCS,OAAQ,WACN,MAAO,CAEL3E,QAASC,KAAKD,QACd4E,KAAM3E,KAAK2E,KAEXC,YAAa5E,KAAK4E,YAClBC,OAAQ7E,KAAK6E,OAEbC,SAAU9E,KAAK8E,SACfC,WAAY/E,KAAK+E,WACjBC,aAAchF,KAAKgF,aACnBC,MAAOjF,KAAKiF,MAEZnL,OAAQkG,KAAKlG,OACbkK,KAAMhE,KAAKgE,KACXhI,OAAQgE,KAAKlE,UAAYkE,KAAKlE,SAASE,OAASgE,KAAKlE,SAASE,OAAS,KAE3E,IAGF,IAAImD,EAAYmuI,EAAWnuI,UACvB+uI,EAAc,CAAC,EAEnB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,gBAEAtwI,SAAQ,SAASoG,GACjBkqI,EAAYlqI,GAAQ,CAAC9H,MAAO8H,EAC9B,IAEA+B,OAAOsc,iBAAiBirH,EAAYY,GACpCnoI,OAAOuc,eAAenjB,EAAW,eAAgB,CAACjD,OAAO,IAGzDoxI,EAAW/sG,KAAO,SAASr9B,EAAOc,EAAMlK,EAAQgB,EAASgB,EAAUqyI,GACjE,IAAIC,EAAaroI,OAAO1G,OAAOF,GAY/B,OAVA/F,EAAMi1I,aAAanrI,EAAOkrI,GAAY,SAAgBxhI,GACpD,OAAOA,IAAQ3I,MAAM9E,SACvB,IAEAmuI,EAAWlpI,KAAKgqI,EAAYlrI,EAAMnD,QAASiE,EAAMlK,EAAQgB,EAASgB,GAElEsyI,EAAWzpI,KAAOzB,EAAMyB,KAExBwpI,GAAepoI,OAAOkJ,OAAOm/H,EAAYD,GAElCC,CACT,EAEAl1I,EAAOC,QAAUm0I,C,qCCnFjB,IAAIl0I,EAAQ,EAAQ,MAEpB,SAASmI,IACPvB,KAAKqD,SAAW,EAClB,CAUA9B,EAAmBpC,UAAUmE,IAAM,SAAaf,EAAWC,EAAUe,GAOnE,OANAvD,KAAKqD,SAASnC,KAAK,CACjBqB,UAAWA,EACXC,SAAUA,EACVH,cAAakB,GAAUA,EAAQlB,YAC/BD,QAASmB,EAAUA,EAAQnB,QAAU,OAEhCpC,KAAKqD,SAASzC,OAAS,CAChC,EAOAW,EAAmBpC,UAAUqE,MAAQ,SAAeC,GAC9CzD,KAAKqD,SAASI,KAChBzD,KAAKqD,SAASI,GAAM,KAExB,EAUAlC,EAAmBpC,UAAUvB,QAAU,SAAiB8F,GACtDtK,EAAMwE,QAAQoC,KAAKqD,UAAU,SAAwBM,GACzC,OAANA,GACFD,EAAGC,EAEP,GACF,EAEAzK,EAAOC,QAAUoI,C,qCCnDjB,IAAIqC,EAAgB,EAAQ,OACxBC,EAAc,EAAQ,OAW1B3K,EAAOC,QAAU,SAAuBqC,EAASsI,GAC/C,OAAItI,IAAYoI,EAAcE,GACrBD,EAAYrI,EAASsI,GAEvBA,CACT,C,qCCjBA,IAAI1K,EAAQ,EAAQ,MAChB8K,EAAgB,EAAQ,OACxBzE,EAAW,EAAQ,OACnB7F,EAAW,EAAQ,OACnB2zI,EAAgB,EAAQ,OAK5B,SAASppI,EAA6BrK,GAKpC,GAJIA,EAAOW,aACTX,EAAOW,YAAYuG,mBAGjBlH,EAAOa,QAAUb,EAAOa,OAAO+D,QACjC,MAAM,IAAI6uI,CAEd,CAQAr0I,EAAOC,QAAU,SAAyBW,GACxCqK,EAA6BrK,GAG7BA,EAAOQ,QAAUR,EAAOQ,SAAW,CAAC,EAGpCR,EAAOM,KAAO8J,EAAcE,KAC1BtK,EACAA,EAAOM,KACPN,EAAOQ,QACPR,EAAOuK,kBAITvK,EAAOQ,QAAUlB,EAAMkL,MACrBxK,EAAOQ,QAAQiK,QAAU,CAAC,EAC1BzK,EAAOQ,QAAQR,EAAOuC,SAAW,CAAC,EAClCvC,EAAOQ,SAGTlB,EAAMwE,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2BvB,UAClBvC,EAAOQ,QAAQ+B,EACxB,IAGF,IAAImI,EAAU1K,EAAO0K,SAAW5K,EAAS4K,QAEzC,OAAOA,EAAQ1K,GAAQ0G,MAAK,SAA6B1E,GAWvD,OAVAqI,EAA6BrK,GAG7BgC,EAAS1B,KAAO8J,EAAcE,KAC5BtK,EACAgC,EAAS1B,KACT0B,EAASxB,QACTR,EAAO2K,mBAGF3I,CACT,IAAG,SAA4BiF,GAe7B,OAdKtB,EAASsB,KACZoD,EAA6BrK,GAGzBiH,GAAUA,EAAOjF,WACnBiF,EAAOjF,SAAS1B,KAAO8J,EAAcE,KACnCtK,EACAiH,EAAOjF,SAAS1B,KAChB2G,EAAOjF,SAASxB,QAChBR,EAAO2K,qBAKN1K,QAAQE,OAAO8G,EACxB,GACF,C,qCCpFA,IAAI3H,EAAQ,EAAQ,MAUpBF,EAAOC,QAAU,SAAqB+L,EAASC,GAE7CA,EAAUA,GAAW,CAAC,EACtB,IAAIrL,EAAS,CAAC,EAEd,SAASsL,EAAeC,EAAQhE,GAC9B,OAAIjI,EAAMkM,cAAcD,IAAWjM,EAAMkM,cAAcjE,GAC9CjI,EAAMkL,MAAMe,EAAQhE,GAClBjI,EAAMkM,cAAcjE,GACtBjI,EAAMkL,MAAM,CAAC,EAAGjD,GACdjI,EAAMmM,QAAQlE,GAChBA,EAAOmE,QAETnE,CACT,CAGA,SAASoE,EAAoBC,GAC3B,OAAKtM,EAAM6E,YAAYkH,EAAQO,IAEnBtM,EAAM6E,YAAYiH,EAAQQ,SAA/B,EACEN,OAAe1H,EAAWwH,EAAQQ,IAFlCN,EAAeF,EAAQQ,GAAOP,EAAQO,GAIjD,CAGA,SAASC,EAAiBD,GACxB,IAAKtM,EAAM6E,YAAYkH,EAAQO,IAC7B,OAAON,OAAe1H,EAAWyH,EAAQO,GAE7C,CAGA,SAASE,EAAiBF,GACxB,OAAKtM,EAAM6E,YAAYkH,EAAQO,IAEnBtM,EAAM6E,YAAYiH,EAAQQ,SAA/B,EACEN,OAAe1H,EAAWwH,EAAQQ,IAFlCN,OAAe1H,EAAWyH,EAAQO,GAI7C,CAGA,SAASG,EAAgBH,GACvB,OAAIA,KAAQP,EACHC,EAAeF,EAAQQ,GAAOP,EAAQO,IACpCA,KAAQR,EACVE,OAAe1H,EAAWwH,EAAQQ,SADpC,CAGT,CAEA,IAAII,EAAW,CACb,IAAOH,EACP,OAAUA,EACV,KAAQA,EACR,QAAWC,EACX,iBAAoBA,EACpB,kBAAqBA,EACrB,iBAAoBA,EACpB,QAAWA,EACX,eAAkBA,EAClB,gBAAmBA,EACnB,QAAWA,EACX,aAAgBA,EAChB,eAAkBA,EAClB,eAAkBA,EAClB,iBAAoBA,EACpB,mBAAsBA,EACtB,WAAcA,EACd,iBAAoBA,EACpB,cAAiBA,EACjB,eAAkBA,EAClB,UAAaA,EACb,UAAaA,EACb,WAAcA,EACd,YAAeA,EACf,WAAcA,EACd,iBAAoBA,EACpB,eAAkBC,GASpB,OANAzM,EAAMwE,QAAQmI,OAAOC,KAAKd,GAASrC,OAAOkD,OAAOC,KAAKb,KAAW,SAA4BO,GAC3F,IAAIpB,EAAQwB,EAASJ,IAASD,EAC1BQ,EAAc3B,EAAMoB,GACvBtM,EAAM6E,YAAYgI,IAAgB3B,IAAUuB,IAAqB/L,EAAO4L,GAAQO,EACnF,IAEOnM,CACT,C,oCCjGA,IAAIwzI,EAAa,EAAQ,MASzBp0I,EAAOC,QAAU,SAAgBa,EAASC,EAAQ6B,GAChD,IAAIoK,EAAiBpK,EAAShC,OAAOoM,eAChCpK,EAASE,QAAWkK,IAAkBA,EAAepK,EAASE,QAGjE/B,EAAO,IAAIqzI,EACT,mCAAqCxxI,EAASE,OAC9C,CAACsxI,EAAWM,gBAAiBN,EAAWgB,kBAAkB//H,KAAKC,MAAM1S,EAASE,OAAS,KAAO,GAC9FF,EAAShC,OACTgC,EAAShB,QACTgB,IAPF9B,EAAQ8B,EAUZ,C,qCCtBA,IAAI1C,EAAQ,EAAQ,MAChBQ,EAAW,EAAQ,OAUvBV,EAAOC,QAAU,SAAuBiB,EAAME,EAAS6L,GACrD,IAAIlH,EAAUe,MAAQpG,EAMtB,OAJAR,EAAMwE,QAAQuI,GAAK,SAAmBzC,GACpCtJ,EAAOsJ,EAAGU,KAAKnF,EAAS7E,EAAME,EAChC,IAEOF,CACT,C,qCCnBA,IAAIhB,EAAQ,EAAQ,MAChBgN,EAAsB,EAAQ,MAC9BknI,EAAa,EAAQ,MACrBD,EAAuB,EAAQ,OAC/BQ,EAAa,EAAQ,OAErBxnI,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBhM,EAAS4B,IACjC9C,EAAM6E,YAAY3D,IAAYlB,EAAM6E,YAAY3D,EAAQ,mBAC3DA,EAAQ,gBAAkB4B,EAE9B,CAEA,SAASqK,IACP,IAAI/B,EAQJ,OAP8B,qBAAnBzJ,gBAGmB,qBAAZyL,SAAuE,qBAA5CT,OAAO5G,UAAUc,SAASmE,KAAKoC,YAD1EhC,EAAU,EAAQ,QAKbA,CACT,CAEA,SAASiC,EAAgBC,EAAUC,EAAQC,GACzC,GAAIxN,EAAMyN,SAASH,GACjB,IAEE,OADCC,GAAUG,KAAKC,OAAOL,GAChBtN,EAAM4N,KAAKN,EACpB,CAAE,MAAOO,GACP,GAAe,gBAAXA,EAAEtC,KACJ,MAAMsC,CAEV,CAGF,OAAQL,GAAWE,KAAKI,WAAWR,EACrC,CAEA,IAAI9M,EAAW,CAEbuD,aAAckwI,EAEd7oI,QAAS+B,IAETlC,iBAAkB,CAAC,SAA0BjK,EAAME,GAIjD,GAHA8L,EAAoB9L,EAAS,UAC7B8L,EAAoB9L,EAAS,gBAEzBlB,EAAMyB,WAAWT,IACnBhB,EAAM+N,cAAc/M,IACpBhB,EAAMgO,SAAShN,IACfhB,EAAMiO,SAASjN,IACfhB,EAAMkO,OAAOlN,IACbhB,EAAMmO,OAAOnN,GAEb,OAAOA,EAET,GAAIhB,EAAMoO,kBAAkBpN,GAC1B,OAAOA,EAAKqN,OAEd,GAAIrO,EAAMsO,kBAAkBtN,GAE1B,OADAkM,EAAsBhM,EAAS,mDACxBF,EAAK6F,WAGd,IAGIsuI,EAHAC,EAAkBp1I,EAAMuO,SAASvN,GACjCuhF,EAAcrhF,GAAWA,EAAQ,gBAIrC,IAAKi0I,EAAan1I,EAAMm1I,WAAWn0I,KAAWo0I,GAAmC,wBAAhB7yD,EAAwC,CACvG,IAAI8yD,EAAYzuI,KAAK0uI,KAAO1uI,KAAK0uI,IAAIzyH,SACrC,OAAO4xH,EAAWU,EAAa,CAAC,UAAWn0I,GAAQA,EAAMq0I,GAAa,IAAIA,EAC5E,CAAO,OAAID,GAAmC,qBAAhB7yD,GAC5Br1E,EAAsBhM,EAAS,oBACxBmM,EAAgBrM,IAGlBA,CACT,GAEAqK,kBAAmB,CAAC,SAA2BrK,GAC7C,IAAI+C,EAAe6C,KAAK7C,cAAgBvD,EAASuD,aAC7C2E,EAAoB3E,GAAgBA,EAAa2E,kBACjDE,EAAoB7E,GAAgBA,EAAa6E,kBACjD4F,GAAqB9F,GAA2C,SAAtB9B,KAAKzF,aAEnD,GAAIqN,GAAsB5F,GAAqB5I,EAAMyN,SAASzM,IAASA,EAAKwG,OAC1E,IACE,OAAOkG,KAAKC,MAAM3M,EACpB,CAAE,MAAO6M,GACP,GAAIW,EAAmB,CACrB,GAAe,gBAAXX,EAAEtC,KACJ,MAAM2oI,EAAW/sG,KAAKt5B,EAAGqmI,EAAWgB,iBAAkBtuI,KAAM,KAAMA,KAAKlE,UAEzE,MAAMmL,CACR,CACF,CAGF,OAAO7M,CACT,GAMAqC,QAAS,EAETe,eAAgB,aAChBG,eAAgB,eAEhBkK,kBAAmB,EACnBC,eAAgB,EAEhB4mI,IAAK,CACHzyH,SAAU,EAAQ,QAGpB/V,eAAgB,SAAwBlK,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEA1B,QAAS,CACPiK,OAAQ,CACN,OAAU,uCAKhBnL,EAAMwE,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6BvB,GACpEzC,EAASU,QAAQ+B,GAAU,CAAC,CAC9B,IAEAjD,EAAMwE,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BvB,GACrEzC,EAASU,QAAQ+B,GAAUjD,EAAMkL,MAAM+B,EACzC,IAEAnN,EAAOC,QAAUS,C,iCC/IjBV,EAAOC,QAAU,CACf2I,mBAAmB,EACnBE,mBAAmB,EACnB5E,qBAAqB,E,oBCLvBlE,EAAOC,QAAU,CACf,QAAW,S,iCCCbD,EAAOC,QAAU,SAAcuK,EAAIqE,GACjC,OAAO,WAEL,IADA,IAAIC,EAAO,IAAIrF,MAAMsF,UAAUrH,QACtBF,EAAI,EAAGA,EAAIsH,EAAKpH,OAAQF,IAC/BsH,EAAKtH,GAAKuH,UAAUvH,GAEtB,OAAOgD,EAAGd,MAAMmF,EAASC,EAC3B,CACF,C,qCCRA,IAAI5O,EAAQ,EAAQ,MAEpB,SAAS8O,EAAOrK,GACd,OAAOzC,mBAAmByC,GACxBuF,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CASAlK,EAAOC,QAAU,SAAkBsC,EAAKc,EAAQC,GAE9C,IAAKD,EACH,OAAOd,EAGT,IAAI0M,EACJ,GAAI3L,EACF2L,EAAmB3L,EAAiBD,QAC/B,GAAInD,EAAMsO,kBAAkBnL,GACjC4L,EAAmB5L,EAAO0D,eACrB,CACL,IAAImI,EAAQ,GAEZhP,EAAMwE,QAAQrB,GAAQ,SAAmBsB,EAAKC,GAChC,OAARD,GAA+B,qBAARA,IAIvBzE,EAAMmM,QAAQ1H,GAChBC,GAAY,KAEZD,EAAM,CAACA,GAGTzE,EAAMwE,QAAQC,GAAK,SAAoBwK,GACjCjP,EAAMkP,OAAOD,GACfA,EAAIA,EAAEE,cACGnP,EAAMuO,SAASU,KACxBA,EAAIvB,KAAKI,UAAUmB,IAErBD,EAAMlH,KAAKgH,EAAOpK,GAAO,IAAMoK,EAAOG,GACxC,IACF,IAEAF,EAAmBC,EAAMI,KAAK,IAChC,CAEA,GAAIL,EAAkB,CACpB,IAAIM,EAAgBhN,EAAIoB,QAAQ,MACT,IAAnB4L,IACFhN,EAAMA,EAAI+J,MAAM,EAAGiD,IAGrBhN,KAA8B,IAAtBA,EAAIoB,QAAQ,KAAc,IAAM,KAAOsL,CACjD,CAEA,OAAO1M,CACT,C,iCC5DAvC,EAAOC,QAAU,SAAqBqC,EAASkN,GAC7C,OAAOA,EACHlN,EAAQ4H,QAAQ,OAAQ,IAAM,IAAMsF,EAAYtF,QAAQ,OAAQ,IAChE5H,CACN,C,qCCXA,IAAIpC,EAAQ,EAAQ,MAEpBF,EAAOC,QACLC,EAAMiE,uBAGJ,WACE,MAAO,CACLsL,MAAO,SAAehE,EAAMzI,EAAO0M,EAASC,EAAMC,EAAQC,GACxD,IAAIC,EAAS,GACbA,EAAO9H,KAAKyD,EAAO,IAAMvJ,mBAAmBc,IAExC9C,EAAM6P,SAASL,IACjBI,EAAO9H,KAAK,WAAa,IAAIgI,KAAKN,GAASO,eAGzC/P,EAAMyN,SAASgC,IACjBG,EAAO9H,KAAK,QAAU2H,GAGpBzP,EAAMyN,SAASiC,IACjBE,EAAO9H,KAAK,UAAY4H,IAGX,IAAXC,GACFC,EAAO9H,KAAK,UAGdkI,SAASJ,OAASA,EAAOR,KAAK,KAChC,EAEA/K,KAAM,SAAckH,GAClB,IAAI0E,EAAQD,SAASJ,OAAOK,MAAM,IAAIC,OAAO,aAAe3E,EAAO,cACnE,OAAQ0E,EAAQE,mBAAmBF,EAAM,IAAM,IACjD,EAEAG,OAAQ,SAAgB7E,GACtB3E,KAAK2I,MAAMhE,EAAM,GAAIuE,KAAKO,MAAQ,MACpC,EAEH,CAlCD,GAqCA,WACE,MAAO,CACLd,MAAO,WAAkB,EACzBlL,KAAM,WAAkB,OAAO,IAAM,EACrC+L,OAAQ,WAAmB,EAE9B,CAND,E,iCCrCJtQ,EAAOC,QAAU,SAAuBsC,GAItC,MAAO,8BAA8BiO,KAAKjO,EAC5C,C,qCCXA,IAAIrC,EAAQ,EAAQ,MAQpBF,EAAOC,QAAU,SAAsBwQ,GACrC,OAAOvQ,EAAMuO,SAASgC,KAAsC,IAAzBA,EAAQ7J,YAC7C,C,qCCVA,IAAI1G,EAAQ,EAAQ,MAEpBF,EAAOC,QACLC,EAAMiE,uBAIJ,WACE,IAEIuM,EAFAC,EAAO,kBAAkBH,KAAKI,UAAUC,WACxCC,EAAiBZ,SAASa,cAAc,KAS5C,SAASC,EAAWzO,GAClB,IAAI0O,EAAO1O,EAWX,OATIoO,IAEFG,EAAeI,aAAa,OAAQD,GACpCA,EAAOH,EAAeG,MAGxBH,EAAeI,aAAa,OAAQD,GAG7B,CACLA,KAAMH,EAAeG,KACrBE,SAAUL,EAAeK,SAAWL,EAAeK,SAASjH,QAAQ,KAAM,IAAM,GAChFkH,KAAMN,EAAeM,KACrBC,OAAQP,EAAeO,OAASP,EAAeO,OAAOnH,QAAQ,MAAO,IAAM,GAC3EoH,KAAMR,EAAeQ,KAAOR,EAAeQ,KAAKpH,QAAQ,KAAM,IAAM,GACpEqH,SAAUT,EAAeS,SACzBC,KAAMV,EAAeU,KACrBC,SAAiD,MAAtCX,EAAeW,SAASC,OAAO,GACxCZ,EAAeW,SACf,IAAMX,EAAeW,SAE3B,CAUA,OARAf,EAAYM,EAAWW,OAAOC,SAASX,MAQhC,SAAyBY,GAC9B,IAAIC,EAAU5R,EAAMyN,SAASkE,GAAeb,EAAWa,GAAcA,EACrE,OAAQC,EAAOX,WAAaT,EAAUS,UAClCW,EAAOV,OAASV,EAAUU,IAChC,CACD,CAlDD,GAqDA,WACE,OAAO,WACL,OAAO,CACT,CACD,CAJD,E,oCC5DJ,IAAIlR,EAAQ,EAAQ,MAEpBF,EAAOC,QAAU,SAA6BmB,EAAS2Q,GACrD7R,EAAMwE,QAAQtD,GAAS,SAAuB4B,EAAOyI,GAC/CA,IAASsG,GAAkBtG,EAAKrI,gBAAkB2O,EAAe3O,gBACnEhC,EAAQ2Q,GAAkB/O,SACnB5B,EAAQqK,GAEnB,GACF,C,oBCVAzL,EAAOC,QAAU,I,qCCCjB,IAAIC,EAAQ,EAAQ,MAIhB8R,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,cAgB5BhS,EAAOC,QAAU,SAAsBmB,GACrC,IACIwD,EACAD,EACA6C,EAHAsK,EAAS,CAAC,EAKd,OAAK1Q,GAELlB,EAAMwE,QAAQtD,EAAQ6Q,MAAM,OAAO,SAAgBC,GAKjD,GAJA1K,EAAI0K,EAAKvO,QAAQ,KACjBiB,EAAM1E,EAAM4N,KAAKoE,EAAKC,OAAO,EAAG3K,IAAI3C,cACpCF,EAAMzE,EAAM4N,KAAKoE,EAAKC,OAAO3K,EAAI,IAE7B5C,EAAK,CACP,GAAIkN,EAAOlN,IAAQoN,EAAkBrO,QAAQiB,IAAQ,EACnD,OAGAkN,EAAOlN,GADG,eAARA,GACakN,EAAOlN,GAAOkN,EAAOlN,GAAO,IAAI+E,OAAO,CAAChF,IAEzCmN,EAAOlN,GAAOkN,EAAOlN,GAAO,KAAOD,EAAMA,CAE3D,CACF,IAEOmN,GAnBgBA,CAoBzB,C,iCClDA9R,EAAOC,QAAU,SAAuBsC,GACtC,IAAI4N,EAAQ,4BAA4BuW,KAAKnkB,GAC7C,OAAO4N,GAASA,EAAM,IAAM,EAC9B,C,iCCiBAnQ,EAAOC,QAAU,SAAgBmS,GAC/B,OAAO,SAAcC,GACnB,OAAOD,EAAS1I,MAAM,KAAM2I,EAC9B,CACF,C,qCCxBA,IAAInS,EAAQ,EAAQ,MASpB,SAASy0I,EAAWjhI,EAAK+hI,GAEvBA,EAAWA,GAAY,IAAI1yH,SAE3B,IAAIhX,EAAQ,GAEZ,SAAS2pI,EAAa1yI,GACpB,OAAc,OAAVA,EAAuB,GAEvB9C,EAAMkP,OAAOpM,GACRA,EAAMqM,cAGXnP,EAAM+N,cAAcjL,IAAU9C,EAAMy1I,aAAa3yI,GAC5B,oBAATkqE,KAAsB,IAAIA,KAAK,CAAClqE,IAAU0qF,OAAOrmD,KAAKrkC,GAG/DA,CACT,CAEA,SAASkjE,EAAMhlE,EAAMkoG,GACnB,GAAIlpG,EAAMkM,cAAclL,IAAShB,EAAMmM,QAAQnL,GAAO,CACpD,IAA6B,IAAzB6K,EAAMpI,QAAQzC,GAChB,MAAM6J,MAAM,kCAAoCq+F,GAGlDr9F,EAAM/D,KAAK9G,GAEXhB,EAAMwE,QAAQxD,GAAM,SAAc8B,EAAO4B,GACvC,IAAI1E,EAAM6E,YAAY/B,GAAtB,CACA,IACIqP,EADAujI,EAAUxsC,EAAYA,EAAY,IAAMxkG,EAAMA,EAGlD,GAAI5B,IAAUomG,GAA8B,kBAAVpmG,EAChC,GAAI9C,EAAMqiF,SAAS39E,EAAK,MAEtB5B,EAAQ4K,KAAKI,UAAUhL,QAClB,GAAI9C,EAAMqiF,SAAS39E,EAAK,QAAUyN,EAAMnS,EAAM21I,QAAQ7yI,IAK3D,YAHAqP,EAAI3N,SAAQ,SAAS68F,IAClBrhG,EAAM6E,YAAYw8F,IAAOk0C,EAASK,OAAOF,EAASF,EAAan0C,GAClE,IAKJr7B,EAAMljE,EAAO4yI,EAjBuB,CAkBtC,IAEA7pI,EAAMyV,KACR,MACEi0H,EAASK,OAAO1sC,EAAWssC,EAAax0I,GAE5C,CAIA,OAFAglE,EAAMxyD,GAEC+hI,CACT,CAEAz1I,EAAOC,QAAU00I,C,qCCrEjB,IAAInuI,EAAU,iBACV4tI,EAAa,EAAQ,MAErB5rI,EAAa,CAAC,EAGlB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAU9D,SAAQ,SAASW,EAAMmC,GACrFgB,EAAWnD,GAAQ,SAAmBiN,GACpC,cAAcA,IAAUjN,GAAQ,KAAOmC,EAAI,EAAI,KAAO,KAAOnC,CAC/D,CACF,IAEA,IAAIkN,EAAqB,CAAC,EA6C1B,SAAS5J,EAAc0B,EAASmI,EAAQC,GACtC,GAAuB,kBAAZpI,EACT,MAAM,IAAI+pI,EAAW,4BAA6BA,EAAW2B,sBAE/D,IAAIjpI,EAAOD,OAAOC,KAAKzC,GACnB7C,EAAIsF,EAAKpF,OACb,MAAOF,KAAM,EAAG,CACd,IAAIkL,EAAM5F,EAAKtF,GACXe,EAAYiK,EAAOE,GACvB,GAAInK,EAAJ,CACE,IAAIvF,EAAQqH,EAAQqI,GAChBC,OAAmBnO,IAAVxB,GAAuBuF,EAAUvF,EAAO0P,EAAKrI,GAC1D,IAAe,IAAXsI,EACF,MAAM,IAAIyhI,EAAW,UAAY1hI,EAAM,YAAcC,EAAQyhI,EAAW2B,qBAG5E,MACA,IAAqB,IAAjBtjI,EACF,MAAM,IAAI2hI,EAAW,kBAAoB1hI,EAAK0hI,EAAW4B,eAE7D,CACF,CAzDAxtI,EAAWvE,aAAe,SAAsBsE,EAAWqK,EAAS/L,GAClE,SAASgM,EAAcH,EAAKI,GAC1B,MAAO,WAAatM,EAAU,0BAA6BkM,EAAM,IAAOI,GAAQjM,EAAU,KAAOA,EAAU,GAC7G,CAGA,OAAO,SAAS7D,EAAO0P,EAAKK,GAC1B,IAAkB,IAAdxK,EACF,MAAM,IAAI6rI,EACRvhI,EAAcH,EAAK,qBAAuBE,EAAU,OAASA,EAAU,KACvEwhI,EAAW6B,gBAef,OAXIrjI,IAAYL,EAAmBG,KACjCH,EAAmBG,IAAO,EAE1BM,QAAQC,KACNJ,EACEH,EACA,+BAAiCE,EAAU,8CAK1CrK,GAAYA,EAAUvF,EAAO0P,EAAKK,EAC3C,CACF,EAgCA/S,EAAOC,QAAU,CACf0I,cAAeA,EACfH,WAAYA,E,oCClFd,IAAI9C,EAAO,EAAQ,OAIfqB,EAAW8F,OAAO5G,UAAUc,SAG5BmvI,EAAS,SAAUjsE,GAErB,OAAO,SAAS33D,GACd,IAAIkB,EAAMzM,EAASmE,KAAKoH,GACxB,OAAO23D,EAAMz2D,KAASy2D,EAAMz2D,GAAOA,EAAIlH,MAAM,GAAI,GAAGzH,cACtD,CACD,CANY,CAMVgI,OAAO1G,OAAO,OAEjB,SAASgwI,EAAW9wI,GAElB,OADAA,EAAOA,EAAKR,cACL,SAAkByN,GACvB,OAAO4jI,EAAO5jI,KAAWjN,CAC3B,CACF,CAQA,SAASgH,EAAQ1H,GACf,OAAO8E,MAAM4C,QAAQ1H,EACvB,CAQA,SAASI,EAAYJ,GACnB,MAAsB,qBAARA,CAChB,CAQA,SAASuJ,EAASvJ,GAChB,OAAe,OAARA,IAAiBI,EAAYJ,IAA4B,OAApBA,EAAIuO,cAAyBnO,EAAYJ,EAAIuO,cAChD,oBAA7BvO,EAAIuO,YAAYhF,UAA2BvJ,EAAIuO,YAAYhF,SAASvJ,EAClF,CASA,IAAIsJ,EAAgBkoI,EAAW,eAS/B,SAAS7nI,EAAkB3J,GACzB,IAAIgO,EAMJ,OAJEA,EAD0B,qBAAhBQ,aAAiCA,YAAkB,OACpDA,YAAYC,OAAOzO,GAEnB,GAAUA,EAAU,QAAMsJ,EAActJ,EAAI4J,QAEhDoE,CACT,CAQA,SAAShF,EAAShJ,GAChB,MAAsB,kBAARA,CAChB,CAQA,SAASoL,EAASpL,GAChB,MAAsB,kBAARA,CAChB,CAQA,SAAS8J,EAAS9J,GAChB,OAAe,OAARA,GAA+B,kBAARA,CAChC,CAQA,SAASyH,EAAczH,GACrB,GAAoB,WAAhBuxI,EAAOvxI,GACT,OAAO,EAGT,IAAIsB,EAAY4G,OAAOwG,eAAe1O,GACtC,OAAqB,OAAdsB,GAAsBA,IAAc4G,OAAO5G,SACpD,CASA,IAAImJ,EAAS+mI,EAAW,QASpB/nI,EAAS+nI,EAAW,QASpB9nI,EAAS8nI,EAAW,QASpBd,EAAac,EAAW,YAQ5B,SAAS7iI,EAAW3O,GAClB,MAA8B,sBAAvBoC,EAASmE,KAAKvG,EACvB,CAQA,SAASwJ,EAASxJ,GAChB,OAAO8J,EAAS9J,IAAQ2O,EAAW3O,EAAI4O,KACzC,CAQA,SAAS5R,EAAW2Q,GAClB,IAAIsuE,EAAU,oBACd,OAAOtuE,IACgB,oBAAbyQ,UAA2BzQ,aAAiByQ,UACpDhc,EAASmE,KAAKoH,KAAWsuE,GACxBttE,EAAWhB,EAAMvL,WAAauL,EAAMvL,aAAe65E,EAExD,CAQA,IAAIpyE,EAAoB2nI,EAAW,mBAQnC,SAASroI,EAAK0F,GACZ,OAAOA,EAAI1F,KAAO0F,EAAI1F,OAAS0F,EAAItJ,QAAQ,aAAc,GAC3D,CAiBA,SAAS/F,IACP,OAAyB,qBAAdyM,WAAoD,gBAAtBA,UAAU6C,SACY,iBAAtB7C,UAAU6C,SACY,OAAtB7C,UAAU6C,WAI/B,qBAAX9B,QACa,qBAAbzB,SAEX,CAcA,SAASxL,EAAQgP,EAAKlJ,GAEpB,GAAY,OAARkJ,GAA+B,qBAARA,EAU3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGLrH,EAAQqH,GAEV,IAAK,IAAIlM,EAAI,EAAGC,EAAIiM,EAAIhM,OAAQF,EAAIC,EAAGD,IACrCgD,EAAGU,KAAK,KAAMwI,EAAIlM,GAAIA,EAAGkM,QAI3B,IAAK,IAAI9O,KAAO8O,EACV7G,OAAO5G,UAAU0N,eAAezI,KAAKwI,EAAK9O,IAC5C4F,EAAGU,KAAK,KAAMwI,EAAI9O,GAAMA,EAAK8O,EAIrC,CAmBA,SAAStI,IACP,IAAIuH,EAAS,CAAC,EACd,SAASiB,EAAYjP,EAAKC,GACpBwH,EAAcuG,EAAO/N,KAASwH,EAAczH,GAC9CgO,EAAO/N,GAAOwG,EAAMuH,EAAO/N,GAAMD,GACxByH,EAAczH,GACvBgO,EAAO/N,GAAOwG,EAAM,CAAC,EAAGzG,GACf0H,EAAQ1H,GACjBgO,EAAO/N,GAAOD,EAAI2H,QAElBqG,EAAO/N,GAAOD,CAElB,CAEA,IAAK,IAAI6C,EAAI,EAAGC,EAAIsH,UAAUrH,OAAQF,EAAIC,EAAGD,IAC3C9C,EAAQqK,UAAUvH,GAAIoM,GAExB,OAAOjB,CACT,CAUA,SAASzM,EAAO2N,EAAGC,EAAGjF,GAQpB,OAPAnK,EAAQoP,GAAG,SAAqBnP,EAAKC,GAEjCiP,EAAEjP,GADAiK,GAA0B,oBAARlK,EACXe,EAAKf,EAAKkK,GAEVlK,CAEb,IACOkP,CACT,CAQA,SAASE,EAASC,GAIhB,OAH8B,QAA1BA,EAAQC,WAAW,KACrBD,EAAUA,EAAQ1H,MAAM,IAEnB0H,CACT,CAUA,SAAS6gI,EAAS3hI,EAAakjI,EAAkB1sH,EAAOsrH,GACtD9hI,EAAYjN,UAAY4G,OAAO1G,OAAOiwI,EAAiBnwI,UAAW+uI,GAClE9hI,EAAYjN,UAAUiN,YAAcA,EACpCwW,GAAS7c,OAAOkJ,OAAO7C,EAAYjN,UAAWyjB,EAChD,CAUA,SAASyrH,EAAar9G,EAAWu+G,EAASruH,GACxC,IAAI0B,EACAliB,EACAgF,EACAmlG,EAAS,CAAC,EAEd0kC,EAAUA,GAAW,CAAC,EAEtB,EAAG,CACD3sH,EAAQ7c,OAAO6lF,oBAAoB56D,GACnCtwB,EAAIkiB,EAAMhiB,OACV,MAAOF,KAAM,EACXgF,EAAOkd,EAAMliB,GACRmqG,EAAOnlG,KACV6pI,EAAQ7pI,GAAQsrB,EAAUtrB,GAC1BmlG,EAAOnlG,IAAQ,GAGnBsrB,EAAYjrB,OAAOwG,eAAeykB,EACpC,OAASA,KAAe9P,GAAUA,EAAO8P,EAAWu+G,KAAav+G,IAAcjrB,OAAO5G,WAEtF,OAAOowI,CACT,CASA,SAAS9zD,EAAS/uE,EAAK8iI,EAAc/vH,GACnC/S,EAAMsf,OAAOtf,SACIhP,IAAb+hB,GAA0BA,EAAW/S,EAAI9L,UAC3C6e,EAAW/S,EAAI9L,QAEjB6e,GAAY+vH,EAAa5uI,OACzB,IAAI6uI,EAAY/iI,EAAI7P,QAAQ2yI,EAAc/vH,GAC1C,OAAsB,IAAfgwH,GAAoBA,IAAchwH,CAC3C,CAQA,SAASsvH,EAAQvjI,GACf,IAAKA,EAAO,OAAO,KACnB,IAAI9K,EAAI8K,EAAM5K,OACd,GAAI3C,EAAYyC,GAAI,OAAO,KAC3B,IAAI6K,EAAM,IAAI5I,MAAMjC,GACpB,MAAOA,KAAM,EACX6K,EAAI7K,GAAK8K,EAAM9K,GAEjB,OAAO6K,CACT,CAGA,IAAIsjI,EAAe,SAAUa,GAE3B,OAAO,SAASlkI,GACd,OAAOkkI,GAAclkI,aAAiBkkI,CACxC,CACD,CALkB,CAKM,qBAAf5wF,YAA8B/4C,OAAOwG,eAAeuyC,aAE9D5lD,EAAOC,QAAU,CACfoM,QAASA,EACT4B,cAAeA,EACfC,SAAUA,EACVvM,WAAYA,EACZ2M,kBAAmBA,EACnBX,SAAUA,EACVoC,SAAUA,EACVtB,SAAUA,EACVrC,cAAeA,EACfrH,YAAaA,EACbqK,OAAQA,EACRhB,OAAQA,EACRC,OAAQA,EACRiF,WAAYA,EACZnF,SAAUA,EACVK,kBAAmBA,EACnBrK,qBAAsBA,EACtBO,QAASA,EACT0G,MAAOA,EACPlF,OAAQA,EACR4H,KAAMA,EACNiG,SAAUA,EACV8gI,SAAUA,EACVM,aAAcA,EACde,OAAQA,EACRC,WAAYA,EACZ5zD,SAAUA,EACVszD,QAASA,EACTF,aAAcA,EACdN,WAAYA,E,mCClddp1I,EAAQ+lD,WAAaA,EACrB/lD,EAAQw2I,YAAcA,EACtBx2I,EAAQy2I,cAAgBA,EAOxB,IALA,IAAIC,EAAS,GACTC,EAAY,GACZC,EAA4B,qBAAfjxF,WAA6BA,WAAan8C,MAEvDqB,EAAO,mEACFtD,EAAI,EAAGghB,EAAM1d,EAAKpD,OAAQF,EAAIghB,IAAOhhB,EAC5CmvI,EAAOnvI,GAAKsD,EAAKtD,GACjBovI,EAAU9rI,EAAKmJ,WAAWzM,IAAMA,EAQlC,SAASsvI,EAASC,GAChB,IAAIvuH,EAAMuuH,EAAIrvI,OAEd,GAAI8gB,EAAM,EAAI,EACZ,MAAM,IAAIzd,MAAM,kDAKlB,IAAIisI,EAAWD,EAAIpzI,QAAQ,MACT,IAAdqzI,IAAiBA,EAAWxuH,GAEhC,IAAIyuH,EAAkBD,IAAaxuH,EAC/B,EACA,EAAKwuH,EAAW,EAEpB,MAAO,CAACA,EAAUC,EACpB,CAGA,SAASjxF,EAAY+wF,GACnB,IAAIG,EAAOJ,EAAQC,GACfC,EAAWE,EAAK,GAChBD,EAAkBC,EAAK,GAC3B,OAAuC,GAA9BF,EAAWC,GAAuB,EAAKA,CAClD,CAEA,SAASE,EAAaJ,EAAKC,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,CAClD,CAEA,SAASR,EAAaM,GACpB,IAAI9e,EAcAzwH,EAbA0vI,EAAOJ,EAAQC,GACfC,EAAWE,EAAK,GAChBD,EAAkBC,EAAK,GAEvB7kI,EAAM,IAAIwkI,EAAIM,EAAYJ,EAAKC,EAAUC,IAEzCG,EAAU,EAGV5uH,EAAMyuH,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAKxvI,EAAI,EAAGA,EAAIghB,EAAKhhB,GAAK,EACxBywH,EACG2e,EAAUG,EAAI9iI,WAAWzM,KAAO,GAChCovI,EAAUG,EAAI9iI,WAAWzM,EAAI,KAAO,GACpCovI,EAAUG,EAAI9iI,WAAWzM,EAAI,KAAO,EACrCovI,EAAUG,EAAI9iI,WAAWzM,EAAI,IAC/B6K,EAAI+kI,KAAcnf,GAAO,GAAM,IAC/B5lH,EAAI+kI,KAAcnf,GAAO,EAAK,IAC9B5lH,EAAI+kI,KAAmB,IAANnf,EAmBnB,OAhBwB,IAApBgf,IACFhf,EACG2e,EAAUG,EAAI9iI,WAAWzM,KAAO,EAChCovI,EAAUG,EAAI9iI,WAAWzM,EAAI,KAAO,EACvC6K,EAAI+kI,KAAmB,IAANnf,GAGK,IAApBgf,IACFhf,EACG2e,EAAUG,EAAI9iI,WAAWzM,KAAO,GAChCovI,EAAUG,EAAI9iI,WAAWzM,EAAI,KAAO,EACpCovI,EAAUG,EAAI9iI,WAAWzM,EAAI,KAAO,EACvC6K,EAAI+kI,KAAcnf,GAAO,EAAK,IAC9B5lH,EAAI+kI,KAAmB,IAANnf,GAGZ5lH,CACT,CAEA,SAASglI,EAAiBrpD,GACxB,OAAO2oD,EAAO3oD,GAAO,GAAK,IACxB2oD,EAAO3oD,GAAO,GAAK,IACnB2oD,EAAO3oD,GAAO,EAAI,IAClB2oD,EAAa,GAAN3oD,EACX,CAEA,SAASspD,EAAaC,EAAO1wH,EAAOkK,GAGlC,IAFA,IAAIknG,EACAjrG,EAAS,GACJxlB,EAAIqf,EAAOrf,EAAIupB,EAAKvpB,GAAK,EAChCywH,GACIsf,EAAM/vI,IAAM,GAAM,WAClB+vI,EAAM/vI,EAAI,IAAM,EAAK,QACP,IAAf+vI,EAAM/vI,EAAI,IACbwlB,EAAOhlB,KAAKqvI,EAAgBpf,IAE9B,OAAOjrG,EAAO1d,KAAK,GACrB,CAEA,SAASonI,EAAea,GAQtB,IAPA,IAAItf,EACAzvG,EAAM+uH,EAAM7vI,OACZ8vI,EAAahvH,EAAM,EACnBtZ,EAAQ,GACRuoI,EAAiB,MAGZjwI,EAAI,EAAGkwI,EAAOlvH,EAAMgvH,EAAYhwI,EAAIkwI,EAAMlwI,GAAKiwI,EACtDvoI,EAAMlH,KAAKsvI,EAAYC,EAAO/vI,EAAIA,EAAIiwI,EAAkBC,EAAOA,EAAQlwI,EAAIiwI,IAqB7E,OAjBmB,IAAfD,GACFvf,EAAMsf,EAAM/uH,EAAM,GAClBtZ,EAAMlH,KACJ2uI,EAAO1e,GAAO,GACd0e,EAAQ1e,GAAO,EAAK,IACpB,OAEsB,IAAfuf,IACTvf,GAAOsf,EAAM/uH,EAAM,IAAM,GAAK+uH,EAAM/uH,EAAM,GAC1CtZ,EAAMlH,KACJ2uI,EAAO1e,GAAO,IACd0e,EAAQ1e,GAAO,EAAK,IACpB0e,EAAQ1e,GAAO,EAAK,IACpB,MAIG/oH,EAAMI,KAAK,GACpB,CAnIAsnI,EAAU,IAAI3iI,WAAW,IAAM,GAC/B2iI,EAAU,IAAI3iI,WAAW,IAAM,E,qBCnB9B,SAASlG,EAAE4N,GAAqD3b,EAAOC,QAAQ0b,GAA+G,CAA9L,CAAgM7U,GAAK,WAAY,OAAO,SAASiH,GAAG,IAAI4N,EAAE,CAAC,EAAE,SAAS7B,EAAEJ,GAAG,GAAGiC,EAAEjC,GAAG,OAAOiC,EAAEjC,GAAGzZ,QAAQ,IAAIuH,EAAEmU,EAAEjC,GAAG,CAAClS,EAAEkS,EAAEjS,GAAE,EAAGxH,QAAQ,CAAC,GAAG,OAAO8N,EAAE2L,GAAGxO,KAAK1D,EAAEvH,QAAQuH,EAAEA,EAAEvH,QAAQ6Z,GAAGtS,EAAEC,GAAE,EAAGD,EAAEvH,OAAO,CAAC,OAAO6Z,EAAEH,EAAE5L,EAAE+L,EAAE1R,EAAEuT,EAAE7B,EAAEjD,EAAE,SAAS9I,EAAE4N,EAAEjC,GAAGI,EAAEL,EAAE1L,EAAE4N,IAAI9O,OAAOuc,eAAerb,EAAE4N,EAAE,CAACoN,YAAW,EAAGzF,IAAI5J,GAAG,EAAEI,EAAEA,EAAE,SAAS/L,GAAG,oBAAoB6L,QAAQA,OAAOyM,aAAaxZ,OAAOuc,eAAerb,EAAE6L,OAAOyM,YAAY,CAACrjB,MAAM,WAAW6J,OAAOuc,eAAerb,EAAE,aAAa,CAAC/K,OAAM,GAAI,EAAE8W,EAAE6B,EAAE,SAAS5N,EAAE4N,GAAG,GAAG,EAAEA,IAAI5N,EAAE+L,EAAE/L,IAAI,EAAE4N,EAAE,OAAO5N,EAAE,GAAG,EAAE4N,GAAG,iBAAiB5N,GAAGA,GAAGA,EAAE4pI,WAAW,OAAO5pI,EAAE,IAAI2L,EAAE7M,OAAO1G,OAAO,MAAM,GAAG2T,EAAEA,EAAEJ,GAAG7M,OAAOuc,eAAe1P,EAAE,UAAU,CAACqP,YAAW,EAAG/lB,MAAM+K,IAAI,EAAE4N,GAAG,iBAAiB5N,EAAE,IAAI,IAAIvG,KAAKuG,EAAE+L,EAAEjD,EAAE6C,EAAElS,EAAE,SAASmU,GAAG,OAAO5N,EAAE4N,EAAE,EAAEjW,KAAK,KAAK8B,IAAI,OAAOkS,CAAC,EAAEI,EAAEJ,EAAE,SAAS3L,GAAG,IAAI4N,EAAE5N,GAAGA,EAAE4pI,WAAW,WAAW,OAAO5pI,EAAEg6C,OAAO,EAAE,WAAW,OAAOh6C,CAAC,EAAE,OAAO+L,EAAEjD,EAAE8E,EAAE,IAAIA,GAAGA,CAAC,EAAE7B,EAAEL,EAAE,SAAS1L,EAAE4N,GAAG,OAAO9O,OAAO5G,UAAU0N,eAAezI,KAAK6C,EAAE4N,EAAE,EAAE7B,EAAE9C,EAAE,GAAG8C,EAAEA,EAAE8B,EAAE,GAAG,CAAp5B,CAAs5B,CAAC,GAAG,SAAS7N,EAAE4N,EAAE7B,GAAG,aAAa6B,EAAEg8H,YAAW,EAAGh8H,EAAEosC,aAAQ,EAAO,IAAIruC,EAAEI,EAAE,IAAItS,EAAE,WAAW,SAASuG,IAAI,CAAC,OAAOA,EAAE6pI,cAAc,SAAS7pI,EAAE4N,GAAG,IAAI7B,EAAE6B,EAAExL,MAAMpC,GAAG,OAAO+L,GAAGA,EAAEpS,OAAO,GAAGoS,EAAE,IAAI,EAAE,EAAE/L,EAAE8pI,eAAe,SAAS9pI,EAAE4N,GAAG,IAAI7B,EAAE6B,EAAExL,MAAMpC,GAAG,OAAO+L,GAAGA,EAAEpS,OAAO,GAAGoS,EAAE,IAAI,EAAE,EAAE/L,EAAE+pI,oBAAoB,SAAS/pI,EAAE4N,EAAE7B,GAAG,GAAG/L,EAAEyC,KAAKmL,GAAG,OAAO7B,CAAC,EAAE/L,EAAEgqI,sBAAsB,SAAShqI,GAAG,OAAOA,GAAG,IAAI,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,SAAS,MAAM,OAAO,IAAI,SAAS,MAAM,KAAK,IAAI,SAAS,MAAM,OAAO,IAAI,SAAS,MAAM,QAAQ,IAAI,SAAS,MAAM,IAAI,IAAI,SAAS,MAAM,IAAI,IAAI,SAAS,MAAM,MAAM,IAAI,UAAU,MAAM,KAAK,QAAQ,OAAO,EAAEA,EAAEiqI,oBAAoB,SAASjqI,GAAG,IAAI4N,EAAE5N,EAAEkE,MAAM,KAAK/J,OAAO,EAAE,GAAGyU,KAAI,SAAU5O,GAAG,OAAO2yC,SAAS3yC,EAAE,KAAK,CAAE,IAAG,GAAG4N,EAAE3T,KAAK,GAAG,KAAK2T,EAAE,GAAG,OAAOA,EAAE,IAAI,KAAK,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM,eAAe,KAAK,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,gBAAgB,KAAK,EAAE,MAAM,YAAY,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,aAAa,KAAK,GAAG,MAAM,SAAS,KAAK,GAAG,MAAM,cAAc,KAAK,GAAG,MAAM,SAAS,KAAK,GAAG,MAAM,WAAW,QAAQ,OAAO,EAAE5N,EAAEkqI,sBAAsB,SAASlqI,GAAG,IAAI4N,EAAE5N,EAAEkE,MAAM,KAAK/J,OAAO,EAAE,GAAGyU,KAAI,SAAU5O,GAAG,OAAO2yC,SAAS3yC,EAAE,KAAK,CAAE,IAAG,GAAG4N,EAAE3T,KAAK,KAAK,IAAI2T,EAAE,IAAIA,EAAE,GAAG,GAAG,OAAO,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,UAAU,IAAIA,EAAE,IAAIA,EAAE,IAAI,EAAE,QAAQ,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,SAAS,IAAIA,EAAE,IAAI,IAAIA,EAAE,GAAG,QAAQ,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,cAAc,IAAIA,EAAE,GAAG,YAAY,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,qBAAqB,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,aAAa,IAAIA,EAAE,IAAIA,EAAE,IAAI,EAAE,SAAS,IAAIA,EAAE,GAAG,WAAW,IAAIA,EAAE,GAAG,cAAc,IAAIA,EAAE,GAAG,SAAS,IAAIA,EAAE,GAAG,OAAO,IAAIA,EAAE,GAAG,WAAM,CAAM,EAAE5N,EAAEmqI,oBAAoB,SAASnqI,GAAG,OAAOA,EAAEkE,MAAM,KAAKvK,MAAM,EAAEqG,EAAEoqI,gBAAgB,SAASx8H,EAAE7B,EAAEJ,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAIlS,EAAEuG,EAAEmqI,oBAAoBv8H,GAAGC,EAAE7N,EAAEmqI,oBAAoBp+H,GAAGjG,EAAEwB,KAAK8S,IAAI3gB,EAAEoU,GAAGnC,EAAE,EAAEmyE,EAAE79E,EAAE4O,IAAI,CAAChB,EAAE7B,IAAG,SAAU6B,GAAG,IAAI7B,EAAEjG,EAAE9F,EAAEmqI,oBAAoBv8H,GAAGjC,EAAEiC,EAAE,IAAIlS,MAAMqQ,EAAE,GAAGxK,KAAK,MAAM,OAAOvB,EAAE4O,IAAIjD,EAAEzH,MAAM,MAAK,SAAUlE,GAAG,OAAO,IAAItE,MAAM,GAAGsE,EAAErG,QAAQ4H,KAAK,KAAKvB,CAAE,IAAGuP,SAAU,IAAG,IAAI5D,IAAID,EAAE5F,EAAEwB,KAAKke,IAAI/rB,EAAEoU,IAAI/H,GAAG,EAAEA,GAAG4F,GAAG,CAAC,GAAGmyE,EAAE,GAAG/3E,GAAG+3E,EAAE,GAAG/3E,GAAG,OAAO,EAAE,GAAG+3E,EAAE,GAAG/3E,KAAK+3E,EAAE,GAAG/3E,GAAG,CAAC,GAAGA,IAAI4F,EAAE,OAAO,EAAE5F,GAAG,CAAC,MAAM,GAAG+3E,EAAE,GAAG/3E,GAAG+3E,EAAE,GAAG/3E,GAAG,OAAO,CAAC,CAAC,EAAE9F,EAAE4O,IAAI,SAAS5O,EAAE4N,GAAG,IAAI7B,EAAEJ,EAAE,GAAG,GAAGjQ,MAAMxD,UAAU0W,IAAI,OAAOlT,MAAMxD,UAAU0W,IAAIzR,KAAK6C,EAAE4N,GAAG,IAAI7B,EAAE,EAAEA,EAAE/L,EAAErG,OAAOoS,GAAG,EAAEJ,EAAE1R,KAAK2T,EAAE5N,EAAE+L,KAAK,OAAOJ,CAAC,EAAE3L,EAAE+X,KAAK,SAAS/X,EAAE4N,GAAG,IAAI7B,EAAEJ,EAAE,GAAGjQ,MAAMxD,UAAU6f,KAAK,OAAOrc,MAAMxD,UAAU6f,KAAK5a,KAAK6C,EAAE4N,GAAG,IAAI7B,EAAE,EAAEJ,EAAE3L,EAAErG,OAAOoS,EAAEJ,EAAEI,GAAG,EAAE,CAAC,IAAItS,EAAEuG,EAAE+L,GAAG,GAAG6B,EAAEnU,EAAEsS,GAAG,OAAOtS,CAAC,CAAC,EAAEuG,EAAEgI,OAAO,SAAShI,GAAG,IAAI,IAAI4N,EAAE7B,EAAEJ,EAAE3L,EAAEvG,EAAEuH,UAAUrH,OAAOkU,EAAE,IAAInS,MAAMjC,EAAE,EAAEA,EAAE,EAAE,GAAGqM,EAAE,EAAEA,EAAErM,EAAEqM,IAAI+H,EAAE/H,EAAE,GAAG9E,UAAU8E,GAAG,GAAGhH,OAAOkJ,OAAO,OAAOlJ,OAAOkJ,OAAOrM,MAAMmD,OAAO,CAACkB,GAAGpE,OAAOiS,IAAI,IAAInC,EAAE,WAAW,IAAI1L,EAAE6N,EAAED,GAAG,iBAAiB5N,GAAG,OAAOA,GAAGlB,OAAOC,KAAKiB,GAAGrJ,SAAQ,SAAUiX,GAAGjC,EAAEiC,GAAG5N,EAAE4N,EAAG,GAAE,EAAE,IAAIA,EAAE,EAAE7B,EAAE8B,EAAElU,OAAOiU,EAAE7B,EAAE6B,GAAG,EAAElC,IAAI,OAAO1L,CAAC,EAAEA,EAAEqqI,gBAAgB,SAASrqI,GAAG,OAAO2L,EAAE2+H,oBAAoBtqI,EAAE,EAAEA,EAAEuqI,sBAAsB,SAASvqI,GAAG,OAAO2L,EAAE6+H,YAAYxqI,IAAI,EAAE,EAAEA,CAAC,CAAttF,GAA0tF4N,EAAEosC,QAAQvgD,EAAEuG,EAAE9N,QAAQ0b,EAAEosC,OAAO,EAAE,GAAG,SAASh6C,EAAE4N,EAAE7B,GAAG,aAAa6B,EAAEg8H,YAAW,EAAGh8H,EAAE68H,WAAW78H,EAAE88H,OAAO98H,EAAE+8H,cAAc/8H,EAAE48H,YAAY58H,EAAE08H,yBAAoB,EAAO18H,EAAE08H,oBAAoB,CAAC,cAAc,cAAc,kBAAkB,UAAUM,KAAK,OAAOC,WAAW,aAAaC,OAAO,SAASC,SAAS,WAAWC,SAAS,WAAWC,SAAS,WAAWC,QAAQ,UAAUC,MAAM,QAAQC,QAAQ,UAAU,gBAAgB,gBAAgBC,UAAU,YAAY,oBAAoB,KAAK,WAAW,WAAWC,QAAQ,UAAU,iBAAiB,OAAO,aAAa,KAAK,sBAAsB,QAAQC,MAAM,QAAQ,cAAc,cAAcC,UAAU,YAAYC,OAAO,SAASC,SAAS,WAAWC,GAAG,KAAKC,OAAO,SAASC,OAAO,SAASC,SAAS,WAAW,+BAA+B,mBAAmBC,UAAU,YAAYC,SAAS,WAAWC,MAAM,QAAQC,MAAM,QAAQ,aAAa,KAAKC,QAAQ,UAAU,gBAAgB,QAAQC,OAAO,SAAS,iBAAiB,SAASC,KAAK,QAAQz+H,EAAE48H,YAAY,CAAC8B,YAAY,cAAcC,QAAQ,kBAAkBC,KAAK,OAAOC,WAAW,aAAaC,OAAO,SAASC,SAAS,WAAWC,SAAS,WAAWC,SAAS,WAAWC,QAAQ,UAAUC,MAAM,QAAQC,QAAQ,UAAUC,UAAU,YAAYC,cAAc,gBAAgBC,GAAG,oBAAoBC,SAAS,WAAWC,QAAQ,UAAUC,KAAK,iBAAiBC,GAAG,aAAaC,MAAM,sBAAsBC,MAAM,QAAQC,YAAY,cAAcC,UAAU,YAAYC,OAAO,SAASC,SAAS,WAAWC,GAAG,aAAaC,OAAO,kBAAkBC,OAAO,SAASC,SAAS,WAAWC,iBAAiB,+BAA+BC,UAAU,YAAYC,SAAS,WAAWC,MAAM,QAAQC,MAAM,QAAQC,GAAG,aAAaC,QAAQ,UAAUC,MAAM,gBAAgBC,OAAO,SAASC,OAAO,kBAAkB/gI,EAAE+8H,cAAc,CAACiE,OAAO,SAASC,OAAO,SAASC,QAAQ,UAAUC,GAAG,MAAMnhI,EAAE88H,OAAO,CAACsE,aAAa,gBAAgBC,QAAQ,UAAUC,MAAM,QAAQC,IAAI,MAAMC,QAAQ,UAAUC,MAAM,QAAQxE,WAAW,aAAaD,KAAK,OAAOsB,MAAM,QAAQoD,MAAM,QAAQC,SAAS,YAAYC,aAAa,gBAAgBnD,KAAK,QAAQz+H,EAAE68H,WAAW,CAACgF,SAAS,WAAWC,MAAM,QAAQC,QAAQ,UAAUC,OAAO,SAASC,MAAM,QAAQC,OAAO,SAAS,EAAE,GAAG,SAAS9vI,EAAE4N,EAAE7B,GAAG,aAAa6B,EAAEg8H,YAAW,EAAGh8H,EAAEosC,aAAQ,EAAO,IAAIruC,EAAElS,GAAGkS,EAAEI,EAAE,MAAMJ,EAAEi+H,WAAWj+H,EAAE,CAACquC,QAAQruC,GAAGkC,EAAE9B,EAAE,IAAI,SAASjG,EAAE9F,EAAE4N,GAAG,IAAI,IAAI7B,EAAE,EAAEA,EAAE6B,EAAEjU,OAAOoS,IAAI,CAAC,IAAIJ,EAAEiC,EAAE7B,GAAGJ,EAAEqP,WAAWrP,EAAEqP,aAAY,EAAGrP,EAAE2P,cAAa,EAAG,UAAU3P,IAAIA,EAAE4P,UAAS,GAAIzc,OAAOuc,eAAerb,EAAE2L,EAAE9U,IAAI8U,EAAE,CAAC,CAAC,IAAID,EAAE,WAAW,SAAS1L,IAAI,CAAC,IAAI4N,EAAE7B,EAAEJ,EAAE,OAAO3L,EAAE+vI,UAAU,SAAS/vI,EAAE4N,GAAG,QAAG,IAASA,IAAIA,GAAE,GAAI,iBAAiB5N,EAAE,MAAM,IAAIhD,MAAM,gCAAgC,OAAO,IAAIvD,EAAEugD,QAAQh6C,EAAE4N,EAAE,EAAE5N,EAAEF,MAAM,SAASE,GAAG,OAAO,IAAIvG,EAAEugD,QAAQh6C,GAAGgwI,WAAW,EAAEpiI,EAAE5N,EAAE2L,EAAE,CAAC,CAAC9U,IAAI,cAAc0e,IAAI,WAAW,OAAO1H,EAAE28H,WAAW,GAAG,CAAC3zI,IAAI,aAAa0e,IAAI,WAAW,OAAO1H,EAAE48H,UAAU,GAAG,CAAC5zI,IAAI,SAAS0e,IAAI,WAAW,OAAO1H,EAAE68H,MAAM,GAAG,CAAC7zI,IAAI,gBAAgB0e,IAAI,WAAW,OAAO1H,EAAE88H,aAAa,KAAK5+H,EAAE,OAAOjG,EAAE8H,EAAE1V,UAAU6T,GAAGJ,GAAG7F,EAAE8H,EAAEjC,GAAG3L,CAAC,CAA3f,GAA+f4N,EAAEosC,QAAQtuC,EAAE1L,EAAE9N,QAAQ0b,EAAEosC,OAAO,EAAE,GAAG,SAASh6C,EAAE4N,EAAE7B,GAAG,aAAa6B,EAAEg8H,YAAW,EAAGh8H,EAAEosC,aAAQ,EAAO,IAAIruC,EAAEkyE,EAAE9xE,EAAE,KAAKtS,EAAEokF,EAAE9xE,EAAE,KAAK8B,EAAEgwE,EAAE9xE,EAAE,KAAKjG,EAAE+3E,EAAE9xE,EAAE,KAAKL,EAAEmyE,EAAE9xE,EAAE,KAAK,SAAS8xE,EAAE79E,GAAG,OAAOA,GAAGA,EAAE4pI,WAAW5pI,EAAE,CAACg6C,QAAQh6C,EAAE,CAAC,IAAI8I,EAAE,WAAW,SAAS9I,EAAEA,EAAE4N,GAAG,QAAG,IAASA,IAAIA,GAAE,GAAI,MAAM5N,GAAG,KAAKA,EAAE,MAAM,IAAIhD,MAAM,sCAAsCjE,KAAKk3I,IAAIjwI,EAAEjH,KAAKm3I,aAAa,CAAC,GAAE,IAAKtiI,GAAG7U,KAAK+G,OAAO,CAAC,IAAI8N,EAAE5N,EAAE9H,UAAU,OAAO0V,EAAEuiI,MAAM,WAAW,OAAOp3I,KAAKk3I,GAAG,EAAEriI,EAAEnL,KAAK,SAASzC,GAAG,OAAOA,EAAEyC,KAAK1J,KAAKk3I,IAAI,EAAEriI,EAAEwiI,aAAa,WAAW,IAAIpwI,EAAEjH,KAAKA,KAAKm3I,aAAajsE,QAAQ,CAAC,EAAE,IAAIr2D,EAAElC,EAAEsuC,QAAQjiC,KAAKpM,EAAEquC,SAAQ,SAAUpsC,GAAG,GAAG,mBAAmBA,EAAEnL,KAAK,OAAOmL,EAAEnL,KAAKzC,GAAG,GAAG4N,EAAEnL,gBAAgB/G,MAAM,OAAOkS,EAAEnL,KAAK01B,MAAK,SAAUvqB,GAAG,OAAO5N,EAAEyC,KAAKmL,EAAG,IAAG,MAAM,IAAI5Q,MAAM,uCAAwC,IAAG,OAAO4Q,IAAI7U,KAAKm3I,aAAajsE,QAAQr2D,EAAEyiI,SAASt3I,KAAKo3I,UAAUp3I,KAAKm3I,aAAajsE,OAAO,EAAEr2D,EAAE0iI,WAAW,WAAW,OAAOv3I,KAAKm3I,aAAajsE,QAAQlrE,KAAKm3I,aAAajsE,QAAQlrE,KAAKq3I,cAAc,EAAExiI,EAAE2iI,eAAe,SAASvwI,GAAG,OAAOA,EAAE+kB,OAAOhsB,KAAKu3I,aAAa5yI,MAAM5G,eAAe,GAAGiC,KAAKu3I,aAAa5yI,MAAM,EAAE,EAAEkQ,EAAE4iI,kBAAkB,WAAW,OAAOz3I,KAAKu3I,aAAazrI,OAAO,EAAE+I,EAAE6iI,MAAM,WAAW,OAAO13I,KAAKm3I,aAAalsE,GAAGjrE,KAAKm3I,aAAalsE,GAAGjrE,KAAK23I,SAAS,EAAE9iI,EAAE8iI,QAAQ,WAAW,IAAI1wI,EAAEjH,KAAKA,KAAKm3I,aAAalsE,GAAG,CAAC,EAAE,IAAIp2D,EAAElC,EAAEsuC,QAAQjiC,KAAKte,EAAEugD,SAAQ,SAAUpsC,GAAG,GAAG,mBAAmBA,EAAEnL,KAAK,OAAOmL,EAAEnL,KAAKzC,GAAG,GAAG4N,EAAEnL,gBAAgB/G,MAAM,OAAOkS,EAAEnL,KAAK01B,MAAK,SAAUvqB,GAAG,OAAO5N,EAAEyC,KAAKmL,EAAG,IAAG,MAAM,IAAI5Q,MAAM,uCAAwC,IAAG,OAAO4Q,IAAI7U,KAAKm3I,aAAalsE,GAAGp2D,EAAEyiI,SAASt3I,KAAKo3I,UAAUp3I,KAAKm3I,aAAalsE,EAAE,EAAEp2D,EAAE+iI,UAAU,SAAS3wI,GAAG,IAAI4N,EAAE7U,KAAK03I,QAAQ/yI,KAAK,OAAOsC,EAAE+kB,OAAOnX,GAAG9W,eAAe,GAAG8W,GAAG,EAAE,EAAEA,EAAEgjI,aAAa,WAAW,OAAO73I,KAAK03I,QAAQ5rI,OAAO,EAAE+I,EAAEijI,YAAY,WAAW,OAAO93I,KAAKm3I,aAAaY,SAAS/3I,KAAKm3I,aAAaY,SAAS/3I,KAAKg4I,eAAe,EAAEnjI,EAAEojI,gBAAgB,SAAShxI,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAI4N,EAAE7U,KAAK83I,cAAcv5I,KAAK,OAAO0I,EAAE+kB,OAAOnX,GAAG9W,eAAe,GAAG8W,GAAG,EAAE,EAAEA,EAAEmjI,cAAc,WAAW,IAAI/wI,EAAEjH,KAAKA,KAAKm3I,aAAaY,SAAS,CAAC,EAAE,IAAIljI,EAAElC,EAAEsuC,QAAQjiC,KAAKlK,EAAEmsC,SAAQ,SAAUpsC,GAAG,GAAG,mBAAmBA,EAAEnL,KAAK,OAAOmL,EAAEnL,KAAKzC,GAAG,GAAG4N,EAAEnL,gBAAgB/G,MAAM,OAAOkS,EAAEnL,KAAK01B,MAAK,SAAUvqB,GAAG,OAAO5N,EAAEyC,KAAKmL,EAAG,IAAG,MAAM,IAAI5Q,MAAM,uCAAwC,IAAG,OAAO4Q,IAAI7U,KAAKm3I,aAAaY,SAASljI,EAAEyiI,SAASt3I,KAAKo3I,UAAUp3I,KAAKm3I,aAAaY,QAAQ,EAAEljI,EAAEqjI,UAAU,WAAW,OAAOl4I,KAAKm3I,aAAagB,OAAOn4I,KAAKm3I,aAAagB,OAAOn4I,KAAKo4I,aAAa,EAAEvjI,EAAEwjI,cAAc,SAASpxI,GAAG,OAAOA,EAAE+kB,OAAOhsB,KAAKk4I,YAAYvzI,MAAM5G,eAAe,GAAGiC,KAAKk4I,YAAYvzI,MAAM,EAAE,EAAEkQ,EAAEujI,YAAY,WAAW,IAAInxI,EAAEjH,KAAKA,KAAKm3I,aAAagB,OAAO,CAAC,EAAE,IAAItjI,EAAElC,EAAEsuC,QAAQjiC,KAAKjS,EAAEk0C,SAAQ,SAAUpsC,GAAG,GAAG,mBAAmBA,EAAEnL,KAAK,OAAOmL,EAAEnL,KAAKzC,GAAG,GAAG4N,EAAEnL,gBAAgB/G,MAAM,OAAOkS,EAAEnL,KAAK01B,MAAK,SAAUvqB,GAAG,OAAO5N,EAAEyC,KAAKmL,EAAG,IAAG,MAAM,IAAI5Q,MAAM,uCAAwC,IAAG,OAAO4Q,IAAI7U,KAAKm3I,aAAagB,OAAOtjI,EAAEyiI,SAASt3I,KAAKo3I,UAAUp3I,KAAKm3I,aAAagB,MAAM,EAAEtjI,EAAE9N,MAAM,WAAW,OAAO/G,KAAKq3I,eAAer3I,KAAK23I,UAAU33I,KAAKg4I,gBAAgBh4I,KAAKo4I,cAAcp4I,IAAI,EAAE6U,EAAEoiI,UAAU,WAAW,OAAOtkI,EAAEsuC,QAAQhyC,OAAO,CAAC,EAAEjP,KAAKm3I,aAAa,EAAEtiI,EAAEyjI,UAAU,SAASrxI,GAAG,IAAI4N,EAAE7U,KAAKgT,EAAE,CAAC,EAAEJ,EAAE,EAAElS,EAAE,CAAC,EAAEoU,EAAE,EAAE,GAAG/O,OAAOC,KAAKiB,GAAGrJ,SAAQ,SAAUiX,GAAG,IAAI9H,EAAE9F,EAAE4N,GAAG,iBAAiB9H,GAAGrM,EAAEmU,GAAG9H,EAAE+H,GAAG,GAAG,iBAAiB/H,IAAIiG,EAAE6B,GAAG9H,EAAE6F,GAAG,EAAG,IAAGA,EAAE,EAAE,CAAC,IAAI7F,EAAEhH,OAAOC,KAAKgN,GAAG8xE,EAAEnyE,EAAEsuC,QAAQjiC,KAAKjS,GAAE,SAAU9F,GAAG,OAAO4N,EAAE0jI,KAAKtxI,EAAG,IAAG,GAAG69E,EAAE,CAAC,IAAI/0E,EAAE/P,KAAKs4I,UAAUtlI,EAAE8xE,IAAI,QAAG,IAAS/0E,EAAE,OAAOA,CAAC,CAAC,IAAIzO,EAAEqR,EAAEsuC,QAAQjiC,KAAKjS,GAAE,SAAU9F,GAAG,OAAO4N,EAAE2jI,WAAWvxI,EAAG,IAAG,GAAG3F,EAAE,CAAC,IAAI0Y,EAAEha,KAAKs4I,UAAUtlI,EAAE1R,IAAI,QAAG,IAAS0Y,EAAE,OAAOA,CAAC,CAAC,CAAC,GAAGlF,EAAE,EAAE,CAAC,IAAInU,EAAEoF,OAAOC,KAAKtF,GAAGiD,EAAEgP,EAAEsuC,QAAQjiC,KAAKre,GAAE,SAAUsG,GAAG,OAAO4N,EAAE8jC,UAAU1xC,GAAE,EAAI,IAAG,QAAG,IAAStD,EAAE,OAAO3D,KAAKy4I,eAAe/3I,EAAEiD,GAAG,CAAC,EAAEkR,EAAE8jC,UAAU,SAAS1xC,EAAE4N,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAI7B,EAAEhT,KAAKw3I,iBAAiBz5I,cAAc6U,EAAE3L,EAAElJ,cAAc2C,EAAEiS,EAAEsuC,QAAQuwF,sBAAsB5+H,GAAG,OAAOiC,GAAGnU,IAAIkS,EAAElS,EAAE3C,eAAe6U,IAAII,CAAC,EAAE6B,EAAE4jI,eAAe,SAASxxI,GAAG,IAAI4N,EAAE,CAAC,GAAG7B,EAAE/L,EAAE2L,GAAE,EAAGlS,EAAEV,KAAKy3I,oBAAoB,GAAG,iBAAiB/2I,EAAE,MAAM,MAAMuG,EAAE,IAAI,MAAMA,EAAE,IAAI+L,EAAE/L,EAAEoE,OAAO,GAAG,MAAMpE,EAAE,IAAI2L,GAAE,EAAGI,EAAE/L,EAAEoE,OAAO,IAAIwJ,EAAE,GAAG,MAAM5N,EAAE,GAAG4N,EAAE3T,KAAK,GAAG2T,EAAE3T,MAAM,IAAI,MAAM+F,EAAE,GAAG+L,EAAE/L,EAAEoE,OAAO,GAAG,MAAMpE,EAAE,KAAK2L,GAAE,EAAGI,EAAE/L,EAAEoE,OAAO,IAAIwJ,EAAEhY,QAAQ8V,EAAEsuC,QAAQowF,gBAAgB3wI,EAAEsS,EAAEJ,KAAK,CAAC,EAAEiC,EAAE0jI,KAAK,SAAStxI,GAAG,OAAOjH,KAAK43I,WAAU,KAAM5rH,OAAO/kB,GAAGlJ,aAAa,EAAE8W,EAAE2jI,WAAW,SAASvxI,GAAG,OAAOjH,KAAKi4I,iBAAgB,KAAMjsH,OAAO/kB,GAAGlJ,aAAa,EAAE8W,EAAE6jI,SAAS,SAASzxI,GAAG,OAAOjH,KAAKq4I,eAAc,KAAMrsH,OAAO/kB,GAAGlJ,aAAa,EAAE8W,EAAEy+F,GAAG,SAASrsG,EAAE4N,GAAG,YAAO,IAASA,IAAIA,GAAE,GAAI7U,KAAK24C,UAAU1xC,EAAE4N,IAAI7U,KAAKu4I,KAAKtxI,IAAIjH,KAAKw4I,WAAWvxI,EAAE,EAAE4N,EAAEuqB,KAAK,SAASn4B,GAAG,IAAI4N,EAAE7U,KAAK,YAAO,IAASiH,IAAIA,EAAE,IAAIA,EAAEm4B,MAAK,SAAUn4B,GAAG,OAAO4N,EAAEy+F,GAAGrsG,EAAG,GAAE,EAAEA,CAAC,CAAv0I,GAA20I4N,EAAEosC,QAAQlxC,EAAE9I,EAAE9N,QAAQ0b,EAAEosC,OAAO,EAAE,GAAG,SAASh6C,EAAE4N,EAAE7B,GAAG,aAAa6B,EAAEg8H,YAAW,EAAGh8H,EAAEosC,aAAQ,EAAO,IAAIruC,EAAElS,GAAGkS,EAAEI,EAAE,MAAMJ,EAAEi+H,WAAWj+H,EAAE,CAACquC,QAAQruC,GAAOkC,EAAE,6BAA6B/H,EAAE,CAAC,CAACrD,KAAK,CAAC,cAAc4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,aAAaqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,2BAA2B7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,UAAU4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,SAASqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,kCAAkC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,gBAAgB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,SAASqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,2BAA2B7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,mBAAmB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,gCAAgCqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,2CAA2C7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,UAAU4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,uBAAuBqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,iCAAiC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,cAAc4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,cAAcqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,qCAAqC7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,UAAU4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,SAASqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,iCAAiC7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,UAAU4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,SAASqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,iCAAiC7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,UAAU4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,eAAeqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,kCAAkC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,yBAAyB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,eAAeqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,gCAAgC7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,cAAc4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,kBAAkBqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,sCAAsC7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,cAAc4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,cAAcqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,sCAAsC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,kBAAkB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,WAAWqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,0CAA0C7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,aAAa4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,YAAYqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,qCAAqC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,WAAW4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,UAAUqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,mCAAmC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,aAAa4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,YAAYqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,qCAAqC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,aAAa4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,YAAYqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,qCAAqC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,mBAAmB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,UAAUqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,2CAA2C7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,cAAc4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,iBAAiB+E,KAAKzC,GAAG,kBAAkB,cAAc+L,EAAEtS,EAAEugD,QAAQ6vF,cAAc,kDAAkD7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,iBAAiB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,qBAAqBqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,iCAAiC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,YAAY4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,kBAAkBqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,2BAA2B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,kBAAkB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,kBAAkBqO,EAAEtS,EAAEugD,QAAQ8vF,eAAe,mCAAmC9pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,YAAY4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,WAAWqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,6BAA6B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,cAAc4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,aAAaqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,+BAA+B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,aAAa4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,YAAYqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,qCAAqC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,SAAS4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,eAAeqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,0BAA0B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,YAAY4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,aAAaqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,+BAA+B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,aAAa4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,YAAYqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,8BAA8B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,sBAAsB,gBAAgB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,cAAcqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,qCAAqC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,mBAAmB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,iBAAiBqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,IAAIvG,EAAEugD,QAAQ6vF,cAAc,0CAA0C7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,SAAS4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,QAAQqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,4BAA4B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,UAAU4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,SAASqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,0CAA0C7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,aAAa4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,YAAYqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,qCAAqC7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,4BAA4B4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,WAAWqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,oDAAoD7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,aAAa4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,YAAYqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,kCAAkC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,gBAAgB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,QAAQqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,wCAAwC7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,aAAa4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,YAAYqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,qCAAqC7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,sBAAsB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,UAAUqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,2CAA2C7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,QAAQ4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,iBAAiBqO,EAAEtS,EAAEugD,QAAQ6vF,cAAc,6BAA6B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,SAASzC,GAAG,IAAI4N,GAAG5N,EAAEyC,KAAK,iBAAiBsJ,EAAE/L,EAAEyC,KAAK,YAAY,OAAOmL,GAAG7B,CAAC,EAAEskI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,mBAAmBqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,kBAAkB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,iBAAiBqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,uBAAuB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAK,UAAUqO,EAAEtS,EAAEugD,QAAQ6vF,cAAch8H,EAAE7N,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,OAAO4tI,SAAS,SAASrwI,GAAG,IAAI4N,GAAG,IAAI5N,EAAEsD,OAAO,OAAO,yBAAyB,eAAe,MAAM,CAAC5F,KAAKjE,EAAEugD,QAAQ6vF,cAAcj8H,EAAE5N,GAAG6E,QAAQpL,EAAEugD,QAAQ8vF,eAAel8H,EAAE5N,GAAG,IAAI4N,EAAEosC,QAAQl0C,EAAE9F,EAAE9N,QAAQ0b,EAAEosC,OAAO,EAAE,GAAG,SAASh6C,EAAE4N,EAAE7B,GAAG,aAAa6B,EAAEg8H,YAAW,EAAGh8H,EAAEosC,aAAQ,EAAO,IAAIruC,EAAElS,GAAGkS,EAAEI,EAAE,MAAMJ,EAAEi+H,WAAWj+H,EAAE,CAACquC,QAAQruC,GAAGkC,EAAE9B,EAAE,IAAQjG,EAAE,CAAC,CAACrD,KAAK,CAAC,aAAa4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,wBAAwB7pI,GAAG,MAAM,CAACtC,KAAKmQ,EAAE68H,OAAO2B,KAAKxnI,QAAQ+I,EAAE,GAAG,CAACnL,KAAK,CAAC,kBAAkB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,yCAAyC7pI,GAAG,MAAM,CAACtC,KAAKmQ,EAAE68H,OAAOsE,aAAanqI,QAAQ+I,EAAE,GAAG,CAACnL,KAAK,CAAC,aAAa4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,iCAAiC7pI,GAAG+L,EAAEtS,EAAEugD,QAAQgwF,sBAAsBp8H,GAAG,MAAM,CAAClQ,KAAKmQ,EAAE68H,OAAOuE,QAAQpqI,QAAQ+I,EAAE8jI,YAAY3lI,EAAE,GAAG,CAACtJ,KAAK,CAAC,+BAA+B4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAKmQ,EAAE68H,OAAOyE,KAAKpjI,EAAEtS,EAAEugD,QAAQ8vF,eAAe,wBAAwB9pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,cAAc4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,6BAA6B7pI,GAAG7D,QAAQ,SAAS,KAAK4P,EAAEtS,EAAEugD,QAAQiwF,oBAAoBr8H,GAAGjC,EAAE,CAACjO,KAAKmQ,EAAE68H,OAAOwE,MAAMrqI,QAAQ+I,GAAG,OAAO7B,IAAIJ,EAAE+lI,YAAY3lI,GAAGJ,CAAC,GAAG,CAAClJ,KAAK,CAAC,uBAAuB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,qCAAqC7pI,GAAG7D,QAAQ,SAAS,KAAK,MAAM,CAACuB,KAAKmQ,EAAE68H,OAAOyE,IAAItqI,QAAQ+I,EAAE,GAAG,CAACnL,KAAK,SAASzC,GAAG,IAAI4N,GAAG5N,EAAEyC,KAAK,iBAAiBsJ,EAAE/L,EAAEyC,KAAK,YAAY,OAAOmL,GAAG7B,CAAC,EAAEskI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,8BAA8B7pI,GAAG+L,EAAEtS,EAAEugD,QAAQkwF,sBAAsBt8H,GAAGjC,EAAE,CAACjO,KAAKmQ,EAAE68H,OAAO0E,QAAQvqI,QAAQ+I,GAAG,OAAO7B,IAAIJ,EAAE+lI,YAAY3lI,GAAGJ,CAAC,GAAG,CAAClJ,KAAK,CAAC,mBAAmB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,mCAAmC7pI,GAAG+L,EAAE,CAACrO,KAAKmQ,EAAE68H,OAAO2E,OAAO,OAAOzhI,GAAGA,EAAEjU,SAASoS,EAAElH,QAAQ+I,GAAG7B,CAAC,GAAG,CAACtJ,KAAK,CAAC,sBAAsB,gBAAgB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,kCAAkC7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAc,mCAAmC7pI,IAAIvG,EAAEugD,QAAQ6vF,cAAc,aAAa7pI,GAAG,MAAM,CAACtC,KAAKmQ,EAAE68H,OAAOG,WAAWhmI,QAAQ+I,EAAE,GAAG,CAACnL,KAAK,CAAC,SAAS4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,uBAAuB7pI,GAAG,MAAM,CAACtC,KAAKmQ,EAAE68H,OAAOE,KAAK/lI,QAAQ+I,EAAE,GAAG,CAACnL,KAAK,CAAC,UAAU4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,2BAA2B7pI,GAAG,MAAM,CAACtC,KAAKmQ,EAAE68H,OAAOwB,MAAMrnI,QAAQ+I,EAAE,GAAG,CAACnL,KAAK,CAAC,UAAU4tI,SAAS,WAAW,MAAM,CAAC3yI,KAAKmQ,EAAE68H,OAAO4E,MAAM,GAAG,CAAC7sI,KAAK,CAAC,QAAQ4tI,SAAS,WAAW,MAAM,CAAC3yI,KAAKmQ,EAAE68H,OAAO6E,SAAS,GAAG,CAAC9sI,KAAK,CAAC,iBAAiB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,mCAAmC7pI,GAAG,MAAM,CAACtC,KAAKmQ,EAAE68H,OAAO8E,aAAa3qI,QAAQ+I,EAAE,IAAIA,EAAEosC,QAAQl0C,EAAE9F,EAAE9N,QAAQ0b,EAAEosC,OAAO,EAAE,GAAG,SAASh6C,EAAE4N,EAAE7B,GAAG,aAAa6B,EAAEg8H,YAAW,EAAGh8H,EAAEosC,aAAQ,EAAO,IAAIruC,EAAElS,GAAGkS,EAAEI,EAAE,MAAMJ,EAAEi+H,WAAWj+H,EAAE,CAACquC,QAAQruC,GAAGkC,EAAE9B,EAAE,IAAQjG,EAAE,CAAC,CAACrD,KAAK,CAAC,cAAc4tI,SAAS,WAAW,MAAM,CAAC/4I,KAAK,MAAMq6I,OAAO,SAAS,GAAG,CAAClvI,KAAK,CAAC,WAAW4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,aAAa7pI,IAAI,OAAO+L,EAAE,CAACzU,KAAKuW,EAAE88H,cAAckE,OAAO8C,OAAO,UAAU,OAAO/jI,IAAI7B,EAAE6lI,MAAMhkI,GAAG7B,CAAC,GAAG,CAACtJ,KAAK,CAAC,2BAA2B4tI,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAciE,OAAO+C,OAAO,QAAQ,GAAG,CAAClvI,KAAK,CAAC,SAAS4tI,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAciE,OAAO+C,OAAO,QAAQC,MAAM,OAAO,GAAG,CAACnvI,KAAK,CAAC,+BAA+B4tI,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAciE,OAAO+C,OAAO,QAAQC,MAAM,OAAO,GAAG,CAACnvI,KAAK,CAAC,eAAe4tI,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAciE,OAAO+C,OAAO,SAASC,MAAM,mBAAmB,GAAG,CAACnvI,KAAK,CAAC,SAAS4tI,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAciE,OAAO+C,OAAO,SAAS,GAAG,CAAClvI,KAAK,CAAC,kBAAkB4tI,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAciE,OAAO,GAAG,CAACnsI,KAAK,SAASzC,GAAG,IAAI4N,EAAE5N,EAAEyC,KAAK,gBAAgBsJ,EAAE/L,EAAEyC,KAAK,uBAAuB,OAAOmL,IAAI7B,CAAC,EAAEskI,SAAS,SAASrwI,GAAG,IAAI4N,EAAEnU,EAAEugD,QAAQ6vF,cAAc,iBAAiB7pI,GAAG,MAAM,CAAC1I,KAAKuW,EAAE88H,cAAckE,OAAO8C,OAAO,QAAQC,MAAMhkI,EAAE,GAAG,CAACnL,KAAK,CAAC,mBAAmB,iBAAiB4tI,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAckE,OAAO8C,OAAO,QAAQ,GAAG,CAAClvI,KAAK,CAAC,aAAa4tI,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAckE,OAAO,GAAG,CAACpsI,KAAK,SAASzC,GAAG,MAAM,eAAeA,EAAEuwI,gBAAe,EAAG,EAAEF,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAckE,OAAO8C,OAAO,aAAa,GAAG,CAAClvI,KAAK,SAASzC,GAAG,MAAM,SAASA,EAAEuwI,gBAAe,EAAG,EAAEF,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAckE,OAAO,GAAG,CAACpsI,KAAK,SAASzC,GAAG,MAAM,kBAAkBA,EAAEuwI,gBAAgB,EAAEF,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAckE,OAAO8C,OAAO,YAAY,GAAG,CAAClvI,KAAK,SAASzC,GAAG,IAAI4N,EAAEzG,OAAO4d,OAAO/kB,EAAE4wI,gBAAgB1sI,MAAM,KAAK,IAAI,MAAM,YAAYlE,EAAE2wI,WAAU,IAAK/iI,GAAG,CAAC,EAAEyiI,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAciE,OAAO,GAAG,CAACnsI,KAAK,SAASzC,GAAG,MAAM,YAAYA,EAAE2wI,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAckE,OAAO,GAAG,CAACpsI,KAAK,SAASzC,GAAG,MAAM,UAAUA,EAAE2wI,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAcmE,QAAQ6C,OAAO,QAAQ,GAAG,CAAClvI,KAAK,SAASzC,GAAG,MAAM,YAAYA,EAAE2wI,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAcmE,QAAQ,GAAG,CAACrsI,KAAK,SAASzC,GAAG,MAAM,UAAUA,EAAE2wI,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAcmE,QAAQ,GAAG,CAACrsI,KAAK,SAASzC,GAAG,MAAM,kBAAkBA,EAAE2wI,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAcoE,GAAG,GAAG,CAACtsI,KAAK,SAASzC,GAAG,MAAM,SAASA,EAAE2wI,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAAC/4I,KAAKuW,EAAE88H,cAAcoE,GAAG,IAAInhI,EAAEosC,QAAQl0C,EAAE9F,EAAE9N,QAAQ0b,EAAEosC,OAAO,EAAE,GAAG,SAASh6C,EAAE4N,EAAE7B,GAAG,aAAa6B,EAAEg8H,YAAW,EAAGh8H,EAAEosC,aAAQ,EAAO,IAAIruC,EAAElS,GAAGkS,EAAEI,EAAE,MAAMJ,EAAEi+H,WAAWj+H,EAAE,CAACquC,QAAQruC,GAAGkC,EAAE9B,EAAE,IAAQjG,EAAE,CAAC,CAACrD,KAAK,SAASzC,GAAG,MAAM,mBAAmBA,EAAEuwI,gBAAe,EAAG,EAAEF,SAAS,SAASrwI,GAAG,GAAG,WAAWyC,KAAKzC,GAAG,MAAM,CAACtC,KAAKmQ,EAAE48H,WAAWiF,OAAO,IAAI9hI,EAAEnU,EAAEugD,QAAQ6vF,cAAc,0BAA0B7pI,GAAG,MAAM,CAACtC,KAAKmQ,EAAE48H,WAAWgF,SAAS5qI,QAAQ+I,EAAE,GAAG,CAACnL,KAAK,CAAC,YAAY4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAKmQ,EAAE48H,WAAWkF,SAAS5jI,EAAEtS,EAAEugD,QAAQ6vF,cAAc,6BAA6B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,SAASzC,GAAG,OAAOA,EAAEyC,KAAK,UAAU,EAAE4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAKmQ,EAAE48H,WAAWmF,QAAQ7jI,EAAEtS,EAAEugD,QAAQ6vF,cAAc,4BAA4B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,SAASzC,GAAG,IAAI4N,EAAE5N,EAAEyC,KAAK,UAAUsJ,EAAE/L,EAAEyC,KAAK,eAAe,OAAOmL,IAAI7B,CAAC,EAAEskI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAKmQ,EAAE48H,WAAWoF,OAAO9jI,EAAEtS,EAAEugD,QAAQ6vF,cAAc,2BAA2B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,GAAG,CAACnL,KAAK,CAAC,4BAA4B4tI,SAAS,WAAW,MAAM,CAAC3yI,KAAKmQ,EAAE48H,WAAWiF,MAAM,GAAG,CAACjtI,KAAK,CAAC,mBAAmB4tI,SAAS,SAASrwI,GAAG,IAAI4N,EAAE,CAAClQ,KAAKmQ,EAAE48H,WAAWqF,QAAQ/jI,EAAEtS,EAAEugD,QAAQ6vF,cAAc,4BAA4B7pI,GAAG,OAAO+L,IAAI6B,EAAE/I,QAAQkH,GAAG6B,CAAC,IAAIA,EAAEosC,QAAQl0C,EAAE9F,EAAE9N,QAAQ0b,EAAEosC,OAAO,GAAI,G,yCCUr4yBslB,EAAS,EAAQ,OACjBuyE,EAAU,EAAQ,KAClBvzI,EAAU,EAAQ;;;;;;GAuCtB,SAASwzI,IACP,IACE,IAAIxtI,EAAM,IAAIuzC,WAAW,GAEzB,OADAvzC,EAAI0E,UAAY,CAACA,UAAW6uC,WAAW3/C,UAAW65I,IAAK,WAAc,OAAO,EAAG,GAC1D,KAAdztI,EAAIytI,OACiB,oBAAjBztI,EAAI0tI,UACuB,IAAlC1tI,EAAI0tI,SAAS,EAAG,GAAG/5F,UACzB,CAAE,MAAOj4C,GACP,OAAO,CACT,CACF,CAEA,SAASiyI,IACP,OAAOtyD,EAAOuyD,oBACV,WACA,UACN,CAEA,SAASC,EAAc7yF,EAAM3lD,GAC3B,GAAIs4I,IAAet4I,EACjB,MAAM,IAAIy4I,WAAW,8BAcvB,OAZIzyD,EAAOuyD,qBAET5yF,EAAO,IAAIzH,WAAWl+C,GACtB2lD,EAAKt2C,UAAY22E,EAAOznF,YAGX,OAATonD,IACFA,EAAO,IAAIqgC,EAAOhmF,IAEpB2lD,EAAK3lD,OAASA,GAGT2lD,CACT,CAYA,SAASqgC,EAAQpxE,EAAK8jI,EAAkB14I,GACtC,IAAKgmF,EAAOuyD,uBAAyBn5I,gBAAgB4mF,GACnD,OAAO,IAAIA,EAAOpxE,EAAK8jI,EAAkB14I,GAI3C,GAAmB,kBAAR4U,EAAkB,CAC3B,GAAgC,kBAArB8jI,EACT,MAAM,IAAIr1I,MACR,qEAGJ,OAAOs1I,EAAYv5I,KAAMwV,EAC3B,CACA,OAAO+qB,EAAKvgC,KAAMwV,EAAK8jI,EAAkB14I,EAC3C,CAUA,SAAS2/B,EAAMgmB,EAAMrqD,EAAOo9I,EAAkB14I,GAC5C,GAAqB,kBAAV1E,EACT,MAAM,IAAIkE,UAAU,yCAGtB,MAA2B,qBAAhBiM,aAA+BnQ,aAAiBmQ,YAClDmtI,EAAgBjzF,EAAMrqD,EAAOo9I,EAAkB14I,GAGnC,kBAAV1E,EACFw3H,EAAWntE,EAAMrqD,EAAOo9I,GAG1Bj5E,EAAW9Z,EAAMrqD,EAC1B,CA2BA,SAASu9I,EAAYtoI,GACnB,GAAoB,kBAATA,EACT,MAAM,IAAI/Q,UAAU,oCACf,GAAI+Q,EAAO,EAChB,MAAM,IAAIkoI,WAAW,uCAEzB,CAEA,SAASK,EAAOnzF,EAAMp1C,EAAM6rF,EAAM5a,GAEhC,OADAq3D,EAAWtoI,GACPA,GAAQ,EACHioI,EAAa7yF,EAAMp1C,QAEfzT,IAATs/F,EAIyB,kBAAb5a,EACVg3D,EAAa7yF,EAAMp1C,GAAM6rF,KAAKA,EAAM5a,GACpCg3D,EAAa7yF,EAAMp1C,GAAM6rF,KAAKA,GAE7Bo8C,EAAa7yF,EAAMp1C,EAC5B,CAUA,SAASooI,EAAahzF,EAAMp1C,GAG1B,GAFAsoI,EAAWtoI,GACXo1C,EAAO6yF,EAAa7yF,EAAMp1C,EAAO,EAAI,EAAoB,EAAhBq6G,EAAQr6G,KAC5Cy1E,EAAOuyD,oBACV,IAAK,IAAIz4I,EAAI,EAAGA,EAAIyQ,IAAQzQ,EAC1B6lD,EAAK7lD,GAAK,EAGd,OAAO6lD,CACT,CAeA,SAASmtE,EAAYntE,EAAM3H,EAAQwjC,GAKjC,GAJwB,kBAAbA,GAAsC,KAAbA,IAClCA,EAAW,SAGRwE,EAAO+yD,WAAWv3D,GACrB,MAAM,IAAIhiF,UAAU,8CAGtB,IAAIQ,EAAwC,EAA/Bs+C,EAAWN,EAAQwjC,GAChC77B,EAAO6yF,EAAa7yF,EAAM3lD,GAE1B,IAAIg5I,EAASrzF,EAAK59C,MAAMi2C,EAAQwjC,GAShC,OAPIw3D,IAAWh5I,IAIb2lD,EAAOA,EAAK/gD,MAAM,EAAGo0I,IAGhBrzF,CACT,CAEA,SAASszF,EAAetzF,EAAMtgC,GAC5B,IAAIrlB,EAASqlB,EAAMrlB,OAAS,EAAI,EAA4B,EAAxB4qH,EAAQvlG,EAAMrlB,QAClD2lD,EAAO6yF,EAAa7yF,EAAM3lD,GAC1B,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAQF,GAAK,EAC/B6lD,EAAK7lD,GAAgB,IAAXulB,EAAMvlB,GAElB,OAAO6lD,CACT,CAEA,SAASizF,EAAiBjzF,EAAMtgC,EAAO+8D,EAAYpiF,GAGjD,GAFAqlB,EAAMi5B,WAEF8jC,EAAa,GAAK/8D,EAAMi5B,WAAa8jC,EACvC,MAAM,IAAIq2D,WAAW,6BAGvB,GAAIpzH,EAAMi5B,WAAa8jC,GAAcpiF,GAAU,GAC7C,MAAM,IAAIy4I,WAAW,6BAmBvB,OAfEpzH,OADiBvoB,IAAfslF,QAAuCtlF,IAAXkD,EACtB,IAAIk+C,WAAW74B,QACHvoB,IAAXkD,EACD,IAAIk+C,WAAW74B,EAAO+8D,GAEtB,IAAIlkC,WAAW74B,EAAO+8D,EAAYpiF,GAGxCgmF,EAAOuyD,qBAET5yF,EAAOtgC,EACPsgC,EAAKt2C,UAAY22E,EAAOznF,WAGxBonD,EAAOszF,EAActzF,EAAMtgC,GAEtBsgC,CACT,CAEA,SAAS8Z,EAAY9Z,EAAM35C,GACzB,GAAIg6E,EAAOx/E,SAASwF,GAAM,CACxB,IAAI8U,EAA4B,EAAtB8pG,EAAQ5+G,EAAIhM,QAGtB,OAFA2lD,EAAO6yF,EAAa7yF,EAAM7kC,GAEN,IAAhB6kC,EAAK3lD,OACA2lD,GAGT35C,EAAIktI,KAAKvzF,EAAM,EAAG,EAAG7kC,GACd6kC,EACT,CAEA,GAAI35C,EAAK,CACP,GAA4B,qBAAhBP,aACRO,EAAInF,kBAAkB4E,aAAgB,WAAYO,EACpD,MAA0B,kBAAfA,EAAIhM,QAAuBm5I,GAAMntI,EAAIhM,QACvCw4I,EAAa7yF,EAAM,GAErBszF,EAActzF,EAAM35C,GAG7B,GAAiB,WAAbA,EAAIrO,MAAqBgH,EAAQqH,EAAIxS,MACvC,OAAOy/I,EAActzF,EAAM35C,EAAIxS,KAEnC,CAEA,MAAM,IAAIgG,UAAU,qFACtB,CAEA,SAASorH,EAAS5qH,GAGhB,GAAIA,GAAUs4I,IACZ,MAAM,IAAIG,WAAW,0DACaH,IAAaj5I,SAAS,IAAM,UAEhE,OAAgB,EAATW,CACT,CAEA,SAASo5I,EAAYp5I,GAInB,OAHKA,GAAUA,IACbA,EAAS,GAEJgmF,EAAO8yD,OAAO94I,EACvB,CA8EA,SAASs+C,EAAYN,EAAQwjC,GAC3B,GAAIwE,EAAOx/E,SAASw3C,GAClB,OAAOA,EAAOh+C,OAEhB,GAA2B,qBAAhByL,aAA6D,oBAAvBA,YAAYC,SACxDD,YAAYC,OAAOsyC,IAAWA,aAAkBvyC,aACnD,OAAOuyC,EAAOM,WAEM,kBAAXN,IACTA,EAAS,GAAKA,GAGhB,IAAIl9B,EAAMk9B,EAAOh+C,OACjB,GAAY,IAAR8gB,EAAW,OAAO,EAItB,IADA,IAAIu4H,GAAc,IAEhB,OAAQ73D,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO1gE,EACT,IAAK,OACL,IAAK,QACL,UAAKhkB,EACH,OAAOw8I,EAAYt7F,GAAQh+C,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAAN8gB,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAOy4H,EAAcv7F,GAAQh+C,OAC/B,QACE,GAAIq5I,EAAa,OAAOC,EAAYt7F,GAAQh+C,OAC5CwhF,GAAY,GAAKA,GAAUrkF,cAC3Bk8I,GAAc,EAGtB,CAGA,SAASG,EAAch4D,EAAUriE,EAAOkK,GACtC,IAAIgwH,GAAc,EAclB,SALcv8I,IAAVqiB,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQ/f,KAAKY,OACf,MAAO,GAOT,SAJYlD,IAARusB,GAAqBA,EAAMjqB,KAAKY,UAClCqpB,EAAMjqB,KAAKY,QAGTqpB,GAAO,EACT,MAAO,GAOT,GAHAA,KAAS,EACTlK,KAAW,EAEPkK,GAAOlK,EACT,MAAO,GAGJqiE,IAAUA,EAAW,QAE1B,MAAO,EACL,OAAQA,GACN,IAAK,MACH,OAAOi4D,EAASr6I,KAAM+f,EAAOkK,GAE/B,IAAK,OACL,IAAK,QACH,OAAOqwH,EAAUt6I,KAAM+f,EAAOkK,GAEhC,IAAK,QACH,OAAOswH,EAAWv6I,KAAM+f,EAAOkK,GAEjC,IAAK,SACL,IAAK,SACH,OAAOuwH,EAAYx6I,KAAM+f,EAAOkK,GAElC,IAAK,SACH,OAAOwwH,EAAYz6I,KAAM+f,EAAOkK,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOywH,EAAa16I,KAAM+f,EAAOkK,GAEnC,QACE,GAAIgwH,EAAa,MAAM,IAAI75I,UAAU,qBAAuBgiF,GAC5DA,GAAYA,EAAW,IAAIrkF,cAC3Bk8I,GAAc,EAGtB,CAMA,SAASU,EAAM3tI,EAAG4F,EAAGC,GACnB,IAAInS,EAAIsM,EAAE4F,GACV5F,EAAE4F,GAAK5F,EAAE6F,GACT7F,EAAE6F,GAAKnS,CACT,CAkIA,SAASk6I,EAAsBnzI,EAAQ5J,EAAKmlF,EAAYZ,EAAUrH,GAEhE,GAAsB,IAAlBtzE,EAAO7G,OAAc,OAAQ,EAmBjC,GAhB0B,kBAAfoiF,GACTZ,EAAWY,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAEhBA,GAAcA,EACVvzD,MAAMuzD,KAERA,EAAajI,EAAM,EAAKtzE,EAAO7G,OAAS,GAItCoiF,EAAa,IAAGA,EAAav7E,EAAO7G,OAASoiF,GAC7CA,GAAcv7E,EAAO7G,OAAQ,CAC/B,GAAIm6E,EAAK,OAAQ,EACZiI,EAAav7E,EAAO7G,OAAS,CACpC,MAAO,GAAIoiF,EAAa,EAAG,CACzB,IAAIjI,EACC,OAAQ,EADJiI,EAAa,CAExB,CAQA,GALmB,kBAARnlF,IACTA,EAAM+oF,EAAOrmD,KAAK1iC,EAAKukF,IAIrBwE,EAAOx/E,SAASvJ,GAElB,OAAmB,IAAfA,EAAI+C,QACE,EAEHi6I,EAAapzI,EAAQ5J,EAAKmlF,EAAYZ,EAAUrH,GAClD,GAAmB,kBAARl9E,EAEhB,OADAA,GAAY,IACR+oF,EAAOuyD,qBACiC,oBAAjCr6F,WAAW3/C,UAAUtC,QAC1Bk+E,EACKj8B,WAAW3/C,UAAUtC,QAAQuH,KAAKqD,EAAQ5J,EAAKmlF,GAE/ClkC,WAAW3/C,UAAU64E,YAAY5zE,KAAKqD,EAAQ5J,EAAKmlF,GAGvD63D,EAAapzI,EAAQ,CAAE5J,GAAOmlF,EAAYZ,EAAUrH,GAG7D,MAAM,IAAI36E,UAAU,uCACtB,CAEA,SAASy6I,EAActvI,EAAK1N,EAAKmlF,EAAYZ,EAAUrH,GACrD,IA0BIr6E,EA1BAo6I,EAAY,EACZC,EAAYxvI,EAAI3K,OAChBo6I,EAAYn9I,EAAI+C,OAEpB,QAAiBlD,IAAb0kF,IACFA,EAAWp2D,OAAOo2D,GAAUrkF,cACX,SAAbqkF,GAAoC,UAAbA,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAI72E,EAAI3K,OAAS,GAAK/C,EAAI+C,OAAS,EACjC,OAAQ,EAEVk6I,EAAY,EACZC,GAAa,EACbC,GAAa,EACbh4D,GAAc,CAChB,CAGF,SAASvlF,EAAMwiF,EAAKv/E,GAClB,OAAkB,IAAdo6I,EACK76D,EAAIv/E,GAEJu/E,EAAIg7D,aAAav6I,EAAIo6I,EAEhC,CAGA,GAAI//D,EAAK,CACP,IAAImgE,GAAc,EAClB,IAAKx6I,EAAIsiF,EAAYtiF,EAAIq6I,EAAWr6I,IAClC,GAAIjD,EAAK8N,EAAK7K,KAAOjD,EAAKI,GAAqB,IAAhBq9I,EAAoB,EAAIx6I,EAAIw6I,IAEzD,IADoB,IAAhBA,IAAmBA,EAAax6I,GAChCA,EAAIw6I,EAAa,IAAMF,EAAW,OAAOE,EAAaJ,OAEtC,IAAhBI,IAAmBx6I,GAAKA,EAAIw6I,GAChCA,GAAc,CAGpB,MAEE,IADIl4D,EAAag4D,EAAYD,IAAW/3D,EAAa+3D,EAAYC,GAC5Dt6I,EAAIsiF,EAAYtiF,GAAK,EAAGA,IAAK,CAEhC,IADA,IAAI+qH,GAAQ,EACH5lD,EAAI,EAAGA,EAAIm1E,EAAWn1E,IAC7B,GAAIpoE,EAAK8N,EAAK7K,EAAImlE,KAAOpoE,EAAKI,EAAKgoE,GAAI,CACrC4lD,GAAQ,EACR,KACF,CAEF,GAAIA,EAAO,OAAO/qH,CACpB,CAGF,OAAQ,CACV,CAcA,SAASy6I,EAAUl7D,EAAKrhC,EAAQjqC,EAAQ/T,GACtC+T,EAASvG,OAAOuG,IAAW,EAC3B,IAAI+X,EAAYuzD,EAAIr/E,OAAS+T,EACxB/T,GAGHA,EAASwN,OAAOxN,GACZA,EAAS8rB,IACX9rB,EAAS8rB,IAJX9rB,EAAS8rB,EASX,IAAI0uH,EAASx8F,EAAOh+C,OACpB,GAAIw6I,EAAS,IAAM,EAAG,MAAM,IAAIh7I,UAAU,sBAEtCQ,EAASw6I,EAAS,IACpBx6I,EAASw6I,EAAS,GAEpB,IAAK,IAAI16I,EAAI,EAAGA,EAAIE,IAAUF,EAAG,CAC/B,IAAIsK,EAAS4uC,SAASgF,EAAOvzC,OAAW,EAAJ3K,EAAO,GAAI,IAC/C,GAAI+uB,MAAMzkB,GAAS,OAAOtK,EAC1Bu/E,EAAItrE,EAASjU,GAAKsK,CACpB,CACA,OAAOtK,CACT,CAEA,SAAS26I,EAAWp7D,EAAKrhC,EAAQjqC,EAAQ/T,GACvC,OAAO06I,GAAWpB,EAAYt7F,EAAQqhC,EAAIr/E,OAAS+T,GAASsrE,EAAKtrE,EAAQ/T,EAC3E,CAEA,SAAS26I,EAAYt7D,EAAKrhC,EAAQjqC,EAAQ/T,GACxC,OAAO06I,GAAWE,EAAa58F,GAASqhC,EAAKtrE,EAAQ/T,EACvD,CAEA,SAAS66I,EAAax7D,EAAKrhC,EAAQjqC,EAAQ/T,GACzC,OAAO26I,EAAWt7D,EAAKrhC,EAAQjqC,EAAQ/T,EACzC,CAEA,SAAS86I,EAAaz7D,EAAKrhC,EAAQjqC,EAAQ/T,GACzC,OAAO06I,GAAWnB,EAAcv7F,GAASqhC,EAAKtrE,EAAQ/T,EACxD,CAEA,SAAS+6I,EAAW17D,EAAKrhC,EAAQjqC,EAAQ/T,GACvC,OAAO06I,GAAWM,EAAeh9F,EAAQqhC,EAAIr/E,OAAS+T,GAASsrE,EAAKtrE,EAAQ/T,EAC9E,CAiFA,SAAS65I,EAAax6D,EAAKlgE,EAAOkK,GAChC,OAAc,IAAVlK,GAAekK,IAAQg2D,EAAIr/E,OACtB2lE,EAAOqpE,cAAc3vD,GAErB1Z,EAAOqpE,cAAc3vD,EAAIz6E,MAAMua,EAAOkK,GAEjD,CAEA,SAASqwH,EAAWr6D,EAAKlgE,EAAOkK,GAC9BA,EAAM1b,KAAKke,IAAIwzD,EAAIr/E,OAAQqpB,GAC3B,IAAI0jB,EAAM,GAENjtC,EAAIqf,EACR,MAAOrf,EAAIupB,EAAK,CACd,IAQM4xH,EAAYC,EAAWC,EAAYC,EARrCC,EAAYh8D,EAAIv/E,GAChBw7I,EAAY,KACZC,EAAoBF,EAAY,IAAQ,EACvCA,EAAY,IAAQ,EACpBA,EAAY,IAAQ,EACrB,EAEJ,GAAIv7I,EAAIy7I,GAAoBlyH,EAG1B,OAAQkyH,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EACHJ,EAAa57D,EAAIv/E,EAAI,GACO,OAAV,IAAbm7I,KACHG,GAA6B,GAAZC,IAAqB,EAAoB,GAAbJ,EACzCG,EAAgB,MAClBE,EAAYF,IAGhB,MACF,KAAK,EACHH,EAAa57D,EAAIv/E,EAAI,GACrBo7I,EAAY77D,EAAIv/E,EAAI,GACQ,OAAV,IAAbm7I,IAAsD,OAAV,IAAZC,KACnCE,GAA6B,GAAZC,IAAoB,IAAoB,GAAbJ,IAAsB,EAAmB,GAAZC,EACrEE,EAAgB,OAAUA,EAAgB,OAAUA,EAAgB,SACtEE,EAAYF,IAGhB,MACF,KAAK,EACHH,EAAa57D,EAAIv/E,EAAI,GACrBo7I,EAAY77D,EAAIv/E,EAAI,GACpBq7I,EAAa97D,EAAIv/E,EAAI,GACO,OAAV,IAAbm7I,IAAsD,OAAV,IAAZC,IAAsD,OAAV,IAAbC,KAClEC,GAA6B,GAAZC,IAAoB,IAAqB,GAAbJ,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,EAClGC,EAAgB,OAAUA,EAAgB,UAC5CE,EAAYF,IAMJ,OAAdE,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbvuG,EAAIzsC,KAAKg7I,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBvuG,EAAIzsC,KAAKg7I,GACTx7I,GAAKy7I,CACP,CAEA,OAAOC,EAAsBzuG,EAC/B,CA/8BAx0C,EAAQ,GAASytF,EAEjBztF,EAAQ,GAAoB,GA0B5BytF,EAAOuyD,yBAAqDz7I,IAA/B,EAAAwc,EAAOi/H,oBAChC,EAAAj/H,EAAOi/H,oBACPJ,IAKiBG,IAkErBtyD,EAAOy1D,SAAW,KAGlBz1D,EAAO01D,SAAW,SAAU/wI,GAE1B,OADAA,EAAI0E,UAAY22E,EAAOznF,UAChBoM,CACT,EA0BAq7E,EAAOrmD,KAAO,SAAUrkC,EAAOo9I,EAAkB14I,GAC/C,OAAO2/B,EAAK,KAAMrkC,EAAOo9I,EAAkB14I,EAC7C,EAEIgmF,EAAOuyD,sBACTvyD,EAAOznF,UAAU8Q,UAAY6uC,WAAW3/C,UACxCynF,EAAO32E,UAAY6uC,WACG,qBAAXhsC,QAA0BA,OAAOypI,SACxC31D,EAAO9zE,OAAOypI,WAAa31D,GAE7B7gF,OAAOuc,eAAeskE,EAAQ9zE,OAAOypI,QAAS,CAC5CrgJ,MAAO,KACPqmB,cAAc,KAiCpBqkE,EAAO8yD,MAAQ,SAAUvoI,EAAM6rF,EAAM5a,GACnC,OAAOs3D,EAAM,KAAMvoI,EAAM6rF,EAAM5a,EACjC,EAgBAwE,EAAO2yD,YAAc,SAAUpoI,GAC7B,OAAOooI,EAAY,KAAMpoI,EAC3B,EAIAy1E,EAAO41D,gBAAkB,SAAUrrI,GACjC,OAAOooI,EAAY,KAAMpoI,EAC3B,EAgHAy1E,EAAOx/E,SAAW,SAAmB4F,GACnC,QAAe,MAALA,IAAaA,EAAEyvI,UAC3B,EAEA71D,EAAO81D,QAAU,SAAkB3vI,EAAGC,GACpC,IAAK45E,EAAOx/E,SAAS2F,KAAO65E,EAAOx/E,SAAS4F,GAC1C,MAAM,IAAI5M,UAAU,6BAGtB,GAAI2M,IAAMC,EAAG,OAAO,EAKpB,IAHA,IAAIiyB,EAAIlyB,EAAEnM,OACNqZ,EAAIjN,EAAEpM,OAEDF,EAAI,EAAGghB,EAAMnT,KAAKke,IAAIwS,EAAGhlB,GAAIvZ,EAAIghB,IAAOhhB,EAC/C,GAAIqM,EAAErM,KAAOsM,EAAEtM,GAAI,CACjBu+B,EAAIlyB,EAAErM,GACNuZ,EAAIjN,EAAEtM,GACN,KACF,CAGF,OAAIu+B,EAAIhlB,GAAW,EACfA,EAAIglB,EAAU,EACX,CACT,EAEA2nD,EAAO+yD,WAAa,SAAqBv3D,GACvC,OAAQp2D,OAAOo2D,GAAUrkF,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,EAEb,EAEA6oF,EAAO/jF,OAAS,SAAiBg4E,EAAMj6E,GACrC,IAAK2E,EAAQs1E,GACX,MAAM,IAAIz6E,UAAU,+CAGtB,GAAoB,IAAhBy6E,EAAKj6E,OACP,OAAOgmF,EAAO8yD,MAAM,GAGtB,IAAIh5I,EACJ,QAAehD,IAAXkD,EAEF,IADAA,EAAS,EACJF,EAAI,EAAGA,EAAIm6E,EAAKj6E,SAAUF,EAC7BE,GAAUi6E,EAAKn6E,GAAGE,OAItB,IAAI6G,EAASm/E,EAAO2yD,YAAY34I,GAC5BilB,EAAM,EACV,IAAKnlB,EAAI,EAAGA,EAAIm6E,EAAKj6E,SAAUF,EAAG,CAChC,IAAIu/E,EAAMpF,EAAKn6E,GACf,IAAKkmF,EAAOx/E,SAAS64E,GACnB,MAAM,IAAI7/E,UAAU,+CAEtB6/E,EAAI65D,KAAKryI,EAAQoe,GACjBA,GAAOo6D,EAAIr/E,MACb,CACA,OAAO6G,CACT,EA6CAm/E,EAAO1nC,WAAaA,EA0EpB0nC,EAAOznF,UAAUs9I,WAAY,EAQ7B71D,EAAOznF,UAAUw9I,OAAS,WACxB,IAAIj7H,EAAM1hB,KAAKY,OACf,GAAI8gB,EAAM,IAAM,EACd,MAAM,IAAI23H,WAAW,6CAEvB,IAAK,IAAI34I,EAAI,EAAGA,EAAIghB,EAAKhhB,GAAK,EAC5Bi6I,EAAK36I,KAAMU,EAAGA,EAAI,GAEpB,OAAOV,IACT,EAEA4mF,EAAOznF,UAAUy9I,OAAS,WACxB,IAAIl7H,EAAM1hB,KAAKY,OACf,GAAI8gB,EAAM,IAAM,EACd,MAAM,IAAI23H,WAAW,6CAEvB,IAAK,IAAI34I,EAAI,EAAGA,EAAIghB,EAAKhhB,GAAK,EAC5Bi6I,EAAK36I,KAAMU,EAAGA,EAAI,GAClBi6I,EAAK36I,KAAMU,EAAI,EAAGA,EAAI,GAExB,OAAOV,IACT,EAEA4mF,EAAOznF,UAAU09I,OAAS,WACxB,IAAIn7H,EAAM1hB,KAAKY,OACf,GAAI8gB,EAAM,IAAM,EACd,MAAM,IAAI23H,WAAW,6CAEvB,IAAK,IAAI34I,EAAI,EAAGA,EAAIghB,EAAKhhB,GAAK,EAC5Bi6I,EAAK36I,KAAMU,EAAGA,EAAI,GAClBi6I,EAAK36I,KAAMU,EAAI,EAAGA,EAAI,GACtBi6I,EAAK36I,KAAMU,EAAI,EAAGA,EAAI,GACtBi6I,EAAK36I,KAAMU,EAAI,EAAGA,EAAI,GAExB,OAAOV,IACT,EAEA4mF,EAAOznF,UAAUc,SAAW,WAC1B,IAAIW,EAAuB,EAAdZ,KAAKY,OAClB,OAAe,IAAXA,EAAqB,GACA,IAArBqH,UAAUrH,OAAqB05I,EAAUt6I,KAAM,EAAGY,GAC/Cw5I,EAAax3I,MAAM5C,KAAMiI,UAClC,EAEA2+E,EAAOznF,UAAUm7H,OAAS,SAAiBttH,GACzC,IAAK45E,EAAOx/E,SAAS4F,GAAI,MAAM,IAAI5M,UAAU,6BAC7C,OAAIJ,OAASgN,GACsB,IAA5B45E,EAAO81D,QAAQ18I,KAAMgN,EAC9B,EAEA45E,EAAOznF,UAAU0qB,QAAU,WACzB,IAAInd,EAAM,GACN2U,EAAMloB,EAAQ,GAKlB,OAJI6G,KAAKY,OAAS,IAChB8L,EAAM1M,KAAKC,SAAS,MAAO,EAAGohB,GAAKhY,MAAM,SAASb,KAAK,KACnDxI,KAAKY,OAASygB,IAAK3U,GAAO,UAEzB,WAAaA,EAAM,GAC5B,EAEAk6E,EAAOznF,UAAUu9I,QAAU,SAAkBr3I,EAAQ0a,EAAOkK,EAAK6yH,EAAWC,GAC1E,IAAKn2D,EAAOx/E,SAAS/B,GACnB,MAAM,IAAIjF,UAAU,6BAgBtB,QAbc1C,IAAVqiB,IACFA,EAAQ,QAEEriB,IAARusB,IACFA,EAAM5kB,EAASA,EAAOzE,OAAS,QAEflD,IAAdo/I,IACFA,EAAY,QAEEp/I,IAAZq/I,IACFA,EAAU/8I,KAAKY,QAGbmf,EAAQ,GAAKkK,EAAM5kB,EAAOzE,QAAUk8I,EAAY,GAAKC,EAAU/8I,KAAKY,OACtE,MAAM,IAAIy4I,WAAW,sBAGvB,GAAIyD,GAAaC,GAAWh9H,GAASkK,EACnC,OAAO,EAET,GAAI6yH,GAAaC,EACf,OAAQ,EAEV,GAAIh9H,GAASkK,EACX,OAAO,EAQT,GALAlK,KAAW,EACXkK,KAAS,EACT6yH,KAAe,EACfC,KAAa,EAET/8I,OAASqF,EAAQ,OAAO,EAS5B,IAPA,IAAI45B,EAAI89G,EAAUD,EACd7iI,EAAIgQ,EAAMlK,EACV2B,EAAMnT,KAAKke,IAAIwS,EAAGhlB,GAElB+iI,EAAWh9I,KAAKwF,MAAMs3I,EAAWC,GACjCE,EAAa53I,EAAOG,MAAMua,EAAOkK,GAE5BvpB,EAAI,EAAGA,EAAIghB,IAAOhhB,EACzB,GAAIs8I,EAASt8I,KAAOu8I,EAAWv8I,GAAI,CACjCu+B,EAAI+9G,EAASt8I,GACbuZ,EAAIgjI,EAAWv8I,GACf,KACF,CAGF,OAAIu+B,EAAIhlB,GAAW,EACfA,EAAIglB,EAAU,EACX,CACT,EA4HA2nD,EAAOznF,UAAUsV,SAAW,SAAmB5W,EAAKmlF,EAAYZ,GAC9D,OAAoD,IAA7CpiF,KAAKnD,QAAQgB,EAAKmlF,EAAYZ,EACvC,EAEAwE,EAAOznF,UAAUtC,QAAU,SAAkBgB,EAAKmlF,EAAYZ,GAC5D,OAAOw4D,EAAqB56I,KAAMnC,EAAKmlF,EAAYZ,GAAU,EAC/D,EAEAwE,EAAOznF,UAAU64E,YAAc,SAAsBn6E,EAAKmlF,EAAYZ,GACpE,OAAOw4D,EAAqB56I,KAAMnC,EAAKmlF,EAAYZ,GAAU,EAC/D,EAiDAwE,EAAOznF,UAAUwJ,MAAQ,SAAgBi2C,EAAQjqC,EAAQ/T,EAAQwhF,GAE/D,QAAe1kF,IAAXiX,EACFytE,EAAW,OACXxhF,EAASZ,KAAKY,OACd+T,EAAS,OAEJ,QAAejX,IAAXkD,GAA0C,kBAAX+T,EACxCytE,EAAWztE,EACX/T,EAASZ,KAAKY,OACd+T,EAAS,MAEJ,KAAIrG,SAASqG,GAWlB,MAAM,IAAI1Q,MACR,2EAXF0Q,GAAkB,EACdrG,SAAS1N,IACXA,GAAkB,OACDlD,IAAb0kF,IAAwBA,EAAW,UAEvCA,EAAWxhF,EACXA,OAASlD,EAOb,CAEA,IAAIgvB,EAAY1sB,KAAKY,OAAS+T,EAG9B,SAFejX,IAAXkD,GAAwBA,EAAS8rB,KAAW9rB,EAAS8rB,GAEpDkyB,EAAOh+C,OAAS,IAAMA,EAAS,GAAK+T,EAAS,IAAOA,EAAS3U,KAAKY,OACrE,MAAM,IAAIy4I,WAAW,0CAGlBj3D,IAAUA,EAAW,QAG1B,IADA,IAAI63D,GAAc,IAEhB,OAAQ73D,GACN,IAAK,MACH,OAAO+4D,EAASn7I,KAAM4+C,EAAQjqC,EAAQ/T,GAExC,IAAK,OACL,IAAK,QACH,OAAOy6I,EAAUr7I,KAAM4+C,EAAQjqC,EAAQ/T,GAEzC,IAAK,QACH,OAAO26I,EAAWv7I,KAAM4+C,EAAQjqC,EAAQ/T,GAE1C,IAAK,SACL,IAAK,SACH,OAAO66I,EAAYz7I,KAAM4+C,EAAQjqC,EAAQ/T,GAE3C,IAAK,SAEH,OAAO86I,EAAY17I,KAAM4+C,EAAQjqC,EAAQ/T,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO+6I,EAAU37I,KAAM4+C,EAAQjqC,EAAQ/T,GAEzC,QACE,GAAIq5I,EAAa,MAAM,IAAI75I,UAAU,qBAAuBgiF,GAC5DA,GAAY,GAAKA,GAAUrkF,cAC3Bk8I,GAAc,EAGtB,EAEArzD,EAAOznF,UAAUuF,OAAS,WACxB,MAAO,CACLnG,KAAM,SACNnE,KAAMuI,MAAMxD,UAAUqG,MAAMpB,KAAKpE,KAAKk9I,MAAQl9I,KAAM,GAExD,EAsFA,IAAIm9I,EAAuB,KAE3B,SAASf,EAAuBgB,GAC9B,IAAI17H,EAAM07H,EAAWx8I,OACrB,GAAI8gB,GAAOy7H,EACT,OAAOnxH,OAAO0D,aAAa9sB,MAAMopB,OAAQoxH,GAI3C,IAAIzvG,EAAM,GACNjtC,EAAI,EACR,MAAOA,EAAIghB,EACTisB,GAAO3hB,OAAO0D,aAAa9sB,MACzBopB,OACAoxH,EAAW53I,MAAM9E,EAAGA,GAAKy8I,IAG7B,OAAOxvG,CACT,CAEA,SAAS4sG,EAAYt6D,EAAKlgE,EAAOkK,GAC/B,IAAInc,EAAM,GACVmc,EAAM1b,KAAKke,IAAIwzD,EAAIr/E,OAAQqpB,GAE3B,IAAK,IAAIvpB,EAAIqf,EAAOrf,EAAIupB,IAAOvpB,EAC7BoN,GAAOke,OAAO0D,aAAsB,IAATuwD,EAAIv/E,IAEjC,OAAOoN,CACT,CAEA,SAAS0sI,EAAav6D,EAAKlgE,EAAOkK,GAChC,IAAInc,EAAM,GACVmc,EAAM1b,KAAKke,IAAIwzD,EAAIr/E,OAAQqpB,GAE3B,IAAK,IAAIvpB,EAAIqf,EAAOrf,EAAIupB,IAAOvpB,EAC7BoN,GAAOke,OAAO0D,aAAauwD,EAAIv/E,IAEjC,OAAOoN,CACT,CAEA,SAASusI,EAAUp6D,EAAKlgE,EAAOkK,GAC7B,IAAIvI,EAAMu+D,EAAIr/E,SAETmf,GAASA,EAAQ,KAAGA,EAAQ,KAC5BkK,GAAOA,EAAM,GAAKA,EAAMvI,KAAKuI,EAAMvI,GAGxC,IADA,IAAI8jD,EAAM,GACD9kE,EAAIqf,EAAOrf,EAAIupB,IAAOvpB,EAC7B8kE,GAAOiiB,EAAMxH,EAAIv/E,IAEnB,OAAO8kE,CACT,CAEA,SAASk1E,EAAcz6D,EAAKlgE,EAAOkK,GAGjC,IAFA,IAAIy7D,EAAQzF,EAAIz6E,MAAMua,EAAOkK,GACzB0jB,EAAM,GACDjtC,EAAI,EAAGA,EAAIglF,EAAM9kF,OAAQF,GAAK,EACrCitC,GAAO3hB,OAAO0D,aAAag2D,EAAMhlF,GAAoB,IAAfglF,EAAMhlF,EAAI,IAElD,OAAOitC,CACT,CAyCA,SAAS0vG,EAAa1oI,EAAQ+lE,EAAK95E,GACjC,GAAK+T,EAAS,IAAO,GAAKA,EAAS,EAAG,MAAM,IAAI0kI,WAAW,sBAC3D,GAAI1kI,EAAS+lE,EAAM95E,EAAQ,MAAM,IAAIy4I,WAAW,wCAClD,CA8JA,SAASiE,EAAUr9D,EAAK/jF,EAAOyY,EAAQ+lE,EAAKr5D,EAAKoL,GAC/C,IAAKm6D,EAAOx/E,SAAS64E,GAAM,MAAM,IAAI7/E,UAAU,+CAC/C,GAAIlE,EAAQmlB,GAAOnlB,EAAQuwB,EAAK,MAAM,IAAI4sH,WAAW,qCACrD,GAAI1kI,EAAS+lE,EAAMuF,EAAIr/E,OAAQ,MAAM,IAAIy4I,WAAW,qBACtD,CAiDA,SAASkE,EAAmBt9D,EAAK/jF,EAAOyY,EAAQ6oI,GAC1CthJ,EAAQ,IAAGA,EAAQ,MAASA,EAAQ,GACxC,IAAK,IAAIwE,EAAI,EAAGmlE,EAAIt3D,KAAKke,IAAIwzD,EAAIr/E,OAAS+T,EAAQ,GAAIjU,EAAImlE,IAAKnlE,EAC7Du/E,EAAItrE,EAASjU,IAAMxE,EAAS,KAAS,GAAKshJ,EAAe98I,EAAI,EAAIA,MAClC,GAA5B88I,EAAe98I,EAAI,EAAIA,EAE9B,CA4BA,SAAS+8I,EAAmBx9D,EAAK/jF,EAAOyY,EAAQ6oI,GAC1CthJ,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5C,IAAK,IAAIwE,EAAI,EAAGmlE,EAAIt3D,KAAKke,IAAIwzD,EAAIr/E,OAAS+T,EAAQ,GAAIjU,EAAImlE,IAAKnlE,EAC7Du/E,EAAItrE,EAASjU,GAAMxE,IAAuC,GAA5BshJ,EAAe98I,EAAI,EAAIA,GAAU,GAEnE,CAiJA,SAASg9I,EAAcz9D,EAAK/jF,EAAOyY,EAAQ+lE,EAAKr5D,EAAKoL,GACnD,GAAI9X,EAAS+lE,EAAMuF,EAAIr/E,OAAQ,MAAM,IAAIy4I,WAAW,sBACpD,GAAI1kI,EAAS,EAAG,MAAM,IAAI0kI,WAAW,qBACvC,CAEA,SAASsE,EAAY19D,EAAK/jF,EAAOyY,EAAQ6oI,EAAcI,GAKrD,OAJKA,GACHF,EAAaz9D,EAAK/jF,EAAOyY,EAAQ,EAAG,sBAAyB,sBAE/DmkI,EAAQnwI,MAAMs3E,EAAK/jF,EAAOyY,EAAQ6oI,EAAc,GAAI,GAC7C7oI,EAAS,CAClB,CAUA,SAASkpI,EAAa59D,EAAK/jF,EAAOyY,EAAQ6oI,EAAcI,GAKtD,OAJKA,GACHF,EAAaz9D,EAAK/jF,EAAOyY,EAAQ,EAAG,uBAA0B,uBAEhEmkI,EAAQnwI,MAAMs3E,EAAK/jF,EAAOyY,EAAQ6oI,EAAc,GAAI,GAC7C7oI,EAAS,CAClB,CAhdAiyE,EAAOznF,UAAUqG,MAAQ,SAAgBua,EAAOkK,GAC9C,IAoBI6zH,EApBAp8H,EAAM1hB,KAAKY,OAqBf,GApBAmf,IAAUA,EACVkK,OAAcvsB,IAARusB,EAAoBvI,IAAQuI,EAE9BlK,EAAQ,GACVA,GAAS2B,EACL3B,EAAQ,IAAGA,EAAQ,IACdA,EAAQ2B,IACjB3B,EAAQ2B,GAGNuI,EAAM,GACRA,GAAOvI,EACHuI,EAAM,IAAGA,EAAM,IACVA,EAAMvI,IACfuI,EAAMvI,GAGJuI,EAAMlK,IAAOkK,EAAMlK,GAGnB6mE,EAAOuyD,oBACT2E,EAAS99I,KAAKi5I,SAASl5H,EAAOkK,GAC9B6zH,EAAO7tI,UAAY22E,EAAOznF,cACrB,CACL,IAAI4+I,EAAW9zH,EAAMlK,EACrB+9H,EAAS,IAAIl3D,EAAOm3D,OAAUrgJ,GAC9B,IAAK,IAAIgD,EAAI,EAAGA,EAAIq9I,IAAYr9I,EAC9Bo9I,EAAOp9I,GAAKV,KAAKU,EAAIqf,EAEzB,CAEA,OAAO+9H,CACT,EAUAl3D,EAAOznF,UAAU6+I,WAAa,SAAqBrpI,EAAQuqC,EAAY0+F,GACrEjpI,GAAkB,EAClBuqC,GAA0B,EACrB0+F,GAAUP,EAAY1oI,EAAQuqC,EAAYl/C,KAAKY,QAEpD,IAAI/C,EAAMmC,KAAK2U,GACXspI,EAAM,EACNv9I,EAAI,EACR,QAASA,EAAIw+C,IAAe++F,GAAO,KACjCpgJ,GAAOmC,KAAK2U,EAASjU,GAAKu9I,EAG5B,OAAOpgJ,CACT,EAEA+oF,EAAOznF,UAAU++I,WAAa,SAAqBvpI,EAAQuqC,EAAY0+F,GACrEjpI,GAAkB,EAClBuqC,GAA0B,EACrB0+F,GACHP,EAAY1oI,EAAQuqC,EAAYl/C,KAAKY,QAGvC,IAAI/C,EAAMmC,KAAK2U,IAAWuqC,GACtB++F,EAAM,EACV,MAAO/+F,EAAa,IAAM++F,GAAO,KAC/BpgJ,GAAOmC,KAAK2U,IAAWuqC,GAAc++F,EAGvC,OAAOpgJ,CACT,EAEA+oF,EAAOznF,UAAUg/I,UAAY,SAAoBxpI,EAAQipI,GAEvD,OADKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QACpCZ,KAAK2U,EACd,EAEAiyE,EAAOznF,UAAUi/I,aAAe,SAAuBzpI,EAAQipI,GAE7D,OADKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QACpCZ,KAAK2U,GAAW3U,KAAK2U,EAAS,IAAM,CAC7C,EAEAiyE,EAAOznF,UAAU87I,aAAe,SAAuBtmI,EAAQipI,GAE7D,OADKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QACnCZ,KAAK2U,IAAW,EAAK3U,KAAK2U,EAAS,EAC7C,EAEAiyE,EAAOznF,UAAUk/I,aAAe,SAAuB1pI,EAAQipI,GAG7D,OAFKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,SAElCZ,KAAK2U,GACT3U,KAAK2U,EAAS,IAAM,EACpB3U,KAAK2U,EAAS,IAAM,IACD,SAAnB3U,KAAK2U,EAAS,EACrB,EAEAiyE,EAAOznF,UAAUm/I,aAAe,SAAuB3pI,EAAQipI,GAG7D,OAFKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QAEpB,SAAfZ,KAAK2U,IACT3U,KAAK2U,EAAS,IAAM,GACrB3U,KAAK2U,EAAS,IAAM,EACrB3U,KAAK2U,EAAS,GAClB,EAEAiyE,EAAOznF,UAAUo/I,UAAY,SAAoB5pI,EAAQuqC,EAAY0+F,GACnEjpI,GAAkB,EAClBuqC,GAA0B,EACrB0+F,GAAUP,EAAY1oI,EAAQuqC,EAAYl/C,KAAKY,QAEpD,IAAI/C,EAAMmC,KAAK2U,GACXspI,EAAM,EACNv9I,EAAI,EACR,QAASA,EAAIw+C,IAAe++F,GAAO,KACjCpgJ,GAAOmC,KAAK2U,EAASjU,GAAKu9I,EAM5B,OAJAA,GAAO,IAEHpgJ,GAAOogJ,IAAKpgJ,GAAO0Q,KAAK86D,IAAI,EAAG,EAAInqB,IAEhCrhD,CACT,EAEA+oF,EAAOznF,UAAUq/I,UAAY,SAAoB7pI,EAAQuqC,EAAY0+F,GACnEjpI,GAAkB,EAClBuqC,GAA0B,EACrB0+F,GAAUP,EAAY1oI,EAAQuqC,EAAYl/C,KAAKY,QAEpD,IAAIF,EAAIw+C,EACJ++F,EAAM,EACNpgJ,EAAMmC,KAAK2U,IAAWjU,GAC1B,MAAOA,EAAI,IAAMu9I,GAAO,KACtBpgJ,GAAOmC,KAAK2U,IAAWjU,GAAKu9I,EAM9B,OAJAA,GAAO,IAEHpgJ,GAAOogJ,IAAKpgJ,GAAO0Q,KAAK86D,IAAI,EAAG,EAAInqB,IAEhCrhD,CACT,EAEA+oF,EAAOznF,UAAUs/I,SAAW,SAAmB9pI,EAAQipI,GAErD,OADKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QACtB,IAAfZ,KAAK2U,IAC0B,GAA5B,IAAO3U,KAAK2U,GAAU,GADK3U,KAAK2U,EAE3C,EAEAiyE,EAAOznF,UAAUu/I,YAAc,SAAsB/pI,EAAQipI,GACtDA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QAC3C,IAAI/C,EAAMmC,KAAK2U,GAAW3U,KAAK2U,EAAS,IAAM,EAC9C,OAAc,MAAN9W,EAAsB,WAANA,EAAmBA,CAC7C,EAEA+oF,EAAOznF,UAAUw/I,YAAc,SAAsBhqI,EAAQipI,GACtDA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QAC3C,IAAI/C,EAAMmC,KAAK2U,EAAS,GAAM3U,KAAK2U,IAAW,EAC9C,OAAc,MAAN9W,EAAsB,WAANA,EAAmBA,CAC7C,EAEA+oF,EAAOznF,UAAU6zH,YAAc,SAAsBr+G,EAAQipI,GAG3D,OAFKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QAEnCZ,KAAK2U,GACV3U,KAAK2U,EAAS,IAAM,EACpB3U,KAAK2U,EAAS,IAAM,GACpB3U,KAAK2U,EAAS,IAAM,EACzB,EAEAiyE,EAAOznF,UAAUy/I,YAAc,SAAsBjqI,EAAQipI,GAG3D,OAFKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QAEnCZ,KAAK2U,IAAW,GACrB3U,KAAK2U,EAAS,IAAM,GACpB3U,KAAK2U,EAAS,IAAM,EACpB3U,KAAK2U,EAAS,EACnB,EAEAiyE,EAAOznF,UAAU0/I,YAAc,SAAsBlqI,EAAQipI,GAE3D,OADKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QACpCk4I,EAAQr7I,KAAKuC,KAAM2U,GAAQ,EAAM,GAAI,EAC9C,EAEAiyE,EAAOznF,UAAU2/I,YAAc,SAAsBnqI,EAAQipI,GAE3D,OADKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QACpCk4I,EAAQr7I,KAAKuC,KAAM2U,GAAQ,EAAO,GAAI,EAC/C,EAEAiyE,EAAOznF,UAAU4/I,aAAe,SAAuBpqI,EAAQipI,GAE7D,OADKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QACpCk4I,EAAQr7I,KAAKuC,KAAM2U,GAAQ,EAAM,GAAI,EAC9C,EAEAiyE,EAAOznF,UAAU6/I,aAAe,SAAuBrqI,EAAQipI,GAE7D,OADKA,GAAUP,EAAY1oI,EAAQ,EAAG3U,KAAKY,QACpCk4I,EAAQr7I,KAAKuC,KAAM2U,GAAQ,EAAO,GAAI,EAC/C,EAQAiyE,EAAOznF,UAAU8/I,YAAc,SAAsB/iJ,EAAOyY,EAAQuqC,EAAY0+F,GAI9E,GAHA1hJ,GAASA,EACTyY,GAAkB,EAClBuqC,GAA0B,GACrB0+F,EAAU,CACb,IAAIsB,EAAW3wI,KAAK86D,IAAI,EAAG,EAAInqB,GAAc,EAC7Co+F,EAASt9I,KAAM9D,EAAOyY,EAAQuqC,EAAYggG,EAAU,EACtD,CAEA,IAAIjB,EAAM,EACNv9I,EAAI,EACRV,KAAK2U,GAAkB,IAARzY,EACf,QAASwE,EAAIw+C,IAAe++F,GAAO,KACjCj+I,KAAK2U,EAASjU,GAAMxE,EAAQ+hJ,EAAO,IAGrC,OAAOtpI,EAASuqC,CAClB,EAEA0nC,EAAOznF,UAAUggJ,YAAc,SAAsBjjJ,EAAOyY,EAAQuqC,EAAY0+F,GAI9E,GAHA1hJ,GAASA,EACTyY,GAAkB,EAClBuqC,GAA0B,GACrB0+F,EAAU,CACb,IAAIsB,EAAW3wI,KAAK86D,IAAI,EAAG,EAAInqB,GAAc,EAC7Co+F,EAASt9I,KAAM9D,EAAOyY,EAAQuqC,EAAYggG,EAAU,EACtD,CAEA,IAAIx+I,EAAIw+C,EAAa,EACjB++F,EAAM,EACVj+I,KAAK2U,EAASjU,GAAa,IAARxE,EACnB,QAASwE,GAAK,IAAMu9I,GAAO,KACzBj+I,KAAK2U,EAASjU,GAAMxE,EAAQ+hJ,EAAO,IAGrC,OAAOtpI,EAASuqC,CAClB,EAEA0nC,EAAOznF,UAAUigJ,WAAa,SAAqBljJ,EAAOyY,EAAQipI,GAMhE,OALA1hJ,GAASA,EACTyY,GAAkB,EACbipI,GAAUN,EAASt9I,KAAM9D,EAAOyY,EAAQ,EAAG,IAAM,GACjDiyE,EAAOuyD,sBAAqBj9I,EAAQqS,KAAKC,MAAMtS,IACpD8D,KAAK2U,GAAmB,IAARzY,EACTyY,EAAS,CAClB,EAUAiyE,EAAOznF,UAAUkgJ,cAAgB,SAAwBnjJ,EAAOyY,EAAQipI,GAUtE,OATA1hJ,GAASA,EACTyY,GAAkB,EACbipI,GAAUN,EAASt9I,KAAM9D,EAAOyY,EAAQ,EAAG,MAAQ,GACpDiyE,EAAOuyD,qBACTn5I,KAAK2U,GAAmB,IAARzY,EAChB8D,KAAK2U,EAAS,GAAMzY,IAAU,GAE9BqhJ,EAAkBv9I,KAAM9D,EAAOyY,GAAQ,GAElCA,EAAS,CAClB,EAEAiyE,EAAOznF,UAAUmgJ,cAAgB,SAAwBpjJ,EAAOyY,EAAQipI,GAUtE,OATA1hJ,GAASA,EACTyY,GAAkB,EACbipI,GAAUN,EAASt9I,KAAM9D,EAAOyY,EAAQ,EAAG,MAAQ,GACpDiyE,EAAOuyD,qBACTn5I,KAAK2U,GAAWzY,IAAU,EAC1B8D,KAAK2U,EAAS,GAAc,IAARzY,GAEpBqhJ,EAAkBv9I,KAAM9D,EAAOyY,GAAQ,GAElCA,EAAS,CAClB,EASAiyE,EAAOznF,UAAUogJ,cAAgB,SAAwBrjJ,EAAOyY,EAAQipI,GAYtE,OAXA1hJ,GAASA,EACTyY,GAAkB,EACbipI,GAAUN,EAASt9I,KAAM9D,EAAOyY,EAAQ,EAAG,WAAY,GACxDiyE,EAAOuyD,qBACTn5I,KAAK2U,EAAS,GAAMzY,IAAU,GAC9B8D,KAAK2U,EAAS,GAAMzY,IAAU,GAC9B8D,KAAK2U,EAAS,GAAMzY,IAAU,EAC9B8D,KAAK2U,GAAmB,IAARzY,GAEhBuhJ,EAAkBz9I,KAAM9D,EAAOyY,GAAQ,GAElCA,EAAS,CAClB,EAEAiyE,EAAOznF,UAAUqgJ,cAAgB,SAAwBtjJ,EAAOyY,EAAQipI,GAYtE,OAXA1hJ,GAASA,EACTyY,GAAkB,EACbipI,GAAUN,EAASt9I,KAAM9D,EAAOyY,EAAQ,EAAG,WAAY,GACxDiyE,EAAOuyD,qBACTn5I,KAAK2U,GAAWzY,IAAU,GAC1B8D,KAAK2U,EAAS,GAAMzY,IAAU,GAC9B8D,KAAK2U,EAAS,GAAMzY,IAAU,EAC9B8D,KAAK2U,EAAS,GAAc,IAARzY,GAEpBuhJ,EAAkBz9I,KAAM9D,EAAOyY,GAAQ,GAElCA,EAAS,CAClB,EAEAiyE,EAAOznF,UAAUsgJ,WAAa,SAAqBvjJ,EAAOyY,EAAQuqC,EAAY0+F,GAG5E,GAFA1hJ,GAASA,EACTyY,GAAkB,GACbipI,EAAU,CACb,IAAI14E,EAAQ32D,KAAK86D,IAAI,EAAG,EAAInqB,EAAa,GAEzCo+F,EAASt9I,KAAM9D,EAAOyY,EAAQuqC,EAAYgmB,EAAQ,GAAIA,EACxD,CAEA,IAAIxkE,EAAI,EACJu9I,EAAM,EACNyB,EAAM,EACV1/I,KAAK2U,GAAkB,IAARzY,EACf,QAASwE,EAAIw+C,IAAe++F,GAAO,KAC7B/hJ,EAAQ,GAAa,IAARwjJ,GAAsC,IAAzB1/I,KAAK2U,EAASjU,EAAI,KAC9Cg/I,EAAM,GAER1/I,KAAK2U,EAASjU,IAAOxE,EAAQ+hJ,EAAQ,GAAKyB,EAAM,IAGlD,OAAO/qI,EAASuqC,CAClB,EAEA0nC,EAAOznF,UAAUwgJ,WAAa,SAAqBzjJ,EAAOyY,EAAQuqC,EAAY0+F,GAG5E,GAFA1hJ,GAASA,EACTyY,GAAkB,GACbipI,EAAU,CACb,IAAI14E,EAAQ32D,KAAK86D,IAAI,EAAG,EAAInqB,EAAa,GAEzCo+F,EAASt9I,KAAM9D,EAAOyY,EAAQuqC,EAAYgmB,EAAQ,GAAIA,EACxD,CAEA,IAAIxkE,EAAIw+C,EAAa,EACjB++F,EAAM,EACNyB,EAAM,EACV1/I,KAAK2U,EAASjU,GAAa,IAARxE,EACnB,QAASwE,GAAK,IAAMu9I,GAAO,KACrB/hJ,EAAQ,GAAa,IAARwjJ,GAAsC,IAAzB1/I,KAAK2U,EAASjU,EAAI,KAC9Cg/I,EAAM,GAER1/I,KAAK2U,EAASjU,IAAOxE,EAAQ+hJ,EAAQ,GAAKyB,EAAM,IAGlD,OAAO/qI,EAASuqC,CAClB,EAEA0nC,EAAOznF,UAAUygJ,UAAY,SAAoB1jJ,EAAOyY,EAAQipI,GAO9D,OANA1hJ,GAASA,EACTyY,GAAkB,EACbipI,GAAUN,EAASt9I,KAAM9D,EAAOyY,EAAQ,EAAG,KAAO,KAClDiyE,EAAOuyD,sBAAqBj9I,EAAQqS,KAAKC,MAAMtS,IAChDA,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtC8D,KAAK2U,GAAmB,IAARzY,EACTyY,EAAS,CAClB,EAEAiyE,EAAOznF,UAAU0gJ,aAAe,SAAuB3jJ,EAAOyY,EAAQipI,GAUpE,OATA1hJ,GAASA,EACTyY,GAAkB,EACbipI,GAAUN,EAASt9I,KAAM9D,EAAOyY,EAAQ,EAAG,OAAS,OACrDiyE,EAAOuyD,qBACTn5I,KAAK2U,GAAmB,IAARzY,EAChB8D,KAAK2U,EAAS,GAAMzY,IAAU,GAE9BqhJ,EAAkBv9I,KAAM9D,EAAOyY,GAAQ,GAElCA,EAAS,CAClB,EAEAiyE,EAAOznF,UAAU2gJ,aAAe,SAAuB5jJ,EAAOyY,EAAQipI,GAUpE,OATA1hJ,GAASA,EACTyY,GAAkB,EACbipI,GAAUN,EAASt9I,KAAM9D,EAAOyY,EAAQ,EAAG,OAAS,OACrDiyE,EAAOuyD,qBACTn5I,KAAK2U,GAAWzY,IAAU,EAC1B8D,KAAK2U,EAAS,GAAc,IAARzY,GAEpBqhJ,EAAkBv9I,KAAM9D,EAAOyY,GAAQ,GAElCA,EAAS,CAClB,EAEAiyE,EAAOznF,UAAU4gJ,aAAe,SAAuB7jJ,EAAOyY,EAAQipI,GAYpE,OAXA1hJ,GAASA,EACTyY,GAAkB,EACbipI,GAAUN,EAASt9I,KAAM9D,EAAOyY,EAAQ,EAAG,YAAa,YACzDiyE,EAAOuyD,qBACTn5I,KAAK2U,GAAmB,IAARzY,EAChB8D,KAAK2U,EAAS,GAAMzY,IAAU,EAC9B8D,KAAK2U,EAAS,GAAMzY,IAAU,GAC9B8D,KAAK2U,EAAS,GAAMzY,IAAU,IAE9BuhJ,EAAkBz9I,KAAM9D,EAAOyY,GAAQ,GAElCA,EAAS,CAClB,EAEAiyE,EAAOznF,UAAU6gJ,aAAe,SAAuB9jJ,EAAOyY,EAAQipI,GAapE,OAZA1hJ,GAASA,EACTyY,GAAkB,EACbipI,GAAUN,EAASt9I,KAAM9D,EAAOyY,EAAQ,EAAG,YAAa,YACzDzY,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GACxC0qF,EAAOuyD,qBACTn5I,KAAK2U,GAAWzY,IAAU,GAC1B8D,KAAK2U,EAAS,GAAMzY,IAAU,GAC9B8D,KAAK2U,EAAS,GAAMzY,IAAU,EAC9B8D,KAAK2U,EAAS,GAAc,IAARzY,GAEpBuhJ,EAAkBz9I,KAAM9D,EAAOyY,GAAQ,GAElCA,EAAS,CAClB,EAeAiyE,EAAOznF,UAAU8gJ,aAAe,SAAuB/jJ,EAAOyY,EAAQipI,GACpE,OAAOD,EAAW39I,KAAM9D,EAAOyY,GAAQ,EAAMipI,EAC/C,EAEAh3D,EAAOznF,UAAU+gJ,aAAe,SAAuBhkJ,EAAOyY,EAAQipI,GACpE,OAAOD,EAAW39I,KAAM9D,EAAOyY,GAAQ,EAAOipI,EAChD,EAUAh3D,EAAOznF,UAAUghJ,cAAgB,SAAwBjkJ,EAAOyY,EAAQipI,GACtE,OAAOC,EAAY79I,KAAM9D,EAAOyY,GAAQ,EAAMipI,EAChD,EAEAh3D,EAAOznF,UAAUihJ,cAAgB,SAAwBlkJ,EAAOyY,EAAQipI,GACtE,OAAOC,EAAY79I,KAAM9D,EAAOyY,GAAQ,EAAOipI,EACjD,EAGAh3D,EAAOznF,UAAU26I,KAAO,SAAez0I,EAAQg7I,EAAatgI,EAAOkK,GAQjE,GAPKlK,IAAOA,EAAQ,GACfkK,GAAe,IAARA,IAAWA,EAAMjqB,KAAKY,QAC9By/I,GAAeh7I,EAAOzE,SAAQy/I,EAAch7I,EAAOzE,QAClDy/I,IAAaA,EAAc,GAC5Bp2H,EAAM,GAAKA,EAAMlK,IAAOkK,EAAMlK,GAG9BkK,IAAQlK,EAAO,OAAO,EAC1B,GAAsB,IAAlB1a,EAAOzE,QAAgC,IAAhBZ,KAAKY,OAAc,OAAO,EAGrD,GAAIy/I,EAAc,EAChB,MAAM,IAAIhH,WAAW,6BAEvB,GAAIt5H,EAAQ,GAAKA,GAAS/f,KAAKY,OAAQ,MAAM,IAAIy4I,WAAW,6BAC5D,GAAIpvH,EAAM,EAAG,MAAM,IAAIovH,WAAW,2BAG9BpvH,EAAMjqB,KAAKY,SAAQqpB,EAAMjqB,KAAKY,QAC9ByE,EAAOzE,OAASy/I,EAAcp2H,EAAMlK,IACtCkK,EAAM5kB,EAAOzE,OAASy/I,EAActgI,GAGtC,IACIrf,EADAghB,EAAMuI,EAAMlK,EAGhB,GAAI/f,OAASqF,GAAU0a,EAAQsgI,GAAeA,EAAcp2H,EAE1D,IAAKvpB,EAAIghB,EAAM,EAAGhhB,GAAK,IAAKA,EAC1B2E,EAAO3E,EAAI2/I,GAAergJ,KAAKU,EAAIqf,QAEhC,GAAI2B,EAAM,MAASklE,EAAOuyD,oBAE/B,IAAKz4I,EAAI,EAAGA,EAAIghB,IAAOhhB,EACrB2E,EAAO3E,EAAI2/I,GAAergJ,KAAKU,EAAIqf,QAGrC++B,WAAW3/C,UAAUse,IAAIrZ,KACvBiB,EACArF,KAAKi5I,SAASl5H,EAAOA,EAAQ2B,GAC7B2+H,GAIJ,OAAO3+H,CACT,EAMAklE,EAAOznF,UAAU69F,KAAO,SAAen/F,EAAKkiB,EAAOkK,EAAKm4D,GAEtD,GAAmB,kBAARvkF,EAAkB,CAS3B,GARqB,kBAAVkiB,GACTqiE,EAAWriE,EACXA,EAAQ,EACRkK,EAAMjqB,KAAKY,QACa,kBAARqpB,IAChBm4D,EAAWn4D,EACXA,EAAMjqB,KAAKY,QAEM,IAAf/C,EAAI+C,OAAc,CACpB,IAAIoD,EAAOnG,EAAIsP,WAAW,GACtBnJ,EAAO,MACTnG,EAAMmG,EAEV,CACA,QAAiBtG,IAAb0kF,GAA8C,kBAAbA,EACnC,MAAM,IAAIhiF,UAAU,6BAEtB,GAAwB,kBAAbgiF,IAA0BwE,EAAO+yD,WAAWv3D,GACrD,MAAM,IAAIhiF,UAAU,qBAAuBgiF,EAE/C,KAA0B,kBAARvkF,IAChBA,GAAY,KAId,GAAIkiB,EAAQ,GAAK/f,KAAKY,OAASmf,GAAS/f,KAAKY,OAASqpB,EACpD,MAAM,IAAIovH,WAAW,sBAGvB,GAAIpvH,GAAOlK,EACT,OAAO/f,KAQT,IAAIU,EACJ,GANAqf,KAAkB,EAClBkK,OAAcvsB,IAARusB,EAAoBjqB,KAAKY,OAASqpB,IAAQ,EAE3CpsB,IAAKA,EAAM,GAGG,kBAARA,EACT,IAAK6C,EAAIqf,EAAOrf,EAAIupB,IAAOvpB,EACzBV,KAAKU,GAAK7C,MAEP,CACL,IAAI6nF,EAAQkB,EAAOx/E,SAASvJ,GACxBA,EACAq8I,EAAY,IAAItzD,EAAO/oF,EAAKukF,GAAUniF,YACtCyhB,EAAMgkE,EAAM9kF,OAChB,IAAKF,EAAI,EAAGA,EAAIupB,EAAMlK,IAASrf,EAC7BV,KAAKU,EAAIqf,GAAS2lE,EAAMhlF,EAAIghB,EAEhC,CAEA,OAAO1hB,IACT,EAKA,IAAIsgJ,EAAoB,qBAExB,SAASC,EAAa7zI,GAIpB,GAFAA,EAAM8zI,EAAW9zI,GAAKtJ,QAAQk9I,EAAmB,IAE7C5zI,EAAI9L,OAAS,EAAG,MAAO,GAE3B,MAAO8L,EAAI9L,OAAS,IAAM,EACxB8L,GAAY,IAEd,OAAOA,CACT,CAEA,SAAS8zI,EAAY9zI,GACnB,OAAIA,EAAI1F,KAAa0F,EAAI1F,OAClB0F,EAAItJ,QAAQ,aAAc,GACnC,CAEA,SAASqkF,EAAO70E,GACd,OAAIA,EAAI,GAAW,IAAMA,EAAE3S,SAAS,IAC7B2S,EAAE3S,SAAS,GACpB,CAEA,SAASi6I,EAAat7F,EAAQ6hG,GAE5B,IAAIvE,EADJuE,EAAQA,GAAS7qD,IAMjB,IAJA,IAAIh1F,EAASg+C,EAAOh+C,OAChB8/I,EAAgB,KAChBh7D,EAAQ,GAEHhlF,EAAI,EAAGA,EAAIE,IAAUF,EAAG,CAI/B,GAHAw7I,EAAYt9F,EAAOzxC,WAAWzM,GAG1Bw7I,EAAY,OAAUA,EAAY,MAAQ,CAE5C,IAAKwE,EAAe,CAElB,GAAIxE,EAAY,MAAQ,EAEjBuE,GAAS,IAAM,GAAG/6D,EAAMxkF,KAAK,IAAM,IAAM,KAC9C,QACF,CAAO,GAAIR,EAAI,IAAME,EAAQ,EAEtB6/I,GAAS,IAAM,GAAG/6D,EAAMxkF,KAAK,IAAM,IAAM,KAC9C,QACF,CAGAw/I,EAAgBxE,EAEhB,QACF,CAGA,GAAIA,EAAY,MAAQ,EACjBuE,GAAS,IAAM,GAAG/6D,EAAMxkF,KAAK,IAAM,IAAM,KAC9Cw/I,EAAgBxE,EAChB,QACF,CAGAA,EAAkE,OAArDwE,EAAgB,OAAU,GAAKxE,EAAY,MAC1D,MAAWwE,IAEJD,GAAS,IAAM,GAAG/6D,EAAMxkF,KAAK,IAAM,IAAM,KAMhD,GAHAw/I,EAAgB,KAGZxE,EAAY,IAAM,CACpB,IAAKuE,GAAS,GAAK,EAAG,MACtB/6D,EAAMxkF,KAAKg7I,EACb,MAAO,GAAIA,EAAY,KAAO,CAC5B,IAAKuE,GAAS,GAAK,EAAG,MACtB/6D,EAAMxkF,KACJg7I,GAAa,EAAM,IACP,GAAZA,EAAmB,IAEvB,MAAO,GAAIA,EAAY,MAAS,CAC9B,IAAKuE,GAAS,GAAK,EAAG,MACtB/6D,EAAMxkF,KACJg7I,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAEvB,KAAO,MAAIA,EAAY,SASrB,MAAM,IAAIj4I,MAAM,sBARhB,IAAKw8I,GAAS,GAAK,EAAG,MACtB/6D,EAAMxkF,KACJg7I,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAIvB,CACF,CAEA,OAAOx2D,CACT,CAEA,SAAS81D,EAAc9uI,GAErB,IADA,IAAIi0I,EAAY,GACPjgJ,EAAI,EAAGA,EAAIgM,EAAI9L,SAAUF,EAEhCigJ,EAAUz/I,KAAyB,IAApBwL,EAAIS,WAAWzM,IAEhC,OAAOigJ,CACT,CAEA,SAAS/E,EAAgBlvI,EAAK+zI,GAG5B,IAFA,IAAIn/I,EAAGs/I,EAAIC,EACPF,EAAY,GACPjgJ,EAAI,EAAGA,EAAIgM,EAAI9L,SAAUF,EAAG,CACnC,IAAK+/I,GAAS,GAAK,EAAG,MAEtBn/I,EAAIoL,EAAIS,WAAWzM,GACnBkgJ,EAAKt/I,GAAK,EACVu/I,EAAKv/I,EAAI,IACTq/I,EAAUz/I,KAAK2/I,GACfF,EAAUz/I,KAAK0/I,EACjB,CAEA,OAAOD,CACT,CAEA,SAASxG,EAAeztI,GACtB,OAAO65D,EAAOopE,YAAY4Q,EAAY7zI,GACxC,CAEA,SAAS4uI,GAAYjmI,EAAKyrI,EAAKnsI,EAAQ/T,GACrC,IAAK,IAAIF,EAAI,EAAGA,EAAIE,IAAUF,EAAG,CAC/B,GAAKA,EAAIiU,GAAUmsI,EAAIlgJ,QAAYF,GAAK2U,EAAIzU,OAAS,MACrDkgJ,EAAIpgJ,EAAIiU,GAAUU,EAAI3U,EACxB,CACA,OAAOA,CACT,CAEA,SAASq5I,GAAOl8I,GACd,OAAOA,IAAQA,CACjB,C,qCC1vDA,IAAIe,EAAO,EAAQ,OAEfmiJ,EAAS,EAAQ,OACjBC,EAAQ,EAAQ,OAChBC,EAAgB,EAAQ,OAG5B/nJ,EAAOC,QAAU8nJ,GAAiBriJ,EAAKwF,KAAK48I,EAAOD,E,iCCNnD7nJ,EAAOC,QAAUurB,SAASvlB,UAAUyD,K,iCCApC1J,EAAOC,QAAUurB,SAASvlB,UAAUiF,I,qCCDpC,IAAIxF,EAAO,EAAQ,OACfsiJ,EAAa,EAAQ,OAErBF,EAAQ,EAAQ,OAChBG,EAAe,EAAQ,OAG3BjoJ,EAAOC,QAAU,SAAuB6O,GACvC,GAAIA,EAAKpH,OAAS,GAAwB,oBAAZoH,EAAK,GAClC,MAAM,IAAIk5I,EAAW,0BAEtB,OAAOC,EAAaviJ,EAAMoiJ,EAAOh5I,EAClC,C,iCCXA9O,EAAOC,QAA6B,qBAAZyqB,SAA2BA,SAAWA,QAAQhhB,K,qCCDtE,IAAIw+I,EAAe,EAAQ,OAEvBC,EAAgB,EAAQ,OAGxBC,EAAWD,EAAc,CAACD,EAAa,gCAG3CloJ,EAAOC,QAAU,SAA4BwL,EAAM48I,GAElD,IAAIC,EAAmEJ,EAAaz8I,IAAQ48I,GAC5F,MAAyB,oBAAdC,GAA4BF,EAAS38I,EAAM,gBAAkB,EAChE08I,EAAc,CAACG,IAEhBA,CACR,C;;;;;;GCHAroJ,EAAQ,EAAQ4N,EAChB5N,EAAQ,EAAYgmE,EAOpB,IAAI+mB,EAAS38E,mBACTrB,EAAS9M,mBAUTqmJ,EAAqB,wCAczB,SAAS16I,EAAM2F,EAAKnJ,GAClB,GAAmB,kBAARmJ,EACT,MAAM,IAAItM,UAAU,iCAQtB,IALA,IAAIwM,EAAM,CAAC,EACPhB,EAAMrI,GAAW,CAAC,EAClBm+I,EAAQh1I,EAAIvB,MAAM,KAClBw2I,EAAM/1I,EAAIs6E,QAAUA,EAEfxlF,EAAI,EAAGA,EAAIghJ,EAAM9gJ,OAAQF,IAAK,CACrC,IAAIkkE,EAAO88E,EAAMhhJ,GACbS,EAAQyjE,EAAK/nE,QAAQ,KAGzB,KAAIsE,EAAQ,GAAZ,CAIA,IAAIrD,EAAM8mE,EAAKryD,UAAU,EAAGpR,GAAO6F,OAGnC,QAAItJ,GAAakP,EAAI9O,GAAM,CACzB,IAAID,EAAM+mE,EAAKryD,UAAUpR,EAAQ,EAAGyjE,EAAKhkE,QAAQoG,OAGlC,MAAXnJ,EAAI,KACNA,EAAMA,EAAI2H,MAAM,GAAI,IAGtBoH,EAAI9O,GAAO8jJ,EAAU/jJ,EAAK8jJ,EAC5B,CAdA,CAeF,CAEA,OAAO/0I,CACT,CAkBA,SAASuyD,EAAUx6D,EAAM9G,EAAK0F,GAC5B,IAAIqI,EAAMrI,GAAW,CAAC,EAClBs+I,EAAMj2I,EAAI1D,QAAUA,EAExB,GAAmB,oBAAR25I,EACT,MAAM,IAAIzhJ,UAAU,4BAGtB,IAAKqhJ,EAAmB/3I,KAAK/E,GAC3B,MAAM,IAAIvE,UAAU,4BAGtB,IAAIlE,EAAQ2lJ,EAAIhkJ,GAEhB,GAAI3B,IAAUulJ,EAAmB/3I,KAAKxN,GACpC,MAAM,IAAIkE,UAAU,2BAGtB,IAAIsM,EAAM/H,EAAO,IAAMzI,EAEvB,GAAI,MAAQ0P,EAAI2sC,OAAQ,CACtB,IAAIA,EAAS3sC,EAAI2sC,OAAS,EAE1B,GAAI9oB,MAAM8oB,KAAYjqC,SAASiqC,GAC7B,MAAM,IAAIn4C,UAAU,4BAGtBsM,GAAO,aAAe6B,KAAKC,MAAM+pC,EACnC,CAEA,GAAI3sC,EAAI9C,OAAQ,CACd,IAAK24I,EAAmB/3I,KAAKkC,EAAI9C,QAC/B,MAAM,IAAI1I,UAAU,4BAGtBsM,GAAO,YAAcd,EAAI9C,MAC3B,CAEA,GAAI8C,EAAI/C,KAAM,CACZ,IAAK44I,EAAmB/3I,KAAKkC,EAAI/C,MAC/B,MAAM,IAAIzI,UAAU,0BAGtBsM,GAAO,UAAYd,EAAI/C,IACzB,CAEA,GAAI+C,EAAIhD,QAAS,CACf,GAAuC,oBAA5BgD,EAAIhD,QAAQk5I,YACrB,MAAM,IAAI1hJ,UAAU,6BAGtBsM,GAAO,aAAed,EAAIhD,QAAQk5I,aACpC,CAUA,GARIl2I,EAAIm2I,WACNr1I,GAAO,cAGLd,EAAI7C,SACN2D,GAAO,YAGLd,EAAI0tC,SAAU,CAChB,IAAIA,EAAmC,kBAAjB1tC,EAAI0tC,SACtB1tC,EAAI0tC,SAASv7C,cAAgB6N,EAAI0tC,SAErC,OAAQA,GACN,KAAK,EACH5sC,GAAO,oBACP,MACF,IAAK,MACHA,GAAO,iBACP,MACF,IAAK,SACHA,GAAO,oBACP,MACF,IAAK,OACHA,GAAO,kBACP,MACF,QACE,MAAM,IAAItM,UAAU,8BAE1B,CAEA,OAAOsM,CACT,CAUA,SAASk1I,EAAUl1I,EAAKw5E,GACtB,IACE,OAAOA,EAAOx5E,EAChB,CAAE,MAAOzF,GACP,OAAOyF,CACT,CACF,C,yBCzME,SAAU8tB,EAAMwnH,GAGhB9oJ,EAAOC,QAAoB6oJ,GAU7B,EAbC,CAaChiJ,GAAM,WAOP,IAAIiiJ,EAAWA,GAAa,SAAU1zI,EAAM7Q,GAExC,IAAIqhD,EA4BJ,GAzBsB,qBAAXl0C,QAA0BA,OAAOk0C,SACxCA,EAASl0C,OAAOk0C,QAIA,qBAATh7B,MAAwBA,KAAKg7B,SACpCA,EAASh7B,KAAKg7B,QAIQ,qBAAf4xE,YAA8BA,WAAW5xE,SAChDA,EAAS4xE,WAAW5xE,SAInBA,GAA4B,qBAAXl0C,QAA0BA,OAAOs1E,WACnDphC,EAASl0C,OAAOs1E,WAIfphC,GAA4B,qBAAX,EAAA7kC,GAA0B,EAAAA,EAAO6kC,SACnDA,EAAS,EAAA7kC,EAAO6kC,SAIfA,EACD,IACIA,EAAS,EAAQ,MACrB,CAAE,MAAO5iD,GAAM,CAQnB,IAAI22H,EAAwB,WACxB,GAAI/zE,EAAQ,CAER,GAAsC,oBAA3BA,EAAOC,gBACd,IACI,OAAOD,EAAOC,gBAAgB,IAAIomC,YAAY,IAAI,EACtD,CAAE,MAAOjpF,GAAM,CAInB,GAAkC,oBAAvB4iD,EAAOg0E,YACd,IACI,OAAOh0E,EAAOg0E,YAAY,GAAGC,aACjC,CAAE,MAAO72H,GAAM,CAEvB,CAEA,MAAM,IAAI8H,MAAM,sEACpB,EAMI5E,EAAS0G,OAAO1G,QAAW,WAC3B,SAAS6iJ,IAAK,CAEd,OAAO,SAAUt1I,GACb,IAAIu1I,EAQJ,OANAD,EAAE/iJ,UAAYyN,EAEdu1I,EAAU,IAAID,EAEdA,EAAE/iJ,UAAY,KAEPgjJ,CACX,CACJ,CAd8B,GAmB1BC,EAAI,CAAC,EAKLC,EAAQD,EAAEE,IAAM,CAAC,EAKjBC,EAAOF,EAAME,KAAQ,WAGrB,MAAO,CAmBHnjJ,OAAQ,SAAUojJ,GAEd,IAAIL,EAAU9iJ,EAAOW,MAoBrB,OAjBIwiJ,GACAL,EAAQM,MAAMD,GAIbL,EAAQt1I,eAAe,SAAW7M,KAAKqb,OAAS8mI,EAAQ9mI,OACzD8mI,EAAQ9mI,KAAO,WACX8mI,EAAQO,OAAOrnI,KAAKzY,MAAM5C,KAAMiI,UACpC,GAIJk6I,EAAQ9mI,KAAKlc,UAAYgjJ,EAGzBA,EAAQO,OAAS1iJ,KAEVmiJ,CACX,EAcA9iJ,OAAQ,WACJ,IAAIH,EAAWc,KAAKZ,SAGpB,OAFAF,EAASmc,KAAKzY,MAAM1D,EAAU+I,WAEvB/I,CACX,EAcAmc,KAAM,WACN,EAaAonI,MAAO,SAAUj2H,GACb,IAAK,IAAIq9F,KAAgBr9F,EACjBA,EAAW3f,eAAeg9G,KAC1B7pH,KAAK6pH,GAAgBr9F,EAAWq9F,IAKpCr9F,EAAW3f,eAAe,cAC1B7M,KAAKC,SAAWusB,EAAWvsB,SAEnC,EAWAi7B,MAAO,WACH,OAAOl7B,KAAKqb,KAAKlc,UAAUC,OAAOY,KACtC,EAER,CAtHwB,GA8HpBwzH,EAAY6uB,EAAM7uB,UAAY+uB,EAAKnjJ,OAAO,CAa1Cic,KAAM,SAAU83G,EAAOC,GACnBD,EAAQnzH,KAAKmzH,MAAQA,GAAS,GAG1BnzH,KAAKozH,SADLA,GAAY11H,EACI01H,EAEe,EAAfD,EAAMvyH,MAE9B,EAeAX,SAAU,SAAU2G,GAChB,OAAQA,GAAW+7I,GAAKz7I,UAAUlH,KACtC,EAaA6C,OAAQ,SAAUqwH,GAEd,IAAI0vB,EAAY5iJ,KAAKmzH,MACjB0vB,EAAY3vB,EAAUC,MACtB2vB,EAAe9iJ,KAAKozH,SACpB2vB,EAAe7vB,EAAUE,SAM7B,GAHApzH,KAAK01H,QAGDotB,EAAe,EAEf,IAAK,IAAIpiJ,EAAI,EAAGA,EAAIqiJ,EAAcriJ,IAAK,CACnC,IAAIsiJ,EAAYH,EAAUniJ,IAAM,KAAQ,GAAMA,EAAI,EAAK,EAAM,IAC7DkiJ,EAAWE,EAAepiJ,IAAO,IAAMsiJ,GAAa,IAAOF,EAAepiJ,GAAK,EAAK,CACxF,MAGA,IAAK,IAAImlE,EAAI,EAAGA,EAAIk9E,EAAcl9E,GAAK,EACnC+8E,EAAWE,EAAej9E,IAAO,GAAKg9E,EAAUh9E,IAAM,GAM9D,OAHA7lE,KAAKozH,UAAY2vB,EAGV/iJ,IACX,EASA01H,MAAO,WAEH,IAAIvC,EAAQnzH,KAAKmzH,MACbC,EAAWpzH,KAAKozH,SAGpBD,EAAMC,IAAa,IAAM,YAAe,GAAMA,EAAW,EAAK,EAC9DD,EAAMvyH,OAAS2N,EAAK23D,KAAKktD,EAAW,EACxC,EAWAl4F,MAAO,WACH,IAAIA,EAAQqnH,EAAKrnH,MAAM92B,KAAKpE,MAG5B,OAFAk7B,EAAMi4F,MAAQnzH,KAAKmzH,MAAM3tH,MAAM,GAExB01B,CACX,EAeAwjB,OAAQ,SAAU+0E,GAGd,IAFA,IAAIN,EAAQ,GAEHzyH,EAAI,EAAGA,EAAI+yH,EAAQ/yH,GAAK,EAC7ByyH,EAAMjyH,KAAK4xH,KAGf,OAAO,IAAIU,EAAUn4G,KAAK83G,EAAOM,EACrC,IAMAwvB,EAAQb,EAAEP,IAAM,CAAC,EAKjBc,EAAMM,EAAMN,IAAM,CAclBz7I,UAAW,SAAUgsH,GAOjB,IALA,IAAIC,EAAQD,EAAUC,MAClBC,EAAWF,EAAUE,SAGrBC,EAAW,GACN3yH,EAAI,EAAGA,EAAI0yH,EAAU1yH,IAAK,CAC/B,IAAI4yH,EAAQH,EAAMzyH,IAAM,KAAQ,GAAMA,EAAI,EAAK,EAAM,IACrD2yH,EAASnyH,MAAMoyH,IAAS,GAAGrzH,SAAS,KACpCozH,EAASnyH,MAAa,GAAPoyH,GAAarzH,SAAS,IACzC,CAEA,OAAOozH,EAAS7qH,KAAK,GACzB,EAeAzB,MAAO,SAAUi2H,GAMb,IAJA,IAAIkmB,EAAelmB,EAAOp8H,OAGtBuyH,EAAQ,GACHzyH,EAAI,EAAGA,EAAIwiJ,EAAcxiJ,GAAK,EACnCyyH,EAAMzyH,IAAM,IAAMk5C,SAASojF,EAAO3xH,OAAO3K,EAAG,GAAI,KAAQ,GAAMA,EAAI,EAAK,EAG3E,OAAO,IAAI8yH,EAAUn4G,KAAK83G,EAAO+vB,EAAe,EACpD,GAMAC,EAASF,EAAME,OAAS,CAcxBj8I,UAAW,SAAUgsH,GAOjB,IALA,IAAIC,EAAQD,EAAUC,MAClBC,EAAWF,EAAUE,SAGrBgwB,EAAc,GACT1iJ,EAAI,EAAGA,EAAI0yH,EAAU1yH,IAAK,CAC/B,IAAI4yH,EAAQH,EAAMzyH,IAAM,KAAQ,GAAMA,EAAI,EAAK,EAAM,IACrD0iJ,EAAYliJ,KAAK8qB,OAAO0D,aAAa4jG,GACzC,CAEA,OAAO8vB,EAAY56I,KAAK,GAC5B,EAeAzB,MAAO,SAAUs8I,GAMb,IAJA,IAAIC,EAAkBD,EAAUziJ,OAG5BuyH,EAAQ,GACHzyH,EAAI,EAAGA,EAAI4iJ,EAAiB5iJ,IACjCyyH,EAAMzyH,IAAM,KAAiC,IAA1B2iJ,EAAUl2I,WAAWzM,KAAe,GAAMA,EAAI,EAAK,EAG1E,OAAO,IAAI8yH,EAAUn4G,KAAK83G,EAAOmwB,EACrC,GAMAC,EAAON,EAAMM,KAAO,CAcpBr8I,UAAW,SAAUgsH,GACjB,IACI,OAAO3pH,mBAAmBi6I,OAAOL,EAAOj8I,UAAUgsH,IACtD,CAAE,MAAOjsH,GACL,MAAM,IAAIhD,MAAM,uBACpB,CACJ,EAeA8C,MAAO,SAAU08I,GACb,OAAON,EAAOp8I,MAAM5L,SAASC,mBAAmBqoJ,IACpD,GAUAC,EAAyBrB,EAAMqB,uBAAyBnB,EAAKnjJ,OAAO,CAQpEukJ,MAAO,WAEH3jJ,KAAK4jJ,MAAQ,IAAIpwB,EAAUn4G,KAC3Brb,KAAK6jJ,YAAc,CACvB,EAYAC,QAAS,SAAU1pJ,GAEI,iBAARA,IACPA,EAAOmpJ,EAAKx8I,MAAM3M,IAItB4F,KAAK4jJ,MAAM/gJ,OAAOzI,GAClB4F,KAAK6jJ,aAAezpJ,EAAKg5H,QAC7B,EAgBA2wB,SAAU,SAAUC,GAChB,IAAIC,EAGA7pJ,EAAO4F,KAAK4jJ,MACZM,EAAY9pJ,EAAK+4H,MACjBgxB,EAAe/pJ,EAAKg5H,SACpBgxB,EAAYpkJ,KAAKokJ,UACjBC,EAA6B,EAAZD,EAGjBE,EAAeH,EAAeE,EAG9BC,EAFAN,EAEez1I,EAAK23D,KAAKo+E,GAIV/1I,EAAK8S,KAAoB,EAAfijI,GAAoBtkJ,KAAKukJ,eAAgB,GAItE,IAAIC,EAAcF,EAAeF,EAG7BK,EAAcl2I,EAAKke,IAAkB,EAAd+3H,EAAiBL,GAG5C,GAAIK,EAAa,CACb,IAAK,IAAI7vI,EAAS,EAAGA,EAAS6vI,EAAa7vI,GAAUyvI,EAEjDpkJ,KAAK0kJ,gBAAgBR,EAAWvvI,GAIpCsvI,EAAiBC,EAAU9iJ,OAAO,EAAGojJ,GACrCpqJ,EAAKg5H,UAAYqxB,CACrB,CAGA,OAAO,IAAIjxB,EAAUn4G,KAAK4oI,EAAgBQ,EAC9C,EAWAvpH,MAAO,WACH,IAAIA,EAAQqnH,EAAKrnH,MAAM92B,KAAKpE,MAG5B,OAFAk7B,EAAM0oH,MAAQ5jJ,KAAK4jJ,MAAM1oH,QAElBA,CACX,EAEAqpH,eAAgB,IA2IhBI,GAnIStC,EAAMuC,OAASlB,EAAuBtkJ,OAAO,CAItDylJ,IAAKtC,EAAKnjJ,SAWVic,KAAM,SAAUwpI,GAEZ7kJ,KAAK6kJ,IAAM7kJ,KAAK6kJ,IAAIzlJ,OAAOylJ,GAG3B7kJ,KAAK2jJ,OACT,EASAA,MAAO,WAEHD,EAAuBC,MAAMv/I,KAAKpE,MAGlCA,KAAK8kJ,UACT,EAcAxvI,OAAQ,SAAUyvI,GAQd,OANA/kJ,KAAK8jJ,QAAQiB,GAGb/kJ,KAAK+jJ,WAGE/jJ,IACX,EAgBAglJ,SAAU,SAAUD,GAEZA,GACA/kJ,KAAK8jJ,QAAQiB,GAIjB,IAAIv6I,EAAOxK,KAAKilJ,cAEhB,OAAOz6I,CACX,EAEA45I,UAAW,GAeXc,cAAe,SAAUC,GACrB,OAAO,SAAUplJ,EAAS8kJ,GACtB,OAAO,IAAIM,EAAO9pI,KAAKwpI,GAAKG,SAASjlJ,EACzC,CACJ,EAeAqlJ,kBAAmB,SAAUD,GACzB,OAAO,SAAUplJ,EAASjC,GACtB,OAAO,IAAI6mJ,EAAOU,KAAKhqI,KAAK8pI,EAAQrnJ,GAAKknJ,SAASjlJ,EACtD,CACJ,IAMSqiJ,EAAEkD,KAAO,CAAC,GAEvB,OAAOlD,CACX,CA7wB2B,CA6wBzB7zI,MAGF,OAAO0zI,CAER,G,yBCtyBE,SAAUznH,EAAMwnH,GAGhB9oJ,EAAOC,QAAoB6oJ,EAAQ,EAAQ,OAU7C,EAbC,CAaChiJ,GAAM,SAAUiiJ,GAwHjB,OAtHC,WAEG,IAAIG,EAAIH,EACJI,EAAQD,EAAEE,IACV9uB,EAAY6uB,EAAM7uB,UAClByvB,EAAQb,EAAEP,IAKDoB,EAAMsC,OAAS,CAcxBr+I,UAAW,SAAUgsH,GAEjB,IAAIC,EAAQD,EAAUC,MAClBC,EAAWF,EAAUE,SACrBv9G,EAAM7V,KAAKwlJ,KAGftyB,EAAUwC,QAIV,IADA,IAAI+vB,EAAc,GACT/kJ,EAAI,EAAGA,EAAI0yH,EAAU1yH,GAAK,EAO/B,IANA,IAAIglJ,EAASvyB,EAAMzyH,IAAM,KAAc,GAAMA,EAAI,EAAK,EAAY,IAC9DilJ,EAASxyB,EAAOzyH,EAAI,IAAO,KAAQ,IAAOA,EAAI,GAAK,EAAK,EAAM,IAC9DklJ,EAASzyB,EAAOzyH,EAAI,IAAO,KAAQ,IAAOA,EAAI,GAAK,EAAK,EAAM,IAE9DmlJ,EAAWH,GAAS,GAAOC,GAAS,EAAKC,EAEpC//E,EAAI,EAAIA,EAAI,GAAOnlE,EAAQ,IAAJmlE,EAAWutD,EAAWvtD,IAClD4/E,EAAYvkJ,KAAK2U,EAAIjL,OAAQi7I,IAAa,GAAK,EAAIhgF,GAAO,KAKlE,IAAIigF,EAAcjwI,EAAIjL,OAAO,IAC7B,GAAIk7I,EACA,MAAOL,EAAY7kJ,OAAS,EACxB6kJ,EAAYvkJ,KAAK4kJ,GAIzB,OAAOL,EAAYj9I,KAAK,GAC5B,EAeAzB,MAAO,SAAUg/I,GAEb,IAAIC,EAAkBD,EAAUnlJ,OAC5BiV,EAAM7V,KAAKwlJ,KACXS,EAAajmJ,KAAKkmJ,YAEtB,IAAKD,EAAY,CACTA,EAAajmJ,KAAKkmJ,YAAc,GAChC,IAAK,IAAIrgF,EAAI,EAAGA,EAAIhwD,EAAIjV,OAAQilE,IAC5BogF,EAAWpwI,EAAI1I,WAAW04D,IAAMA,CAE5C,CAGA,IAAIigF,EAAcjwI,EAAIjL,OAAO,IAC7B,GAAIk7I,EAAa,CACb,IAAIK,EAAeJ,EAAUlpJ,QAAQipJ,IACf,IAAlBK,IACAH,EAAkBG,EAE1B,CAGA,OAAOC,EAAUL,EAAWC,EAAiBC,EAEjD,EAEAT,KAAM,qEAGV,SAASY,EAAUL,EAAWC,EAAiBC,GAG7C,IAFA,IAAI9yB,EAAQ,GACRM,EAAS,EACJ/yH,EAAI,EAAGA,EAAIslJ,EAAiBtlJ,IACjC,GAAIA,EAAI,EAAG,CACP,IAAI2lJ,EAAQJ,EAAWF,EAAU54I,WAAWzM,EAAI,KAASA,EAAI,EAAK,EAC9D4lJ,EAAQL,EAAWF,EAAU54I,WAAWzM,MAAS,EAAKA,EAAI,EAAK,EAC/D6lJ,EAAeF,EAAQC,EAC3BnzB,EAAMM,IAAW,IAAM8yB,GAAiB,GAAM9yB,EAAS,EAAK,EAC5DA,GACJ,CAEJ,OAAOD,EAAUn0H,OAAO8zH,EAAOM,EACjC,CACJ,CAnHA,GAsHOwuB,EAASJ,IAAI0D,MAErB,G,wBCvIE,SAAU/qH,EAAMwnH,GAGhB9oJ,EAAOC,QAAoB6oJ,EAAQ,EAAQ,OAAW,EAAQ,OAAa,EAAQ,OAUrF,EAbC,CAaChiJ,GAAM,SAAUiiJ,GAEjB,OAAOA,EAASuE,UAEjB,G,yBCjBE,SAAUhsH,EAAMwnH,GAGhB9oJ,EAAOC,QAAoB6oJ,EAAQ,EAAQ,OAU7C,EAbC,CAaChiJ,GAAM,SAAUiiJ,IAEhB,WAEG,IAAIG,EAAIH,EACJI,EAAQD,EAAEE,IACVC,EAAOF,EAAME,KACbU,EAAQb,EAAEP,IACV0B,EAAON,EAAMM,KACboB,EAASvC,EAAEkD,KAKJX,EAAOU,KAAO9C,EAAKnjJ,OAAO,CAWjCic,KAAM,SAAU8pI,EAAQrnJ,GAEpBqnJ,EAASnlJ,KAAKymJ,QAAU,IAAItB,EAAO9pI,KAGjB,iBAAPvd,IACPA,EAAMylJ,EAAKx8I,MAAMjJ,IAIrB,IAAI4oJ,EAAkBvB,EAAOf,UACzBuC,EAAyC,EAAlBD,EAGvB5oJ,EAAIs1H,SAAWuzB,IACf7oJ,EAAMqnJ,EAAOH,SAASlnJ,IAI1BA,EAAI43H,QAWJ,IARA,IAAIkxB,EAAO5mJ,KAAK6mJ,MAAQ/oJ,EAAIo9B,QACxB4rH,EAAO9mJ,KAAK+mJ,MAAQjpJ,EAAIo9B,QAGxB8rH,EAAYJ,EAAKzzB,MACjB8zB,EAAYH,EAAK3zB,MAGZzyH,EAAI,EAAGA,EAAIgmJ,EAAiBhmJ,IACjCsmJ,EAAUtmJ,IAAM,WAChBumJ,EAAUvmJ,IAAM,UAEpBkmJ,EAAKxzB,SAAW0zB,EAAK1zB,SAAWuzB,EAGhC3mJ,KAAK2jJ,OACT,EASAA,MAAO,WAEH,IAAIwB,EAASnlJ,KAAKymJ,QAGlBtB,EAAOxB,QACPwB,EAAO7vI,OAAOtV,KAAK+mJ,MACvB,EAcAzxI,OAAQ,SAAUyvI,GAId,OAHA/kJ,KAAKymJ,QAAQnxI,OAAOyvI,GAGb/kJ,IACX,EAgBAglJ,SAAU,SAAUD,GAEhB,IAAII,EAASnlJ,KAAKymJ,QAGdS,EAAY/B,EAAOH,SAASD,GAChCI,EAAOxB,QACP,IAAIxyE,EAAOg0E,EAAOH,SAAShlJ,KAAK6mJ,MAAM3rH,QAAQr4B,OAAOqkJ,IAErD,OAAO/1E,CACX,GAER,EA5HA,EA+HD,G,wBC9IE,SAAU32C,EAAMwnH,GAGhB9oJ,EAAOC,QAAoB6oJ,EAAQ,EAAQ,OAU7C,EAbC,CAaChiJ,GAAM,SAAUiiJ,GA4DjB,OA1DC,WAEG,GAA0B,mBAAf51I,YAAX,CAKA,IAAI+1I,EAAIH,EACJI,EAAQD,EAAEE,IACV9uB,EAAY6uB,EAAM7uB,UAGlB2zB,EAAY3zB,EAAUn4G,KAGtB+rI,EAAU5zB,EAAUn4G,KAAO,SAAUioE,GAqBrC,GAnBIA,aAAsBj3E,cACtBi3E,EAAa,IAAIxkC,WAAWwkC,KAK5BA,aAAsB+jE,WACQ,qBAAtBC,mBAAqChkE,aAAsBgkE,mBACnEhkE,aAAsBikE,YACtBjkE,aAAsBkkE,aACtBlkE,aAAsBE,YACtBF,aAAsB8B,aACtB9B,aAAsBmkE,cACtBnkE,aAAsBokE,gBAEtBpkE,EAAa,IAAIxkC,WAAWwkC,EAAW77E,OAAQ67E,EAAWN,WAAYM,EAAWpkC,aAIjFokC,aAAsBxkC,WAAY,CAMlC,IAJA,IAAI6oG,EAAuBrkE,EAAWpkC,WAGlCi0E,EAAQ,GACHzyH,EAAI,EAAGA,EAAIinJ,EAAsBjnJ,IACtCyyH,EAAMzyH,IAAM,IAAM4iF,EAAW5iF,IAAO,GAAMA,EAAI,EAAK,EAIvDymJ,EAAU/iJ,KAAKpE,KAAMmzH,EAAOw0B,EAChC,MAEIR,EAAUvkJ,MAAM5C,KAAMiI,UAE9B,EAEAm/I,EAAQjoJ,UAAYq0H,CAlDpB,CAmDJ,CAvDA,GA0DOyuB,EAASK,IAAI9uB,SAErB,G,yBC3EE,SAAUh5F,EAAMwnH,GAGhB9oJ,EAAOC,QAAoB6oJ,EAAQ,EAAQ,OAU7C,EAbC,CAaChiJ,GAAM,SAAUiiJ,GAuLjB,OArLC,SAAU1zI,GAEP,IAAI6zI,EAAIH,EACJI,EAAQD,EAAEE,IACV9uB,EAAY6uB,EAAM7uB,UAClBoxB,EAASvC,EAAMuC,OACfD,EAASvC,EAAEkD,KAGXsC,EAAI,GACJC,EAAI,IAGP,WACG,SAASC,EAAQl1I,GAEb,IADA,IAAIm1I,EAAQx5I,EAAKy5I,KAAKp1I,GACbq1I,EAAS,EAAGA,GAAUF,EAAOE,IAClC,KAAMr1I,EAAIq1I,GACN,OAAO,EAIf,OAAO,CACX,CAEA,SAASC,EAAkBt1I,GACvB,OAAwB,YAAfA,GAAS,EAAJA,IAAyB,CAC3C,CAEA,IAAIA,EAAI,EACJu1I,EAAS,EACb,MAAOA,EAAS,GACRL,EAAQl1I,KACJu1I,EAAS,IACTP,EAAEO,GAAUD,EAAkB35I,EAAK86D,IAAIz2D,EAAG,MAE9Ci1I,EAAEM,GAAUD,EAAkB35I,EAAK86D,IAAIz2D,EAAG,EAAI,IAE9Cu1I,KAGJv1I,GAER,EA9BA,GAiCA,IAAIw1I,EAAI,GAKJC,EAAS1D,EAAO0D,OAASzD,EAAOxlJ,OAAO,CACvC0lJ,SAAU,WACN9kJ,KAAKsoJ,MAAQ,IAAI90B,EAAUn4G,KAAKusI,EAAEpiJ,MAAM,GAC5C,EAEAk/I,gBAAiB,SAAU6D,EAAG5zI,GAe1B,IAbA,IAAIizI,EAAI5nJ,KAAKsoJ,MAAMn1B,MAGfpmH,EAAI66I,EAAE,GACN56I,EAAI46I,EAAE,GACNtmJ,EAAIsmJ,EAAE,GACN73I,EAAI63I,EAAE,GACN3gJ,EAAI2gJ,EAAE,GACN5tI,EAAI4tI,EAAE,GACN1tI,EAAI0tI,EAAE,GACNjkJ,EAAIikJ,EAAE,GAGDlnJ,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,GAAIA,EAAI,GACJ0nJ,EAAE1nJ,GAAqB,EAAhB6nJ,EAAE5zI,EAASjU,OACf,CACH,IAAI8nJ,EAAUJ,EAAE1nJ,EAAI,IAChB+nJ,GAAYD,GAAW,GAAOA,IAAY,IAC9BA,GAAW,GAAOA,IAAY,IAC9BA,IAAY,EAExBE,EAAUN,EAAE1nJ,EAAI,GAChBioJ,GAAYD,GAAW,GAAOA,IAAY,KAC9BA,GAAW,GAAOA,IAAY,IAC9BA,IAAY,GAE5BN,EAAE1nJ,GAAK+nJ,EAASL,EAAE1nJ,EAAI,GAAKioJ,EAASP,EAAE1nJ,EAAI,GAC9C,CAEA,IAAIkoJ,EAAO3hJ,EAAI+S,GAAO/S,EAAIiT,EACtB2uI,EAAO97I,EAAIC,EAAMD,EAAIzL,EAAM0L,EAAI1L,EAE/BwnJ,GAAW/7I,GAAK,GAAOA,IAAM,IAAQA,GAAK,GAAOA,IAAM,KAASA,GAAK,GAAOA,IAAM,IAClFg8I,GAAW9hJ,GAAK,GAAOA,IAAM,IAAQA,GAAK,GAAOA,IAAM,KAASA,GAAK,EAAOA,IAAM,IAElFg+E,EAAKthF,EAAIolJ,EAASH,EAAKf,EAAEnnJ,GAAK0nJ,EAAE1nJ,GAChCykF,EAAK2jE,EAASD,EAElBllJ,EAAIuW,EACJA,EAAIF,EACJA,EAAI/S,EACJA,EAAK8I,EAAIk1E,EAAM,EACfl1E,EAAIzO,EACJA,EAAI0L,EACJA,EAAID,EACJA,EAAKk4E,EAAKE,EAAM,CACpB,CAGAyiE,EAAE,GAAMA,EAAE,GAAK76I,EAAK,EACpB66I,EAAE,GAAMA,EAAE,GAAK56I,EAAK,EACpB46I,EAAE,GAAMA,EAAE,GAAKtmJ,EAAK,EACpBsmJ,EAAE,GAAMA,EAAE,GAAK73I,EAAK,EACpB63I,EAAE,GAAMA,EAAE,GAAK3gJ,EAAK,EACpB2gJ,EAAE,GAAMA,EAAE,GAAK5tI,EAAK,EACpB4tI,EAAE,GAAMA,EAAE,GAAK1tI,EAAK,EACpB0tI,EAAE,GAAMA,EAAE,GAAKjkJ,EAAK,CACxB,EAEAshJ,YAAa,WAET,IAAI7qJ,EAAO4F,KAAK4jJ,MACZM,EAAY9pJ,EAAK+4H,MAEjB61B,EAAgC,EAAnBhpJ,KAAK6jJ,YAClBoF,EAA4B,EAAhB7uJ,EAAKg5H,SAYrB,OATA8wB,EAAU+E,IAAc,IAAM,KAAS,GAAKA,EAAY,GACxD/E,EAA4C,IAA/B+E,EAAY,KAAQ,GAAM,IAAW16I,EAAKC,MAAMw6I,EAAa,YAC1E9E,EAA4C,IAA/B+E,EAAY,KAAQ,GAAM,IAAWD,EAClD5uJ,EAAKg5H,SAA8B,EAAnB8wB,EAAUtjJ,OAG1BZ,KAAK+jJ,WAGE/jJ,KAAKsoJ,KAChB,EAEAptH,MAAO,WACH,IAAIA,EAAQ0pH,EAAO1pH,MAAM92B,KAAKpE,MAG9B,OAFAk7B,EAAMotH,MAAQtoJ,KAAKsoJ,MAAMptH,QAElBA,CACX,IAiBJknH,EAAEiG,OAASzD,EAAOM,cAAcmD,GAgBhCjG,EAAEoE,WAAa5B,EAAOQ,kBAAkBiD,EAC5C,CAlLA,CAkLE95I,MAGK0zI,EAASoG,MAEjB,G,oCCpMA,IAAIa,EAAW,EAAQ,OACnBC,EAAO,EAAQ,OAGfC,EAAyE,GAAKn5I,YAActN,MAAMxD,UAGlG6M,EAAOo9I,GAAoBD,GAAQA,EAAKpjJ,OAAO5G,UAAwD,aAEvGkqJ,EAAUtjJ,OACVujJ,EAAkBD,EAAQ98I,eAG9BrT,EAAOC,QAAU6S,GAA4B,oBAAbA,EAAKwQ,IAClC0sI,EAAS,CAACl9I,EAAKwQ,MACY,oBAApB8sI,GACyB,SAAmBptJ,GAEnD,OAAOotJ,EAAyB,MAATptJ,EAAgBA,EAAQmtJ,EAAQntJ,GACxD,C,iCClBF,IAAIqtJ,EAAkBxjJ,OAAOuc,iBAAkB,EAC/C,GAAIinI,EACH,IACCA,EAAgB,CAAC,EAAG,IAAK,CAAErtJ,MAAO,GACnC,CAAE,MAAO+K,GAERsiJ,GAAkB,CACnB,CAGDrwJ,EAAOC,QAAUowJ,C,iCCVjBrwJ,EAAOC,QAAUqwJ,S,iCCAjBtwJ,EAAOC,QAAU8K,K,iCCAjB/K,EAAOC,QAAUkgJ,U,iCCAjBngJ,EAAOC,QAAU8qB,c,iCCAjB/qB,EAAOC,QAAUswJ,W,iCCAjBvwJ,EAAOC,QAAUiH,S,iCCAjBlH,EAAOC,QAAUuwJ,Q,iCCAjBxwJ,EAAOC,QAAU4M,M,iCCCjB,IAAI4jJ,EAAgB,kDAChBC,EAAQ7jJ,OAAO5G,UAAUc,SACzBohB,EAAM9S,KAAK8S,IACXwoI,EAAW,oBAEXC,EAAW,SAAkB/8I,EAAGC,GAGhC,IAFA,IAAIzB,EAAM,GAED7K,EAAI,EAAGA,EAAIqM,EAAEnM,OAAQF,GAAK,EAC/B6K,EAAI7K,GAAKqM,EAAErM,GAEf,IAAK,IAAImlE,EAAI,EAAGA,EAAI74D,EAAEpM,OAAQilE,GAAK,EAC/Bt6D,EAAIs6D,EAAI94D,EAAEnM,QAAUoM,EAAE64D,GAG1B,OAAOt6D,CACX,EAEIw+I,EAAQ,SAAeC,EAASr1I,GAEhC,IADA,IAAIpJ,EAAM,GACD7K,EAAIiU,GAAU,EAAGkxD,EAAI,EAAGnlE,EAAIspJ,EAAQppJ,OAAQF,GAAK,EAAGmlE,GAAK,EAC9Dt6D,EAAIs6D,GAAKmkF,EAAQtpJ,GAErB,OAAO6K,CACX,EAEI0+I,EAAQ,SAAU1+I,EAAK2+I,GAEvB,IADA,IAAIx9I,EAAM,GACDhM,EAAI,EAAGA,EAAI6K,EAAI3K,OAAQF,GAAK,EACjCgM,GAAOnB,EAAI7K,GACPA,EAAI,EAAI6K,EAAI3K,SACZ8L,GAAOw9I,GAGf,OAAOx9I,CACX,EAEAxT,EAAOC,QAAU,SAAcotD,GAC3B,IAAIlhD,EAASrF,KACb,GAAsB,oBAAXqF,GAAyBukJ,EAAMhnJ,MAAMyC,KAAYwkJ,EACxD,MAAM,IAAIzpJ,UAAUupJ,EAAgBtkJ,GAyBxC,IAvBA,IAEI8kJ,EAFAniJ,EAAO+hJ,EAAM9hJ,UAAW,GAGxBmiJ,EAAS,WACT,GAAIpqJ,gBAAgBmqJ,EAAO,CACvB,IAAIt+I,EAASxG,EAAOzC,MAChB5C,KACA8pJ,EAAS9hJ,EAAMC,YAEnB,OAAIlC,OAAO8F,KAAYA,EACZA,EAEJ7L,IACX,CACA,OAAOqF,EAAOzC,MACV2jD,EACAujG,EAAS9hJ,EAAMC,WAGvB,EAEIoiJ,EAAchpI,EAAI,EAAGhc,EAAOzE,OAASoH,EAAKpH,QAC1C0pJ,EAAY,GACP5pJ,EAAI,EAAGA,EAAI2pJ,EAAa3pJ,IAC7B4pJ,EAAU5pJ,GAAK,IAAMA,EAKzB,GAFAypJ,EAAQzlI,SAAS,SAAU,oBAAsBulI,EAAMK,EAAW,KAAO,4CAAjE5lI,CAA8G0lI,GAElH/kJ,EAAOlG,UAAW,CAClB,IAAIorJ,EAAQ,WAAkB,EAC9BA,EAAMprJ,UAAYkG,EAAOlG,UACzBgrJ,EAAMhrJ,UAAY,IAAIorJ,EACtBA,EAAMprJ,UAAY,IACtB,CAEA,OAAOgrJ,CACX,C,qCCjFA,IAAIK,EAAiB,EAAQ,OAE7BtxJ,EAAOC,QAAUurB,SAASvlB,UAAUP,MAAQ4rJ,C,qCCF5C,IAAI9sJ,EAEA2rJ,EAAU,EAAQ,OAElBoB,EAAS,EAAQ,OACjBC,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OACtBC,EAAkB,EAAQ,OAC1BC,EAAe,EAAQ,OACvB3J,EAAa,EAAQ,OACrB4J,EAAY,EAAQ,OAEpBx2I,EAAM,EAAQ,OACd9F,EAAQ,EAAQ,OAChB6S,EAAM,EAAQ,MACdoL,EAAM,EAAQ,OACd48C,EAAM,EAAQ,OAEd0hF,EAAYrmI,SAGZsmI,EAAwB,SAAUC,GACrC,IACC,OAAOF,EAAU,yBAA2BE,EAAmB,iBAAxDF,EACR,CAAE,MAAO9jJ,GAAI,CACd,EAEIikJ,EAAQ,EAAQ,OAChB3B,EAAkB,EAAQ,OAE1B4B,EAAiB,WACpB,MAAM,IAAIjK,CACX,EACIkK,EAAiBF,EACjB,WACF,IAGC,OAAOC,CACR,CAAE,MAAOE,GACR,IAEC,OAAOH,EAAMjjJ,UAAW,UAAUuU,GACnC,CAAE,MAAO8uI,GACR,OAAOH,CACR,CACD,CACD,CAbE,GAcAA,EAECI,EAAa,EAAQ,MAAR,GACbC,EAAiB,EAAQ,MAEzB79D,EAA+B,oBAAZ/pE,SAA0BA,QAAQrX,gBACrD88I,EAAQ98I,gBACRi/I,EAEAzK,EAAS,EAAQ,OACjBC,EAAQ,EAAQ,OAEhByK,EAAY,CAAC,EAEb/b,EAAmC,qBAAf5wF,YAA+B6uC,EAAuBA,EAAS7uC,YAArBphD,EAE9DguJ,EAAa,CAChBz7I,UAAW,KACX,mBAA8C,qBAAnB07I,eAAiCjuJ,EAAYiuJ,eACxE,UAAWhpJ,MACX,gBAAwC,qBAAhB0J,YAA8B3O,EAAY2O,YAClE,2BAA4Bk/I,GAAc59D,EAAWA,EAAS,GAAG76E,OAAOC,aAAerV,EACvF,mCAAoCA,EACpC,kBAAmB+tJ,EACnB,mBAAoBA,EACpB,2BAA4BA,EAC5B,2BAA4BA,EAC5B,YAAgC,qBAAZG,QAA0BluJ,EAAYkuJ,QAC1D,WAA8B,qBAAXC,OAAyBnuJ,EAAYmuJ,OACxD,kBAA4C,qBAAlBC,cAAgCpuJ,EAAYouJ,cACtE,mBAA8C,qBAAnBC,eAAiCruJ,EAAYquJ,eACxE,YAAav3I,QACb,aAAkC,qBAAbkxD,SAA2BhoE,EAAYgoE,SAC5D,SAAUx8D,KACV,cAAe8iJ,UACf,uBAAwBziJ,mBACxB,cAAe0iJ,UACf,uBAAwB7wJ,mBACxB,UAAWqvJ,EACX,SAAUyB,KACV,cAAexB,EACf,iBAA0C,qBAAjBjD,aAA+B/pJ,EAAY+pJ,aACpE,iBAA0C,qBAAjBC,aAA+BhqJ,EAAYgqJ,aACpE,yBAA0D,qBAAzByE,qBAAuCzuJ,EAAYyuJ,qBACpF,aAAcpB,EACd,sBAAuBU,EACvB,cAAoC,qBAAdpE,UAA4B3pJ,EAAY2pJ,UAC9D,eAAsC,qBAAfE,WAA6B7pJ,EAAY6pJ,WAChE,eAAsC,qBAAf/jE,WAA6B9lF,EAAY8lF,WAChE,aAAcl1E,SACd,UAAWmhB,MACX,sBAAuB87H,GAAc59D,EAAWA,EAASA,EAAS,GAAG76E,OAAOC,cAAgBrV,EAC5F,SAA0B,kBAAToJ,KAAoBA,KAAOpJ,EAC5C,QAAwB,qBAAR2mB,IAAsB3mB,EAAY2mB,IAClD,yBAAyC,qBAARA,KAAwBknI,GAAe59D,EAAuBA,GAAS,IAAItpE,KAAMvR,OAAOC,aAAtCrV,EACnF,SAAU6Q,KACV,WAAYH,OACZ,WAAYi7I,EACZ,oCAAqC6B,EACrC,eAAgB56B,WAChB,aAAc12E,SACd,YAAgC,qBAAZ7/C,QAA0B2D,EAAY3D,QAC1D,UAA4B,qBAAV6qB,MAAwBlnB,EAAYknB,MACtD,eAAgB+lI,EAChB,mBAAoBC,EACpB,YAAgC,qBAAZhnI,QAA0BlmB,EAAYkmB,QAC1D,WAAYta,OACZ,QAAwB,qBAAR2+B,IAAsBvqC,EAAYuqC,IAClD,yBAAyC,qBAARA,KAAwBsjH,GAAe59D,EAAuBA,GAAS,IAAI1lD,KAAMn1B,OAAOC,aAAtCrV,EACnF,sBAAoD,qBAAtB0uJ,kBAAoC1uJ,EAAY0uJ,kBAC9E,WAAYpgI,OACZ,4BAA6Bu/H,GAAc59D,EAAWA,EAAS,GAAG76E,OAAOC,aAAerV,EACxF,WAAY6tJ,EAAaz4I,OAASpV,EAClC,gBAAiBmtJ,EACjB,mBAAoBO,EACpB,eAAgB1b,EAChB,cAAewR,EACf,eAAsC,qBAAfpiG,WAA6BphD,EAAYohD,WAChE,sBAAoD,qBAAtBwoG,kBAAoC5pJ,EAAY4pJ,kBAC9E,gBAAwC,qBAAhBE,YAA8B9pJ,EAAY8pJ,YAClE,gBAAwC,qBAAhBpiE,YAA8B1nF,EAAY0nF,YAClE,aAAc0lE,EACd,YAAgC,qBAAZ5vI,QAA0Bxd,EAAYwd,QAC1D,YAAgC,qBAAZmxI,QAA0B3uJ,EAAY2uJ,QAC1D,YAAgC,qBAAZzgD,QAA0BluG,EAAYkuG,QAE1D,4BAA6Bo1C,EAC7B,6BAA8BD,EAC9B,0BAA2BwI,EAC3B,aAAcj1I,EACd,eAAgB9F,EAChB,aAAc6S,EACd,aAAcoL,EACd,aAAc48C,GAGf,GAAIskB,EACH,IACC,KAAKzqF,KACN,CAAE,MAAO+D,GAER,IAAIqlJ,EAAa3+D,EAASA,EAAS1mF,IACnCykJ,EAAW,qBAAuBY,CACnC,CAGD,IAAIC,EAAS,SAASA,EAAO5nJ,GAC5B,IAAIzI,EACJ,GAAa,oBAATyI,EACHzI,EAAQ8uJ,EAAsB,6BACxB,GAAa,wBAATrmJ,EACVzI,EAAQ8uJ,EAAsB,wBACxB,GAAa,6BAATrmJ,EACVzI,EAAQ8uJ,EAAsB,8BACxB,GAAa,qBAATrmJ,EAA6B,CACvC,IAAIjB,EAAK6oJ,EAAO,4BACZ7oJ,IACHxH,EAAQwH,EAAGvE,UAEb,MAAO,GAAa,6BAATwF,EAAqC,CAC/C,IAAI6nJ,EAAMD,EAAO,oBACbC,GAAO7+D,IACVzxF,EAAQyxF,EAAS6+D,EAAIrtJ,WAEvB,CAIA,OAFAusJ,EAAW/mJ,GAAQzI,EAEZA,CACR,EAEIuwJ,EAAiB,CACpBx8I,UAAW,KACX,yBAA0B,CAAC,cAAe,aAC1C,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,QAAS,YAAa,WAC/C,uBAAwB,CAAC,QAAS,YAAa,WAC/C,oBAAqB,CAAC,QAAS,YAAa,QAC5C,sBAAuB,CAAC,QAAS,YAAa,UAC9C,2BAA4B,CAAC,gBAAiB,aAC9C,mBAAoB,CAAC,yBAA0B,aAC/C,4BAA6B,CAAC,yBAA0B,YAAa,aACrE,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,WAAY,aACpC,kBAAmB,CAAC,OAAQ,aAC5B,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,YAAa,aACtC,0BAA2B,CAAC,eAAgB,aAC5C,0BAA2B,CAAC,eAAgB,aAC5C,sBAAuB,CAAC,WAAY,aACpC,cAAe,CAAC,oBAAqB,aACrC,uBAAwB,CAAC,oBAAqB,YAAa,aAC3D,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,wBAAyB,CAAC,aAAc,aACxC,cAAe,CAAC,OAAQ,SACxB,kBAAmB,CAAC,OAAQ,aAC5B,iBAAkB,CAAC,MAAO,aAC1B,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,sBAAuB,CAAC,SAAU,YAAa,YAC/C,qBAAsB,CAAC,SAAU,YAAa,WAC9C,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,UAAW,YAAa,QAChD,gBAAiB,CAAC,UAAW,OAC7B,mBAAoB,CAAC,UAAW,UAChC,oBAAqB,CAAC,UAAW,WACjC,wBAAyB,CAAC,aAAc,aACxC,4BAA6B,CAAC,iBAAkB,aAChD,oBAAqB,CAAC,SAAU,aAChC,iBAAkB,CAAC,MAAO,aAC1B,+BAAgC,CAAC,oBAAqB,aACtD,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,yBAA0B,CAAC,cAAe,aAC1C,wBAAyB,CAAC,aAAc,aACxC,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,+BAAgC,CAAC,oBAAqB,aACtD,yBAA0B,CAAC,cAAe,aAC1C,yBAA0B,CAAC,cAAe,aAC1C,sBAAuB,CAAC,WAAY,aACpC,qBAAsB,CAAC,UAAW,aAClC,qBAAsB,CAAC,UAAW,cAG/BrR,EAAO,EAAQ,OACfowH,EAAS,EAAQ,MACjB09B,EAAU9tJ,EAAKwF,KAAK48I,EAAOr+I,MAAMxD,UAAU0D,QAC3C8pJ,EAAe/tJ,EAAKwF,KAAK28I,EAAQp+I,MAAMxD,UAAUiC,QACjDwrJ,EAAWhuJ,EAAKwF,KAAK48I,EAAOh1H,OAAO7sB,UAAUiE,SAC7CypJ,EAAYjuJ,EAAKwF,KAAK48I,EAAOh1H,OAAO7sB,UAAUqG,OAC9CsnJ,EAAQluJ,EAAKwF,KAAK48I,EAAO13I,OAAOnK,UAAUygB,MAG1CmtI,EAAa,qGACbC,EAAe,WACfC,EAAe,SAAsBruG,GACxC,IAAIsuG,EAAQL,EAAUjuG,EAAQ,EAAG,GAC7B4pC,EAAOqkE,EAAUjuG,GAAS,GAC9B,GAAc,MAAVsuG,GAA0B,MAAT1kE,EACpB,MAAM,IAAIqiE,EAAa,kDACjB,GAAa,MAATriE,GAA0B,MAAV0kE,EAC1B,MAAM,IAAIrC,EAAa,kDAExB,IAAIh/I,EAAS,GAIb,OAHA+gJ,EAAShuG,EAAQmuG,GAAY,SAAU1jJ,EAAOxE,EAAQsoJ,EAAOC,GAC5DvhJ,EAAOA,EAAOjL,QAAUusJ,EAAQP,EAASQ,EAAWJ,EAAc,MAAQnoJ,GAAUwE,CACrF,IACOwC,CACR,EAGIwhJ,EAAmB,SAA0B1oJ,EAAM48I,GACtD,IACIpuH,EADAm6H,EAAgB3oJ,EAOpB,GALIqqH,EAAOy9B,EAAgBa,KAC1Bn6H,EAAQs5H,EAAea,GACvBA,EAAgB,IAAMn6H,EAAM,GAAK,KAG9B67F,EAAO08B,EAAY4B,GAAgB,CACtC,IAAIpxJ,EAAQwvJ,EAAW4B,GAIvB,GAHIpxJ,IAAUuvJ,IACbvvJ,EAAQqwJ,EAAOe,IAEK,qBAAVpxJ,IAA0BqlJ,EACpC,MAAM,IAAIL,EAAW,aAAev8I,EAAO,wDAG5C,MAAO,CACNwuB,MAAOA,EACPxuB,KAAM2oJ,EACNpxJ,MAAOA,EAET,CAEA,MAAM,IAAI2uJ,EAAa,aAAelmJ,EAAO,mBAC9C,EAEAzL,EAAOC,QAAU,SAAsBwL,EAAM48I,GAC5C,GAAoB,kBAAT58I,GAAqC,IAAhBA,EAAK/D,OACpC,MAAM,IAAIsgJ,EAAW,6CAEtB,GAAIj5I,UAAUrH,OAAS,GAA6B,mBAAjB2gJ,EAClC,MAAM,IAAIL,EAAW,6CAGtB,GAAmC,OAA/B4L,EAAM,cAAenoJ,GACxB,MAAM,IAAIkmJ,EAAa,sFAExB,IAAIziJ,EAAQ6kJ,EAAatoJ,GACrB4oJ,EAAoBnlJ,EAAMxH,OAAS,EAAIwH,EAAM,GAAK,GAElDo5I,EAAY6L,EAAiB,IAAME,EAAoB,IAAKhM,GAC5DiM,EAAoBhM,EAAU78I,KAC9BzI,EAAQslJ,EAAUtlJ,MAClBuxJ,GAAqB,EAErBt6H,EAAQquH,EAAUruH,MAClBA,IACHo6H,EAAoBp6H,EAAM,GAC1Bw5H,EAAavkJ,EAAOskJ,EAAQ,CAAC,EAAG,GAAIv5H,KAGrC,IAAK,IAAIzyB,EAAI,EAAGgtJ,GAAQ,EAAMhtJ,EAAI0H,EAAMxH,OAAQF,GAAK,EAAG,CACvD,IAAIitJ,EAAOvlJ,EAAM1H,GACbwsJ,EAAQL,EAAUc,EAAM,EAAG,GAC3BnlE,EAAOqkE,EAAUc,GAAO,GAC5B,IAEa,MAAVT,GAA2B,MAAVA,GAA2B,MAAVA,GACtB,MAAT1kE,GAAyB,MAATA,GAAyB,MAATA,IAElC0kE,IAAU1kE,EAEb,MAAM,IAAIqiE,EAAa,wDASxB,GAPa,gBAAT8C,GAA2BD,IAC9BD,GAAqB,GAGtBF,GAAqB,IAAMI,EAC3BH,EAAoB,IAAMD,EAAoB,IAE1Cv+B,EAAO08B,EAAY8B,GACtBtxJ,EAAQwvJ,EAAW8B,QACb,GAAa,MAATtxJ,EAAe,CACzB,KAAMyxJ,KAAQzxJ,GAAQ,CACrB,IAAKqlJ,EACJ,MAAM,IAAIL,EAAW,sBAAwBv8I,EAAO,+CAErD,MACD,CACA,GAAIumJ,GAAUxqJ,EAAI,GAAM0H,EAAMxH,OAAQ,CACrC,IAAIoL,EAAOk/I,EAAMhvJ,EAAOyxJ,GACxBD,IAAU1hJ,EAUT9P,EADGwxJ,GAAS,QAAS1hJ,KAAU,kBAAmBA,EAAKwQ,KAC/CxQ,EAAKwQ,IAELtgB,EAAMyxJ,EAEhB,MACCD,EAAQ1+B,EAAO9yH,EAAOyxJ,GACtBzxJ,EAAQA,EAAMyxJ,GAGXD,IAAUD,IACb/B,EAAW8B,GAAqBtxJ,EAElC,CACD,CACA,OAAOA,CACR,C,gCChXAhD,EAAOC,QAAU4M,OAAOic,wB,qCCAxB,IAAIkpI,EAAQ,EAAQ,MAEpB,GAAIA,EACH,IACCA,EAAM,GAAI,SACX,CAAE,MAAOjkJ,GAERikJ,EAAQ,IACT,CAGDhyJ,EAAOC,QAAU+xJ,C,qCCZjB,IAAI0C,EAA+B,qBAAX96I,QAA0BA,OAC9C+6I,EAAgB,EAAQ,OAG5B30J,EAAOC,QAAU,WAChB,MAA0B,oBAAfy0J,IACW,oBAAX96I,SACsB,kBAAtB86I,EAAW,SACO,kBAAlB96I,OAAO,QAEX+6I,MACR,C,iCCTA30J,EAAOC,QAAU,WAChB,GAAsB,oBAAX2Z,QAAiE,oBAAjC/M,OAAOiP,sBAAwC,OAAO,EACjG,GAA+B,kBAApBlC,OAAOC,SAAyB,OAAO,EAGlD,IAAInG,EAAM,CAAC,EACPmV,EAAMjP,OAAO,QACbg7I,EAAS/nJ,OAAOgc,GACpB,GAAmB,kBAARA,EAAoB,OAAO,EAEtC,GAA4C,oBAAxChc,OAAO5G,UAAUc,SAASmE,KAAK2d,GAA8B,OAAO,EACxE,GAA+C,oBAA3Chc,OAAO5G,UAAUc,SAASmE,KAAK0pJ,GAAiC,OAAO,EAU3E,IAAIC,EAAS,GAEb,IAAK,IAAI5zI,KADTvN,EAAImV,GAAOgsI,EACGnhJ,EAAO,OAAO,EAC5B,GAA2B,oBAAhB7G,OAAOC,MAAmD,IAA5BD,OAAOC,KAAK4G,GAAKhM,OAAgB,OAAO,EAEjF,GAA0C,oBAA/BmF,OAAO6lF,qBAAiF,IAA3C7lF,OAAO6lF,oBAAoBh/E,GAAKhM,OAAgB,OAAO,EAE/G,IAAIotJ,EAAOjoJ,OAAOiP,sBAAsBpI,GACxC,GAAoB,IAAhBohJ,EAAKptJ,QAAgBotJ,EAAK,KAAOjsI,EAAO,OAAO,EAEnD,IAAKhc,OAAO5G,UAAU8V,qBAAqB7Q,KAAKwI,EAAKmV,GAAQ,OAAO,EAEpE,GAA+C,oBAApChc,OAAOic,yBAAyC,CAE1D,IAAIa,EAAgD9c,OAAOic,yBAAyBpV,EAAKmV,GACzF,GAAIc,EAAW3mB,QAAU6xJ,IAAoC,IAA1BlrI,EAAWZ,WAAuB,OAAO,CAC7E,CAEA,OAAO,CACR,C,oCC1CA,IAAI7d,EAAOsgB,SAASvlB,UAAUiF,KAC1B6pJ,EAAUloJ,OAAO5G,UAAU0N,eAC3BjO,EAAO,EAAQ,OAGnB1F,EAAOC,QAAUyF,EAAKwF,KAAKA,EAAM6pJ,E;;ACNjC90J,EAAQsE,KAAO,SAAUgK,EAAQkN,EAAQu5I,EAAMC,EAAM16B,GACnD,IAAIxsH,EAAG4L,EACHu7I,EAAiB,EAAT36B,EAAc06B,EAAO,EAC7BE,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACT7tJ,EAAIwtJ,EAAQz6B,EAAS,EAAK,EAC1B1jH,EAAIm+I,GAAQ,EAAI,EAChBp5I,EAAIrN,EAAOkN,EAASjU,GAOxB,IALAA,GAAKqP,EAEL9I,EAAI6N,GAAM,IAAOy5I,GAAU,EAC3Bz5I,KAAQy5I,EACRA,GAASH,EACFG,EAAQ,EAAGtnJ,EAAS,IAAJA,EAAWQ,EAAOkN,EAASjU,GAAIA,GAAKqP,EAAGw+I,GAAS,GAKvE,IAHA17I,EAAI5L,GAAM,IAAOsnJ,GAAU,EAC3BtnJ,KAAQsnJ,EACRA,GAASJ,EACFI,EAAQ,EAAG17I,EAAS,IAAJA,EAAWpL,EAAOkN,EAASjU,GAAIA,GAAKqP,EAAGw+I,GAAS,GAEvE,GAAU,IAANtnJ,EACFA,EAAI,EAAIqnJ,MACH,IAAIrnJ,IAAMonJ,EACf,OAAOx7I,EAAI29G,IAAsB56B,KAAd9gF,GAAK,EAAI,GAE5BjC,GAAQtE,KAAK86D,IAAI,EAAG8kF,GACpBlnJ,GAAQqnJ,CACV,CACA,OAAQx5I,GAAK,EAAI,GAAKjC,EAAItE,KAAK86D,IAAI,EAAGpiE,EAAIknJ,EAC5C,EAEAh1J,EAAQwP,MAAQ,SAAUlB,EAAQvL,EAAOyY,EAAQu5I,EAAMC,EAAM16B,GAC3D,IAAIxsH,EAAG4L,EAAGvR,EACN8sJ,EAAiB,EAAT36B,EAAc06B,EAAO,EAC7BE,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBG,EAAe,KAATL,EAAc5/I,KAAK86D,IAAI,GAAI,IAAM96D,KAAK86D,IAAI,GAAI,IAAM,EAC1D3oE,EAAIwtJ,EAAO,EAAKz6B,EAAS,EACzB1jH,EAAIm+I,EAAO,GAAK,EAChBp5I,EAAI5Y,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQqS,KAAK+F,IAAIpY,GAEbuzB,MAAMvzB,IAAUA,IAAU05F,KAC5B/iF,EAAI4c,MAAMvzB,GAAS,EAAI,EACvB+K,EAAIonJ,IAEJpnJ,EAAIsH,KAAKC,MAAMD,KAAK2D,IAAIhW,GAASqS,KAAKkgJ,KAClCvyJ,GAASoF,EAAIiN,KAAK86D,IAAI,GAAIpiE,IAAM,IAClCA,IACA3F,GAAK,GAGLpF,GADE+K,EAAIqnJ,GAAS,EACNE,EAAKltJ,EAELktJ,EAAKjgJ,KAAK86D,IAAI,EAAG,EAAIilF,GAE5BpyJ,EAAQoF,GAAK,IACf2F,IACA3F,GAAK,GAGH2F,EAAIqnJ,GAASD,GACfx7I,EAAI,EACJ5L,EAAIonJ,GACKpnJ,EAAIqnJ,GAAS,GACtBz7I,GAAM3W,EAAQoF,EAAK,GAAKiN,KAAK86D,IAAI,EAAG8kF,GACpClnJ,GAAQqnJ,IAERz7I,EAAI3W,EAAQqS,KAAK86D,IAAI,EAAGilF,EAAQ,GAAK//I,KAAK86D,IAAI,EAAG8kF,GACjDlnJ,EAAI,IAIDknJ,GAAQ,EAAG1mJ,EAAOkN,EAASjU,GAAS,IAAJmS,EAAUnS,GAAKqP,EAAG8C,GAAK,IAAKs7I,GAAQ,GAI3E,IAFAlnJ,EAAKA,GAAKknJ,EAAQt7I,EAClBu7I,GAAQD,EACDC,EAAO,EAAG3mJ,EAAOkN,EAASjU,GAAS,IAAJuG,EAAUvG,GAAKqP,EAAG9I,GAAK,IAAKmnJ,GAAQ,GAE1E3mJ,EAAOkN,EAASjU,EAAIqP,IAAU,IAAJ+E,CAC5B,C,oBCpFA,IAAI7U,EAAW,CAAC,EAAEA,SAElB/G,EAAOC,QAAUwJ,MAAM4C,SAAW,SAAUgG,GAC1C,MAA6B,kBAAtBtL,EAASmE,KAAKmH,EACvB,C,wBCJArS,EAAOC,QAAU4qB,KAAKq5B,QAAUr5B,KAAKq5B,MAAQ,qBAA8B,EAAQ,O,wBCAnF;;;;;;;IAOE,SAAU4kG,GACX,IAAI0M,EASJ,GAPC,IAAc,oEACdA,GAA2B,EAG3Bx1J,EAAOC,QAAU6oJ,IACjB0M,GAA2B,GAEvBA,EAA0B,CAC9B,IAAIC,EAAa9jJ,OAAOitC,QACpB74B,EAAMpU,OAAOitC,QAAUkqG,IAC3B/iI,EAAI2vI,WAAa,WAEhB,OADA/jJ,OAAOitC,QAAU62G,EACV1vI,CACR,CACD,CACD,EAlBC,EAkBC,WACD,SAAS7f,IAGR,IAFA,IAAIsB,EAAI,EACJmL,EAAS,CAAC,EACPnL,EAAIuH,UAAUrH,OAAQF,IAAK,CACjC,IAAI8iD,EAAav7C,UAAWvH,GAC5B,IAAK,IAAI5C,KAAO0lD,EACf33C,EAAO/N,GAAO0lD,EAAW1lD,EAE3B,CACA,OAAO+N,CACR,CAEA,SAASq6E,EAAQpxE,GAChB,OAAOA,EAAE1R,QAAQ,mBAAoBmG,mBACtC,CAEA,SAAS8R,EAAMwzI,GACd,SAAS5vI,IAAO,CAEhB,SAASxB,EAAK3f,EAAK5B,EAAOsnD,GACzB,GAAwB,qBAAbp6C,SAAX,CAIAo6C,EAAapkD,EAAO,CACnByJ,KAAM,KACJoW,EAAIrlB,SAAU4pD,GAEiB,kBAAvBA,EAAW56C,UACrB46C,EAAW56C,QAAU,IAAIM,KAAkB,EAAb,IAAIA,KAAkC,MAArBs6C,EAAW56C,UAI3D46C,EAAW56C,QAAU46C,EAAW56C,QAAU46C,EAAW56C,QAAQk5I,cAAgB,GAE7E,IACC,IAAIj2I,EAAS/E,KAAKI,UAAUhL,GACxB,UAAUwN,KAAKmC,KAClB3P,EAAQ2P,EAEV,CAAE,MAAO5E,GAAI,CAEb/K,EAAQ2yJ,EAAUlmJ,MACjBkmJ,EAAUlmJ,MAAMzM,EAAO4B,GACvB1C,mBAAmB4wB,OAAO9vB,IACxBkH,QAAQ,4DAA6DmG,oBAExEzL,EAAM1C,mBAAmB4wB,OAAOluB,IAC9BsF,QAAQ,2BAA4BmG,oBACpCnG,QAAQ,UAAWogJ,QAErB,IAAIsL,EAAwB,GAC5B,IAAK,IAAI1lB,KAAiB5lF,EACpBA,EAAW4lF,KAGhB0lB,GAAyB,KAAO1lB,GACE,IAA9B5lF,EAAW4lF,KAWf0lB,GAAyB,IAAMtrG,EAAW4lF,GAAej+H,MAAM,KAAK,KAGrE,OAAQ/B,SAASJ,OAASlL,EAAM,IAAM5B,EAAQ4yJ,CAjD9C,CAkDD,CAEA,SAAStyI,EAAK1e,EAAKu/C,GAClB,GAAwB,qBAAbj0C,SAAX,CAUA,IANA,IAAI2lJ,EAAM,CAAC,EAGPz1J,EAAU8P,SAASJ,OAASI,SAASJ,OAAOmC,MAAM,MAAQ,GAC1DzK,EAAI,EAEDA,EAAIpH,EAAQsH,OAAQF,IAAK,CAC/B,IAAI0H,EAAQ9O,EAAQoH,GAAGyK,MAAM,KACzBnC,EAASZ,EAAM5C,MAAM,GAAGgD,KAAK,KAE5B60C,GAA6B,MAArBr0C,EAAO4B,OAAO,KAC1B5B,EAASA,EAAOxD,MAAM,GAAI,IAG3B,IACC,IAAIb,EAAOuhF,EAAO99E,EAAM,IAIxB,GAHAY,GAAU6lJ,EAAUpxJ,MAAQoxJ,GAAW7lJ,EAAQrE,IAC9CuhF,EAAOl9E,GAEJq0C,EACH,IACCr0C,EAASlC,KAAKC,MAAMiC,EACrB,CAAE,MAAO/B,GAAI,CAKd,GAFA8nJ,EAAIpqJ,GAAQqE,EAERlL,IAAQ6G,EACX,KAEF,CAAE,MAAOsC,GAAI,CACd,CAEA,OAAOnJ,EAAMixJ,EAAIjxJ,GAAOixJ,CAnCxB,CAoCD,CAmBA,OAjBA9vI,EAAIxB,IAAMA,EACVwB,EAAIzC,IAAM,SAAU1e,GACnB,OAAO0e,EAAI1e,GAAK,EACjB,EACAmhB,EAAI+vI,QAAU,SAAUlxJ,GACvB,OAAO0e,EAAI1e,GAAK,EACjB,EACAmhB,EAAIzV,OAAS,SAAU1L,EAAK0lD,GAC3B/lC,EAAI3f,EAAK,GAAIsB,EAAOokD,EAAY,CAC/B56C,SAAU,IAEZ,EAEAqW,EAAIrlB,SAAW,CAAC,EAEhBqlB,EAAIgwI,cAAgB5zI,EAEb4D,CACR,CAEA,OAAO5D,GAAK,WAAa,GAC1B,G,iCC/JAniB,EAAOC,QAAUoV,KAAK+F,G,iCCAtBpb,EAAOC,QAAUoV,KAAKC,K,gCCAtBtV,EAAOC,QAAUoV,KAAK8S,G,iCCAtBnoB,EAAOC,QAAUoV,KAAKke,G,iCCAtBvzB,EAAOC,QAAUoV,KAAK86D,G,wBCHtB,IAAI6lF,EAAwB,oBAAR7qI,KAAsBA,IAAIllB,UAC1CgwJ,EAAoBppJ,OAAOic,0BAA4BktI,EAASnpJ,OAAOic,yBAAyBqC,IAAIllB,UAAW,QAAU,KACzHiwJ,EAAUF,GAAUC,GAAsD,oBAA1BA,EAAkB3yI,IAAqB2yI,EAAkB3yI,IAAM,KAC/G6yI,EAAaH,GAAU7qI,IAAIllB,UAAUvB,QACrC0xJ,EAAwB,oBAARrnH,KAAsBA,IAAI9oC,UAC1CowJ,EAAoBxpJ,OAAOic,0BAA4BstI,EAASvpJ,OAAOic,yBAAyBimB,IAAI9oC,UAAW,QAAU,KACzHqwJ,EAAUF,GAAUC,GAAsD,oBAA1BA,EAAkB/yI,IAAqB+yI,EAAkB/yI,IAAM,KAC/GizI,EAAaH,GAAUrnH,IAAI9oC,UAAUvB,QACrC8xJ,EAAgC,oBAAZx0I,SAA0BA,QAAQ/b,UACtDwwJ,EAAaD,EAAax0I,QAAQ/b,UAAUke,IAAM,KAClDuyI,EAAgC,oBAAZhkD,SAA0BA,QAAQzsG,UACtD0wJ,EAAaD,EAAahkD,QAAQzsG,UAAUke,IAAM,KAClDyyI,EAAgC,oBAAZzD,SAA0BA,QAAQltJ,UACtD4wJ,EAAeD,EAAazD,QAAQltJ,UAAU6wJ,MAAQ,KACtDC,EAAiBz7I,QAAQrV,UAAUosI,QACnChc,EAAiBxpH,OAAO5G,UAAUc,SAClCiwJ,EAAmBxrI,SAASvlB,UAAUc,SACtCkwJ,EAASnkI,OAAO7sB,UAAUkK,MAC1B+mJ,EAASpkI,OAAO7sB,UAAUqG,MAC1BonJ,EAAW5gI,OAAO7sB,UAAUiE,QAC5BitJ,EAAerkI,OAAO7sB,UAAU7C,YAChCg0J,EAAetkI,OAAO7sB,UAAUpB,YAChCwyJ,EAAQjnJ,OAAOnK,UAAUuK,KACzBgjJ,EAAU/pJ,MAAMxD,UAAU0D,OAC1B2tJ,EAAQ7tJ,MAAMxD,UAAUqJ,KACxBioJ,EAAY9tJ,MAAMxD,UAAUqG,MAC5BkrJ,EAASniJ,KAAKC,MACdmiJ,EAAkC,oBAAX9E,OAAwBA,OAAO1sJ,UAAUosI,QAAU,KAC1EqlB,EAAO7qJ,OAAOiP,sBACd67I,EAAgC,oBAAX/9I,QAAoD,kBAApBA,OAAOC,SAAwBD,OAAO3T,UAAUc,SAAW,KAChH6wJ,EAAsC,oBAAXh+I,QAAoD,kBAApBA,OAAOC,SAElEwM,EAAgC,oBAAXzM,QAAyBA,OAAOyM,qBAAuBzM,OAAOyM,cAAgBuxI,GAA+B,UAChIh+I,OAAOyM,YACP,KACFwxI,EAAehrJ,OAAO5G,UAAU8V,qBAEhC+7I,GAA0B,oBAAZptI,QAAyBA,QAAQrX,eAAiBxG,OAAOwG,kBACvE,GAAG0D,YAActN,MAAMxD,UACjB,SAAU8xJ,GACR,OAAOA,EAAEhhJ,SACb,EACE,MAGV,SAASihJ,EAAoBhqE,EAAKx6E,GAC9B,GACIw6E,IAAQ0O,KACL1O,KAAS0O,KACT1O,IAAQA,GACPA,GAAOA,GAAO,KAAQA,EAAM,KAC7BqpE,EAAMnsJ,KAAK,IAAKsI,GAEnB,OAAOA,EAEX,IAAIykJ,EAAW,mCACf,GAAmB,kBAARjqE,EAAkB,CACzB,IAAIkqE,EAAMlqE,EAAM,GAAKwpE,GAAQxpE,GAAOwpE,EAAOxpE,GAC3C,GAAIkqE,IAAQlqE,EAAK,CACb,IAAImqE,EAASrlI,OAAOolI,GAChBzP,EAAMyO,EAAOhsJ,KAAKsI,EAAK2kJ,EAAOzwJ,OAAS,GAC3C,OAAOgsJ,EAASxoJ,KAAKitJ,EAAQF,EAAU,OAAS,IAAMvE,EAASxoJ,KAAKwoJ,EAASxoJ,KAAKu9I,EAAK,cAAe,OAAQ,KAAM,GACxH,CACJ,CACA,OAAOiL,EAASxoJ,KAAKsI,EAAKykJ,EAAU,MACxC,CAEA,IAAIG,EAAc,EAAQ,OACtBC,EAAgBD,EAAY3yI,OAC5B6yI,EAAgBniC,EAASkiC,GAAiBA,EAAgB,KAE1DE,EAAS,CACTxhJ,UAAW,KACX,OAAU,IACVyhJ,OAAQ,KAERC,EAAW,CACX1hJ,UAAW,KACX,OAAU,WACVyhJ,OAAQ,YAwMZ,SAASE,EAAW98I,EAAG+8I,EAAc5lJ,GACjC,IAAIwoG,EAAQxoG,EAAK6lJ,YAAcD,EAC3BE,EAAYN,EAAOh9C,GACvB,OAAOs9C,EAAYj9I,EAAIi9I,CAC3B,CAEA,SAAS5E,EAAMr4I,GACX,OAAO83I,EAASxoJ,KAAK4nB,OAAOlX,GAAI,KAAM,SAC1C,CAEA,SAASvP,EAAQqH,GAAO,MAAsB,mBAAfg9I,GAAMh9I,MAA+B2S,KAAgC,kBAAR3S,GAAoB2S,KAAe3S,GAAO,CACtI,SAAStE,EAAOsE,GAAO,MAAsB,kBAAfg9I,GAAMh9I,MAA8B2S,KAAgC,kBAAR3S,GAAoB2S,KAAe3S,GAAO,CACpI,SAASwiH,EAASxiH,GAAO,MAAsB,oBAAfg9I,GAAMh9I,MAAgC2S,KAAgC,kBAAR3S,GAAoB2S,KAAe3S,GAAO,CACxI,SAASolJ,EAAQplJ,GAAO,MAAsB,mBAAfg9I,GAAMh9I,MAA+B2S,KAAgC,kBAAR3S,GAAoB2S,KAAe3S,GAAO,CACtI,SAAS/F,EAAS+F,GAAO,MAAsB,oBAAfg9I,GAAMh9I,MAAgC2S,KAAgC,kBAAR3S,GAAoB2S,KAAe3S,GAAO,CACxI,SAAS3D,EAAS2D,GAAO,MAAsB,oBAAfg9I,GAAMh9I,MAAgC2S,KAAgC,kBAAR3S,GAAoB2S,KAAe3S,GAAO,CACxI,SAASw6G,EAAUx6G,GAAO,MAAsB,qBAAfg9I,GAAMh9I,MAAiC2S,KAAgC,kBAAR3S,GAAoB2S,KAAe3S,GAAO,CAG1I,SAASyiH,EAASziH,GACd,GAAIkkJ,EACA,OAAOlkJ,GAAsB,kBAARA,GAAoBA,aAAekG,OAE5D,GAAmB,kBAARlG,EACP,OAAO,EAEX,IAAKA,GAAsB,kBAARA,IAAqBikJ,EACpC,OAAO,EAEX,IAEI,OADAA,EAAYzsJ,KAAKwI,IACV,CACX,CAAE,MAAO3F,GAAI,CACb,OAAO,CACX,CAEA,SAASgrJ,EAASrlJ,GACd,IAAKA,GAAsB,kBAARA,IAAqB+jJ,EACpC,OAAO,EAEX,IAEI,OADAA,EAAcvsJ,KAAKwI,IACZ,CACX,CAAE,MAAO3F,GAAI,CACb,OAAO,CACX,CAlPA/N,EAAOC,QAAU,SAAS+4J,EAAStlJ,EAAKrJ,EAAS4uJ,EAAO38D,GACpD,IAAIvpF,EAAO1I,GAAW,CAAC,EAEvB,GAAI8Z,GAAIpR,EAAM,gBAAkBoR,GAAIo0I,EAAQxlJ,EAAK6lJ,YAC7C,MAAM,IAAI1xJ,UAAU,oDAExB,GACIid,GAAIpR,EAAM,qBAAuD,kBAAzBA,EAAKmmJ,gBACvCnmJ,EAAKmmJ,gBAAkB,GAAKnmJ,EAAKmmJ,kBAAoBx8D,IAC5B,OAAzB3pF,EAAKmmJ,iBAGX,MAAM,IAAIhyJ,UAAU,0FAExB,IAAIiyJ,GAAgBh1I,GAAIpR,EAAM,kBAAmBA,EAAKomJ,cACtD,GAA6B,mBAAlBA,GAAiD,WAAlBA,EACtC,MAAM,IAAIjyJ,UAAU,iFAGxB,GACIid,GAAIpR,EAAM,WACS,OAAhBA,EAAKqiB,QACW,OAAhBriB,EAAKqiB,UACHsrB,SAAS3tC,EAAKqiB,OAAQ,MAAQriB,EAAKqiB,QAAUriB,EAAKqiB,OAAS,GAEhE,MAAM,IAAIluB,UAAU,4DAExB,GAAIid,GAAIpR,EAAM,qBAAwD,mBAA1BA,EAAKqmJ,iBAC7C,MAAM,IAAIlyJ,UAAU,qEAExB,IAAIkyJ,EAAmBrmJ,EAAKqmJ,iBAE5B,GAAmB,qBAAR1lJ,EACP,MAAO,YAEX,GAAY,OAARA,EACA,MAAO,OAEX,GAAmB,mBAARA,EACP,OAAOA,EAAM,OAAS,QAG1B,GAAmB,kBAARA,EACP,OAAO2lJ,GAAc3lJ,EAAKX,GAE9B,GAAmB,kBAARW,EAAkB,CACzB,GAAY,IAARA,EACA,OAAOgpF,IAAWhpF,EAAM,EAAI,IAAM,KAEtC,IAAIF,EAAMsf,OAAOpf,GACjB,OAAO0lJ,EAAmBpB,EAAoBtkJ,EAAKF,GAAOA,CAC9D,CACA,GAAmB,kBAARE,EAAkB,CACzB,IAAI4lJ,EAAYxmI,OAAOpf,GAAO,IAC9B,OAAO0lJ,EAAmBpB,EAAoBtkJ,EAAK4lJ,GAAaA,CACpE,CAEA,IAAIC,EAAiC,qBAAfxmJ,EAAKkmJ,MAAwB,EAAIlmJ,EAAKkmJ,MAE5D,GADqB,qBAAVA,IAAyBA,EAAQ,GACxCA,GAASM,GAAYA,EAAW,GAAoB,kBAAR7lJ,EAC5C,OAAOrH,EAAQqH,GAAO,UAAY,WAGtC,IAAI0hB,EAASokI,GAAUzmJ,EAAMkmJ,GAE7B,GAAoB,qBAAT38D,EACPA,EAAO,QACJ,GAAI34F,GAAQ24F,EAAM5oF,IAAQ,EAC7B,MAAO,aAGX,SAASid,EAAQ3tB,EAAOqkC,EAAMoyH,GAK1B,GAJIpyH,IACAi1D,EAAOi7D,EAAUrsJ,KAAKoxF,GACtBA,EAAKt0F,KAAKq/B,IAEVoyH,EAAU,CACV,IAAIC,EAAU,CACVT,MAAOlmJ,EAAKkmJ,OAKhB,OAHI90I,GAAIpR,EAAM,gBACV2mJ,EAAQd,WAAa7lJ,EAAK6lJ,YAEvBI,EAASh2J,EAAO02J,EAAST,EAAQ,EAAG38D,EAC/C,CACA,OAAO08D,EAASh2J,EAAO+P,EAAMkmJ,EAAQ,EAAG38D,EAC5C,CAEA,GAAmB,oBAAR5oF,IAAuBwiH,EAASxiH,GAAM,CAC7C,IAAIjI,EAAOkuJ,GAAOjmJ,GACd5G,EAAO8sJ,GAAWlmJ,EAAKid,GAC3B,MAAO,aAAellB,EAAO,KAAOA,EAAO,gBAAkB,KAAOqB,EAAKpF,OAAS,EAAI,MAAQ4vJ,EAAMpsJ,KAAK4B,EAAM,MAAQ,KAAO,GAClI,CACA,GAAIqpH,EAASziH,GAAM,CACf,IAAImmJ,EAAYjC,EAAoBlE,EAASxoJ,KAAK4nB,OAAOpf,GAAM,yBAA0B,MAAQikJ,EAAYzsJ,KAAKwI,GAClH,MAAsB,kBAARA,GAAqBkkJ,EAA2CiC,EAAvBC,GAAUD,EACrE,CACA,GAAIE,GAAUrmJ,GAAM,CAGhB,IAFA,IAAIkI,EAAI,IAAMw7I,EAAalsJ,KAAK4nB,OAAOpf,EAAIsmJ,WACvCvnG,EAAQ/+C,EAAI42C,YAAc,GACrB9iD,EAAI,EAAGA,EAAIirD,EAAM/qD,OAAQF,IAC9BoU,GAAK,IAAM62C,EAAMjrD,GAAGiE,KAAO,IAAMitJ,EAAWzE,EAAMxhG,EAAMjrD,GAAGxE,OAAQ,SAAU+P,GAKjF,OAHA6I,GAAK,IACDlI,EAAIumJ,YAAcvmJ,EAAIumJ,WAAWvyJ,SAAUkU,GAAK,OACpDA,GAAK,KAAOw7I,EAAalsJ,KAAK4nB,OAAOpf,EAAIsmJ,WAAa,IAC/Cp+I,CACX,CACA,GAAIvP,EAAQqH,GAAM,CACd,GAAmB,IAAfA,EAAIhM,OAAgB,MAAO,KAC/B,IAAIwyJ,EAAKN,GAAWlmJ,EAAKid,GACzB,OAAIyE,IAAW+kI,GAAiBD,GACrB,IAAME,GAAaF,EAAI9kI,GAAU,IAErC,KAAOkiI,EAAMpsJ,KAAKgvJ,EAAI,MAAQ,IACzC,CACA,GAAIpB,EAAQplJ,GAAM,CACd,IAAIxE,EAAQ0qJ,GAAWlmJ,EAAKid,GAC5B,MAAM,UAAW5lB,MAAM9E,aAAc,UAAWyN,IAAQmkJ,EAAa3sJ,KAAKwI,EAAK,SAG1D,IAAjBxE,EAAMxH,OAAuB,IAAMorB,OAAOpf,GAAO,IAC9C,MAAQof,OAAOpf,GAAO,KAAO4jJ,EAAMpsJ,KAAKgE,EAAO,MAAQ,KAHnD,MAAQ4jB,OAAOpf,GAAO,KAAO4jJ,EAAMpsJ,KAAKsoJ,EAAQtoJ,KAAK,YAAcylB,EAAQjd,EAAI2mJ,OAAQnrJ,GAAQ,MAAQ,IAItH,CACA,GAAmB,kBAARwE,GAAoBylJ,EAAe,CAC1C,GAAIb,GAA+C,oBAAvB5kJ,EAAI4kJ,IAAiCF,EAC7D,OAAOA,EAAY1kJ,EAAK,CAAEulJ,MAAOM,EAAWN,IACzC,GAAsB,WAAlBE,GAAqD,oBAAhBzlJ,EAAIid,QAChD,OAAOjd,EAAIid,SAEnB,CACA,GAAIolG,GAAMriH,GAAM,CACZ,IAAI4mJ,GAAW,GAMf,OALInE,GACAA,EAAWjrJ,KAAKwI,GAAK,SAAU1Q,EAAO4B,GAClC01J,GAAStyJ,KAAK2oB,EAAQ/rB,EAAK8O,GAAK,GAAQ,OAASid,EAAQ3tB,EAAO0Q,GACpE,IAEG6mJ,GAAa,MAAOrE,EAAQhrJ,KAAKwI,GAAM4mJ,GAAUllI,EAC5D,CACA,GAAI6gG,GAAMviH,GAAM,CACZ,IAAI8mJ,GAAW,GAMf,OALIjE,GACAA,EAAWrrJ,KAAKwI,GAAK,SAAU1Q,GAC3Bw3J,GAASxyJ,KAAK2oB,EAAQ3tB,EAAO0Q,GACjC,IAEG6mJ,GAAa,MAAOjE,EAAQprJ,KAAKwI,GAAM8mJ,GAAUplI,EAC5D,CACA,GAAIqlI,GAAU/mJ,GACV,OAAOgnJ,GAAiB,WAE5B,GAAIC,GAAUjnJ,GACV,OAAOgnJ,GAAiB,WAE5B,GAAIE,GAAUlnJ,GACV,OAAOgnJ,GAAiB,WAE5B,GAAI3qJ,EAAS2D,GACT,OAAOomJ,GAAUnpI,EAAQzb,OAAOxB,KAEpC,GAAIqlJ,EAASrlJ,GACT,OAAOomJ,GAAUnpI,EAAQ8mI,EAAcvsJ,KAAKwI,KAEhD,GAAIw6G,EAAUx6G,GACV,OAAOomJ,GAAU/C,EAAe7rJ,KAAKwI,IAEzC,GAAI/F,EAAS+F,GACT,OAAOomJ,GAAUnpI,EAAQmC,OAAOpf,KAIpC,GAAsB,qBAAX/B,QAA0B+B,IAAQ/B,OACzC,MAAO,sBAEX,GAC2B,qBAAf8lH,YAA8B/jH,IAAQ+jH,YACxB,qBAAX,EAAAz2G,GAA0BtN,IAAQ,EAAAsN,EAE7C,MAAO,0BAEX,IAAK5R,EAAOsE,KAASwiH,EAASxiH,GAAM,CAChC,IAAI4qH,GAAKs7B,GAAWlmJ,EAAKid,GACrBvkB,GAAgB0rJ,EAAMA,EAAIpkJ,KAAS7G,OAAO5G,UAAYyN,aAAe7G,QAAU6G,EAAIR,cAAgBrG,OACnGguJ,GAAWnnJ,aAAe7G,OAAS,GAAK,iBACxCiuJ,IAAa1uJ,IAAiBia,GAAexZ,OAAO6G,KAASA,GAAO2S,KAAe3S,EAAMwjJ,EAAOhsJ,KAAKwlJ,GAAMh9I,GAAM,GAAI,GAAKmnJ,GAAW,SAAW,GAChJE,GAAiB3uJ,IAA4C,oBAApBsH,EAAIR,YAA6B,GAAKQ,EAAIR,YAAYzH,KAAOiI,EAAIR,YAAYzH,KAAO,IAAM,GACnIgoB,GAAMsnI,IAAkBD,IAAaD,GAAW,IAAMvD,EAAMpsJ,KAAKsoJ,EAAQtoJ,KAAK,GAAI4vJ,IAAa,GAAID,IAAY,IAAK,MAAQ,KAAO,IACvI,OAAkB,IAAdv8B,GAAG52H,OAAuB+rB,GAAM,KAChC2B,EACO3B,GAAM,IAAM2mI,GAAa97B,GAAIlpG,GAAU,IAE3C3B,GAAM,KAAO6jI,EAAMpsJ,KAAKozH,GAAI,MAAQ,IAC/C,CACA,OAAOxrG,OAAOpf,EAClB,EAiDA,IAAIoiH,GAASjpH,OAAO5G,UAAU0N,gBAAkB,SAAU/O,GAAO,OAAOA,KAAOkC,IAAM,EACrF,SAASqd,GAAIzQ,EAAK9O,GACd,OAAOkxH,GAAO5qH,KAAKwI,EAAK9O,EAC5B,CAEA,SAAS8rJ,GAAMh9I,GACX,OAAO2iH,EAAenrH,KAAKwI,EAC/B,CAEA,SAASimJ,GAAO74I,GACZ,GAAIA,EAAErV,KAAQ,OAAOqV,EAAErV,KACvB,IAAIkO,EAAIs9I,EAAO/rJ,KAAK8rJ,EAAiB9rJ,KAAK4V,GAAI,wBAC9C,OAAInH,EAAYA,EAAE,GACX,IACX,CAEA,SAAShW,GAAQu2J,EAAIn0H,GACjB,GAAIm0H,EAAGv2J,QAAW,OAAOu2J,EAAGv2J,QAAQoiC,GACpC,IAAK,IAAIv+B,EAAI,EAAGC,EAAIyyJ,EAAGxyJ,OAAQF,EAAIC,EAAGD,IAClC,GAAI0yJ,EAAG1yJ,KAAOu+B,EAAK,OAAOv+B,EAE9B,OAAQ,CACZ,CAEA,SAASuuH,GAAMhwF,GACX,IAAKmwH,IAAYnwH,GAAkB,kBAANA,EACzB,OAAO,EAEX,IACImwH,EAAQhrJ,KAAK66B,GACb,IACIuwH,EAAQprJ,KAAK66B,EACjB,CAAE,MAAOnqB,GACL,OAAO,CACX,CACA,OAAOmqB,aAAa5a,GACxB,CAAE,MAAOpd,GAAI,CACb,OAAO,CACX,CAEA,SAAS0sJ,GAAU10H,GACf,IAAK0wH,IAAe1wH,GAAkB,kBAANA,EAC5B,OAAO,EAEX,IACI0wH,EAAWvrJ,KAAK66B,EAAG0wH,GACnB,IACIE,EAAWzrJ,KAAK66B,EAAG4wH,EACvB,CAAE,MAAO/6I,GACL,OAAO,CACX,CACA,OAAOmqB,aAAa/jB,OACxB,CAAE,MAAOjU,GAAI,CACb,OAAO,CACX,CAEA,SAAS6sJ,GAAU70H,GACf,IAAK8wH,IAAiB9wH,GAAkB,kBAANA,EAC9B,OAAO,EAEX,IAEI,OADA8wH,EAAa3rJ,KAAK66B,IACX,CACX,CAAE,MAAOh4B,GAAI,CACb,OAAO,CACX,CAEA,SAASkoH,GAAMlwF,GACX,IAAKuwH,IAAYvwH,GAAkB,kBAANA,EACzB,OAAO,EAEX,IACIuwH,EAAQprJ,KAAK66B,GACb,IACImwH,EAAQhrJ,KAAK66B,EACjB,CAAE,MAAOpsB,GACL,OAAO,CACX,CACA,OAAOosB,aAAagJ,GACxB,CAAE,MAAOhhC,GAAI,CACb,OAAO,CACX,CAEA,SAAS4sJ,GAAU50H,GACf,IAAK4wH,IAAe5wH,GAAkB,kBAANA,EAC5B,OAAO,EAEX,IACI4wH,EAAWzrJ,KAAK66B,EAAG4wH,GACnB,IACIF,EAAWvrJ,KAAK66B,EAAG0wH,EACvB,CAAE,MAAO76I,GACL,OAAO,CACX,CACA,OAAOmqB,aAAa2sE,OACxB,CAAE,MAAO3kG,GAAI,CACb,OAAO,CACX,CAEA,SAASgsJ,GAAUh0H,GACf,SAAKA,GAAkB,kBAANA,KACU,qBAAhB8pF,aAA+B9pF,aAAa8pF,aAG1B,kBAAf9pF,EAAEi0H,UAAmD,oBAAnBj0H,EAAEsoF,aACtD,CAEA,SAASgrC,GAAc7lJ,EAAKT,GACxB,GAAIS,EAAI9L,OAASqL,EAAKmmJ,gBAAiB,CACnC,IAAI1lI,EAAYhgB,EAAI9L,OAASqL,EAAKmmJ,gBAC9BniF,EAAU,OAASvjD,EAAY,mBAAqBA,EAAY,EAAI,IAAM,IAC9E,OAAO6lI,GAAcnC,EAAOhsJ,KAAKsI,EAAK,EAAGT,EAAKmmJ,iBAAkBnmJ,GAAQgkE,CAC5E,CACA,IAAIikF,EAAUvC,EAAS1lJ,EAAK6lJ,YAAc,UAC1CoC,EAAQzkB,UAAY,EAEpB,IAAI36H,EAAI83I,EAASxoJ,KAAKwoJ,EAASxoJ,KAAKsI,EAAKwnJ,EAAS,QAAS,eAAgBC,IAC3E,OAAOvC,EAAW98I,EAAG,SAAU7I,EACnC,CAEA,SAASkoJ,GAAQ7yJ,GACb,IAAIsR,EAAItR,EAAE6L,WAAW,GACjB8xB,EAAI,CACJ,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,GAAI,KACNrsB,GACF,OAAIqsB,EAAY,KAAOA,EAChB,OAASrsB,EAAI,GAAO,IAAM,IAAMy9I,EAAajsJ,KAAKwO,EAAE3S,SAAS,IACxE,CAEA,SAAS+yJ,GAAUtmJ,GACf,MAAO,UAAYA,EAAM,GAC7B,CAEA,SAASknJ,GAAiBr1J,GACtB,OAAOA,EAAO,QAClB,CAEA,SAASk1J,GAAal1J,EAAM4S,EAAMu3B,EAASpa,GACvC,IAAI8lI,EAAgB9lI,EAASglI,GAAa5qH,EAASpa,GAAUkiI,EAAMpsJ,KAAKskC,EAAS,MACjF,OAAOnqC,EAAO,KAAO4S,EAAO,MAAQijJ,EAAgB,GACxD,CAEA,SAASf,GAAiBD,GACtB,IAAK,IAAI1yJ,EAAI,EAAGA,EAAI0yJ,EAAGxyJ,OAAQF,IAC3B,GAAI7D,GAAQu2J,EAAG1yJ,GAAI,OAAS,EACxB,OAAO,EAGf,OAAO,CACX,CAEA,SAASgyJ,GAAUzmJ,EAAMkmJ,GACrB,IAAIkC,EACJ,GAAoB,OAAhBpoJ,EAAKqiB,OACL+lI,EAAa,SACV,MAA2B,kBAAhBpoJ,EAAKqiB,QAAuBriB,EAAKqiB,OAAS,GAGxD,OAAO,KAFP+lI,EAAa7D,EAAMpsJ,KAAKzB,MAAMsJ,EAAKqiB,OAAS,GAAI,IAGpD,CACA,MAAO,CACHs7E,KAAMyqD,EACNhqI,KAAMmmI,EAAMpsJ,KAAKzB,MAAMwvJ,EAAQ,GAAIkC,GAE3C,CAEA,SAASf,GAAaF,EAAI9kI,GACtB,GAAkB,IAAd8kI,EAAGxyJ,OAAgB,MAAO,GAC9B,IAAI0zJ,EAAa,KAAOhmI,EAAOjE,KAAOiE,EAAOs7E,KAC7C,OAAO0qD,EAAa9D,EAAMpsJ,KAAKgvJ,EAAI,IAAMkB,GAAc,KAAOhmI,EAAOjE,IACzE,CAEA,SAASyoI,GAAWlmJ,EAAKid,GACrB,IAAI0qI,EAAQhvJ,EAAQqH,GAChBwmJ,EAAK,GACT,GAAImB,EAAO,CACPnB,EAAGxyJ,OAASgM,EAAIhM,OAChB,IAAK,IAAIF,EAAI,EAAGA,EAAIkM,EAAIhM,OAAQF,IAC5B0yJ,EAAG1yJ,GAAK2c,GAAIzQ,EAAKlM,GAAKmpB,EAAQjd,EAAIlM,GAAIkM,GAAO,EAErD,CACA,IACI4nJ,EADAxG,EAAuB,oBAAT4C,EAAsBA,EAAKhkJ,GAAO,GAEpD,GAAIkkJ,EAAmB,CACnB0D,EAAS,CAAC,EACV,IAAK,IAAIn9I,EAAI,EAAGA,EAAI22I,EAAKptJ,OAAQyW,IAC7Bm9I,EAAO,IAAMxG,EAAK32I,IAAM22I,EAAK32I,EAErC,CAEA,IAAK,IAAIvZ,KAAO8O,EACPyQ,GAAIzQ,EAAK9O,KACVy2J,GAASvoI,OAAO5d,OAAOtQ,MAAUA,GAAOA,EAAM8O,EAAIhM,QAClDkwJ,GAAqB0D,EAAO,IAAM12J,aAAgBgV,SAG3Cy9I,EAAMnsJ,KAAK,SAAUtG,GAC5Bs1J,EAAGlyJ,KAAK2oB,EAAQ/rB,EAAK8O,GAAO,KAAOid,EAAQjd,EAAI9O,GAAM8O,IAErDwmJ,EAAGlyJ,KAAKpD,EAAM,KAAO+rB,EAAQjd,EAAI9O,GAAM8O,MAG/C,GAAoB,oBAATgkJ,EACP,IAAK,IAAI/qF,EAAI,EAAGA,EAAImoF,EAAKptJ,OAAQilE,IACzBkrF,EAAa3sJ,KAAKwI,EAAKohJ,EAAKnoF,KAC5ButF,EAAGlyJ,KAAK,IAAM2oB,EAAQmkI,EAAKnoF,IAAM,MAAQh8C,EAAQjd,EAAIohJ,EAAKnoF,IAAKj5D,IAI3E,OAAOwmJ,CACX,C,yBCzcA,SAAwB54H,EAAMwnH,GAE5B9oJ,EAAOC,QAAU6oJ,GAWlB,EAbD,CAaGhiJ,GAAM,WAGR,IAAIy0J,EAAW,SAAW3mG,GAI1B,IAAIhiD,EAAU,yBAKV+sC,EAAeiV,EAAOjV,cAAgB,WACzC,IAAIz+C,EAAO,CAAC,EAEZ,MAAO,CACNyU,QAAS,SAAU/Q,EAAKgT,GAAQ1W,EAAK0D,GAAOgT,CAAM,EAClDlC,QAAS,SAAU9Q,GAAO,OAAO1D,EAAK0D,EAAM,EAC5CgR,WAAY,SAAUhR,UAAc1D,EAAK0D,EAAM,EAEhD,CARyC,GAerC42J,EAAe,CAClBC,QAAS,EACTC,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,OAAQ,EACRC,QAAS,EACTC,UAAW,EACXC,OAAQ,EACRC,YAAa,GACbC,SAAU,GACVC,QAAS,GACTC,SAAU,GACVC,WAAY,IAgBTC,EAAW,SAAS7oJ,EAAK5G,GAC5B,IAAK,IAAIlI,KAAO8O,EACf,GAAIA,EAAIC,eAAe/O,GAAM,CAC5B,IAAIkI,EAAK6G,eAAe/O,GAGjB,CACN,IAAI43J,EAAW,qBAAuB53J,EAAM,0BAC5C,IAAK,IAAI63J,KAAY3vJ,EAChBA,EAAK6G,eAAe8oJ,KACvBD,EAAWA,EAAS,IAAIC,GAC1B,MAAM,IAAI1xJ,MAAMyxJ,EACjB,CARC,UAAW9oJ,EAAI9O,KAASkI,EAAKlI,GAC5B,MAAM,IAAImG,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQjpJ,EAAI9O,GAAMA,IAQhE,CAEF,EAUIkZ,EAAQ,SAAUgD,EAAGhD,GACxB,OAAO,WACN,OAAOgD,EAAEpX,MAAMoU,EAAO/O,UACvB,CACD,EAOIo1E,EAAQ,CACXy4E,GAAI,CAAC9xJ,KAAK,EAAGiN,KAAK,mBAClB8kJ,gBAAiB,CAAC/xJ,KAAK,EAAGiN,KAAK,kCAC/B+kJ,kBAAmB,CAAChyJ,KAAK,EAAGiN,KAAK,mCACjCglJ,oBAAqB,CAACjyJ,KAAK,EAAGiN,KAAK,qCACnCilJ,aAAc,CAAClyJ,KAAK,EAAGiN,KAAK,8BAC5BklJ,eAAgB,CAACnyJ,KAAK,EAAGiN,KAAK,mEAC9BmlJ,mBAAoB,CAACpyJ,KAAK,EAAGiN,KAAK,+CAClColJ,aAAc,CAACryJ,KAAK,EAAGiN,KAAK,gCAC5BqlJ,aAAc,CAACtyJ,KAAK,EAAGiN,KAAK,6BAC5BslJ,cAAe,CAACvyJ,KAAK,EAAGiN,KAAK,8CAC7BulJ,YAAa,CAACxyJ,KAAK,GAAIiN,KAAK,oDAC5BwlJ,cAAe,CAACzyJ,KAAK,GAAIiN,KAAK,iCAC9B4kJ,aAAc,CAAC7xJ,KAAK,GAAIiN,KAAK,wCAC7BylJ,iBAAkB,CAAC1yJ,KAAK,GAAIiN,KAAK,4CACjC0lJ,sBAAuB,CAAC3yJ,KAAK,GAAIiN,KAAK,qCACtC2lJ,oBAAqB,CAAC5yJ,KAAK,GAAIiN,KAAK,+DACpC4lJ,0BAA2B,CAAC7yJ,KAAK,GAAIiN,KAAK,6CAC1C6lJ,kBAAmB,CAAC9yJ,KAAK,GAAIiN,KAAK,gDAClC8lJ,YAAa,CAAC/yJ,KAAK,GAAIiN,KAAK,iEAIzB+lJ,EAAa,CAChB,EAAE,sBACF,EAAE,oDACF,EAAE,0CACF,EAAE,yCACF,EAAE,gDACF,EAAE,sCAUCpB,EAAS,SAAS1yJ,EAAO+zJ,GAC5B,IAAIhmJ,EAAO/N,EAAM+N,KACjB,GAAIgmJ,EAEH,IADA,IAAIn8E,EAAM/6D,EACDrf,EAAE,EAAGA,EAAEu2J,EAAcr2J,OAAQF,IAGrC,GAFAo6E,EAAQ,IAAIp6E,EAAE,IACdqf,EAAQ9O,EAAKpU,QAAQi+E,GAClB/6D,EAAQ,EAAG,CACb,IAAIm3I,EAAQjmJ,EAAKsB,UAAU,EAAEwN,GACzBo3I,EAAQlmJ,EAAKsB,UAAUwN,EAAM+6D,EAAMl6E,QACvCqQ,EAAOimJ,EAAMD,EAAcv2J,GAAGy2J,CAC/B,CAGF,OAAOlmJ,CACR,EAGImmJ,EAAwB,CAAC,EAAK,EAAK,GAAK,GAAK,GAAK,IAAK,IAAK,IAAK,GAEjEC,EAAwB,CAAC,EAAK,EAAK,GAAK,GAAK,GAAK,GAAK,GA0BvDC,EAAc,SAAU/4J,EAAMgF,GAEjC,IAAK,IAAIoB,KADT3E,KAAKzB,KAAOA,EACKgF,EACZA,EAAQsJ,eAAelI,KAC1B3E,KAAK2E,GAAQpB,EAAQoB,GAGxB,EA4LA,SAAS4yJ,EAAcp/F,EAAMtyC,GAC5B,IASI2xI,EATAC,EAAc5xI,EACdqnI,EAAQ/0F,EAAMtyC,GACdtnB,EAAO2uJ,GAAS,EAChBwK,EAAcxK,GAAS,GAC3BrnI,GAAO,EAMP,IAAI8xI,EAAY,EACZC,EAAa,EACjB,EAAG,CACF,GAAI/xI,GAAOsyC,EAAMv3D,OAChB,MAAO,CAAC,KAAK62J,GAEdD,EAAQr/F,EAAMtyC,KACd8xI,IAAuB,IAARH,GAAgBI,EAC/BA,GAAc,GACf,OAA4B,KAAV,IAARJ,IAEV,IAAIK,EAAShyI,EAAI8xI,EACjB,GAAIE,EAAS1/F,EAAMv3D,OAClB,MAAO,CAAC,KAAK62J,GAGd,IAAIK,EAAc,IAAIR,EAAY/4J,GAClC,OAAOA,GACP,KAAKm2J,EAAaE,QACjB,IAAImD,EAA0B5/F,EAAMtyC,KACN,EAA1BkyI,IACHD,EAAYE,gBAAiB,GAC9BF,EAAYG,WAAa9/F,EAAMtyC,KAC/B,MAED,KAAK6uI,EAAaG,QACjB,IAAIqD,EAAOR,GAAe,EAAK,EAE3Bh2I,EAAMy2I,EAAWhgG,EAAOtyC,GAC5BA,GAAO,EACP,IAAIuyI,EAAYC,EAAUlgG,EAAOtyC,EAAKnE,GACtCmE,GAAOnE,EAEHw2I,EAAM,IACTJ,EAAYQ,kBAAoBH,EAAWhgG,EAAOtyC,GAClDA,GAAO,GAGR,IAAI9lB,EAAU,IAAI65D,EAAQzB,EAAM8gF,SAASpzH,EAAKgyI,IAClB,IAAT,EAAdH,KACJ33J,EAAQw4J,UAAW,GACQ,IAAT,EAAdb,KACJ33J,EAAQy4J,WAAa,GACtBz4J,EAAQm4J,IAAMA,EACdn4J,EAAQ8mC,gBAAkBuxH,EAC1BN,EAAYW,eAAiB14J,EAC7B,MAED,KAAM20J,EAAaI,OACnB,KAAMJ,EAAaK,OACnB,KAAML,EAAaM,OACnB,KAAMN,EAAaO,QACnB,KAAMP,EAAaW,SAClByC,EAAYQ,kBAAoBH,EAAWhgG,EAAOtyC,GAClD,MAED,KAAM6uI,EAAaS,OAClB2C,EAAYQ,kBAAoBH,EAAWhgG,EAAOtyC,GAClDA,GAAO,EACPiyI,EAAYG,WAAa9/F,EAAM8gF,SAASpzH,EAAKgyI,GAC7C,MAED,QACC,MAGD,MAAO,CAACC,EAAYD,EACrB,CAEA,SAASa,EAAYvgG,EAAO1wD,EAAQkN,GAGnC,OAFAlN,EAAOkN,KAAYwjD,GAAS,EAC5B1wD,EAAOkN,KAAYwjD,EAAQ,IACpBxjD,CACR,CAEA,SAASgkJ,EAAYxgG,EAAOygG,EAAYnxJ,EAAQkN,GAG/C,OAFAA,EAAS+jJ,EAAYE,EAAYnxJ,EAAQkN,GACzCkkJ,EAAa1gG,EAAO1wD,EAAQkN,GACrBA,EAASikJ,CACjB,CAEA,SAAST,EAAW1wJ,EAAQkN,GAC3B,OAAO,IAAIlN,EAAOkN,GAAUlN,EAAOkN,EAAO,EAC3C,CAMA,SAASmkJ,EAAUj0J,GAClB,IAAIqhB,EAAS,IAAIvjB,MAAM,GACnBo2J,EAAW,EAEf,EAAG,CACF,IAAIvB,EAAQ3yJ,EAAS,IACrBA,IAAmB,EACfA,EAAS,IACZ2yJ,GAAS,KAEVtxI,EAAO6yI,KAAcvB,CACtB,OAAW3yJ,EAAS,GAAOk0J,EAAS,GAEpC,OAAO7yI,CACR,CAMA,SAAS8yI,EAAW7gG,GAEnB,IADA,IAAIjyC,EAAS,EACJxlB,EAAI,EAAGA,EAAEy3D,EAAMv3D,OAAQF,IAChC,CACC,IAAIqN,EAAWoqD,EAAMhrD,WAAWzM,GAC5BqN,EAAW,MAGV,OAAUA,GAAYA,GAAY,QAErCrN,IACAwlB,KAEDA,GAAS,GAEDnY,EAAW,IACnBmY,GAAS,EAETA,GACF,CACA,OAAOA,CACR,CAMA,SAAS2yI,EAAa1gG,EAAOjyC,EAAQnG,GAEpC,IADA,IAAI8F,EAAM9F,EACDrf,EAAI,EAAGA,EAAEy3D,EAAMv3D,OAAQF,IAAK,CACpC,IAAIqN,EAAWoqD,EAAMhrD,WAAWzM,GAGhC,GAAI,OAAUqN,GAAYA,GAAY,MAAQ,CAC7C,IAAIkrJ,EAAc9gG,EAAMhrD,aAAazM,GACrC,GAAI+uB,MAAMwpI,GACT,MAAM,IAAIh1J,MAAM2xJ,EAAOv4E,EAAMy5E,kBAAmB,CAAC/oJ,EAAUkrJ,KAE5DlrJ,EAAwCkrJ,EAAc,OAAzClrJ,EAAW,OAAS,IAA+B,KAEjE,CAEIA,GAAY,IACfmY,EAAOL,KAAS9X,EACNA,GAAY,MACtBmY,EAAOL,KAAS9X,GAAU,EAAK,GAAO,IACtCmY,EAAOL,KAAwB,GAAf9X,EAAsB,KAC5BA,GAAY,OACtBmY,EAAOL,KAAS9X,GAAU,GAAK,GAAO,IACtCmY,EAAOL,KAAS9X,GAAU,EAAK,GAAO,IACtCmY,EAAOL,KAAwB,GAAf9X,EAAsB,MAEtCmY,EAAOL,KAAS9X,GAAU,GAAK,EAAO,IACtCmY,EAAOL,KAAS9X,GAAU,GAAK,GAAO,IACtCmY,EAAOL,KAAS9X,GAAU,EAAK,GAAO,IACtCmY,EAAOL,KAAwB,GAAf9X,EAAsB,IAExC,CACA,OAAOmY,CACR,CAEA,SAASmyI,EAAUlgG,EAAOxjD,EAAQ/T,GACjC,IACIs4J,EADAhzI,EAAS,GAETL,EAAMlR,EAEV,MAAOkR,EAAMlR,EAAO/T,EACpB,CACC,IAAI8kJ,EAAQvtF,EAAMtyC,KAClB,GAAI6/H,EAAQ,IACXwT,EAAQxT,MAET,CACC,IAAIC,EAAQxtF,EAAMtyC,KAAO,IACzB,GAAI8/H,EAAQ,EACX,MAAM,IAAI1hJ,MAAM2xJ,EAAOv4E,EAAMk5E,cAAe,CAAC7Q,EAAMzlJ,SAAS,IAAK0lJ,EAAM1lJ,SAAS,IAAI,MACrF,GAAIylJ,EAAQ,IACXwT,EAAQ,IAAIxT,EAAM,KAAQC,MAE3B,CACC,IAAIC,EAAQztF,EAAMtyC,KAAO,IACzB,GAAI+/H,EAAQ,EACX,MAAM,IAAI3hJ,MAAM2xJ,EAAOv4E,EAAMk5E,cAAe,CAAC7Q,EAAMzlJ,SAAS,IAAK0lJ,EAAM1lJ,SAAS,IAAK2lJ,EAAM3lJ,SAAS,OACrG,GAAIylJ,EAAQ,IACXwT,EAAQ,MAAMxT,EAAM,KAAQ,GAAGC,EAAQC,MAExC,CACC,IAAIuT,EAAQhhG,EAAMtyC,KAAO,IACzB,GAAIszI,EAAQ,EACX,MAAM,IAAIl1J,MAAM2xJ,EAAOv4E,EAAMk5E,cAAe,CAAC7Q,EAAMzlJ,SAAS,IAAK0lJ,EAAM1lJ,SAAS,IAAK2lJ,EAAM3lJ,SAAS,IAAKk5J,EAAMl5J,SAAS,OACzH,KAAIylJ,EAAQ,KAGX,MAAM,IAAIzhJ,MAAM2xJ,EAAOv4E,EAAMk5E,cAAe,CAAC7Q,EAAMzlJ,SAAS,IAAK0lJ,EAAM1lJ,SAAS,IAAK2lJ,EAAM3lJ,SAAS,IAAKk5J,EAAMl5J,SAAS,OAFxHi5J,EAAQ,QAAQxT,EAAM,KAAQ,KAAKC,EAAQ,GAAGC,EAAQuT,CAGxD,CACD,CACD,CAEID,EAAQ,QAEXA,GAAS,MACThzI,GAAU8F,OAAO0D,aAAa,OAAUwpI,GAAS,KACjDA,EAAQ,OAAkB,KAARA,IAEnBhzI,GAAU8F,OAAO0D,aAAawpI,EAC/B,CACA,OAAOhzI,CACR,CA7ZAoxI,EAAYn4J,UAAU+I,OAAS,WAE9B,IAUIkxJ,EAVAlM,GAAsB,GAAZltJ,KAAKzB,OAAgB,EAO/Bo5J,EAAY,EACZ0B,EAAiB,GACjBC,EAAwB,EAO5B,YAH+B57J,IAA3BsC,KAAKs4J,oBACRX,GAAa,GAEP33J,KAAKzB,MAEZ,KAAKm2J,EAAaC,QACjB,OAAO30J,KAAKqnC,aACZ,KAAK,EACJswH,GAAaP,EAAsBx2J,OAAS,EAC5C,MACD,KAAK,EACJ+2J,GAAaN,EAAsBz2J,OAAS,EAC5C,MAGD+2J,GAAaqB,EAAWh5J,KAAK8kC,UAAY,OAChBpnC,IAArBsC,KAAKu5J,cACR5B,GAAaqB,EAAWh5J,KAAKu5J,YAAY1yH,iBAAmB,EAE5DuyH,EAA0Bp5J,KAAKu5J,YAAYC,aACrCJ,aAAmCt6G,aACxCs6G,EAA0B,IAAIt6G,WAAW06G,IAC1C7B,GAAayB,EAAwBl6G,WAAY,QAE5BxhD,IAAlBsC,KAAKy5J,WACR9B,GAAaqB,EAAWh5J,KAAKy5J,UAAY,QACpB/7J,IAAlBsC,KAAK9E,WACRy8J,GAAaqB,EAAWh5J,KAAK9E,UAAY,GAC1C,MAGD,KAAKw5J,EAAaQ,UACjBhI,GAAS,EACT,IAAM,IAAIxsJ,EAAI,EAAGA,EAAIV,KAAK4nC,OAAOhnC,OAAQF,IACxC24J,EAAe34J,GAAKs4J,EAAWh5J,KAAK4nC,OAAOlnC,IAC3Ci3J,GAAa0B,EAAe34J,GAAK,EAElCi3J,GAAa33J,KAAK05J,aAAa94J,OAE/B,MAED,KAAK8zJ,EAAaU,YACjBlI,GAAS,EACT,IAAUxsJ,EAAI,EAAGA,EAAIV,KAAK4nC,OAAOhnC,OAAQF,IACxC24J,EAAe34J,GAAKs4J,EAAWh5J,KAAK4nC,OAAOlnC,IAC3Ci3J,GAAa0B,EAAe34J,GAAK,EAElC,MAED,KAAKg0J,EAAaM,OACjB9H,GAAS,EACT,MAED,KAAKwH,EAAaG,QACb70J,KAAKy4J,eAAeD,YAAWtL,GAAS,GAC5CA,EAASA,GAAUltJ,KAAKy4J,eAAeP,KAAO,EAC1Cl4J,KAAKy4J,eAAeF,WAAUrL,GAAS,GAC3CoM,EAAwBN,EAAWh5J,KAAKy4J,eAAe5xH,iBACvD8wH,GAAa2B,EAAwB,EACrC,IAAIE,EAAex5J,KAAKy4J,eAAee,aACvC7B,GAAa6B,EAAat6G,WACtBs6G,aAAwBntJ,YAC3BmtJ,EAAe,IAAI16G,WAAW06G,GACpBA,aAAwB16G,aAClC06G,EAAe,IAAI16G,WAAW06G,EAAa/xJ,SAC5C,MAED,KAAKitJ,EAAac,WACjB,MAED,QACC,MAKD,IAAImE,EAAMb,EAAUnB,GAChB9xI,EAAM8zI,EAAI/4J,OAAS,EACnB6G,EAAS,IAAI4E,YAAYsrJ,EAAY9xI,GACrC+zI,EAAa,IAAI96G,WAAWr3C,GAOhC,GAJAmyJ,EAAW,GAAK1M,EAChB0M,EAAWn8I,IAAIk8I,EAAI,GAGf35J,KAAKzB,MAAQm2J,EAAaG,QAC7BhvI,EAAM8yI,EAAY34J,KAAKy4J,eAAe5xH,gBAAiByyH,EAAuBM,EAAY/zI,QAGtF,GAAI7lB,KAAKzB,MAAQm2J,EAAaC,QAAS,CAC3C,OAAQ30J,KAAKqnC,aACb,KAAK,EACJuyH,EAAWn8I,IAAI25I,EAAuBvxI,GACtCA,GAAOuxI,EAAsBx2J,OAC7B,MACD,KAAK,EACJg5J,EAAWn8I,IAAI45I,EAAuBxxI,GACtCA,GAAOwxI,EAAsBz2J,OAC7B,MAED,IAAIi5J,EAAe,EACf75J,KAAK85J,eACRD,EAAe,QACSn8J,IAArBsC,KAAKu5J,cACRM,GAAgB,EAChBA,GAAiB75J,KAAKu5J,YAAYrB,KAAK,EACnCl4J,KAAKu5J,YAAYhB,WACpBsB,GAAgB,UAGIn8J,IAAlBsC,KAAKy5J,WACRI,GAAgB,UACKn8J,IAAlBsC,KAAK9E,WACR2+J,GAAgB,IACjBD,EAAW/zI,KAASg0I,EACpBh0I,EAAM6yI,EAAa14J,KAAK+5J,kBAAmBH,EAAY/zI,EACxD,CAMA,YAH+BnoB,IAA3BsC,KAAKs4J,oBACRzyI,EAAM6yI,EAAa14J,KAAKs4J,kBAAmBsB,EAAY/zI,IAEjD7lB,KAAKzB,MACZ,KAAKm2J,EAAaC,QACjB9uI,EAAM8yI,EAAY34J,KAAK8kC,SAAUk0H,EAAWh5J,KAAK8kC,UAAW80H,EAAY/zI,QAC/CnoB,IAArBsC,KAAKu5J,cACR1zI,EAAM8yI,EAAY34J,KAAKu5J,YAAY1yH,gBAAiBmyH,EAAWh5J,KAAKu5J,YAAY1yH,iBAAkB+yH,EAAY/zI,GAC9GA,EAAM6yI,EAAYU,EAAwBl6G,WAAY06G,EAAY/zI,GAClE+zI,EAAWn8I,IAAI27I,EAAyBvzI,GACxCA,GAAOuzI,EAAwBl6G,iBAGVxhD,IAAlBsC,KAAKy5J,WACR5zI,EAAM8yI,EAAY34J,KAAKy5J,SAAUT,EAAWh5J,KAAKy5J,UAAWG,EAAY/zI,SACnDnoB,IAAlBsC,KAAK9E,WACR2qB,EAAM8yI,EAAY34J,KAAK9E,SAAU89J,EAAWh5J,KAAK9E,UAAW0+J,EAAY/zI,IACzE,MAED,KAAK6uI,EAAaG,QAEjB+E,EAAWn8I,IAAI+7I,EAAc3zI,GAE7B,MAOD,KAAK6uI,EAAaQ,UAEjB,IAASx0J,EAAE,EAAGA,EAAEV,KAAK4nC,OAAOhnC,OAAQF,IACnCmlB,EAAM8yI,EAAY34J,KAAK4nC,OAAOlnC,GAAI24J,EAAe34J,GAAIk5J,EAAY/zI,GACjE+zI,EAAW/zI,KAAS7lB,KAAK05J,aAAah5J,GAEvC,MAED,KAAKg0J,EAAaU,YAEjB,IAAS10J,EAAE,EAAGA,EAAEV,KAAK4nC,OAAOhnC,OAAQF,IACnCmlB,EAAM8yI,EAAY34J,KAAK4nC,OAAOlnC,GAAI24J,EAAe34J,GAAIk5J,EAAY/zI,GAClE,MAED,SAIA,OAAOpe,CACR,EA2OA,IAAIuyJ,EAAS,SAASrzH,EAAQozH,GAC7B/5J,KAAKi6J,QAAUtzH,EACf3mC,KAAKk6J,mBAAuC,IAAlBH,EAC1B/5J,KAAKm6J,SAAU,EAEf,IAAIC,EAAU,IAAI9C,EAAY5C,EAAaY,SAASptJ,SAEhDmyJ,EAAY,SAAUC,GACzB,OAAO,WACN,OAAOC,EAAO33J,MAAM03J,EACrB,CACD,EAGIC,EAAS,WACPv6J,KAAKm6J,SAITn6J,KAAKm6J,SAAU,EACfn6J,KAAKi6J,QAAQO,OAAO,gBAAiB,gBACrCx6J,KAAKi6J,QAAQQ,OAAO97J,KAAKy7J,GACzBp6J,KAAKvD,QAAUK,WAAWu9J,EAAUr6J,MAAOA,KAAKk6J,sBANhDl6J,KAAKi6J,QAAQO,OAAO,gBAAiB,aACrCx6J,KAAKi6J,QAAQS,cAAer9E,EAAM64E,aAAalyJ,KAAO4xJ,EAAOv4E,EAAM64E,eAOrE,EAEAl2J,KAAK2jJ,MAAQ,WACZ3jJ,KAAKm6J,SAAU,EACf/rH,aAAapuC,KAAKvD,SACduD,KAAKk6J,mBAAqB,IAC7Bl6J,KAAKvD,QAAUK,WAAWu9J,EAAUr6J,MAAOA,KAAKk6J,oBAClD,EAEAl6J,KAAK1B,OAAS,WACb8vC,aAAapuC,KAAKvD,QACnB,CACD,EAMIk+J,EAAU,SAASh0H,EAAQi0H,EAAgBl4F,EAAQ16D,GACjD4yJ,IACJA,EAAiB,IAElB,IAAIP,EAAY,SAAU33F,EAAQ/7B,EAAQ3+B,GACzC,OAAO,WACN,OAAO06D,EAAO9/D,MAAM+jC,EAAQ3+B,EAC7B,CACD,EACAhI,KAAKvD,QAAUK,WAAWu9J,EAAU33F,EAAQ/7B,EAAQ3+B,GAAwB,IAAjB4yJ,GAE3D56J,KAAK1B,OAAS,WACb8vC,aAAapuC,KAAKvD,QACnB,CACD,EAUIo+J,EAAa,SAAUr3F,EAAKl5D,EAAMI,EAAM7B,EAAMi8B,GAEjD,KAAM,cAAegpB,IAA+B,OAArBA,EAAO/iB,UACrC,MAAM,IAAI9mC,MAAM2xJ,EAAOv4E,EAAMm5E,YAAa,CAAC,eAE5C,KAAM,gBAAiB1oG,IAAiC,OAAvBA,EAAOzhD,YACvC,MAAM,IAAIpI,MAAM2xJ,EAAOv4E,EAAMm5E,YAAa,CAAC,iBA2C5C,IAAK,IAAI14J,KAzCTkC,KAAKw6J,OAAO,cAAeh3F,EAAKl5D,EAAMI,EAAM7B,EAAMi8B,GAElD9kC,KAAKsK,KAAOA,EACZtK,KAAK0K,KAAOA,EACZ1K,KAAK6I,KAAOA,EACZ7I,KAAKwjE,IAAMA,EACXxjE,KAAK8kC,SAAWA,EAChB9kC,KAAK86J,OAAS,KAMd96J,KAAK+6J,UAAUzwJ,EAAK,IAAII,GAAY,SAAN7B,EAAc,IAAIA,EAAK,IAAI,IAAIi8B,EAAS,IAItE9kC,KAAKg7J,WAAa,GAClBh7J,KAAKi7J,oBAAsB,GAG3Bj7J,KAAKk7J,cAAgB,CAAC,EAItBl7J,KAAKm7J,kBAAoB,CAAC,EAK1Bn7J,KAAKo7J,iBAAmB,CAAC,EAIzBp7J,KAAKq7J,oBAAsB,EAG3Br7J,KAAKs7J,UAAY,EAIDziH,EACgC,IAAxC/6C,EAAIjB,QAAQ,QAAQmD,KAAK+6J,YAAgE,IAA5Cj9J,EAAIjB,QAAQ,YAAYmD,KAAK+6J,YAChF/6J,KAAKu7J,QAAQz9J,EAChB,EAGA+8J,EAAW17J,UAAUmL,KAAO,KAC5BuwJ,EAAW17J,UAAUuL,KAAO,KAC5BmwJ,EAAW17J,UAAU0J,KAAO,KAC5BgyJ,EAAW17J,UAAUqkE,IAAM,KAC3Bq3F,EAAW17J,UAAU2lC,SAAW,KAGhC+1H,EAAW17J,UAAUs7J,OAAS,KAE9BI,EAAW17J,UAAUq8J,WAAY,EAIjCX,EAAW17J,UAAUs8J,qBAAuB,MAC5CZ,EAAW17J,UAAUu8J,eAAiB,KACtCb,EAAW17J,UAAUw8J,UAAY,KACjCd,EAAW17J,UAAUy8J,YAAc,KACnCf,EAAW17J,UAAU8nC,iBAAmB,KACxC4zH,EAAW17J,UAAU08J,mBAAqB,KAC1ChB,EAAW17J,UAAUynC,iBAAmB,KACxCi0H,EAAW17J,UAAU28J,cAAgB,KACrCjB,EAAW17J,UAAU67J,WAAa,KAClCH,EAAW17J,UAAU87J,oBAAsB,KAC3CJ,EAAW17J,UAAU48J,gBAAkB,KAEvClB,EAAW17J,UAAU68J,WAAa,KAElCnB,EAAW17J,UAAU88J,cAAgB,KACrCpB,EAAW17J,UAAU+8J,mBAAqB,EAC1CrB,EAAW17J,UAAUg9J,eAAgB,EACrCtB,EAAW17J,UAAUi9J,kBAAoB,KACzCvB,EAAW17J,UAAUk9J,wBAAyB,EAC9CxB,EAAW17J,UAAUm9J,uBAAyB,IAE9CzB,EAAW17J,UAAUo9J,cAAgB,KAErC1B,EAAW17J,UAAUq9J,aAAe,KACpC3B,EAAW17J,UAAUs9J,mBAAqB,IAE1C5B,EAAW17J,UAAU+nC,QAAU,SAAUw0H,GACxC,IAAIgB,EAAuB18J,KAAK28J,WAAWjB,EAAgB,YAG3D,GAFA17J,KAAKw6J,OAAO,iBAAkBkC,EAAsB18J,KAAKy6J,OAAQz6J,KAAKw7J,WAElEx7J,KAAKw7J,UACR,MAAM,IAAIv3J,MAAM2xJ,EAAOv4E,EAAMo5E,cAAe,CAAC,uBAC9C,GAAIz2J,KAAKy6J,OACR,MAAM,IAAIx2J,MAAM2xJ,EAAOv4E,EAAMo5E,cAAe,CAAC,uBAE1Cz2J,KAAKm8J,gBAGRn8J,KAAKo8J,kBAAkB99J,SACvB0B,KAAKo8J,kBAAoB,KACzBp8J,KAAKm8J,eAAgB,GAGtBn8J,KAAK07J,eAAiBA,EACtB17J,KAAKk8J,mBAAqB,EAC1Bl8J,KAAKm8J,eAAgB,EACjBT,EAAekB,MAClB58J,KAAK27J,UAAY,EACjB37J,KAAK68J,WAAWnB,EAAekB,KAAK,KAEpC58J,KAAK68J,WAAW78J,KAAKwjE,IAGvB,EAEAq3F,EAAW17J,UAAUV,UAAY,SAAUyiB,EAAQ47I,GAGlD,GAFA98J,KAAKw6J,OAAO,mBAAoBt5I,EAAQ47I,IAEnC98J,KAAKw7J,UACT,MAAM,IAAIv3J,MAAM2xJ,EAAOv4E,EAAMo5E,cAAe,CAAC,mBAErC,IAAIqB,EAAc,IAAIR,EAAY5C,EAAaQ,WAC/C4C,EAAYlwH,OAAS1mB,EAAO9U,cAAgBzJ,MAAQue,EAAS,CAACA,QACjCxjB,IAAzBo/J,EAAiB5E,MACjB4E,EAAiB5E,IAAM,GAC3BJ,EAAY4B,aAAe,GAC3B,IAAK,IAAIh5J,EAAI,EAAGA,EAAIo3J,EAAYlwH,OAAOhnC,OAAQF,IAC3Co3J,EAAY4B,aAAah5J,GAAKo8J,EAAiB5E,IAExD4E,EAAiBx1H,YACpBwwH,EAAYxwH,UAAY,SAASy1H,GAAaD,EAAiBx1H,UAAU,CAAC01H,kBAAkBF,EAAiBE,kBAAkBD,WAAWA,GAAa,GAGpJD,EAAiBv1H,YACpBuwH,EAAYvwH,UAAY,SAASlB,GAAYy2H,EAAiBv1H,UAAU,CAACy1H,kBAAkBF,EAAiBE,kBAAkB32H,UAAUA,EAAWqtB,aAAakiG,EAAOvvH,IAAa,GAGjLy2H,EAAiBrgK,UACpBq7J,EAAYmF,QAAU,IAAItC,EAAQ36J,KAAM88J,EAAiBrgK,QAASqgK,EAAiBv1H,UAClF,CAAC,CAACy1H,kBAAkBF,EAAiBE,kBACpC32H,UAAUg3C,EAAM24E,kBAAkBhyJ,KAClC0vD,aAAakiG,EAAOv4E,EAAM24E,uBAI7Bh2J,KAAKk9J,cAAcpF,GACnB93J,KAAKm9J,kBAAkBrF,EACxB,EAGA+C,EAAW17J,UAAUzE,YAAc,SAASwmB,EAAQk8I,GAGnD,GAFAp9J,KAAKw6J,OAAO,qBAAsBt5I,EAAQk8I,IAErCp9J,KAAKw7J,UACT,MAAM,IAAIv3J,MAAM2xJ,EAAOv4E,EAAMo5E,cAAe,CAAC,mBAErC,IAAIqB,EAAc,IAAIR,EAAY5C,EAAaU,aAC/C0C,EAAYlwH,OAAS1mB,EAAO9U,cAAgBzJ,MAAQue,EAAS,CAACA,GAEnEk8I,EAAmB91H,YACtBwwH,EAAYxsJ,SAAW,WAAY8xJ,EAAmB91H,UAAU,CAAC01H,kBAAkBI,EAAmBJ,mBAAoB,GAEvHI,EAAmB3gK,UACtBq7J,EAAYmF,QAAU,IAAItC,EAAQ36J,KAAMo9J,EAAmB3gK,QAAS2gK,EAAmB71H,UACtF,CAAC,CAACy1H,kBAAkBI,EAAmBJ,kBACtC32H,UAAUg3C,EAAM44E,oBAAoBjyJ,KACpC0vD,aAAakiG,EAAOv4E,EAAM44E,yBAI7Bj2J,KAAKk9J,cAAcpF,GACnB93J,KAAKm9J,kBAAkBrF,EACxB,EAEA+C,EAAW17J,UAAUR,KAAO,SAAUoB,GACrCC,KAAKw6J,OAAO,cAAez6J,GAE3B,IAAI+3J,EAAc,IAAIR,EAAY5C,EAAaG,SAG/C,GAFAiD,EAAYW,eAAiB14J,EAEzBC,KAAKw7J,UAIJz7J,EAAQm4J,IAAM,EACjBl4J,KAAKk9J,cAAcpF,GACT93J,KAAK67J,qBACf77J,KAAKo7J,iBAAiBtD,GAAe93J,KAAK67J,mBAAmB/D,EAAYW,iBAE1Ez4J,KAAKm9J,kBAAkBrF,OACjB,CAGN,IAAI93J,KAAKm8J,gBAAiBn8J,KAAKq8J,uBAgB9B,MAAM,IAAIp4J,MAAM2xJ,EAAOv4E,EAAMo5E,cAAe,CAAC,mBAd7C,IAAI4G,EAAet3J,OAAOC,KAAKhG,KAAKk7J,eAAet6J,OAASZ,KAAKi7J,oBAAoBr6J,OACrF,GAAIy8J,EAAer9J,KAAKs8J,uBACvB,MAAM,IAAIr4J,MAAM2xJ,EAAOv4E,EAAM05E,YAAa,CAAC/2J,KAAKs8J,0BAE5Cv8J,EAAQm4J,IAAM,EAEjBl4J,KAAKk9J,cAAcpF,IAEnBA,EAAYwF,WAAat9J,KAAKs7J,UAE9Bt7J,KAAKi7J,oBAAoB34J,QAAQw1J,GAMrC,CACD,EAEA+C,EAAW17J,UAAUsoC,WAAa,WAWjC,GAVAznC,KAAKw6J,OAAO,qBAERx6J,KAAKm8J,gBAGRn8J,KAAKo8J,kBAAkB99J,SACvB0B,KAAKo8J,kBAAoB,KACzBp8J,KAAKm8J,eAAgB,IAGjBn8J,KAAKy6J,OACT,MAAM,IAAIx2J,MAAM2xJ,EAAOv4E,EAAMo5E,cAAe,CAAC,iCAE9C,IAAIqB,EAAc,IAAIR,EAAY5C,EAAac,YAK/Cx1J,KAAKo7J,iBAAiBtD,GAAe9gJ,EAAMhX,KAAK06J,cAAe16J,MAE/DA,KAAKm9J,kBAAkBrF,EACxB,EAEA+C,EAAW17J,UAAUo+J,YAAc,WAClC,GAA2B,OAAtBv9J,KAAKw8J,aAAwB,CAGjC,IAAK,IAAI1+J,KAFTkC,KAAKw6J,OAAO,qBAAsB,IAAItxJ,MACtClJ,KAAKw6J,OAAO,wCAAyCx6J,KAAKk7J,cAAct6J,QACxDZ,KAAKk7J,cACpBl7J,KAAKw6J,OAAO,iBAAiB18J,EAAKkC,KAAKk7J,cAAcp9J,IACtD,IAAK,IAAIA,KAAOkC,KAAKm7J,kBACpBn7J,KAAKw6J,OAAO,qBAAqB18J,EAAKkC,KAAKm7J,kBAAkBr9J,IAE9D,OAAOkC,KAAKw8J,YACb,CACD,EAEA3B,EAAW17J,UAAUq+J,WAAa,WACN,OAAtBx9J,KAAKw8J,eACTx8J,KAAKw8J,aAAe,IAErBx8J,KAAKw6J,OAAO,oBAAqB,IAAItxJ,KAAQ4C,EAC9C,EAEA+uJ,EAAW17J,UAAUs+J,UAAY,kBACzBz9J,KAAKw8J,YACb,EAEA3B,EAAW17J,UAAU09J,WAAa,SAAUa,GAE3C,GAAI19J,KAAK07J,eAAev0H,OAAQ,CAC/B,IAAIw2H,EAAWD,EAAMvyJ,MAAM,KAC3BwyJ,EAAS,GAAK,MACdD,EAAQC,EAASn1J,KAAK,IACvB,CACAxI,KAAK86J,OAAS4C,EACd19J,KAAKw7J,WAAY,EAIbx7J,KAAK07J,eAAer0H,YAAc,EACrCrnC,KAAKy6J,OAAS,IAAI1vH,UAAU2yH,EAAO,CAAC,aAEpC19J,KAAKy6J,OAAS,IAAI1vH,UAAU2yH,EAAO,CAAC,SAErC19J,KAAKy6J,OAAOmD,WAAa,cACzB59J,KAAKy6J,OAAO3qH,OAAS94B,EAAMhX,KAAK69J,gBAAiB79J,MACjDA,KAAKy6J,OAAOzqH,UAAYh5B,EAAMhX,KAAK89J,mBAAoB99J,MACvDA,KAAKy6J,OAAOz9J,QAAUga,EAAMhX,KAAK+9J,iBAAkB/9J,MACnDA,KAAKy6J,OAAOlsH,QAAUv3B,EAAMhX,KAAKg+J,iBAAkBh+J,MAEnDA,KAAKg8J,WAAa,IAAIhC,EAAOh6J,KAAMA,KAAK07J,eAAe3B,mBACvD/5J,KAAKi8J,cAAgB,IAAIjC,EAAOh6J,KAAMA,KAAK07J,eAAe3B,mBACtD/5J,KAAK+7J,kBACR/7J,KAAK+7J,gBAAgBz9J,SACrB0B,KAAK+7J,gBAAkB,MAExB/7J,KAAK+7J,gBAAkB,IAAIpB,EAAQ36J,KAAMA,KAAK07J,eAAej/J,QAASuD,KAAK06J,cAAgB,CAACr9E,EAAM04E,gBAAgB/xJ,KAAM4xJ,EAAOv4E,EAAM04E,kBACtI,EAQA8E,EAAW17J,UAAUg+J,kBAAoB,SAAUp9J,GAElDC,KAAKg7J,WAAW14J,QAAQvC,GAEpBC,KAAKw7J,WACRx7J,KAAKi+J,gBAEP,EAEApD,EAAW17J,UAAUsP,MAAQ,SAAS8S,EAAQu2I,GAC7C,IAAIoG,EAAgB,CAAC3/J,KAAKu5J,EAAYv5J,KAAM+5J,kBAAkBR,EAAYQ,kBAAmBxsJ,QAAQ,GAErG,OAAOgsJ,EAAYv5J,MACnB,KAAKm2J,EAAaG,QACdiD,EAAYqG,iBACdD,EAAcC,gBAAiB,GAGhCD,EAAczF,eAAiB,CAAC,EAGhC,IAFA,IAAI9+G,EAAM,GACNykH,EAAetG,EAAYW,eAAee,aACrC94J,EAAE,EAAGA,EAAE09J,EAAax9J,OAAQF,IAChC09J,EAAa19J,IAAM,GACtBi5C,EAAMA,EAAI,IAAIykH,EAAa19J,GAAGT,SAAS,IAEvC05C,GAAUykH,EAAa19J,GAAGT,SAAS,IAErCi+J,EAAczF,eAAe4F,WAAa1kH,EAE1CukH,EAAczF,eAAeP,IAAMJ,EAAYW,eAAeP,IAC9DgG,EAAczF,eAAe5xH,gBAAkBixH,EAAYW,eAAe5xH,gBACtEixH,EAAYW,eAAeD,YAC9B0F,EAAczF,eAAeD,WAAY,GACtCV,EAAYW,eAAeF,WAC9B2F,EAAczF,eAAeF,UAAW,GAGR,IAA5Bh3I,EAAO1kB,QAAQ,gBACWa,IAAzBo6J,EAAYwF,WAChBxF,EAAYwF,WAAat9J,KAAKs7J,WAC/B4C,EAAcZ,SAAWxF,EAAYwF,UAEtC,MAED,QACC,MAAMr5J,MAAM2xJ,EAAOv4E,EAAMu5E,oBAAqB,CAACr1I,EAAOvhB,KAAK+6J,UAAUjD,EAAYQ,kBAAmB4F,KAErGrlH,EAAahqC,QAAQ0S,EAAOvhB,KAAK+6J,UAAUjD,EAAYQ,kBAAmBxxJ,KAAKI,UAAUg3J,GAC1F,EAEArD,EAAW17J,UAAUo8J,QAAU,SAASz9J,GACvC,IAAI5B,EAAQ28C,EAAajqC,QAAQ9Q,GAC7BogK,EAAgBp3J,KAAKC,MAAM7K,GAE3B47J,EAAc,IAAIR,EAAY4G,EAAc3/J,KAAM2/J,GAEtD,OAAOA,EAAc3/J,MACrB,KAAKm2J,EAAaG,QAEjB,IAAIl7G,EAAMukH,EAAczF,eAAe4F,WACnC52J,EAAS,IAAI4E,YAAastC,EAAU,OAAE,GACtCigH,EAAa,IAAI96G,WAAWr3C,GAC5B/G,EAAI,EACR,MAAOi5C,EAAI/4C,QAAU,EAAG,CACvB,IAAIq+B,EAAI2a,SAASD,EAAIpnC,UAAU,EAAG,GAAI,IACtConC,EAAMA,EAAIpnC,UAAU,EAAGonC,EAAI/4C,QAC3Bg5J,EAAWl5J,KAAOu+B,CACnB,CACA,IAAIw5H,EAAiB,IAAI7+F,EAAQggG,GAEjCnB,EAAeP,IAAMgG,EAAczF,eAAeP,IAClDO,EAAe5xH,gBAAkBq3H,EAAczF,eAAe5xH,gBAC1Dq3H,EAAczF,eAAeD,YAChCC,EAAeD,WAAY,GACxB0F,EAAczF,eAAeF,WAChCE,EAAeF,UAAW,GAC3BT,EAAYW,eAAiBA,EAE7B,MAED,QACC,MAAMx0J,MAAM2xJ,EAAOv4E,EAAMu5E,oBAAqB,CAAC94J,EAAK5B,KAGT,IAAxC4B,EAAIjB,QAAQ,QAAQmD,KAAK+6J,YAC5BjD,EAAYW,eAAeD,WAAY,EACvCx4J,KAAKk7J,cAAcpD,EAAYQ,mBAAqBR,GACE,IAA5Ch6J,EAAIjB,QAAQ,YAAYmD,KAAK+6J,aACvC/6J,KAAKm7J,kBAAkBrD,EAAYQ,mBAAqBR,EAE1D,EAEA+C,EAAW17J,UAAU8+J,eAAiB,WACrC,IAAIl+J,EAAU,KAGd,MAAQA,EAAUC,KAAKg7J,WAAWtgJ,MACjC1a,KAAKs+J,aAAav+J,GAEdC,KAAKo7J,iBAAiBr7J,KACzBC,KAAKo7J,iBAAiBr7J,YACfC,KAAKo7J,iBAAiBr7J,GAGhC,EAOA86J,EAAW17J,UAAU+9J,cAAgB,SAAUpF,GAC9C,IAAIuF,EAAet3J,OAAOC,KAAKhG,KAAKk7J,eAAet6J,OACnD,GAAIy8J,EAAer9J,KAAKy7J,qBACvB,MAAMx3J,MAAO,qBAAqBo5J,GAEnC,WAAuD3/J,IAAjDsC,KAAKk7J,cAAcl7J,KAAKq7J,qBAC7Br7J,KAAKq7J,sBAENvD,EAAYQ,kBAAoBt4J,KAAKq7J,oBACrCr7J,KAAKk7J,cAAcpD,EAAYQ,mBAAqBR,EAChDA,EAAYv5J,OAASm2J,EAAaG,SACrC70J,KAAKyO,MAAM,QAASqpJ,GAEjB93J,KAAKq7J,sBAAwBr7J,KAAKy7J,uBACrCz7J,KAAKq7J,oBAAsB,EAE7B,EAMAR,EAAW17J,UAAU0+J,gBAAkB,WAEtC,IAAI/F,EAAc,IAAIR,EAAY5C,EAAaC,QAAS30J,KAAK07J,gBAC7D5D,EAAYhzH,SAAW9kC,KAAK8kC,SAC5B9kC,KAAKs+J,aAAaxG,EACnB,EAMA+C,EAAW17J,UAAU2+J,mBAAqB,SAAU14H,GACnDplC,KAAKw6J,OAAO,4BAA6Bp1H,EAAMhrC,MAE/C,IADA,IAAImkK,EAAWv+J,KAAKw+J,iBAAiBp5H,EAAMhrC,MAClCsG,EAAI,EAAGA,EAAI69J,EAAS39J,OAAQF,GAAG,EACvCV,KAAKy+J,eAAeF,EAAS79J,GAE/B,EAEAm6J,EAAW17J,UAAUq/J,iBAAmB,SAASpkK,GAChD,IAAIumJ,EAAY,IAAI7hG,WAAW1kD,GAC3BmkK,EAAW,GACf,GAAIv+J,KAAKu8J,cAAe,CACvB,IAAImC,EAAU,IAAI5/G,WAAW9+C,KAAKu8J,cAAc37J,OAAO+/I,EAAU//I,QACjE89J,EAAQjhJ,IAAIzd,KAAKu8J,eACjBmC,EAAQjhJ,IAAIkjI,EAAU3gJ,KAAKu8J,cAAc37J,QACzC+/I,EAAY+d,SACL1+J,KAAKu8J,aACb,CACA,IACC,IAAI5nJ,EAAS,EACb,MAAMA,EAASgsI,EAAU//I,OAAQ,CAChC,IAAIiL,EAAS0rJ,EAAc5W,EAAUhsI,GACjCmjJ,EAAcjsJ,EAAO,GAEzB,GADA8I,EAAS9I,EAAO,GACI,OAAhBisJ,EAGH,MAFAyG,EAASr9J,KAAK42J,EAIhB,CACInjJ,EAASgsI,EAAU//I,SACtBZ,KAAKu8J,cAAgB5b,EAAU1H,SAAStkI,GAE1C,CAAE,MAAOzR,GACR,IAAIy7J,EAAgD,aAAjCz7J,EAAM2J,eAAe,SAA2B3J,EAAM+B,MAAMhF,WAAa,2BAE5F,YADAD,KAAK06J,cAAcr9E,EAAM84E,eAAenyJ,KAAO4xJ,EAAOv4E,EAAM84E,eAAgB,CAACjzJ,EAAMnD,QAAQ4+J,IAE5F,CACA,OAAOJ,CACR,EAEA1D,EAAW17J,UAAUs/J,eAAiB,SAAS3G,GAE9C93J,KAAKw6J,OAAO,wBAAyB1C,GAErC,IACC,OAAOA,EAAYv5J,MACnB,KAAKm2J,EAAaE,QAMjB,GALA50J,KAAK+7J,gBAAgBz9J,SACjB0B,KAAKo8J,mBACRp8J,KAAKo8J,kBAAkB99J,SAGpB0B,KAAK07J,eAAe5B,aAAc,CACrC,IAAK,IAAIh8J,KAAOkC,KAAKk7J,cAAe,CACnC,IAAI0D,EAAc5+J,KAAKk7J,cAAcp9J,GACrC+6C,EAAa/pC,WAAW,QAAQ9O,KAAK+6J,UAAU6D,EAAYtG,kBAC5D,CAGA,IAAK,IAAIx6J,KAFTkC,KAAKk7J,cAAgB,CAAC,EAENl7J,KAAKm7J,kBAAmB,CACvC,IAAI0D,EAAkB7+J,KAAKm7J,kBAAkBr9J,GAC7C+6C,EAAa/pC,WAAW,YAAY9O,KAAK+6J,UAAU8D,EAAgBvG,kBACpE,CACAt4J,KAAKm7J,kBAAoB,CAAC,CAC3B,CAEA,GAA+B,IAA3BrD,EAAYG,WAQT,CACNj4J,KAAK06J,cAAcr9E,EAAM+4E,mBAAmBpyJ,KAAO4xJ,EAAOv4E,EAAM+4E,mBAAoB,CAAC0B,EAAYG,WAAYjB,EAAWc,EAAYG,eACpI,KACD,CATCj4J,KAAKw7J,WAAY,EAGbx7J,KAAK07J,eAAekB,OACvB58J,KAAK27J,UAAY37J,KAAK07J,eAAekB,KAAKh8J,QAQ5C,IAAIk+J,EAAoB,GACxB,IAAK,IAAIC,KAAS/+J,KAAKk7J,cAClBl7J,KAAKk7J,cAAcruJ,eAAekyJ,IACrCD,EAAkB59J,KAAKlB,KAAKk7J,cAAc6D,IAI5C,GAAI/+J,KAAKi7J,oBAAoBr6J,OAAS,EAAG,CACxC,IAAIkmC,EAAM,KACV,MAAQA,EAAM9mC,KAAKi7J,oBAAoBvgJ,MACtCokJ,EAAkB59J,KAAK4lC,GACnB9mC,KAAK67J,qBACR77J,KAAKo7J,iBAAiBt0H,GAAO9mC,KAAK67J,mBAAmB/0H,EAAI2xH,gBAE5D,CAGIqG,EAAoBA,EAAkB7sJ,MAAK,SAASlF,EAAEC,GAAI,OAAOD,EAAEuwJ,SAAWtwJ,EAAEswJ,QAAS,IAC7F,IADA,IACS58J,EAAE,EAAGghB,EAAIo9I,EAAkBl+J,OAAQF,EAAEghB,EAAKhhB,IAAK,CACnDk+J,EAAcE,EAAkBp+J,GACpC,GAAIk+J,EAAYrgK,MAAQm2J,EAAaG,SAAW+J,EAAYT,eAAgB,CAC3E,IAAIa,EAAgB,IAAI1H,EAAY5C,EAAaM,OAAQ,CAACsD,kBAAkBsG,EAAYtG,oBACxFt4J,KAAKm9J,kBAAkB6B,EACxB,MACCh/J,KAAKm9J,kBAAkByB,EAEzB,CAKI5+J,KAAK07J,eAAep0H,WACvBtnC,KAAK07J,eAAep0H,UAAU,CAAC01H,kBAAkBh9J,KAAK07J,eAAesB,oBAGtE,IAAIiC,GAAc,EACdj/J,KAAKm8J,gBACR8C,GAAc,EACdj/J,KAAKk8J,mBAAqB,EAC1Bl8J,KAAKm8J,eAAgB,GAItBn8J,KAAKk/J,WAAWD,EAAaj/J,KAAK86J,QAGlC96J,KAAKi+J,iBACL,MAED,KAAKvJ,EAAaG,QACjB70J,KAAKm/J,gBAAgBrH,GACrB,MAED,KAAKpD,EAAaI,OACb8J,EAAc5+J,KAAKk7J,cAAcpD,EAAYQ,mBAE7CsG,WACI5+J,KAAKk7J,cAAcpD,EAAYQ,mBACtCz/G,EAAa/pC,WAAW,QAAQ9O,KAAK+6J,UAAUjD,EAAYQ,mBACvDt4J,KAAK67J,oBACR77J,KAAK67J,mBAAmB+C,EAAYnG,iBAEtC,MAED,KAAK/D,EAAaK,OACb6J,EAAc5+J,KAAKk7J,cAAcpD,EAAYQ,mBAEjD,GAAIsG,EAAa,CAChBA,EAAYT,gBAAiB,EACzBa,EAAgB,IAAI1H,EAAY5C,EAAaM,OAAQ,CAACsD,kBAAkBR,EAAYQ,oBACxFt4J,KAAKyO,MAAM,QAASmwJ,GACpB5+J,KAAKm9J,kBAAkB6B,EACxB,CACA,MAED,KAAKtK,EAAaM,OACb6J,EAAkB7+J,KAAKm7J,kBAAkBrD,EAAYQ,mBACzDz/G,EAAa/pC,WAAW,YAAY9O,KAAK+6J,UAAUjD,EAAYQ,mBAE3DuG,IACH7+J,KAAKo/J,gBAAgBP,UACd7+J,KAAKm7J,kBAAkBrD,EAAYQ,oBAG3C,IAAI+G,EAAiB,IAAI/H,EAAY5C,EAAaO,QAAS,CAACqD,kBAAkBR,EAAYQ,oBAC1Ft4J,KAAKm9J,kBAAkBkC,GAGvB,MAED,KAAK3K,EAAaO,QACb2J,EAAc5+J,KAAKk7J,cAAcpD,EAAYQ,0BAC1Ct4J,KAAKk7J,cAAcpD,EAAYQ,mBACtCz/G,EAAa/pC,WAAW,QAAQ9O,KAAK+6J,UAAUjD,EAAYQ,mBACvDt4J,KAAK67J,oBACR77J,KAAK67J,mBAAmB+C,EAAYnG,gBACrC,MAED,KAAK/D,EAAaS,OACbyJ,EAAc5+J,KAAKk7J,cAAcpD,EAAYQ,mBAC7CsG,IACAA,EAAY3B,SACd2B,EAAY3B,QAAQ3+J,SAEa,MAA9Bw5J,EAAYG,WAAW,GACtB2G,EAAYr3H,WACfq3H,EAAYr3H,UAAUuwH,EAAYG,YAEzB2G,EAAYt3H,WACtBs3H,EAAYt3H,UAAUwwH,EAAYG,mBAE5Bj4J,KAAKk7J,cAAcpD,EAAYQ,oBAEvC,MAED,KAAK5D,EAAaW,SACbuJ,EAAc5+J,KAAKk7J,cAAcpD,EAAYQ,mBAC7CsG,IACCA,EAAY3B,SACf2B,EAAY3B,QAAQ3+J,SACjBsgK,EAAYtzJ,UACfszJ,EAAYtzJ,kBAENtL,KAAKk7J,cAAcpD,EAAYQ,oBAGvC,MAED,KAAK5D,EAAaa,SAEjBv1J,KAAKg8J,WAAWrY,QAChB,MAED,KAAK+Q,EAAac,WAEjBx1J,KAAK06J,cAAcr9E,EAAMw5E,0BAA0B7yJ,KAAO4xJ,EAAOv4E,EAAMw5E,0BAA2B,CAACiB,EAAYv5J,QAC/G,MAED,QACCyB,KAAK06J,cAAcr9E,EAAMw5E,0BAA0B7yJ,KAAO4xJ,EAAOv4E,EAAMw5E,0BAA2B,CAACiB,EAAYv5J,QAEjH,CAAE,MAAO2E,GACR,IAAIy7J,EAAgD,aAAjCz7J,EAAM2J,eAAe,SAA2B3J,EAAM+B,MAAMhF,WAAa,2BAE5F,YADAD,KAAK06J,cAAcr9E,EAAM84E,eAAenyJ,KAAO4xJ,EAAOv4E,EAAM84E,eAAgB,CAACjzJ,EAAMnD,QAAQ4+J,IAE5F,CACD,EAGA9D,EAAW17J,UAAU4+J,iBAAmB,SAAU76J,GAC5ClD,KAAKm8J,eACTn8J,KAAK06J,cAAcr9E,EAAMg5E,aAAaryJ,KAAO4xJ,EAAOv4E,EAAMg5E,aAAc,CAACnzJ,EAAM9I,OAEjF,EAGAygK,EAAW17J,UAAU6+J,iBAAmB,WAClCh+J,KAAKm8J,eACTn8J,KAAK06J,cAAcr9E,EAAMi5E,aAAatyJ,KAAO4xJ,EAAOv4E,EAAMi5E,cAE5D,EAGAuE,EAAW17J,UAAUm/J,aAAe,SAAUxG,GAE7C,GAAwB,GAApBA,EAAYv5J,KAAW,CAC1B,IAAI+gK,EAAoBt/J,KAAK28J,WAAW7E,EAAa,YACrD93J,KAAKw6J,OAAO,sBAAuB8E,EACpC,MACKt/J,KAAKw6J,OAAO,sBAAuB1C,GAExC93J,KAAKy6J,OAAO97J,KAAKm5J,EAAY5vJ,UAE7BlI,KAAKg8J,WAAWrY,OACjB,EAGAkX,EAAW17J,UAAUggK,gBAAkB,SAAUrH,GAChD,OAAOA,EAAYW,eAAeP,KAClC,IAAK,YACL,KAAK,EACJl4J,KAAKo/J,gBAAgBtH,GACrB,MAED,KAAK,EACJ,IAAIyH,EAAgB,IAAIjI,EAAY5C,EAAaI,OAAQ,CAACwD,kBAAkBR,EAAYQ,oBACxFt4J,KAAKm9J,kBAAkBoC,GACvBv/J,KAAKo/J,gBAAgBtH,GACrB,MAED,KAAK,EACJ93J,KAAKm7J,kBAAkBrD,EAAYQ,mBAAqBR,EACxD93J,KAAKyO,MAAM,YAAaqpJ,GACxB,IAAI0H,EAAgB,IAAIlI,EAAY5C,EAAaK,OAAQ,CAACuD,kBAAkBR,EAAYQ,oBACxFt4J,KAAKm9J,kBAAkBqC,GAEvB,MAED,QACC,MAAMv7J,MAAM,eAAiB6zJ,EAAYW,eAAeP,KAE1D,EAGA2C,EAAW17J,UAAUigK,gBAAkB,SAAUtH,GAC5C93J,KAAK4mC,kBACR5mC,KAAK4mC,iBAAiBkxH,EAAYW,eAEpC,EAOAoC,EAAW17J,UAAU+/J,WAAa,SAAUO,EAAWj8F,GAElDxjE,KAAK47J,aACR57J,KAAK47J,YAAY6D,EAAWj8F,EAC9B,EAOAq3F,EAAW17J,UAAUugK,WAAa,WACjC1/J,KAAKw6J,OAAO,qBACPx6J,KAAKw7J,YACTx7J,KAAKm8J,eAAgB,EACrBn8J,KAAKg8J,WAAW19J,SAChB0B,KAAKi8J,cAAc39J,SACf0B,KAAKk8J,mBAAqB,MAC7Bl8J,KAAKk8J,mBAA+C,EAA1Bl8J,KAAKk8J,oBAC5Bl8J,KAAK07J,eAAekB,MACvB58J,KAAK27J,UAAY,EACjB37J,KAAK68J,WAAW78J,KAAK07J,eAAekB,KAAK,KAEzC58J,KAAK68J,WAAW78J,KAAKwjE,KAGxB,EASAq3F,EAAW17J,UAAUu7J,cAAgB,SAAUr0H,EAAWs5H,GAGzD,GAFA3/J,KAAKw6J,OAAO,uBAAwBn0H,EAAWs5H,QAE7BjiK,IAAd2oC,GAA2BrmC,KAAKm8J,cAEnCn8J,KAAKo8J,kBAAoB,IAAIzB,EAAQ36J,KAAMA,KAAKk8J,mBAAoBl8J,KAAK0/J,iBA2B1E,GAvBA1/J,KAAKg8J,WAAW19J,SAChB0B,KAAKi8J,cAAc39J,SACf0B,KAAK+7J,kBACR/7J,KAAK+7J,gBAAgBz9J,SACrB0B,KAAK+7J,gBAAkB,MAIxB/7J,KAAKg7J,WAAa,GAClBh7J,KAAKi7J,oBAAsB,GAC3Bj7J,KAAKo7J,iBAAmB,CAAC,EAErBp7J,KAAKy6J,SAERz6J,KAAKy6J,OAAO3qH,OAAS,KACrB9vC,KAAKy6J,OAAOzqH,UAAY,KACxBhwC,KAAKy6J,OAAOz9J,QAAU,KACtBgD,KAAKy6J,OAAOlsH,QAAU,KACS,IAA3BvuC,KAAKy6J,OAAO99J,YACfqD,KAAKy6J,OAAOjsH,eACNxuC,KAAKy6J,QAGTz6J,KAAK07J,eAAekB,MAAQ58J,KAAK27J,UAAY37J,KAAK07J,eAAekB,KAAKh8J,OAAO,EAEhFZ,KAAK27J,YACL37J,KAAK68J,WAAW78J,KAAK07J,eAAekB,KAAK58J,KAAK27J,iBAS9C,QANkBj+J,IAAd2oC,IACHA,EAAYg3C,EAAMy4E,GAAG9xJ,KACrB27J,EAAY/J,EAAOv4E,EAAMy4E,KAItB91J,KAAKw7J,WAMR,GALAx7J,KAAKw7J,WAAY,EAEbx7J,KAAKinC,kBACRjnC,KAAKinC,iBAAiB,CAACZ,UAAUA,EAAWqtB,aAAaisG,EAAWF,UAAUz/J,KAAK07J,eAAe+D,UAAWj8F,IAAIxjE,KAAK86J,SAEnHz0H,IAAcg3C,EAAMy4E,GAAG9xJ,MAAQhE,KAAK07J,eAAe+D,UAItD,OAFAz/J,KAAKk8J,mBAAqB,OAC1Bl8J,KAAK0/J,kBAKkC,IAApC1/J,KAAK07J,eAAer0H,cAAiE,IAA5CrnC,KAAK07J,eAAekE,qBAChE5/J,KAAKw6J,OAAO,6CACZx6J,KAAK07J,eAAer0H,YAAc,EAC9BrnC,KAAK07J,eAAekB,MACvB58J,KAAK27J,UAAY,EACjB37J,KAAK68J,WAAW78J,KAAK07J,eAAekB,KAAK,KAEzC58J,KAAK68J,WAAW78J,KAAKwjE,MAEbxjE,KAAK07J,eAAen0H,WAC7BvnC,KAAK07J,eAAen0H,UAAU,CAACy1H,kBAAkBh9J,KAAK07J,eAAesB,kBAAmB32H,UAAUA,EAAWqtB,aAAaisG,GAI9H,EAGA9E,EAAW17J,UAAUq7J,OAAS,WAE7B,GAAIx6J,KAAK87J,cAAe,CACvB,IAAI9zJ,EAAOrF,MAAMxD,UAAUqG,MAAMpB,KAAK6D,WACtC,IAAK,IAAIvH,KAAKsH,EAEU,qBAAZA,EAAKtH,IACfsH,EAAK5G,OAAOV,EAAG,EAAGoG,KAAKI,UAAUc,EAAKtH,KAExC,IAAImiC,EAAS76B,EAAKQ,KAAK,IACvBxI,KAAK87J,cAAe,CAAC+D,SAAU,QAAS9/J,QAAS8iC,GAClD,CAGA,GAA2B,OAAtB7iC,KAAKw8J,aACJ,CAAI97J,EAAI,EAAb,IAAK,IAAW2gB,EAAMpZ,UAAUrH,OAAQF,EAAI2gB,EAAK3gB,IAC3CV,KAAKw8J,aAAa57J,QAAUZ,KAAKy8J,oBACrCz8J,KAAKw8J,aAAa15J,QAET,IAANpC,GAC6B,qBAAjBuH,UAAUvH,GADbV,KAAKw8J,aAAat7J,KAAK+G,UAAUvH,IAEzCV,KAAKw8J,aAAat7J,KAAK,KAAK4F,KAAKI,UAAUe,UAAUvH,IAN3BE,CASlC,EAGAi6J,EAAW17J,UAAUw9J,WAAa,SAAUmD,EAAaC,GACxD,IAAIC,EAAoB,CAAC,EACzB,IAAK,IAAIz0G,KAAQu0G,EACZA,EAAYjzJ,eAAe0+C,KAE7By0G,EAAkBz0G,GADfA,GAAQw0G,EACe,SAEAD,EAAYv0G,IAGzC,OAAOy0G,CACR,EA2EA,IAAItgG,EAAS,SAAUp1D,EAAMI,EAAM7B,EAAMi8B,GAExC,IAAI0+B,EAEJ,GAAoB,kBAATl5D,EACV,MAAM,IAAIrG,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQvrJ,EAAM,UAE1D,GAAwB,GAApBrC,UAAUrH,OAAa,CAG1BkkC,EAAWp6B,EACX84D,EAAMl5D,EACN,IAAIjB,EAAQm6D,EAAIn6D,MAAM,sDACtB,IAAIA,EAKH,MAAM,IAAIpF,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAiB,CAACpsJ,EAAK,UAJpDA,EAAOjB,EAAM,IAAIA,EAAM,GACvBqB,EAAOkvC,SAASvwC,EAAM,IACtBR,EAAOQ,EAAM,EAIf,KAAO,CAKN,GAJwB,GAApBpB,UAAUrH,SACbkkC,EAAWj8B,EACXA,EAAO,SAEY,kBAAT6B,GAAqBA,EAAO,EACtC,MAAM,IAAIzG,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQnrJ,EAAM,UAC1D,GAAoB,kBAAT7B,EACV,MAAM,IAAI5E,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQhtJ,EAAM,UAE1D,IAAIo3J,GAA0C,IAAvB31J,EAAKzN,QAAQ,MAAmC,MAApByN,EAAK9E,MAAM,EAAE,IAAiC,MAAnB8E,EAAK9E,OAAO,GAC1Fg+D,EAAM,SAASy8F,EAAgB,IAAI31J,EAAK,IAAIA,GAAM,IAAII,EAAK7B,CAC5D,CAGA,IADA,IAAIq3J,EAAiB,EACZx/J,EAAI,EAAGA,EAAEokC,EAASlkC,OAAQF,IAAK,CACvC,IAAIqN,EAAW+2B,EAAS33B,WAAWzM,GAC/B,OAAUqN,GAAYA,GAAY,OACrCrN,IAEDw/J,GACD,CACA,GAAwB,kBAAbp7H,GAAyBo7H,EAAiB,MACpD,MAAM,IAAIj8J,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAAC5xH,EAAU,cAE3D,IAAI6B,EAAS,IAAIk0H,EAAWr3F,EAAKl5D,EAAMI,EAAM7B,EAAMi8B,GAGnD/+B,OAAOsc,iBAAiBriB,KAAK,CAC5B,KAAO,CACNwc,IAAK,WAAa,OAAOlS,CAAM,EAC/BmT,IAAK,WAAa,MAAM,IAAIxZ,MAAM2xJ,EAAOv4E,EAAMs5E,uBAAyB,GAEzE,KAAO,CACNn6I,IAAK,WAAa,OAAO9R,CAAM,EAC/B+S,IAAK,WAAa,MAAM,IAAIxZ,MAAM2xJ,EAAOv4E,EAAMs5E,uBAAyB,GAEzE,KAAO,CACNn6I,IAAK,WAAa,OAAO3T,CAAM,EAC/B4U,IAAK,WAAa,MAAM,IAAIxZ,MAAM2xJ,EAAOv4E,EAAMs5E,uBAAyB,GAEzE,IAAM,CACLn6I,IAAK,WAAa,OAAOgnD,CAAK,EAC9B/lD,IAAK,WAAa,MAAM,IAAIxZ,MAAM2xJ,EAAOv4E,EAAMs5E,uBAAyB,GAEzE,SAAW,CACVn6I,IAAK,WAAa,OAAOmqB,EAAO7B,QAAU,EAC1CrnB,IAAK,WAAa,MAAM,IAAIxZ,MAAM2xJ,EAAOv4E,EAAMs5E,uBAAyB,GAEzE,YAAc,CACbn6I,IAAK,WAAa,OAAOmqB,EAAOi1H,WAAa,EAC7Cn+I,IAAK,SAAS0iJ,GACb,GAA8B,oBAAnBA,EAGV,MAAM,IAAIl8J,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQsK,EAAgB,iBAFnEx5H,EAAOi1H,YAAcuE,CAGvB,GAED,uBAAyB,CACxB3jJ,IAAK,WAAa,OAAOmqB,EAAO01H,sBAAwB,EACxD5+I,IAAK,SAAS2iJ,GACbz5H,EAAO01H,uBAAyB+D,CACjC,GAED,uBAAyB,CACxB5jJ,IAAK,WAAa,OAAOmqB,EAAO21H,sBAAwB,EACxD7+I,IAAK,SAAS4iJ,GACb15H,EAAO21H,uBAAyB+D,CACjC,GAED,iBAAmB,CAClB7jJ,IAAK,WAAa,OAAOmqB,EAAOM,gBAAkB,EAClDxpB,IAAK,SAAS6iJ,GACb,GAAmC,oBAAxBA,EAGV,MAAM,IAAIr8J,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQyK,EAAqB,sBAFxE35H,EAAOM,iBAAmBq5H,CAG5B,GAED,mBAAqB,CACpB9jJ,IAAK,WAAa,OAAOmqB,EAAOk1H,kBAAoB,EACpDp+I,IAAK,SAAS8iJ,GACb,GAAqC,oBAA1BA,EAGV,MAAM,IAAIt8J,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQ0K,EAAuB,wBAF1E55H,EAAOk1H,mBAAqB0E,CAG9B,GAED,iBAAmB,CAClB/jJ,IAAK,WAAa,OAAOmqB,EAAOC,gBAAkB,EAClDnpB,IAAK,SAAS+iJ,GACb,GAAmC,oBAAxBA,EAGV,MAAM,IAAIv8J,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQ2K,EAAqB,sBAFxE75H,EAAOC,iBAAmB45H,CAG5B,GAED,MAAQ,CACPhkJ,IAAK,WAAa,OAAOmqB,EAAOm1H,aAAe,EAC/Cr+I,IAAK,SAASgjJ,GACb,GAAoB,oBAAVA,EAGT,MAAM,IAAIx8J,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQ4K,EAAO,aAF1D95H,EAAOm1H,cAAgB2E,CAIzB,KAkEFzgK,KAAKknC,QAAU,SAAUw0H,GAuBxB,GAtBAA,EAAiBA,GAAkB,CAAC,EACpCjG,EAASiG,EAAiB,CAACj/J,QAAQ,SAClCg9J,SAAS,SACTv+J,SAAS,SACTq+J,YAAY,SACZQ,kBAAkB,SAClBD,aAAa,UACb3yH,OAAO,UACP61H,kBAAkB,SAClB11H,UAAU,WACVC,UAAU,WACVm5H,MAAM,SACNC,MAAM,SACNlB,UAAU,UACVp4H,YAAY,SACZu4H,oBAAoB,UACpBhD,KAAM,gBAGkCl/J,IAArCg+J,EAAe3B,oBAClB2B,EAAe3B,kBAAoB,IAEhC2B,EAAer0H,YAAc,GAAKq0H,EAAer0H,YAAc,EAClE,MAAM,IAAIpjC,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACgF,EAAer0H,YAAa,gCAW7E,QARmC3pC,IAA/Bg+J,EAAer0H,aAClBq0H,EAAekE,qBAAsB,EACrClE,EAAer0H,YAAc,GAE7Bq0H,EAAekE,qBAAsB,OAINliK,IAA5Bg+J,EAAexgK,eAAsDwC,IAA5Bg+J,EAAejC,SAC3D,MAAM,IAAIx1J,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACgF,EAAexgK,SAAU,6BAE1E,GAAIwgK,EAAenC,YAAa,CAC/B,KAAMmC,EAAenC,uBAAuB3/F,GAC3C,MAAM,IAAI31D,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,CAAC6F,EAAenC,YAAa,gCAKzE,GAFAmC,EAAenC,YAAYqH,cAAgB,KAEe,qBAA/ClF,EAAenC,YAAY1yH,gBACrC,MAAM,IAAI5iC,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQ6F,EAAenC,YAAY1yH,gBAAiB,+CACjG,CAGA,GAF2C,qBAAhC60H,EAAe5B,eACzB4B,EAAe5B,cAAe,GAC3B4B,EAAegF,MAAO,CAEzB,KAAMhF,EAAegF,iBAAiB/9J,OACrC,MAAM,IAAIsB,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACgF,EAAegF,MAAO,0BACvE,GAAIhF,EAAegF,MAAM9/J,OAAQ,EAChC,MAAM,IAAIqD,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACgF,EAAegF,MAAO,0BAGvE,IADA,IAAIG,GAAY,EACPngK,EAAI,EAAGA,EAAEg7J,EAAegF,MAAM9/J,OAAQF,IAAK,CACnD,GAAuC,kBAA5Bg7J,EAAegF,MAAMhgK,GAC/B,MAAM,IAAIuD,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQ6F,EAAegF,MAAMhgK,GAAI,wBAAwBA,EAAE,OACvG,GAAI,qDAAqDgJ,KAAKgyJ,EAAegF,MAAMhgK,KAClF,GAAU,IAANA,EACHmgK,GAAY,OACN,IAAKA,EACX,MAAM,IAAI58J,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACgF,EAAegF,MAAMhgK,GAAI,wBAAwBA,EAAE,YAE9F,GAAImgK,EACV,MAAM,IAAI58J,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACgF,EAAegF,MAAMhgK,GAAI,wBAAwBA,EAAE,MAErG,CAEA,GAAKmgK,EAqBJnF,EAAekB,KAAOlB,EAAegF,UArBtB,CACf,IAAKhF,EAAeiF,MACnB,MAAM,IAAI18J,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACgF,EAAeiF,MAAO,0BACvE,KAAMjF,EAAeiF,iBAAiBh+J,OACrC,MAAM,IAAIsB,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACgF,EAAeiF,MAAO,0BACvE,GAAIjF,EAAegF,MAAM9/J,SAAW86J,EAAeiF,MAAM//J,OACxD,MAAM,IAAIqD,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACgF,EAAeiF,MAAO,0BAEvEjF,EAAekB,KAAO,GAEtB,IAASl8J,EAAI,EAAGA,EAAEg7J,EAAegF,MAAM9/J,OAAQF,IAAK,CACnD,GAAuC,kBAA5Bg7J,EAAeiF,MAAMjgK,IAAmBg7J,EAAeiF,MAAMjgK,GAAK,EAC5E,MAAM,IAAIuD,MAAM2xJ,EAAOv4E,EAAMw4E,aAAc,QAAQ6F,EAAeiF,MAAMjgK,GAAI,wBAAwBA,EAAE,OACvG,IAAI4J,EAAOoxJ,EAAegF,MAAMhgK,GAC5BgK,EAAOgxJ,EAAeiF,MAAMjgK,GAE5BogK,GAA+B,IAAvBx2J,EAAKzN,QAAQ,KACzB2mE,EAAM,SAASs9F,EAAK,IAAIx2J,EAAK,IAAIA,GAAM,IAAII,EAAK7B,EAChD6yJ,EAAekB,KAAK17J,KAAKsiE,EAC1B,CACD,CAGD,CAEA78B,EAAOO,QAAQw0H,EAChB,EAkCA17J,KAAKvB,UAAY,SAAUyiB,EAAQ47I,GAClC,GAAsB,kBAAX57I,GAAuBA,EAAO9U,cAAgBzJ,MACxD,MAAM,IAAIsB,MAAM,oBAAoBid,GAQrC,GAPA47I,EAAmBA,GAAoB,CAAC,EACxCrH,EAASqH,EAAmB,CAAC5E,IAAI,SAChC8E,kBAAkB,SAClB11H,UAAU,WACVC,UAAU,WACV9qC,QAAQ,WAELqgK,EAAiBrgK,UAAYqgK,EAAiBv1H,UACjD,MAAM,IAAItjC,MAAM,kEACjB,GAAoC,qBAAzB64J,EAAiB5E,KAAkD,IAAzB4E,EAAiB5E,KAAsC,IAAzB4E,EAAiB5E,KAAsC,IAAzB4E,EAAiB5E,IACjI,MAAM,IAAIj0J,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACoG,EAAiB5E,IAAK,0BACvEvxH,EAAOloC,UAAUyiB,EAAQ47I,EAC1B,EA8BA98J,KAAKtF,YAAc,SAAUwmB,EAAQk8I,GACpC,GAAsB,kBAAXl8I,GAAuBA,EAAO9U,cAAgBzJ,MACxD,MAAM,IAAIsB,MAAM,oBAAoBid,GAOrC,GANAk8I,EAAqBA,GAAsB,CAAC,EAC5C3H,EAAS2H,EAAqB,CAACJ,kBAAkB,SAChD11H,UAAU,WACVC,UAAU,WACV9qC,QAAQ,WAEL2gK,EAAmB3gK,UAAY2gK,EAAmB71H,UACrD,MAAM,IAAItjC,MAAM,oEACjB0iC,EAAOjsC,YAAYwmB,EAAQk8I,EAC5B,EAwBAp9J,KAAKrB,KAAO,SAAU6lC,EAAM76B,EAAQuuJ,EAAIK,GACvC,IAAIx4J,EAEJ,GAAwB,IAArBkI,UAAUrH,OACZ,MAAM,IAAIqD,MAAM,2BAEX,GAAuB,GAApBgE,UAAUrH,OAAa,CAE/B,KAAM4jC,aAAiBo1B,IAA8B,kBAAVp1B,EAC1C,MAAM,IAAIvgC,MAAM,2BAA4BugC,GAG7C,GADAzkC,EAAUykC,EAC6B,qBAA5BzkC,EAAQ8mC,gBAClB,MAAM,IAAI5iC,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAiB,CAAC32J,EAAQ8mC,gBAAgB,6BACxEF,EAAOhoC,KAAKoB,EAEb,MAECA,EAAU,IAAI65D,EAAQjwD,GACtB5J,EAAQ8mC,gBAAkBrC,EACvBv8B,UAAUrH,QAAU,IACtBb,EAAQm4J,IAAMA,GACZjwJ,UAAUrH,QAAU,IACtBb,EAAQw4J,SAAWA,GACpB5xH,EAAOhoC,KAAKoB,EAEd,EAyBAC,KAAK2nC,QAAU,SAASnD,EAAM76B,EAAQuuJ,EAAIK,GACzC,IAAIx4J,EAEJ,GAAwB,IAArBkI,UAAUrH,OACZ,MAAM,IAAIqD,MAAM,2BAEX,GAAuB,GAApBgE,UAAUrH,OAAa,CAE/B,KAAM4jC,aAAiBo1B,IAA8B,kBAAVp1B,EAC1C,MAAM,IAAIvgC,MAAM,2BAA4BugC,GAG7C,GADAzkC,EAAUykC,EAC6B,qBAA5BzkC,EAAQ8mC,gBAClB,MAAM,IAAI5iC,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAiB,CAAC32J,EAAQ8mC,gBAAgB,6BACxEF,EAAOhoC,KAAKoB,EAEb,MAECA,EAAU,IAAI65D,EAAQjwD,GACtB5J,EAAQ8mC,gBAAkBrC,EACvBv8B,UAAUrH,QAAU,IACtBb,EAAQm4J,IAAMA,GACZjwJ,UAAUrH,QAAU,IACtBb,EAAQw4J,SAAWA,GACpB5xH,EAAOhoC,KAAKoB,EAEd,EASAC,KAAKynC,WAAa,WACjBd,EAAOc,YACR,EASAznC,KAAKu9J,YAAc,WAClB,OAAO52H,EAAO42H,aACf,EAQAv9J,KAAKw9J,WAAa,WACjB72H,EAAO62H,YACR,EAQAx9J,KAAKy9J,UAAY,WAChB92H,EAAO82H,WACR,EAEAz9J,KAAK0nC,YAAc,WAClB,OAAOf,EAAO60H,SACf,CACD,EAoCI5hG,EAAU,SAAUmnG,GACvB,IAAIp3J,EAUAk9B,EATJ,KAA6B,kBAAfk6H,GACfA,aAAsB10J,aACrBA,YAAYC,OAAOy0J,MAAiBA,aAAsBr7F,WAIzD,MAAOkwF,EAAOv4E,EAAMq5E,iBAAkB,CAACqK,EAAY,eAFnDp3J,EAAUo3J,EAMX,IAAI7I,EAAM,EACNK,GAAW,EACXC,GAAY,EAEhBzyJ,OAAOsc,iBAAiBriB,KAAK,CAC5B,cAAgB,CACfiiB,YAAa,EACbzF,IAAM,WACL,MAAuB,kBAAZ7S,EACHA,EAEA0uJ,EAAU1uJ,EAAS,EAAGA,EAAQ/I,OACvC,GAED,aAAe,CACdqhB,YAAY,EACZzF,IAAK,WACJ,GAAuB,kBAAZ7S,EAAsB,CAChC,IAAIlC,EAAS,IAAI4E,YAAY2sJ,EAAWrvJ,IACpCiwJ,EAAa,IAAI96G,WAAWr3C,GAGhC,OAFAoxJ,EAAalvJ,EAASiwJ,EAAY,GAE3BA,CACR,CACC,OAAOjwJ,CAET,GAED,gBAAkB,CACjBsY,YAAY,EACZzF,IAAK,WAAa,OAAOqqB,CAAiB,EAC1CppB,IAAK,SAASujJ,GACb,GAAkC,kBAAvBA,EAGV,MAAM,IAAI/8J,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACsK,EAAoB,wBAFpEn6H,EAAkBm6H,CAGpB,GAED,IAAM,CACL/+I,YAAY,EACZzF,IAAK,WAAa,OAAO07I,CAAK,EAC9Bz6I,IAAK,SAASwjJ,GACb,GAAe,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAGnC,MAAM,IAAIh9J,MAAM,oBAAoBg9J,GAFpC/I,EAAM+I,CAGR,GAED,SAAW,CACVh/I,YAAY,EACZzF,IAAK,WAAa,OAAO+7I,CAAU,EACnC96I,IAAK,SAASyjJ,GACb,GAA2B,mBAAhBA,EAGV,MAAM,IAAIj9J,MAAM2xJ,EAAOv4E,EAAMq5E,iBAAkB,CAACwK,EAAa,iBAF7D3I,EAAW2I,CAGb,GAED,MAAQ,CACPj/I,YAAY,EACZzF,IAAK,WAAa,OAAOqqB,CAAiB,EAC1CppB,IAAK,SAAS0jJ,GAAWt6H,EAAgBs6H,CAAS,GAEnD,UAAY,CACXl/I,YAAY,EACZzF,IAAK,WAAa,OAAOg8I,CAAW,EACpC/6I,IAAK,SAAS2jJ,GAAe5I,EAAU4I,CAAa,IAGvD,EAGA,MAAO,CACN1hG,OAAQA,EACR9F,QAASA,EAGV,CArvEc,CAqvEM,qBAAX,EAAA1/C,EAAyB,EAAAA,EAAyB,qBAAT6J,KAAuBA,KAAyB,qBAAXlZ,OAAyBA,OAAS,CAAC,GAC3H,OAAO4pJ,CACR,G,oICx1EI4M,EAAkB,CACpBC,YAAa,aACbC,SAAU,WACVC,aAAc,cACdC,UAAW,WACXv2I,OAAQ,SACRw2I,WAAY,YACZC,GAAI,KACJC,UAAW,KACXC,sBAAuB,MACvBC,aAAc,KACdC,yBAA0B,MAC1BC,QAAS,UACTC,QAAS,SACTC,YAAa,YACbC,YAAa,aACbC,WAAY,aAGVC,EAAiB,CACnBC,IAAK,MACLC,GAAI,MAGN,SAASC,EAA2B7vJ,EAAG8vJ,GAAkB,IAAIC,EAAuB,qBAAX5vJ,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAAe,IAAK+vJ,EAAI,CAAE,GAAI//J,MAAM4C,QAAQoN,KAAO+vJ,EAAKC,EAA4BhwJ,KAAO8vJ,GAAkB9vJ,GAAyB,kBAAbA,EAAE/R,OAAqB,CAAM8hK,IAAI/vJ,EAAI+vJ,GAAI,IAAIhiK,EAAI,EAAOwhJ,EAAI,WAAc,EAAG,MAAO,CAAEptI,EAAGotI,EAAGtvI,EAAG,WAAe,OAAIlS,GAAKiS,EAAE/R,OAAe,CAAEpG,MAAM,GAAe,CAAEA,MAAM,EAAO0B,MAAOyW,EAAEjS,KAAQ,EAAGuG,EAAG,SAAWilC,GAAM,MAAMA,CAAI,EAAGlyB,EAAGkoI,EAAK,CAAE,MAAM,IAAI9hJ,UAAU,wIAA0I,CAAE,IAA6CjE,EAAzCymK,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAE/tJ,EAAG,WAAe4tJ,EAAKA,EAAGt+J,KAAKuO,EAAI,EAAGC,EAAG,WAAe,IAAIkH,EAAO4oJ,EAAGxvJ,OAAsC,OAA9B0vJ,EAAmB9oJ,EAAKtf,KAAasf,CAAM,EAAG7S,EAAG,SAAW67J,GAAOD,GAAS,EAAM1mK,EAAM2mK,CAAK,EAAG9oJ,EAAG,WAAe,IAAW4oJ,GAAoC,MAAhBF,EAAG,WAAmBA,EAAG,WAAa,CAAE,QAAU,GAAIG,EAAQ,MAAM1mK,CAAK,CAAE,EAAK,CAC3+B,SAASwmK,EAA4BhwJ,EAAGowJ,GAAU,GAAKpwJ,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOqwJ,EAAkBrwJ,EAAGowJ,GAAS,IAAInwJ,EAAI7M,OAAO5G,UAAUc,SAASmE,KAAKuO,GAAGnN,MAAM,GAAI,GAAiE,MAAnD,WAANoN,GAAkBD,EAAEvG,cAAawG,EAAID,EAAEvG,YAAYzH,MAAgB,QAANiO,GAAqB,QAANA,EAAoBjQ,MAAM49B,KAAK5tB,GAAc,cAANC,GAAqB,2CAA2ClJ,KAAKkJ,GAAWowJ,EAAkBrwJ,EAAGowJ,QAAzG,CAA7O,CAA+V,CAC/Z,SAASC,EAAkBz3J,EAAKmW,IAAkB,MAAPA,GAAeA,EAAMnW,EAAI3K,UAAQ8gB,EAAMnW,EAAI3K,QAAQ,IAAK,IAAIF,EAAI,EAAGuiK,EAAO,IAAItgK,MAAM+e,GAAMhhB,EAAIghB,EAAKhhB,IAAKuiK,EAAKviK,GAAK6K,EAAI7K,GAAI,OAAOuiK,CAAM,CAClL,IAAIC,EAAgB,CAClBhiJ,OAAQ,SAAgBhlB,EAAOu4B,EAAQ0uI,EAAaC,EAAiBC,GACnE,IAAIC,EAAgB,GACpB,IAAKpnK,EACH,OAAOonK,EAET,IACEC,EADEC,EAAYhB,EAA2BtmK,GAE3C,IACE,IAAKsnK,EAAU1uJ,MAAOyuJ,EAAQC,EAAU5wJ,KAAKpY,MAAO,CAClD,IAAIsW,EAAOyyJ,EAAMrnK,MACjB,GAAoB,kBAAT4U,GACT,GAAI9Q,KAAKkpG,QAAQk6D,GAAiBtyJ,EAAMqyJ,EAAaE,GAAe,CAClEC,EAAcpiK,KAAK4P,GACnB,QACF,MACK,CACL,IACE2yJ,EADEC,EAAalB,EAA2B/tI,GAE5C,IACE,IAAKivI,EAAW5uJ,MAAO2uJ,EAASC,EAAW9wJ,KAAKpY,MAAO,CACrD,IAAIsgF,EAAQ2oF,EAAOvnK,MACfynK,EAAa,KAAYC,iBAAiB9yJ,EAAMgqE,GACpD,GAAI96E,KAAKkpG,QAAQk6D,GAAiBO,EAAYR,EAAaE,GAAe,CACxEC,EAAcpiK,KAAK4P,GACnB,KACF,CACF,CACF,CAAE,MAAO3U,GACPunK,EAAWz8J,EAAE9K,EACf,CAAE,QACAunK,EAAW1pJ,GACb,CACF,CACF,CACF,CAAE,MAAO7d,GACPqnK,EAAUv8J,EAAE9K,EACd,CAAE,QACAqnK,EAAUxpJ,GACZ,CACA,OAAOspJ,CACT,EACAp6D,QAAS,CACPrzB,WAAY,SAAoB35E,EAAOglB,EAAQmiJ,GAC7C,QAAe3lK,IAAXwjB,GAAmC,OAAXA,GAA8B,KAAXA,EAC7C,OAAO,EAET,QAAcxjB,IAAVxB,GAAiC,OAAVA,EACzB,OAAO,EAET,IAAIinK,EAAc,KAAYU,cAAc3iJ,EAAOjhB,YAAY6jK,kBAAkBT,GAC7EU,EAAc,KAAYF,cAAc3nK,EAAM+D,YAAY6jK,kBAAkBT,GAChF,OAAOU,EAAYv+J,MAAM,EAAG29J,EAAYviK,UAAYuiK,CACtD,EACAa,SAAU,SAAkB9nK,EAAOglB,EAAQmiJ,GACzC,QAAe3lK,IAAXwjB,GAAmC,OAAXA,GAA8B,KAAXA,EAC7C,OAAO,EAET,QAAcxjB,IAAVxB,GAAiC,OAAVA,EACzB,OAAO,EAET,IAAIinK,EAAc,KAAYU,cAAc3iJ,EAAOjhB,YAAY6jK,kBAAkBT,GAC7EU,EAAc,KAAYF,cAAc3nK,EAAM+D,YAAY6jK,kBAAkBT,GAChF,OAA6C,IAAtCU,EAAYlnK,QAAQsmK,EAC7B,EACAc,YAAa,SAAqB/nK,EAAOglB,EAAQmiJ,GAC/C,QAAe3lK,IAAXwjB,GAAmC,OAAXA,GAA8B,KAAXA,EAC7C,OAAO,EAET,QAAcxjB,IAAVxB,GAAiC,OAAVA,EACzB,OAAO,EAET,IAAIinK,EAAc,KAAYU,cAAc3iJ,EAAOjhB,YAAY6jK,kBAAkBT,GAC7EU,EAAc,KAAYF,cAAc3nK,EAAM+D,YAAY6jK,kBAAkBT,GAChF,OAA6C,IAAtCU,EAAYlnK,QAAQsmK,EAC7B,EACA1nF,SAAU,SAAkBv/E,EAAOglB,EAAQmiJ,GACzC,QAAe3lK,IAAXwjB,GAAmC,OAAXA,GAA8B,KAAXA,EAC7C,OAAO,EAET,QAAcxjB,IAAVxB,GAAiC,OAAVA,EACzB,OAAO,EAET,IAAIinK,EAAc,KAAYU,cAAc3iJ,EAAOjhB,YAAY6jK,kBAAkBT,GAC7EU,EAAc,KAAYF,cAAc3nK,EAAM+D,YAAY6jK,kBAAkBT,GAChF,OAAsF,IAA/EU,EAAYlnK,QAAQsmK,EAAaY,EAAYnjK,OAASuiK,EAAYviK,OAC3E,EACA05H,OAAQ,SAAgBp+H,EAAOglB,EAAQmiJ,GACrC,YAAe3lK,IAAXwjB,GAAmC,OAAXA,GAA8B,KAAXA,QAGjCxjB,IAAVxB,GAAiC,OAAVA,IAGvBA,EAAMgS,SAAWgT,EAAOhT,QAAgBhS,EAAMgS,YAAcgT,EAAOhT,UAAsB,KAAY21J,cAAc3nK,EAAM+D,YAAY6jK,kBAAkBT,IAAiB,KAAYQ,cAAc3iJ,EAAOjhB,YAAY6jK,kBAAkBT,GAC7O,EACAa,UAAW,SAAmBhoK,EAAOglB,EAAQmiJ,GAC3C,YAAe3lK,IAAXwjB,GAAmC,OAAXA,GAA8B,KAAXA,SAGjCxjB,IAAVxB,GAAiC,OAAVA,IAGvBA,EAAMgS,SAAWgT,EAAOhT,QAAgBhS,EAAMgS,YAAcgT,EAAOhT,UAAsB,KAAY21J,cAAc3nK,EAAM+D,YAAY6jK,kBAAkBT,IAAiB,KAAYQ,cAAc3iJ,EAAOjhB,YAAY6jK,kBAAkBT,IAC7O,EACA,GAAM,SAAannK,EAAOglB,GACxB,QAAexjB,IAAXwjB,GAAmC,OAAXA,GAAqC,IAAlBA,EAAOtgB,OACpD,OAAO,EAET,IAAK,IAAIF,EAAI,EAAGA,EAAIwgB,EAAOtgB,OAAQF,IACjC,GAAI,KAAY45H,OAAOp+H,EAAOglB,EAAOxgB,IACnC,OAAO,EAGX,OAAO,CACT,EACAyjK,QAAS,SAAiBjoK,EAAOglB,GAC/B,OAAc,MAAVA,GAA+B,MAAbA,EAAO,IAA2B,MAAbA,EAAO,SAGpCxjB,IAAVxB,GAAiC,OAAVA,IAGvBA,EAAMgS,QAAgBgT,EAAO,GAAGhT,WAAahS,EAAMgS,WAAahS,EAAMgS,WAAagT,EAAO,GAAGhT,UAAsBgT,EAAO,IAAMhlB,GAASA,GAASglB,EAAO,GAC/J,EACAkjJ,GAAI,SAAYloK,EAAOglB,GACrB,YAAexjB,IAAXwjB,GAAmC,OAAXA,QAGdxjB,IAAVxB,GAAiC,OAAVA,IAGvBA,EAAMgS,SAAWgT,EAAOhT,QAAgBhS,EAAMgS,UAAYgT,EAAOhT,UAAsBhS,EAAQglB,EACrG,EACAmjJ,IAAK,SAAanoK,EAAOglB,GACvB,YAAexjB,IAAXwjB,GAAmC,OAAXA,QAGdxjB,IAAVxB,GAAiC,OAAVA,IAGvBA,EAAMgS,SAAWgT,EAAOhT,QAAgBhS,EAAMgS,WAAagT,EAAOhT,UAAsBhS,GAASglB,EACvG,EACAojJ,GAAI,SAAYpoK,EAAOglB,GACrB,YAAexjB,IAAXwjB,GAAmC,OAAXA,QAGdxjB,IAAVxB,GAAiC,OAAVA,IAGvBA,EAAMgS,SAAWgT,EAAOhT,QAAgBhS,EAAMgS,UAAYgT,EAAOhT,UAAsBhS,EAAQglB,EACrG,EACAqjJ,IAAK,SAAaroK,EAAOglB,GACvB,YAAexjB,IAAXwjB,GAAmC,OAAXA,QAGdxjB,IAAVxB,GAAiC,OAAVA,IAGvBA,EAAMgS,SAAWgT,EAAOhT,QAAgBhS,EAAMgS,WAAagT,EAAOhT,UAAsBhS,GAASglB,EACvG,EACAsjJ,OAAQ,SAAgBtoK,EAAOglB,GAC7B,YAAexjB,IAAXwjB,GAAmC,OAAXA,QAGdxjB,IAAVxB,GAAiC,OAAVA,GAGpBA,EAAMuoK,iBAAmBvjJ,EAAOujJ,cACzC,EACAC,UAAW,SAAmBxoK,EAAOglB,GACnC,YAAexjB,IAAXwjB,GAAmC,OAAXA,QAGdxjB,IAAVxB,GAAiC,OAAVA,GAGpBA,EAAMuoK,iBAAmBvjJ,EAAOujJ,cACzC,EACAE,WAAY,SAAoBzoK,EAAOglB,GACrC,YAAexjB,IAAXwjB,GAAmC,OAAXA,QAGdxjB,IAAVxB,GAAiC,OAAVA,GAGpBA,EAAMgS,UAAYgT,EAAOhT,SAClC,EACA02J,UAAW,SAAmB1oK,EAAOglB,GACnC,YAAexjB,IAAXwjB,GAAmC,OAAXA,QAGdxjB,IAAVxB,GAAiC,OAAVA,GAGpBA,EAAMgS,UAAYgT,EAAOhT,SAClC,GAEFuE,SAAU,SAAkBoyJ,EAAMnhK,GAChC1D,KAAKkpG,QAAQ27D,GAAQnhK,CACvB,E,kFCnOF,SAASyb,EAAQxM,GAAgC,OAAOwM,EAAU,mBAAqBrM,QAAU,iBAAmBA,OAAOC,SAAW,SAAUJ,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBG,QAAUH,EAAEvG,cAAgB0G,QAAUH,IAAMG,OAAO3T,UAAY,gBAAkBwT,CAAG,EAAGwM,EAAQxM,EAAI,CAC7T,SAASmyJ,EAAev5J,EAAK7K,GAAK,OAAOqkK,EAAgBx5J,IAAQy5J,EAAsBz5J,EAAK7K,IAAMiiK,EAA4Bp3J,EAAK7K,IAAMukK,GAAoB,CAC7J,SAASA,IAAqB,MAAM,IAAI7kK,UAAU,4IAA8I,CAChM,SAASuiK,EAA4BhwJ,EAAGowJ,GAAU,GAAKpwJ,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOqwJ,EAAkBrwJ,EAAGowJ,GAAS,IAAInwJ,EAAI7M,OAAO5G,UAAUc,SAASmE,KAAKuO,GAAGnN,MAAM,GAAI,GAAiE,MAAnD,WAANoN,GAAkBD,EAAEvG,cAAawG,EAAID,EAAEvG,YAAYzH,MAAgB,QAANiO,GAAqB,QAANA,EAAoBjQ,MAAM49B,KAAK5tB,GAAc,cAANC,GAAqB,2CAA2ClJ,KAAKkJ,GAAWowJ,EAAkBrwJ,EAAGowJ,QAAzG,CAA7O,CAA+V,CAC/Z,SAASC,EAAkBz3J,EAAKmW,IAAkB,MAAPA,GAAeA,EAAMnW,EAAI3K,UAAQ8gB,EAAMnW,EAAI3K,QAAQ,IAAK,IAAIF,EAAI,EAAGuiK,EAAO,IAAItgK,MAAM+e,GAAMhhB,EAAIghB,EAAKhhB,IAAKuiK,EAAKviK,GAAK6K,EAAI7K,GAAI,OAAOuiK,CAAM,CAClL,SAAS+B,EAAsBhyJ,EAAGrS,GAAK,IAAIkU,EAAI,MAAQ7B,EAAI,KAAO,oBAAsBF,QAAUE,EAAEF,OAAOC,WAAaC,EAAE,cAAe,GAAI,MAAQ6B,EAAG,CAAE,IAAI5N,EAAG2L,EAAGlS,EAAGokF,EAAG/3E,EAAI,GAAIiN,GAAI,EAAIrH,GAAI,EAAI,IAAM,GAAIjS,GAAKmU,EAAIA,EAAEzQ,KAAK4O,IAAIE,KAAM,IAAMvS,EAAG,CAAE,GAAIoF,OAAO8O,KAAOA,EAAG,OAAQmF,GAAI,CAAI,MAAO,OAASA,GAAK/S,EAAIvG,EAAE0D,KAAKyQ,IAAIra,QAAUuS,EAAE7L,KAAK+F,EAAE/K,OAAQ6Q,EAAEnM,SAAWD,GAAIqZ,GAAI,GAAK,CAAE,MAAOhH,GAAKL,GAAI,EAAIC,EAAII,CAAG,CAAE,QAAU,IAAM,IAAKgH,GAAK,MAAQnF,EAAE,YAAciwE,EAAIjwE,EAAE,YAAa9O,OAAO++E,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAInyE,EAAG,MAAMC,CAAG,CAAE,CAAE,OAAO7F,CAAG,CAAE,CACzhB,SAASg4J,EAAgBx5J,GAAO,GAAI5I,MAAM4C,QAAQgG,GAAM,OAAOA,CAAK,CACpE,SAASoW,EAAQ1a,EAAG+L,GAAK,IAAI6B,EAAI9O,OAAOC,KAAKiB,GAAI,GAAIlB,OAAOiP,sBAAuB,CAAE,IAAIrC,EAAI5M,OAAOiP,sBAAsB/N,GAAI+L,IAAML,EAAIA,EAAEuO,QAAO,SAAUlO,GAAK,OAAOjN,OAAOic,yBAAyB/a,EAAG+L,GAAGiP,UAAY,KAAKpN,EAAE3T,KAAK0B,MAAMiS,EAAGlC,EAAI,CAAE,OAAOkC,CAAG,CAC9P,SAASqN,EAAcjb,GAAK,IAAK,IAAI+L,EAAI,EAAGA,EAAI/K,UAAUrH,OAAQoS,IAAK,CAAE,IAAI6B,EAAI,MAAQ5M,UAAU+K,GAAK/K,UAAU+K,GAAK,CAAC,EAAGA,EAAI,EAAI2O,EAAQ5b,OAAO8O,IAAI,GAAIjX,SAAQ,SAAUoV,GAAKmP,EAAgBlb,EAAG+L,EAAG6B,EAAE7B,GAAK,IAAKjN,OAAOqc,0BAA4Brc,OAAOsc,iBAAiBpb,EAAGlB,OAAOqc,0BAA0BvN,IAAM8M,EAAQ5b,OAAO8O,IAAIjX,SAAQ,SAAUoV,GAAKjN,OAAOuc,eAAerb,EAAG+L,EAAGjN,OAAOic,yBAAyBnN,EAAG7B,GAAK,GAAI,CAAE,OAAO/L,CAAG,CACtb,SAASkb,EAAgBvV,EAAK9O,EAAK5B,GAA4L,OAAnL4B,EAAMonK,EAAepnK,GAAUA,KAAO8O,EAAO7G,OAAOuc,eAAe1V,EAAK9O,EAAK,CAAE5B,MAAOA,EAAO+lB,YAAY,EAAMM,cAAc,EAAMC,UAAU,IAAkB5V,EAAI9O,GAAO5B,EAAgB0Q,CAAK,CAC3O,SAASs4J,EAAerwJ,GAAK,IAAInU,EAAIykK,EAAatwJ,EAAG,UAAW,MAAO,UAAYsK,EAAQze,GAAKA,EAAIsrB,OAAOtrB,EAAI,CAC/G,SAASykK,EAAatwJ,EAAG7B,GAAK,GAAI,UAAYmM,EAAQtK,KAAOA,EAAG,OAAOA,EAAG,IAAI5N,EAAI4N,EAAE/B,OAAOsyJ,aAAc,QAAI,IAAWn+J,EAAG,CAAE,IAAIvG,EAAIuG,EAAE7C,KAAKyQ,EAAG7B,GAAK,WAAY,GAAI,UAAYmM,EAAQze,GAAI,OAAOA,EAAG,MAAM,IAAIN,UAAU,+CAAiD,CAAE,OAAQ,WAAa4S,EAAIgZ,OAAS5d,QAAQyG,EAAI,CAC3T,IAAImtG,EAAM,0XACNqjD,EAAU,CAAC,EACXC,EAAe,CAAC,EAChBC,EAAY,CACd5gK,KAAM,OACNq9G,IAAKA,EACLqjD,QAASA,EACTC,aAAcA,EACdE,UAAW,WACT,IAAIjiK,EAAU0E,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAOjI,KAAKgiH,KAAM,OAAShiH,KAAKgiH,IAAK9/F,EAAc,CACjDvd,KAAM3E,KAAK2E,MACVpB,IAAY,CAAC,CAClB,EACAkiK,cAAe,WACb,IAAIC,EAAcz9J,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAClF2a,EAAQ3a,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACjF,GAAIjI,KAAKgiH,IAAK,CACZ,IAAIjW,EAAShmG,OAAO2iC,QAAQ9lB,GAAOvG,QAAO,SAAUC,EAAK6E,GACvD,IAAIG,EAAQwjJ,EAAe3jJ,EAAM,GAC/B9J,EAAIiK,EAAM,GACVjZ,EAAIiZ,EAAM,GACZ,OAAOhF,EAAIpb,KAAK,GAAG2B,OAAOwU,EAAG,MAAOxU,OAAOwF,EAAG,OAAUiU,CAC1D,GAAG,IAAI9T,KAAK,KACZ,MAAO,kDAAqD3F,OAAO7C,KAAK2E,KAAM,MAAO9B,OAAOkpG,EAAQ,KAAKlpG,OAAO7C,KAAKgiH,KAAKn/G,OAAO6iK,EAAa,WAChJ,CACA,MAAO,EACT,EACAtmK,OAAQ,SAAgBq1G,GACtB,OAAOvyF,EAAcA,EAAc,CAAC,EAAGliB,MAAO,CAAC,EAAG,CAChDgiH,SAAKtkH,GACJ+2G,EACL,E,0GC1CF,SAASt1F,EAAQxM,GAAgC,OAAOwM,EAAU,mBAAqBrM,QAAU,iBAAmBA,OAAOC,SAAW,SAAUJ,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBG,QAAUH,EAAEvG,cAAgB0G,QAAUH,IAAMG,OAAO3T,UAAY,gBAAkBwT,CAAG,EAAGwM,EAAQxM,EAAI,CAC7T,SAASmyJ,EAAev5J,EAAK7K,GAAK,OAAOqkK,EAAgBx5J,IAAQy5J,EAAsBz5J,EAAK7K,IAAMiiK,EAA4Bp3J,EAAK7K,IAAMukK,GAAoB,CAC7J,SAASA,IAAqB,MAAM,IAAI7kK,UAAU,4IAA8I,CAChM,SAASuiK,EAA4BhwJ,EAAGowJ,GAAU,GAAKpwJ,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOqwJ,EAAkBrwJ,EAAGowJ,GAAS,IAAInwJ,EAAI7M,OAAO5G,UAAUc,SAASmE,KAAKuO,GAAGnN,MAAM,GAAI,GAAiE,MAAnD,WAANoN,GAAkBD,EAAEvG,cAAawG,EAAID,EAAEvG,YAAYzH,MAAgB,QAANiO,GAAqB,QAANA,EAAoBjQ,MAAM49B,KAAK5tB,GAAc,cAANC,GAAqB,2CAA2ClJ,KAAKkJ,GAAWowJ,EAAkBrwJ,EAAGowJ,QAAzG,CAA7O,CAA+V,CAC/Z,SAASC,EAAkBz3J,EAAKmW,IAAkB,MAAPA,GAAeA,EAAMnW,EAAI3K,UAAQ8gB,EAAMnW,EAAI3K,QAAQ,IAAK,IAAIF,EAAI,EAAGuiK,EAAO,IAAItgK,MAAM+e,GAAMhhB,EAAIghB,EAAKhhB,IAAKuiK,EAAKviK,GAAK6K,EAAI7K,GAAI,OAAOuiK,CAAM,CAClL,SAAS+B,EAAsBhyJ,EAAGrS,GAAK,IAAIkU,EAAI,MAAQ7B,EAAI,KAAO,oBAAsBF,QAAUE,EAAEF,OAAOC,WAAaC,EAAE,cAAe,GAAI,MAAQ6B,EAAG,CAAE,IAAI5N,EAAG2L,EAAGlS,EAAGokF,EAAG/3E,EAAI,GAAIiN,GAAI,EAAIrH,GAAI,EAAI,IAAM,GAAIjS,GAAKmU,EAAIA,EAAEzQ,KAAK4O,IAAIE,KAAM,IAAMvS,EAAG,CAAE,GAAIoF,OAAO8O,KAAOA,EAAG,OAAQmF,GAAI,CAAI,MAAO,OAASA,GAAK/S,EAAIvG,EAAE0D,KAAKyQ,IAAIra,QAAUuS,EAAE7L,KAAK+F,EAAE/K,OAAQ6Q,EAAEnM,SAAWD,GAAIqZ,GAAI,GAAK,CAAE,MAAOhH,GAAKL,GAAI,EAAIC,EAAII,CAAG,CAAE,QAAU,IAAM,IAAKgH,GAAK,MAAQnF,EAAE,YAAciwE,EAAIjwE,EAAE,YAAa9O,OAAO++E,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAInyE,EAAG,MAAMC,CAAG,CAAE,CAAE,OAAO7F,CAAG,CAAE,CACzhB,SAASg4J,EAAgBx5J,GAAO,GAAI5I,MAAM4C,QAAQgG,GAAM,OAAOA,CAAK,CACpE,SAASoW,EAAQ1a,EAAG+L,GAAK,IAAI6B,EAAI9O,OAAOC,KAAKiB,GAAI,GAAIlB,OAAOiP,sBAAuB,CAAE,IAAIrC,EAAI5M,OAAOiP,sBAAsB/N,GAAI+L,IAAML,EAAIA,EAAEuO,QAAO,SAAUlO,GAAK,OAAOjN,OAAOic,yBAAyB/a,EAAG+L,GAAGiP,UAAY,KAAKpN,EAAE3T,KAAK0B,MAAMiS,EAAGlC,EAAI,CAAE,OAAOkC,CAAG,CAC9P,SAASqN,EAAcjb,GAAK,IAAK,IAAI+L,EAAI,EAAGA,EAAI/K,UAAUrH,OAAQoS,IAAK,CAAE,IAAI6B,EAAI,MAAQ5M,UAAU+K,GAAK/K,UAAU+K,GAAK,CAAC,EAAGA,EAAI,EAAI2O,EAAQ5b,OAAO8O,IAAI,GAAIjX,SAAQ,SAAUoV,GAAKmP,EAAgBlb,EAAG+L,EAAG6B,EAAE7B,GAAK,IAAKjN,OAAOqc,0BAA4Brc,OAAOsc,iBAAiBpb,EAAGlB,OAAOqc,0BAA0BvN,IAAM8M,EAAQ5b,OAAO8O,IAAIjX,SAAQ,SAAUoV,GAAKjN,OAAOuc,eAAerb,EAAG+L,EAAGjN,OAAOic,yBAAyBnN,EAAG7B,GAAK,GAAI,CAAE,OAAO/L,CAAG,CACtb,SAASkb,EAAgBvV,EAAK9O,EAAK5B,GAA4L,OAAnL4B,EAAMonK,EAAepnK,GAAUA,KAAO8O,EAAO7G,OAAOuc,eAAe1V,EAAK9O,EAAK,CAAE5B,MAAOA,EAAO+lB,YAAY,EAAMM,cAAc,EAAMC,UAAU,IAAkB5V,EAAI9O,GAAO5B,EAAgB0Q,CAAK,CAC3O,SAASs4J,EAAerwJ,GAAK,IAAInU,EAAIykK,EAAatwJ,EAAG,UAAW,MAAO,UAAYsK,EAAQze,GAAKA,EAAIsrB,OAAOtrB,EAAI,CAC/G,SAASykK,EAAatwJ,EAAG7B,GAAK,GAAI,UAAYmM,EAAQtK,KAAOA,EAAG,OAAOA,EAAG,IAAI5N,EAAI4N,EAAE/B,OAAOsyJ,aAAc,QAAI,IAAWn+J,EAAG,CAAE,IAAIvG,EAAIuG,EAAE7C,KAAKyQ,EAAG7B,GAAK,WAAY,GAAI,UAAYmM,EAAQze,GAAI,OAAOA,EAAG,MAAM,IAAIN,UAAU,+CAAiD,CAAE,OAAQ,WAAa4S,EAAIgZ,OAAS5d,QAAQyG,EAAI,CAC3T,IAAI8wJ,EAAgB,CAClBC,SAAU,WACR,MAAO,CAAC,KAAYj+J,SAASM,UAAUrH,QAAU,OAAIlD,EAAYuK,UAAU,KAAkBA,UAAUrH,QAAU,OAAhClD,EAAgDuK,UAAU,GAAI,KAAY49J,aAAa,KAAYl+J,SAASM,UAAUrH,QAAU,OAAIlD,EAAYuK,UAAU,IAAMA,UAAUrH,QAAU,OAAIlD,EAAYuK,UAAU,GAAKA,UAAUrH,QAAU,OAAIlD,EAAYuK,UAAU,IACpV,EACA69J,WAAY,SAAoB5nE,EAAS3K,GACvC,IAAIpyE,EAAM4kJ,EAAmBC,EAC7B,OAA6hB,QAArhB7kJ,GAAoB,OAAZ+8E,QAAgC,IAAZA,GAAiE,QAA1C6nE,EAAoB7nE,EAAQh/F,gBAA4C,IAAtB6mK,OAA+B,EAASA,EAAkBE,aAAyB,OAAV1yE,QAA4B,IAAVA,GAAiD,QAA5ByyE,EAAazyE,EAAMqE,WAAgC,IAAfouE,GAAkE,QAAxCA,EAAaA,EAAWlyE,kBAAuC,IAAfkyE,GAA8D,QAApCA,EAAaA,EAAWlsK,cAAmC,IAAfksK,GAAwE,QAA9CA,EAAaA,EAAW1+D,wBAA6C,IAAf0+D,OAAwB,EAASA,EAAWC,kBAAiC,IAAT9kJ,OAAkB,EAASA,EAAKrnB,MACvkB,EACAosK,gBAAiB,SAAyB3iK,GACxC,IAAIzF,EAAMmK,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC1E1L,EAAS0L,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Ek+J,EAAQ,KAAYC,WAAWtoK,GAAKqN,MAAM,KAC1Ck7J,EAAOF,EAAMrjK,QACjB,OAAOujK,EAAO,KAAY1+J,SAASpE,GAAWoiK,EAAcO,gBAAgB,KAAYL,aAAatiK,EAAQwC,OAAOC,KAAKzC,GAASyb,MAAK,SAAU3H,GAC/I,OAAO,KAAY+uJ,WAAW/uJ,KAAOgvJ,CACvC,KAAM,IAAK9pK,GAAS4pK,EAAM39J,KAAK,KAAMjM,QAAUmB,EAAY,KAAYmoK,aAAatiK,EAAShH,EAC/F,EACA+pK,YAAa,WACX,IAAIC,EAAmBC,EACnBtnK,EAAW+I,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAChF2E,EAAM3E,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC3EnK,EAAMmK,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC1E1L,EAAS0L,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Ew+J,IAAoBx+J,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,KAAmBA,UAAU,GACnFsjH,EAAW,WACb,IAAIrvH,EAAQypK,EAAcO,gBAAgBtjK,MAAM+iK,EAAe19J,WAC/D,OAAO,KAAYpB,SAAS3K,IAAU,KAAYqJ,QAAQrJ,GAAS,CACjE,MAASA,GACPA,CACN,EACIolB,GAAoD,QAA1CilJ,EAAoBrnK,EAASg/F,eAA2C,IAAtBqoE,GAAkF,QAAjDA,EAAoBA,EAAkBrqK,aAAyC,IAAtBqqK,OAA+B,EAASA,EAAkBG,aAA0D,QAA1CF,EAAoBtnK,EAASynK,eAA2C,IAAtBH,OAA+B,EAASA,EAAkBE,YAAc,CAAC,EAC7VE,EAAsBtlJ,EAAMulJ,cAC5BA,OAAwC,IAAxBD,GAAwCA,EACxDE,EAAmBxlJ,EAAMo8F,WACzBqpD,OAAqC,IAArBD,GAAsCA,EACpDh5G,EAAS24G,EAAoBd,EAAcqB,cAAc9nK,EAAUA,EAAS+nK,YAAa17C,EAAUztH,EAAKvB,QAAUmB,EAClHqmB,EAAO4hJ,EAAcuB,OAAOhoK,EAAUymK,EAAcwB,OAAOv6J,EAAK1N,EAASkoK,OAAQ77C,EAAUztH,EAAKokB,EAAcA,EAAc,CAAC,EAAG3lB,GAAS,CAAC,EAAG,CAC/IuxD,OAAQA,GAAU,CAAC,KAEjBu5G,EAAW1B,EAAc2B,eAAepoK,EAAUpB,GACtD,OAAO+oK,IAAkBA,GAAiB9iJ,EAAOgjJ,EAAgBpB,EAAc4B,YAAYroK,EAAU6nK,EAAej5G,EAAQ/pC,EAAMsjJ,GAAYnlJ,EAAcA,EAAcA,EAAc,CAAC,EAAG4rC,GAAS/pC,GAAOsjJ,GAAYnlJ,EAAcA,EAAc,CAAC,EAAG6B,GAAOsjJ,EACjQ,EACAC,eAAgB,WACd,IAAIpoK,EAAW+I,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAChFnK,EAAMmK,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC1Eu/J,EAAgB,WACpB,OAAOtlJ,EAAcA,EAAc,CAAC,EAAW,SAARpkB,GAAkBqkB,EAAgB,CAAC,EAAG,GAAGtf,OAAO2kK,EAAe,QAAS,KAAYpB,WAAWlnK,EAASkoK,SAAU,CAAC,EAAGjlJ,EAAgB,CAAC,EAAG,GAAGtf,OAAO2kK,EAAe,WAAY,KAAYpB,WAAWtoK,IAC/O,EACAqpK,OAAQ,SAAgBhwC,GACtB,IAAIr5H,EAAMmK,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC1EqD,EAAWrD,UAAUrH,OAAS,EAAIqH,UAAU,QAAKvK,EACjD6tH,EAAW,SAAkBrvH,GAC/B,IAAIurK,EACAC,EAAgBp8J,EAAWA,EAASpP,GAASA,EAC7C+1F,EAAO,KAAYm0E,WAAWtoK,GAClC,OAAqH,QAA7G2pK,EAAwC,OAAlBC,QAA4C,IAAlBA,OAA2B,EAASA,EAAcz1E,UAA2C,IAAxBw1E,EAAiCA,EAAsBC,CACtL,EACA,OAAc,OAAPvwC,QAAsB,IAAPA,GAAiBA,EAAGtqH,eAAe,UAAY,CACnE86J,OAAQxwC,EAAG,UACXywC,cAAer8C,EAAS4L,EAAGywC,eAC3B1rK,MAAOqvH,EAAS4L,EAAGj7H,QACjBqvH,EAAS4L,EACf,EACA+vC,OAAQ,WACN,IAAIhoK,EAAW+I,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAChFkvH,EAAKlvH,UAAUrH,OAAS,EAAIqH,UAAU,QAAKvK,EAC3C4N,EAAWrD,UAAUrH,OAAS,EAAIqH,UAAU,QAAKvK,EACjDI,EAAMmK,UAAUrH,OAAS,EAAIqH,UAAU,QAAKvK,EAC5CnB,EAAS0L,UAAUrH,OAAS,EAAIqH,UAAU,QAAKvK,EAC/CgG,EAAK,SAAYxH,GACnB,OAAOoP,EAASpP,EAAO4B,EAAKvB,EAC9B,EACA,GAAW,OAAP46H,QAAsB,IAAPA,GAAiBA,EAAGtqH,eAAe,UAAW,CAC/D,IAAIg7J,EACAniJ,EAAQyxG,EAAG,YAA0D,QAA3C0wC,EAAqB3oK,EAASynK,eAA4C,IAAvBkB,OAAgC,EAASA,EAAmBnB,YAAc,CAAC,EAC1JoB,EAAsBpiJ,EAAMmhJ,cAC5BA,OAAwC,IAAxBiB,GAAwCA,EACxDC,EAAmBriJ,EAAMg4F,WACzBqpD,OAAqC,IAArBgB,GAAsCA,EACpDH,EAAgBlkK,EAAGyzH,EAAGywC,eACtB1rK,EAAQwH,EAAGyzH,EAAGj7H,OAClB,QAAsBwB,IAAlBkqK,QAAyClqK,IAAVxB,EAAqB,OAAsB,OAAI,KAAY2K,SAAS3K,GAAeA,EAAe,KAAY2K,SAAS+gK,GAAuBA,EAC1Kf,IAAkBA,GAAiB3qK,EAAQ6qK,EAAgBpB,EAAc4B,YAAYroK,EAAU6nK,EAAea,EAAe1rK,GAASgmB,EAAcA,EAAc,CAAC,EAAG0lJ,GAAgB1rK,GAASA,CACxM,CACA,OAAOwH,EAAGyzH,EACZ,EACA6vC,cAAe,WACb,IAAI9nK,EAAW+I,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAChFg/J,EAAYh/J,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACjFqD,EAAWrD,UAAUrH,OAAS,EAAIqH,UAAU,QAAKvK,EACjDI,EAAMmK,UAAUrH,OAAS,EAAIqH,UAAU,QAAKvK,EAC5CnB,EAAS0L,UAAUrH,OAAS,EAAIqH,UAAU,QAAKvK,EACnD,OAAOioK,EAAcuB,OAAOhoK,EAAU+nK,EAAW37J,EAAUxN,EAAKvB,EAClE,EACAktG,MAAO,SAAeu+D,EAAeC,EAAUxtE,EAAIyD,EAAS3K,EAAO20E,GACjE,IAAIC,EAAgBC,EAChBzjK,EAAO,KAAK9B,OAAO,KAAYwlK,cAAcJ,IAC7CnuK,EAAS6rK,EAAcG,WAAW5nE,EAAS3K,GAC3Cr0F,EAAkB,OAAPu7F,QAAsB,IAAPA,OAAgB,EAASA,EAAG6tE,UACtDC,EAAW5C,EAAcuB,OAAOhoK,EAAUymK,EAAcwB,OAAmB,OAAZjpE,QAAgC,IAAZA,GAA2D,QAApCiqE,EAAiBjqE,EAAQhiG,aAAsC,IAAnBisK,OAA4B,EAASA,EAAehxC,GAAI6wC,GAAgBrC,EAAcO,gBAAiB,SAASrjK,OAAO8B,IAC7Q6jK,EAAc7C,EAAcqB,cAAc9nK,EAAqB,OAAXpF,QAA8B,IAAXA,GAAkD,QAA5BsuK,EAAatuK,EAAOq9H,UAA+B,IAAfixC,GAAkE,QAAxCA,EAAaA,EAAWp2I,kBAAuC,IAAfo2I,OAAwB,EAASA,EAAWJ,GAAgBrC,EAAcO,gBAAiB,SAASrjK,OAAO8B,IACtTpB,EAAU,CACZk3F,GAAIA,EACJyD,QAASA,EACT3K,MAAOA,EACP20E,UAAWA,GAEA,OAAbK,QAAkC,IAAbA,GAAuBA,EAASrpK,EAAUqE,GAC/C,OAAhBilK,QAAwC,IAAhBA,GAA0BA,EAAYtpK,EAAUqE,EAC1E,EACAgkK,YAAa,WAEX,IADA,IAAI7jK,EAAKuE,UAAUrH,OAAS,EAAIqH,UAAU,QAAKvK,EACtC+qK,EAAOxgK,UAAUrH,OAAQoH,EAAO,IAAIrF,MAAM8lK,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAMC,IACpG1gK,EAAK0gK,EAAQ,GAAKzgK,UAAUygK,GAE9B,OAAO,KAAYl8J,WAAW9I,GAAMA,EAAGd,WAAM,EAAQoF,GAAQ,KAAWpF,WAAM,EAAQoF,EACxF,EACA2gK,QAAS,SAAiBhkK,GACxB,IAAIpB,EAAU0E,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E2gK,EAAa,SAAoBzqE,EAAM1D,EAAIyD,EAAS3K,EAAO20E,GAC7D,IAAIW,EAAoBC,EACxBruE,EAAGsuE,YAActuE,EAAGsuE,aAAe,CAAC,EACpC,IAAIjvK,EAAS6rK,EAAcG,WAAW5nE,EAAS3K,GAC3Cy1E,EAAgBvuE,EAAGsuE,YAAYpkK,IAAS,CAAC,EACzC8hG,EAAW,KAAY9rB,QAAQquF,GAAiB9mJ,EAAcA,EAAc,CAAC,EAAG3e,GAAsB,OAAZA,QAAgC,IAAZA,OAAqB,EAASA,EAAQskG,SAAW,CAAC,EACpKpN,EAAGsuE,YAAYpkK,GAAQud,EAAcA,EAAc,CAAC,EAAG8mJ,GAAgB,CAAC,EAAG,CAEzE5B,MAAOziK,EACPskK,MAAOxuE,EACPyuE,SAAUhrE,EACVirE,WAAwB,OAAZjrE,QAAgC,IAAZA,OAAqB,EAASA,EAAQL,UACtEurE,OAAoB,OAAZlrE,QAAgC,IAAZA,OAAqB,EAASA,EAAQhiG,MAClE6pG,IAAKijE,EAAc,QAAUvuE,QAAM/8F,EACnC2rK,OAAQnnJ,EAAc,CACpBmjJ,aAAS3nK,EACT4nK,kBAAc5nK,EACd8nK,UAAW,WAAsB,GACpB,OAAZjiK,QAAgC,IAAZA,OAAqB,EAASA,EAAQkxG,OAC7DkyD,QAAS7sK,EAETmtK,UAAW,WACT,OAAOtB,EAAcwB,OAAkB,OAAXrtK,QAA8B,IAAXA,OAAoB,EAASA,EAAOq9H,QAAIz5H,GAAW,SAAUxB,GAC1G,IAAIotK,EACJ,OAAiB,OAAVptK,QAA4B,IAAVA,GAA+D,QAA1CotK,EAAoBptK,EAAM81B,kBAA8C,IAAtBs3I,OAA+B,EAASA,EAAkB3kK,EAC5J,GACF,EACA4kK,WAAY,WACV,IAAIC,EAAeC,EACnB,YAAkR/rK,KAAvO,QAAlC8rK,EAAgB/uE,EAAG6tE,iBAAyC,IAAlBkB,GAAyE,QAA5CA,EAAgBA,EAAcN,gBAAwC,IAAlBM,GAAsE,QAAzCA,EAAgBA,EAActtK,aAAqC,IAAlBstK,OAA2B,EAASA,EAAcE,UAA8D,QAAnCD,EAAiBhvE,EAAG6tE,iBAA0C,IAAnBmB,GAA4E,QAA9CA,EAAiBA,EAAeP,gBAAyC,IAAnBO,GAAyE,QAA3CA,EAAiBA,EAAevtK,aAAsC,IAAnButK,OAA4B,EAASA,EAAeC,SAAsB,OAAX5vK,QAA8B,IAAXA,OAAoB,EAASA,EAAO4vK,QACvmB,EAEAC,IAAK,WACH,IAAIC,EACA9rK,EAAMmK,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC1E1L,EAAS0L,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,OAAO09J,EAAcW,YAAY7rE,EAAG6tE,UAA+C,QAAnCsB,EAAiBnvE,EAAG6tE,iBAA0C,IAAnBsB,GAA4E,QAA9CA,EAAiBA,EAAeV,gBAAyC,IAAnBU,GAAyE,QAA3CA,EAAiBA,EAAe1tK,aAAsC,IAAnB0tK,OAA4B,EAASA,EAAezyC,GAAIr5H,EAAKokB,EAAc,CAAC,EAAG3lB,GACjV,EACAstK,KAAM,WACJ,IAAIj9J,EAAM3E,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC3EnK,EAAMmK,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC1E1L,EAAS0L,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,OAAO09J,EAAcW,YAAY7rE,EAAG6tE,UAAW17J,EAAK9O,EAAKvB,GAAQ,EACnE,EACAutK,GAAI,WACF,IAAIC,EAAgBC,EAChBlsK,EAAMmK,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC1E1L,EAAS0L,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,OAA6C,QAAnC8hK,EAAiBtvE,EAAG6tE,iBAA0C,IAAnByB,GAA6BA,EAAeR,kBAA2Q7rK,EAA3PioK,EAAcO,gBAAoD,QAAnC8D,EAAiBvvE,EAAG6tE,iBAA0C,IAAnB0B,GAA0E,QAA5CA,EAAiBA,EAAeX,cAAuC,IAAnBW,OAA4B,EAASA,EAAe3E,QAASvnK,EAAKokB,EAAc,CAAC,EAAG3lB,GACnW,EACA0tK,GAAI,WACF,IAAIC,EACApsK,EAAMmK,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC1EkiK,IAAOliK,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,KAAmBA,UAAU,GACtE1L,EAAS0L,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,OAAOkiK,EAAOxE,EAAcO,gBAAoD,QAAnCgE,EAAiBzvE,EAAG6tE,iBAA0C,IAAnB4B,GAA0E,QAA5CA,EAAiBA,EAAeb,cAAuC,IAAnBa,OAA4B,EAASA,EAAe5E,aAAcxnK,EAAKokB,EAAc,CAAC,EAAG3lB,SAAWmB,CAChR,GACC+oG,GACHhM,EAAG6tE,UAAY7tE,EAAGsuE,YAAYpkK,GACmC,QAAhEkkK,GAAsBC,EAAiBruE,EAAG6tE,WAAWnqE,UAA0C,IAAvB0qE,GAAiCA,EAAmBzkK,KAAK0kK,EAAgBruE,EAAIyD,EAAS3K,EAAO20E,GACtKztE,EAAG,IAAI53F,OAAO8B,IAAS81F,EAAG6tE,UAC1B3C,EAAcl8D,MAAM9kG,EAAMw5F,EAAM1D,EAAIyD,EAAS3K,EAAO20E,EACtD,EACA,MAAO,CACL//D,QAAS,SAAiB1N,EAAIyD,EAAS3K,EAAO20E,GAC5CU,EAAW,UAAWnuE,EAAIyD,EAAS3K,EAAO20E,EAC5C,EACA9/D,YAAa,SAAqB3N,EAAIyD,EAAS3K,EAAO20E,GACpD,IAAIkC,EAAaC,EAAgBC,EAAgBC,EAC7CzwK,EAAS6rK,EAAcG,WAAW5nE,EAAS3K,GAC/C,IAAUiyE,UAAU,CAClBgF,MAAkB,OAAX1wK,QAA8B,IAAXA,GAAoD,QAA9BswK,EAActwK,EAAO2wK,WAAiC,IAAhBL,OAAyB,EAASA,EAAYI,SAEhG,QAAnCH,EAAiB5vE,EAAG6tE,iBAA0C,IAAnB+B,IAA6BA,EAAed,gBAAsD,QAAnCe,EAAiB7vE,EAAG6tE,iBAA0C,IAAnBgC,GAA0E,QAA5CA,EAAiBA,EAAejB,cAAuC,IAAnBiB,GAAqCA,EAAe9E,UAAU,CACtSgF,MAAkB,OAAX1wK,QAA8B,IAAXA,GAAqD,QAA/BywK,EAAezwK,EAAO2wK,WAAkC,IAAjBF,OAA0B,EAASA,EAAaC,SAEzI5B,EAAW,cAAenuE,EAAIyD,EAAS3K,EAAO20E,EAChD,EACApqE,QAAS,SAAiBrD,EAAIyD,EAAS3K,EAAO20E,GAC5C,IAAIwC,EAAcC,EAAiBC,EAAiBC,EAChD/wK,EAAS6rK,EAAcG,WAAW5nE,EAAS3K,GAC/C,IAAUiyE,UAAU,CAClBgF,MAAkB,OAAX1wK,QAA8B,IAAXA,GAAqD,QAA/B4wK,EAAe5wK,EAAO2wK,WAAkC,IAAjBC,OAA0B,EAASA,EAAaF,SAElG,QAApCG,EAAkBlwE,EAAG6tE,iBAA2C,IAApBqC,IAA8BA,EAAgBpB,gBAAuD,QAApCqB,EAAkBnwE,EAAG6tE,iBAA2C,IAApBsC,GAA6E,QAA9CA,EAAkBA,EAAgBvB,cAAwC,IAApBuB,GAAsCA,EAAgBpF,UAAU,CAC/SgF,MAAkB,OAAX1wK,QAA8B,IAAXA,GAAqD,QAA/B+wK,EAAe/wK,EAAO2wK,WAAkC,IAAjBI,OAA0B,EAASA,EAAaL,SAEzI5B,EAAW,UAAWnuE,EAAIyD,EAAS3K,EAAO20E,EAC5C,EACA7/D,aAAc,SAAsB5N,EAAIyD,EAAS3K,EAAO20E,GACtDU,EAAW,eAAgBnuE,EAAIyD,EAAS3K,EAAO20E,EACjD,EACAnqE,QAAS,SAAiBtD,EAAIyD,EAAS3K,EAAO20E,GAC5CU,EAAW,UAAWnuE,EAAIyD,EAAS3K,EAAO20E,EAC5C,EACAz/D,cAAe,SAAuBhO,EAAIyD,EAAS3K,EAAO20E,GACxDU,EAAW,gBAAiBnuE,EAAIyD,EAAS3K,EAAO20E,EAClD,EACAv/D,UAAW,SAAmBlO,EAAIyD,EAAS3K,EAAO20E,GAChDU,EAAW,YAAanuE,EAAIyD,EAAS3K,EAAO20E,EAC9C,EAEJ,EACA9oK,OAAQ,WACN,IAAI0rK,EAAwBnF,EAAcC,SAAShjK,MAAM+iK,EAAe19J,WACtE8iK,EAAyBjG,EAAegG,EAAuB,GAC/DnmK,EAAOomK,EAAuB,GAC9BxnK,EAAUwnK,EAAuB,GACnC,OAAO7oJ,EAAc,CACnB9iB,OAAQ,WACN,IAAI4rK,EAAyBrF,EAAcC,SAAShjK,MAAM+iK,EAAe19J,WACvEgjK,EAAyBnG,EAAekG,EAAwB,GAChEE,EAAQD,EAAuB,GAC/BhwJ,EAAWgwJ,EAAuB,GACpC,OAAOtF,EAAcvmK,OAAO8rK,EAAOhpJ,EAAcA,EAAcA,EAAc,CAAC,EAAG3e,GAAsB,OAAZA,QAAgC,IAAZA,OAAqB,EAASA,EAAQskG,SAAU5sF,GACjK,GACC0qJ,EAAcgD,QAAQhkK,EAAMpB,GACjC,E,gGCzPF,SAAS4b,EAAQxM,GAAgC,OAAOwM,EAAU,mBAAqBrM,QAAU,iBAAmBA,OAAOC,SAAW,SAAUJ,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBG,QAAUH,EAAEvG,cAAgB0G,QAAUH,IAAMG,OAAO3T,UAAY,gBAAkBwT,CAAG,EAAGwM,EAAQxM,EAAI,CAC7T,SAASgP,EAAQ1a,EAAG+L,GAAK,IAAI6B,EAAI9O,OAAOC,KAAKiB,GAAI,GAAIlB,OAAOiP,sBAAuB,CAAE,IAAIrC,EAAI5M,OAAOiP,sBAAsB/N,GAAI+L,IAAML,EAAIA,EAAEuO,QAAO,SAAUlO,GAAK,OAAOjN,OAAOic,yBAAyB/a,EAAG+L,GAAGiP,UAAY,KAAKpN,EAAE3T,KAAK0B,MAAMiS,EAAGlC,EAAI,CAAE,OAAOkC,CAAG,CAC9P,SAASqN,EAAcjb,GAAK,IAAK,IAAI+L,EAAI,EAAGA,EAAI/K,UAAUrH,OAAQoS,IAAK,CAAE,IAAI6B,EAAI,MAAQ5M,UAAU+K,GAAK/K,UAAU+K,GAAK,CAAC,EAAGA,EAAI,EAAI2O,EAAQ5b,OAAO8O,IAAI,GAAIjX,SAAQ,SAAUoV,GAAKmP,EAAgBlb,EAAG+L,EAAG6B,EAAE7B,GAAK,IAAKjN,OAAOqc,0BAA4Brc,OAAOsc,iBAAiBpb,EAAGlB,OAAOqc,0BAA0BvN,IAAM8M,EAAQ5b,OAAO8O,IAAIjX,SAAQ,SAAUoV,GAAKjN,OAAOuc,eAAerb,EAAG+L,EAAGjN,OAAOic,yBAAyBnN,EAAG7B,GAAK,GAAI,CAAE,OAAO/L,CAAG,CACtb,SAASkb,EAAgBvV,EAAK9O,EAAK5B,GAA4L,OAAnL4B,EAAMonK,EAAepnK,GAAUA,KAAO8O,EAAO7G,OAAOuc,eAAe1V,EAAK9O,EAAK,CAAE5B,MAAOA,EAAO+lB,YAAY,EAAMM,cAAc,EAAMC,UAAU,IAAkB5V,EAAI9O,GAAO5B,EAAgB0Q,CAAK,CAC3O,SAASs4J,EAAerwJ,GAAK,IAAInU,EAAIykK,EAAatwJ,EAAG,UAAW,MAAO,UAAYsK,EAAQze,GAAKA,EAAIsrB,OAAOtrB,EAAI,CAC/G,SAASykK,EAAatwJ,EAAG7B,GAAK,GAAI,UAAYmM,EAAQtK,KAAOA,EAAG,OAAOA,EAAG,IAAI5N,EAAI4N,EAAE/B,OAAOsyJ,aAAc,QAAI,IAAWn+J,EAAG,CAAE,IAAIvG,EAAIuG,EAAE7C,KAAKyQ,EAAG7B,GAAK,WAAY,GAAI,UAAYmM,EAAQze,GAAI,OAAOA,EAAG,MAAM,IAAIN,UAAU,+CAAiD,CAAE,OAAQ,WAAa4S,EAAIgZ,OAAS5d,QAAQyG,EAAI,CAC3T,IAAIs2J,EAAiB,CACnBC,QAAQ,EACRC,WAAY,KACZC,OAAQ,CACNz1F,WAAY,cACZmuF,SAAU,WACVC,YAAa,eACbxoF,SAAU,YACV6+C,OAAQ,SACR4pC,UAAW,aACXqH,SAAU,YACVnH,GAAI,YACJC,IAAK,wBACLC,GAAI,eACJC,IAAK,2BACLC,OAAQ,UACRE,UAAW,cACXC,WAAY,iBACZC,UAAW,gBACXj2J,MAAO,QACP/L,MAAO,QACP4oK,SAAU,YACVC,SAAU,YACVC,QAAS,WACTC,WAAY,cACZznI,OAAQ,MACRjqC,OAAQ,KACR2xK,OAAQ,SACRvtK,OAAQ,SACRC,OAAQ,SACRutK,UAAW,YACXC,QAAS,UACTC,cAAe,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC/DC,SAAU,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAC7EC,cAAe,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC1DC,YAAa,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAClDjsC,WAAY,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YAC3HksC,gBAAiB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC/FC,WAAY,cACZC,YAAa,eACbC,WAAY,cACZC,WAAY,kBACZC,WAAY,cACZC,SAAU,gBACVC,SAAU,YACVC,UAAW,iBACXC,UAAW,aACXC,SAAU,gBACVC,SAAU,YACVC,WAAY,kBACZC,WAAY,cACZC,WAAY,kBACZC,WAAY,cACZ74C,GAAI,KACJ6C,GAAI,KACJp+G,MAAO,QACPq0J,WAAY,KACZC,eAAgB,EAChBC,oBAAoB,EACpBC,WAAY,WACZC,KAAM,OACNC,OAAQ,SACRC,OAAQ,SACRC,eAAgB,mBAChBC,mBAAoB,mBAEpBC,cAAe,4BACfC,iBAAkB,qBAClBC,sBAAuB,mBACvBC,mBAAoB,mBACpBC,aAAc,uBACdC,KAAM,CACJC,UAAW,OACXC,WAAY,QACZC,UAAW,eACXC,KAAM,SACNC,MAAO,eACPC,UAAW,qBACXC,YAAa,uBACbhgI,MAAO,QACPzL,SAAU,WACV7vB,KAAM,OACNu7J,WAAY,aACZC,UAAW,aACXC,QAAS,WACTC,OAAQ,UACRC,SAAU,YACVC,WAAY,cACZC,aAAc,iBACdC,aAAc,iBACdC,gBAAiB,qBACjBC,gBAAiB,qBACjBC,UAAW,cACXC,eAAgB,aAChBC,cAAe,YACfC,cAAe,YACfC,cAAe,gBACfC,iBAAkB,gBAClBC,wBAAyB,wBACzBC,qBAAsB,qBACtBC,UAAW,eACXC,YAAa,iBACbC,UAAW,eACXC,YAAa,gBACbC,eAAgB,mBAChBC,eAAgB,mBAChBC,eAAgB,kBAChBC,iBAAkB,oBAClBC,QAAS,WACTC,SAAU,YACVC,WAAY,cACZC,SAAU,YACVC,SAAU,YACVC,MAAO,QACPC,YAAa,gBACbC,UAAW,aACXC,OAAQ,UACRC,QAAS,WACTC,YAAa,eACbC,WAAY,gBAGhBC,uBAAwB,CACtB9/J,KAAM,CAAC,KAAgBqwJ,YAAa,KAAgBC,SAAU,KAAgBC,aAAc,KAAgBC,UAAW,KAAgBv2I,OAAQ,KAAgBw2I,YAC/JsP,QAAS,CAAC,KAAgB9lJ,OAAQ,KAAgBw2I,WAAY,KAAgBE,UAAW,KAAgBC,sBAAuB,KAAgBC,aAAc,KAAgBC,0BAC9KtuJ,KAAM,CAAC,KAAgBwuJ,QAAS,KAAgBC,YAAa,KAAgBC,YAAa,KAAgBC,aAE5G6O,OAAQ,CACNC,MAAO,KACPC,QAAS,IACTC,KAAM,IACNC,QAAS,MAEXl6C,QAAIz5H,EACJgpK,UAAW,CACTG,eAAe,EACfnpD,YAAY,GAEdgsD,UAAU,EACVe,IAAK,CACHD,WAAO9sK,IAGP4zK,EAAiBx+J,SAQrB,SAASy+J,EAAYC,EAAcC,EAAUC,EAAepmK,GAC1D,GAAIkmK,IAAiBC,EAAU,CAC7B,IAAIE,EAAcvoK,SAASwoK,eAAeF,GACtCG,EAAmBF,EAAYrwD,WAAU,GACzCwwD,EAAcH,EAAYpqD,aAAa,QAAQnkH,QAAQouK,EAAcC,GACzEI,EAAiBznK,aAAa,KAAMsnK,EAAgB,UACpDG,EAAiBznK,aAAa,OAAQ0nK,GACtCD,EAAiB1zK,iBAAiB,QAAQ,WACxCwzK,EAAYnoK,SACZqoK,EAAiBznK,aAAa,KAAMsnK,GAChCpmK,GACFA,GAEJ,IACAqmK,EAAYlgE,YAAckgE,EAAYlgE,WAAWmP,aAAaixD,EAAkBF,EAAYhgE,YAC9F,CACF,CACA,IAAIogE,EAAW,CACb5lE,QAAS,SAAiBpB,EAAKxnG,GAC7B,IAAIyuK,EAAgBzuK,EAAU2e,EAAcA,EAAc,CAAC,EAAGipJ,GAAiB5nK,GAAW2e,EAAc,CAAC,EAAGipJ,GACxG4G,EAAW,CACbj4K,QAAQ,QAASk4K,GACjBC,YAAaV,GAEfxmE,EAAIjxG,OAAOwtG,iBAAiB2+D,UAAY8L,EACxChnE,EAAIhD,QAAQupE,EAAgBS,EAC9B,E,oFCxLEG,GAAwB,UCAxBC,EAAuBr/J,S,eCEvBs/J,EAAgB,CAClBjmE,QAAS,SAAiBpB,GACxB,IAAIqnE,EAAgB,CAClBh2K,KAAM,SAAc8Q,EAAS3J,GAC3B,IAAIrE,EAAW,CACbgO,QAASA,IAAW,QAAQA,GAC5B3J,QAASA,GAAW,CAAC,EACrBnJ,KAAMmJ,GAAWA,EAAQnJ,KACzBo0C,MAAO,SAAejyC,GACpB21K,EAAsBn8E,KAAK,QAAS,CAClC72F,SAAUA,EACV3C,OAAQA,GAEZ,GAKF,OAHA21K,EAAsBn8E,KAAK,OAAQ,CACjC72F,SAAUA,IAELA,CACT,GAIF6rG,EAAIjxG,OAAOwtG,iBAAiB+qE,QAAUD,EACtCrnE,EAAIhD,QAAQoqE,EAAsBC,EACpC,E,+FC1BEE,EAAiB,IAAclzK,OAAO,CAAC,GAEvCmzK,EAAaD,EAAelzK,OAAO,aAAc,CACnD0+F,QAAS,SAAiBrD,EAAIyD,GAC5BzD,EAAGrwF,aAAa,sBAAsB,GACtCpK,KAAKpB,KAAK67F,EAAIyD,EAChB,EACAyK,UAAW,SAAmBlO,GAC5Bz6F,KAAKwyK,OAAO/3E,EACd,EACAoN,QAAS,CACPjpG,KAAM,SAAc67F,EAAIyD,GACtB,IAAI5tF,EAAQtQ,KACRqF,EAASrF,KAAKu6G,cAAc9f,EAAIyD,GACpCl+F,KAAK+lG,IAAM1gG,EACXo1F,EAAGg4E,4BAA8B,WAC3Bv0E,EAAQhiG,MAAMw2K,YACZ,KAAWC,SAASttK,EAAQ64F,EAAQhiG,MAAMw2K,aAAc,KAAWE,YAAYvtK,EAAQ64F,EAAQhiG,MAAMw2K,aAAkB,KAAWG,SAASxtK,EAAQ64F,EAAQhiG,MAAMw2K,aAEzI,OAAxBrtK,EAAOytK,aAAuBxiK,EAAMwrB,MAAMz2B,EAAQo1F,EAAIyD,GAAc5tF,EAAMurB,MAAMx2B,EAAQ64F,EAEhG,EACAzD,EAAGt8F,iBAAiB,QAASs8F,EAAGg4E,4BAClC,EACAD,OAAQ,SAAgB/3E,GAClBA,EAAGg4E,8BACLh4E,EAAG7/F,oBAAoB,QAAS6/F,EAAGg4E,6BACnCh4E,EAAGg4E,4BAA8B,MAEnCzyK,KAAK+yK,uBAAuBt4E,EAC9B,EACA3+D,MAAO,SAAez2B,EAAQo1F,EAAIyD,GAC5BA,EAAQhiG,MAAMimH,iBACX98G,EAAO2tK,0BACV3tK,EAAO2tK,yBAA0B,EACM,cAAnC90E,EAAQhiG,MAAMimH,mBAChB98G,EAAOovG,MAAMw+D,OAAS,MACtB,KAAWL,YAAYvtK,EAAQ,UAC/BA,EAAOovG,MAAMy+D,UAAY7tK,EAAO8tK,aAAe,KAC/C,KAAWN,SAASxtK,EAAQ,UAC5BA,EAAOovG,MAAMw+D,OAAS,IAExB,KAAWJ,SAASxtK,EAAQ64F,EAAQhiG,MAAMimH,kBAGtCjkB,EAAQhiG,MAAMk3K,YAChB,KAAWR,YAAYvtK,EAAQ64F,EAAQhiG,MAAMk3K,YAE3Cl1E,EAAQhiG,MAAMgmH,gBAChB,KAAW0wD,YAAYvtK,EAAQ64F,EAAQhiG,MAAMgmH,gBAE/C78G,EAAOguK,4BAA8B,WACnC,KAAWT,YAAYvtK,EAAQ64F,EAAQhiG,MAAMimH,kBACzCjkB,EAAQhiG,MAAMkmH,cAChB,KAAWywD,SAASxtK,EAAQ64F,EAAQhiG,MAAMkmH,cAE5C/8G,EAAOzK,oBAAoB,eAAgByK,EAAOguK,6BACX,cAAnCn1E,EAAQhiG,MAAMimH,mBAChB98G,EAAOovG,MAAMy+D,UAAY,IAE3B7tK,EAAO2tK,yBAA0B,CACnC,EACA3tK,EAAOlH,iBAAiB,eAAgBkH,EAAOguK,+BAI7Cn1E,EAAQhiG,MAAMk3K,YAChB,KAAWR,YAAYvtK,EAAQ64F,EAAQhiG,MAAMk3K,YAE3Cl1E,EAAQhiG,MAAMgmH,gBAChB,KAAW0wD,YAAYvtK,EAAQ64F,EAAQhiG,MAAMgmH,gBAE3ChkB,EAAQhiG,MAAMkmH,cAChB,KAAWywD,SAASxtK,EAAQ64F,EAAQhiG,MAAMkmH,eAG1ClkB,EAAQhiG,MAAMo3K,oBAChBtzK,KAAKuzK,qBAAqBluK,EAAQo1F,EAAIyD,EAE1C,EACAriE,MAAO,SAAex2B,EAAQ64F,GACxBA,EAAQhiG,MAAMumH,iBACXp9G,EAAO2tK,0BACV3tK,EAAO2tK,yBAA0B,EACjC,KAAWH,SAASxtK,EAAQ64F,EAAQhiG,MAAMumH,kBAGtCvkB,EAAQhiG,MAAMs3K,YAChB,KAAWZ,YAAYvtK,EAAQ64F,EAAQhiG,MAAMs3K,YAE3Ct1E,EAAQhiG,MAAMsmH,gBAChB,KAAWowD,YAAYvtK,EAAQ64F,EAAQhiG,MAAMsmH,gBAE/Cn9G,EAAOouK,4BAA8B,WACnC,KAAWb,YAAYvtK,EAAQ64F,EAAQhiG,MAAMumH,kBACzCvkB,EAAQhiG,MAAMwmH,cAChB,KAAWmwD,SAASxtK,EAAQ64F,EAAQhiG,MAAMwmH,cAE5Cr9G,EAAOzK,oBAAoB,eAAgByK,EAAOouK,6BAClDpuK,EAAO2tK,yBAA0B,CACnC,EACA3tK,EAAOlH,iBAAiB,eAAgBkH,EAAOouK,+BAI7Cv1E,EAAQhiG,MAAMs3K,YAChB,KAAWZ,YAAYvtK,EAAQ64F,EAAQhiG,MAAMs3K,YAE3Ct1E,EAAQhiG,MAAMsmH,gBAChB,KAAWowD,YAAYvtK,EAAQ64F,EAAQhiG,MAAMsmH,gBAE3CtkB,EAAQhiG,MAAMwmH,cAChB,KAAWmwD,SAASxtK,EAAQ64F,EAAQhiG,MAAMwmH,eAG1CxkB,EAAQhiG,MAAMo3K,oBAChBtzK,KAAK+yK,uBAAuB1tK,EAEhC,EACAk1G,cAAe,SAAuB9f,EAAIyD,GACxC,OAAQA,EAAQhiG,MAAMilH,UACpB,IAAK,QACH,OAAO1mB,EAAGi5E,mBACZ,IAAK,QACH,OAAOj5E,EAAGk5E,uBACZ,IAAK,UACH,OAAOl5E,EAAGm5E,cACZ,IAAK,eACH,OAAOn5E,EAAGm5E,cAAcA,cAC1B,QACE,OAAOxqK,SAASuxG,cAAczc,EAAQhiG,MAAMilH,UAElD,EACAoyD,qBAAsB,SAA8BluK,EAAQo1F,EAAIyD,GAC9D,IAAI3pE,EAASv0B,KACRqF,EAAOwuK,iCACVxuK,EAAOwuK,+BAAiC,SAAUzuI,GAC3C7Q,EAAOu/I,UAAUzuK,IAAqE,WAA1Dw/G,iBAAiBx/G,GAAQ0uK,iBAAiB,YAEhEx/I,EAAOy/I,eAAe5uI,EAAO//B,EAAQo1F,IAC9ClmE,EAAOsH,MAAMx2B,EAAQ64F,GAFrB3pE,EAAOw+I,uBAAuB1tK,EAIlC,EACAA,EAAO4uK,cAAc91K,iBAAiB,QAASkH,EAAOwuK,gCAE1D,EACAd,uBAAwB,SAAgC1tK,GAClDA,EAAOwuK,iCACTxuK,EAAO4uK,cAAcr5K,oBAAoB,QAASyK,EAAOwuK,gCACzDxuK,EAAOwuK,+BAAiC,KAE5C,EACAC,UAAW,SAAmBzuK,GAC5B,OAA+B,OAAxBA,EAAOytK,YAChB,EACAkB,eAAgB,SAAwB5uI,EAAO//B,EAAQo1F,GACrD,OAAQA,EAAGy5E,WAAW9uI,EAAM//B,UAAYo1F,EAAGupE,SAAS5+H,EAAM//B,UAAYA,EAAO2+J,SAAS5+H,EAAM//B,OAC9F,I,oFC9JA8uK,GAAgB,S,8FCChBC,EAAe,CACjBjoE,QAAS,SAAiBpB,GACxB,IAAIqpE,EAAe,CACjBlsI,IAAK,SAAanoC,GAChB,IAAcg2F,KAAK,MAAOh2F,EAC5B,EACAyJ,OAAQ,SAAgBzJ,GACtB,IAAcg2F,KAAK,SAAUh2F,EAC/B,EACAs0K,YAAa,SAAqBC,GAChC,IAAcv+E,KAAK,eAAgBu+E,EACrC,EACAC,gBAAiB,WACf,IAAcx+E,KAAK,oBACrB,GAEFgV,EAAIjxG,OAAOwtG,iBAAiBktE,OAASJ,EACrCrpE,EAAIhD,QAAQ,IAAqBqsE,EACnC,E,0GCnBE/O,EAAU,CACZ7qI,KAAM,wBACNi6I,MAAO,kBACPxjK,KAAM,kBAEJyjK,EAAe,IAAUt1K,OAAO,CAClCuF,KAAM,UACN0gK,QAASA,ICLPsP,EAAc,IAAcv1K,OAAO,CACrCq1G,MAAOigE,IAGT,SAAS5P,EAAev5J,EAAK7K,GAAK,OAAOqkK,EAAgBx5J,IAAQy5J,EAAsBz5J,EAAK7K,IAAMiiK,EAA4Bp3J,EAAK7K,IAAMukK,GAAoB,CAC7J,SAASA,IAAqB,MAAM,IAAI7kK,UAAU,4IAA8I,CAChM,SAASuiK,EAA4BhwJ,EAAGowJ,GAAU,GAAKpwJ,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOqwJ,EAAkBrwJ,EAAGowJ,GAAS,IAAInwJ,EAAI7M,OAAO5G,UAAUc,SAASmE,KAAKuO,GAAGnN,MAAM,GAAI,GAAiE,MAAnD,WAANoN,GAAkBD,EAAEvG,cAAawG,EAAID,EAAEvG,YAAYzH,MAAgB,QAANiO,GAAqB,QAANA,EAAoBjQ,MAAM49B,KAAK5tB,GAAc,cAANC,GAAqB,2CAA2ClJ,KAAKkJ,GAAWowJ,EAAkBrwJ,EAAGowJ,QAAzG,CAA7O,CAA+V,CAC/Z,SAASC,EAAkBz3J,EAAKmW,IAAkB,MAAPA,GAAeA,EAAMnW,EAAI3K,UAAQ8gB,EAAMnW,EAAI3K,QAAQ,IAAK,IAAIF,EAAI,EAAGuiK,EAAO,IAAItgK,MAAM+e,GAAMhhB,EAAIghB,EAAKhhB,IAAKuiK,EAAKviK,GAAK6K,EAAI7K,GAAI,OAAOuiK,CAAM,CAClL,SAAS+B,EAAsBhyJ,EAAGrS,GAAK,IAAIkU,EAAI,MAAQ7B,EAAI,KAAO,oBAAsBF,QAAUE,EAAEF,OAAOC,WAAaC,EAAE,cAAe,GAAI,MAAQ6B,EAAG,CAAE,IAAI5N,EAAG2L,EAAGlS,EAAGokF,EAAG/3E,EAAI,GAAIiN,GAAI,EAAIrH,GAAI,EAAI,IAAM,GAAIjS,GAAKmU,EAAIA,EAAEzQ,KAAK4O,IAAIE,KAAM,IAAMvS,EAAG,CAAE,GAAIoF,OAAO8O,KAAOA,EAAG,OAAQmF,GAAI,CAAI,MAAO,OAASA,GAAK/S,EAAIvG,EAAE0D,KAAKyQ,IAAIra,QAAUuS,EAAE7L,KAAK+F,EAAE/K,OAAQ6Q,EAAEnM,SAAWD,GAAIqZ,GAAI,GAAK,CAAE,MAAOhH,GAAKL,GAAI,EAAIC,EAAII,CAAG,CAAE,QAAU,IAAM,IAAKgH,GAAK,MAAQnF,EAAE,YAAciwE,EAAIjwE,EAAE,YAAa9O,OAAO++E,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAInyE,EAAG,MAAMC,CAAG,CAAE,CAAE,OAAO7F,CAAG,CAAE,CACzhB,SAASg4J,EAAgBx5J,GAAO,GAAI5I,MAAM4C,QAAQgG,GAAM,OAAOA,CAAK,CACpE,SAAS4T,EAAQxM,GAAgC,OAAOwM,EAAU,mBAAqBrM,QAAU,iBAAmBA,OAAOC,SAAW,SAAUJ,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBG,QAAUH,EAAEvG,cAAgB0G,QAAUH,IAAMG,OAAO3T,UAAY,gBAAkBwT,CAAG,EAAGwM,EAAQxM,EAAI,CAC7T,IAAIiiK,EAAUD,EAAYv1K,OAAO,UAAW,CAC1CgpG,YAAa,SAAqB3N,EAAIl3F,GACpC,IAAIsxK,EACAxvK,EAASrF,KAAK80K,UAAUr6E,GAE5B,GADAp1F,EAAO0vK,oBAAsB/0K,KAAKg1K,aAAazxK,GAC1CA,EAAQrH,MAAb,CAAgC,GAA6B,kBAAlBqH,EAAQrH,MACjDmJ,EAAO4vK,gBAAkB1xK,EAAQrH,MACjCmJ,EAAO6vK,oBAAqB,EAC5B7vK,EAAO8vK,kBAAmB,EAC1B9vK,EAAO+vK,gBAAkB,KACzB/vK,EAAOgwK,sBAAuB,EAC9BhwK,EAAOiwK,kBAAmB,UAAsB,WAChDjwK,EAAOkwK,oBAAsB,EAC7BlwK,EAAOmwK,oBAAsB,EAC7BnwK,EAAOowK,oBAAqB,OACvB,GAA+B,WAA3Bt2J,EAAQ5b,EAAQrH,QAAuBqH,EAAQrH,MAAO,CAC/D,GAAI,KAAYy+E,QAAQp3E,EAAQrH,MAAMA,QAAyC,KAA/BqH,EAAQrH,MAAMA,MAAM8K,OAAe,OACjF3B,EAAO4vK,gBAAkB1xK,EAAQrH,MAAMA,MACvCmJ,EAAO6vK,qBAAuB3xK,EAAQrH,MAAMk+G,WAAa72G,EAAQrH,MAAMk+G,UAAW72G,EAAQrH,MAAMk+G,SAChG/0G,EAAO8vK,mBAAqB5xK,EAAQrH,MAAMsnJ,SAAWjgJ,EAAQrH,MAAMsnJ,QAASjgJ,EAAQrH,MAAMsnJ,OAC1Fn+I,EAAO+vK,gBAAkB7xK,EAAQrH,MAAM,UAAY,GACnDmJ,EAAOgwK,uBAAyB9xK,EAAQrH,MAAMw5K,aAAenyK,EAAQrH,MAAMw5K,YAAanyK,EAAQrH,MAAMw5K,WACtGrwK,EAAOiwK,iBAAmB/xK,EAAQrH,MAAMuH,KAAM,UAAsB,WACpE4B,EAAOkwK,oBAAsBhyK,EAAQrH,MAAMy5K,WAAa,EACxDtwK,EAAOmwK,oBAAsBjyK,EAAQrH,MAAM05K,WAAa,EACxDvwK,EAAOowK,qBAAuBlyK,EAAQrH,MAAM25K,WAAatyK,EAAQrH,MAAM25K,UAAWtyK,EAAQrH,MAAM25K,QAEpG,CACAxwK,EAAOywK,iBAA4E,QAAxDjB,EAAwBtxK,EAAQrE,SAAS+mK,iBAAiD,IAA1B4O,GAA+F,QAA1DA,EAAwBA,EAAsB/6K,cAA8C,IAA1B+6K,GAA+F,QAA1DA,EAAwBA,EAAsB5D,cAA8C,IAA1B4D,OAAmC,EAASA,EAAsBxD,QAC3WrxK,KAAK+1K,WAAW1wK,EAAQ9B,GACxBk3F,EAAGrwF,aAAa,mBAAmB,EAHnC,CAIF,EACA2zF,QAAS,SAAiBtD,EAAIl3F,GAC5B,IAAI8B,EAASrF,KAAK80K,UAAUr6E,GAG5B,GAFAp1F,EAAO0vK,oBAAsB/0K,KAAKg1K,aAAazxK,GAC/CvD,KAAKg2K,aAAa3wK,GACb9B,EAAQrH,MAGb,GAA6B,kBAAlBqH,EAAQrH,MACjBmJ,EAAO4vK,gBAAkB1xK,EAAQrH,MACjCmJ,EAAO6vK,oBAAqB,EAC5B7vK,EAAO8vK,kBAAmB,EAC1B9vK,EAAO+vK,gBAAkB,KACzB/vK,EAAOiwK,iBAAmBjwK,EAAOiwK,mBAAoB,UAAsB,WAC3EjwK,EAAOkwK,oBAAsB,EAC7BlwK,EAAOmwK,oBAAsB,EAC7BnwK,EAAOowK,oBAAqB,EAC5Bz1K,KAAK+1K,WAAW1wK,EAAQ9B,QACnB,GAA+B,WAA3B4b,EAAQ5b,EAAQrH,QAAuBqH,EAAQrH,MAAO,CAC/D,GAAI,KAAYy+E,QAAQp3E,EAAQrH,MAAMA,QAAyC,KAA/BqH,EAAQrH,MAAMA,MAAM8K,OAElE,YADAhH,KAAKg2K,aAAa3wK,EAAQ9B,GAG1B8B,EAAO4vK,gBAAkB1xK,EAAQrH,MAAMA,MACvCmJ,EAAO6vK,qBAAuB3xK,EAAQrH,MAAMk+G,WAAa72G,EAAQrH,MAAMk+G,UAAW72G,EAAQrH,MAAMk+G,SAChG/0G,EAAO8vK,mBAAqB5xK,EAAQrH,MAAMsnJ,SAAWjgJ,EAAQrH,MAAMsnJ,QAASjgJ,EAAQrH,MAAMsnJ,OAC1Fn+I,EAAO+vK,gBAAkB7xK,EAAQrH,MAAM,UAAY,GACnDmJ,EAAOgwK,uBAAyB9xK,EAAQrH,MAAMw5K,aAAenyK,EAAQrH,MAAMw5K,YAAanyK,EAAQrH,MAAMw5K,WACtGrwK,EAAOiwK,iBAAmB/xK,EAAQrH,MAAMuH,IAAM4B,EAAOiwK,mBAAoB,UAAsB,WAC/FjwK,EAAOkwK,oBAAsBhyK,EAAQrH,MAAMy5K,WAAa,EACxDtwK,EAAOmwK,oBAAsBjyK,EAAQrH,MAAM05K,WAAa,EACxDvwK,EAAOowK,qBAAuBlyK,EAAQrH,MAAM25K,WAAatyK,EAAQrH,MAAM25K,UAAWtyK,EAAQrH,MAAM25K,SAChG71K,KAAK+1K,WAAW1wK,EAAQ9B,EAE5B,CACF,EACAolG,UAAW,SAAmBlO,EAAIl3F,GAChC,IAAI8B,EAASrF,KAAK80K,UAAUr6E,GAC5Bz6F,KAAKwJ,OAAOnE,GACZrF,KAAKg2K,aAAa3wK,EAAQ9B,GACtB8B,EAAO4wK,0BACT5wK,EAAO4wK,wBAAwBl2G,UAC/B16D,EAAO4wK,wBAA0B,KAErC,EACAC,WAAOx4K,EACPmqG,QAAS,CACPkuE,WAAY,SAAoBt7E,EAAIl3F,GAClC,IAAI+M,EAAQtQ,KACR69F,EAAYpD,EAAGs6E,oBACfl3E,EAAUm2C,OACZv5C,EAAG07E,aAAe,SAAU/wI,GAC1B,OAAO90B,EAAM8lK,QAAQhxI,EAAO7hC,EAC9B,EACAk3F,EAAGt8F,iBAAiB,QAASs8F,EAAG07E,cAChC17E,EAAGt8F,iBAAiB,OAAQ6B,KAAKq2K,OAAOz3K,KAAKoB,SAE7Cy6F,EAAG67E,kBAAoB,SAAUlxI,GAC/B,OAAO90B,EAAMimK,aAAanxI,EAAO7hC,EACnC,EACAk3F,EAAGt8F,iBAAiB,aAAcs8F,EAAG67E,mBACrC77E,EAAGt8F,iBAAiB,aAAc6B,KAAKw2K,aAAa53K,KAAKoB,OACzDy6F,EAAGt8F,iBAAiB,QAAS6B,KAAKy2K,QAAQ73K,KAAKoB,QAEjDy6F,EAAGt8F,iBAAiB,UAAW6B,KAAK02K,UAAU93K,KAAKoB,MACrD,EACAg2K,aAAc,SAAsBv7E,GAClC,IAAIoD,EAAYpD,EAAGs6E,oBACfl3E,EAAUm2C,OACZv5C,EAAG7/F,oBAAoB,QAAS6/F,EAAG07E,cACnC17E,EAAG07E,aAAe,KAClB17E,EAAG7/F,oBAAoB,OAAQoF,KAAKq2K,OAAOz3K,KAAKoB,SAEhDy6F,EAAG7/F,oBAAoB,aAAc6/F,EAAG67E,mBACxC77E,EAAG67E,kBAAoB,KACvB77E,EAAG7/F,oBAAoB,aAAcoF,KAAKw2K,aAAa53K,KAAKoB,OAC5Dy6F,EAAG7/F,oBAAoB,QAASoF,KAAKy2K,QAAQ73K,KAAKoB,QAEpDy6F,EAAG7/F,oBAAoB,UAAWoF,KAAK02K,UAAU93K,KAAKoB,MACxD,EACA22K,mBAAoB,SAA4Bl8E,GAC9C,IAAIlmE,EAASv0B,KACRy6F,EAAGw7E,0BACNx7E,EAAGw7E,wBAA0B,IAAI,KAA8Bx7E,GAAI,WACjElmE,EAAOqiJ,KAAKn8E,EACd,KAEFA,EAAGw7E,wBAAwBU,oBAC7B,EACAE,qBAAsB,SAA8Bp8E,GAC9CA,EAAGw7E,yBACLx7E,EAAGw7E,wBAAwBY,sBAE/B,EACAN,aAAc,SAAsBnxI,EAAO7hC,GACzC,IAAIk3F,EAAKr1D,EAAM4nF,cACX2oD,EAAYl7E,EAAG86E,oBACnBv1K,KAAK82K,KAAKr8E,EAAIl3F,EAASoyK,EACzB,EACAa,aAAc,SAAsBpxI,GAClC,IAAIq1D,EAAKr1D,EAAM4nF,cACX4oD,EAAYn7E,EAAG+6E,oBACfK,EAAWp7E,EAAGg7E,mBAClB,GAAKI,EAIH71K,KAAK42K,KAAKn8E,EAAIm7E,OAJD,CACb,IAAImB,EAAkE,YAA1D,KAAWxvD,aAAaniF,EAAM//B,OAAQ,iBAA8F,UAA7D,KAAWkiH,aAAaniF,EAAM//B,OAAQ,oBAA+F,SAA7D,KAAWkiH,aAAaniF,EAAM//B,OAAQ,oBAAkG,YAAjE,KAAWkiH,aAAaniF,EAAM4xI,cAAe,iBAAqG,UAApE,KAAWzvD,aAAaniF,EAAM4xI,cAAe,oBAAsG,SAApE,KAAWzvD,aAAaniF,EAAM4xI,cAAe,oBAC3aD,GAAS/2K,KAAK42K,KAAKn8E,EAAIm7E,EAC1B,CAGF,EACAQ,QAAS,SAAiBhxI,EAAO7hC,GAC/B,IAAIk3F,EAAKr1D,EAAM4nF,cACX2oD,EAAYl7E,EAAG86E,oBACnBv1K,KAAK82K,KAAKr8E,EAAIl3F,EAASoyK,EACzB,EACAU,OAAQ,SAAgBjxI,GACtB,IAAIq1D,EAAKr1D,EAAM4nF,cACX4oD,EAAYn7E,EAAG+6E,oBACnBx1K,KAAK42K,KAAKn8E,EAAIm7E,EAChB,EACAa,QAAS,SAAiBrxI,GACxB,IAAIq1D,EAAKr1D,EAAM4nF,cACX4oD,EAAYn7E,EAAG+6E,oBACnBx1K,KAAK42K,KAAKn8E,EAAIm7E,EAChB,EACAc,UAAW,SAAmBtxI,GAC5B,IAAIq1D,EAAKr1D,EAAM4nF,cACX4oD,EAAYn7E,EAAG+6E,oBACJ,WAAfpwI,EAAMphC,MAAqBhE,KAAK42K,KAAKxxI,EAAM4nF,cAAe4oD,EAC5D,EACAqB,eAAgB,SAAwBx8E,EAAIl3F,GAC1C,IAAIk3F,EAAGy6E,oBAAuB,KAAWgC,QAAQz8E,GAAjD,CAGA,IAAI08E,EAAiBn3K,KAAKX,OAAOo7F,EAAIl3F,GACrCvD,KAAKo3K,MAAM38E,IACVz6F,KAAKupK,cAAgB,KAAW8N,OAAOF,EAAgB,KACxD,IAAIG,EAAQt3K,KACZ6K,OAAO1M,iBAAiB,UAAU,SAASo5K,IACpC,KAAWC,iBACdF,EAAMV,KAAKn8E,GAEb5vF,OAAOjQ,oBAAoB,SAAU28K,EACvC,IACAJ,EAAeh5K,iBAAiB,cAAc,SAASs5K,IACrDH,EAAMV,KAAKn8E,GACX08E,EAAev8K,oBAAoB,aAAc68K,EACnD,IACAz3K,KAAK22K,mBAAmBl8E,GACxB,KAAYh9E,IAAI,UAAW05J,EAAgB18E,EAAGq7E,iBAhB9C,CAiBF,EACAgB,KAAM,SAAcr8E,EAAIl3F,EAASoyK,GAC/B,IAAIl5C,EAASz8H,UACKtC,IAAdi4K,EACF31K,KAAKk2K,MAAQp5K,YAAW,WACtB,OAAO2/H,EAAOw6C,eAAex8E,EAAIl3F,EACnC,GAAGoyK,GAEH31K,KAAKi3K,eAAex8E,EAAIl3F,EAE5B,EACAm0K,eAAgB,SAAwBj9E,GACtCz6F,KAAKwJ,OAAOixF,GACZz6F,KAAK62K,qBAAqBp8E,EAC5B,EACAm8E,KAAM,SAAcn8E,EAAIm7E,GACtB,IAAIl4C,EAAS19H,KACbouC,aAAapuC,KAAKk2K,YACAx4K,IAAdk4K,EACF94K,YAAW,WACT,OAAO4gI,EAAOg6C,eAAej9E,EAC/B,GAAGm7E,GAEH51K,KAAK03K,eAAej9E,EAExB,EACAk9E,kBAAmB,SAA2Bl9E,GAC5C,OAAOrxF,SAASwoK,eAAen3E,EAAGm9E,aACpC,EACAv4K,OAAQ,SAAgBo7F,GACtB,IAAIoD,EAAYpD,EAAGs6E,oBACf8C,EAAe,KAAW5tK,cAAc,MAAO,CACjD,OAAUjK,KAAKupK,cAAgBvpK,KAAK8pK,GAAG,SACvC,SAAU9pK,KAAK2pK,IAAI,QAAS,CAC1B1qK,QAAS4+F,MAGTi6E,EAAc,KAAW7tK,cAAc,MAAO,CAChD,OAAUjK,KAAKupK,cAAgBvpK,KAAK8pK,GAAG,QACvC,SAAU9pK,KAAK2pK,IAAI,OAAQ,CACzB1qK,QAAS4+F,MAGRpD,EAAG06E,kBAGN2C,EAAYv2D,UAAY,GACxBu2D,EAAYr2D,YAAYr4G,SAAS43G,eAAevmB,EAAGw6E,mBAHnD6C,EAAYv2D,UAAY9mB,EAAGw6E,gBAK7B,IAAI9iE,EAAY,KAAWloG,cAAc,MAAO,CAC9CxG,GAAIg3F,EAAG66E,iBACPyC,KAAM,UACNtjE,MAAO,CACLuR,QAAS,eACTgyD,MAAOv9E,EAAG46E,qBAAuB,mBAAgB33K,EACjDu6K,eAAgBj4K,KAAKupK,cAAgB9uE,EAAGg7E,oBAAsB,QAEhE,MAAS,EAAEz1K,KAAKupK,cAAgBvpK,KAAK8pK,GAAG,QAASrvE,EAAG26E,iBACpD,SAAUp1K,KAAK2pK,IAAI,OAAQ,CACzB1qK,QAAS4+F,KAEVg6E,EAAcC,GAIjB,OAHA1uK,SAAS+O,KAAKspG,YAAYtP,GAC1B1X,EAAGm9E,aAAezlE,EAAU1uG,GAC5BzD,KAAK+lG,IAAMoM,EACJA,CACT,EACA3oG,OAAQ,SAAgBixF,GACtB,GAAIA,EAAI,CACN,IAAI08E,EAAiBn3K,KAAK23K,kBAAkBl9E,GACxC08E,GAAkBA,EAAevD,gBACnC,KAAYjlK,MAAMwoK,GAClB/tK,SAAS+O,KAAK0oG,YAAYs2D,IAE5B18E,EAAGm9E,aAAe,IACpB,CACF,EACAR,MAAO,SAAe38E,GACpB,IAAIoD,EAAYpD,EAAGs6E,oBACfl3E,EAAUwsB,KACZrqH,KAAKk4K,SAASz9E,GACVz6F,KAAKm4K,cAAc19E,KACrBz6F,KAAKo4K,YAAY39E,GACbz6F,KAAKm4K,cAAc19E,IACrBz6F,KAAKk4K,SAASz9E,KAGToD,EAAUl5D,MACnB3kC,KAAKq4K,UAAU59E,GACXz6F,KAAKm4K,cAAc19E,KACrBz6F,KAAKs4K,WAAW79E,GACZz6F,KAAKm4K,cAAc19E,KACrBz6F,KAAKk4K,SAASz9E,GACVz6F,KAAKm4K,cAAc19E,KACrBz6F,KAAKo4K,YAAY39E,GACbz6F,KAAKm4K,cAAc19E,IACrBz6F,KAAKq4K,UAAU59E,OAKdoD,EAAU06E,QACnBv4K,KAAKo4K,YAAY39E,GACbz6F,KAAKm4K,cAAc19E,KACrBz6F,KAAKk4K,SAASz9E,GACVz6F,KAAKm4K,cAAc19E,IACrBz6F,KAAKo4K,YAAY39E,MAIrBz6F,KAAKs4K,WAAW79E,GACZz6F,KAAKm4K,cAAc19E,KACrBz6F,KAAKq4K,UAAU59E,GACXz6F,KAAKm4K,cAAc19E,KACrBz6F,KAAKk4K,SAASz9E,GACVz6F,KAAKm4K,cAAc19E,KACrBz6F,KAAKo4K,YAAY39E,GACbz6F,KAAKm4K,cAAc19E,IACrBz6F,KAAKs4K,WAAW79E,MAM5B,EACA+9E,cAAe,SAAuB/9E,GACpC,IAAI9lF,EAAS8lF,EAAGsvB,wBACZ0uD,EAAa9jK,EAAOgwB,KAAO,KAAW+zI,sBACtCC,EAAYhkK,EAAO01G,IAAM,KAAWuuD,qBACxC,MAAO,CACLj0I,KAAM8zI,EACNpuD,IAAKsuD,EAET,EACAL,WAAY,SAAoB79E,GAC9Bz6F,KAAK64K,SAASp+E,EAAI,SAClB,IAAI08E,EAAiBn3K,KAAK23K,kBAAkBl9E,GACxCq+E,EAAa94K,KAAKw4K,cAAc/9E,GAChC91D,EAAOm0I,EAAWn0I,KAAO,KAAWo0I,cAAct+E,GAClD4vB,EAAMyuD,EAAWzuD,KAAO,KAAW2uD,eAAev+E,GAAM,KAAWu+E,eAAe7B,IAAmB,EACzGA,EAAe1iE,MAAM9vE,KAAOA,EAAO,KACnCwyI,EAAe1iE,MAAM4V,IAAMA,EAAM,IACnC,EACAguD,UAAW,SAAmB59E,GAC5Bz6F,KAAK64K,SAASp+E,EAAI,QAClB,IAAI08E,EAAiBn3K,KAAK23K,kBAAkBl9E,GACxCq+E,EAAa94K,KAAKw4K,cAAc/9E,GAChC91D,EAAOm0I,EAAWn0I,KAAO,KAAWo0I,cAAc5B,GAClD9sD,EAAMyuD,EAAWzuD,KAAO,KAAW2uD,eAAev+E,GAAM,KAAWu+E,eAAe7B,IAAmB,EACzGA,EAAe1iE,MAAM9vE,KAAOA,EAAO,KACnCwyI,EAAe1iE,MAAM4V,IAAMA,EAAM,IACnC,EACA6tD,SAAU,SAAkBz9E,GAC1Bz6F,KAAK64K,SAASp+E,EAAI,OAClB,IAAI08E,EAAiBn3K,KAAK23K,kBAAkBl9E,GACxCq+E,EAAa94K,KAAKw4K,cAAc/9E,GAChC91D,EAAOm0I,EAAWn0I,MAAQ,KAAWo0I,cAAct+E,GAAM,KAAWs+E,cAAc5B,IAAmB,EACrG9sD,EAAMyuD,EAAWzuD,IAAM,KAAW2uD,eAAe7B,GACrDA,EAAe1iE,MAAM9vE,KAAOA,EAAO,KACnCwyI,EAAe1iE,MAAM4V,IAAMA,EAAM,IACnC,EACA+tD,YAAa,SAAqB39E,GAChCz6F,KAAK64K,SAASp+E,EAAI,UAClB,IAAI08E,EAAiBn3K,KAAK23K,kBAAkBl9E,GACxCq+E,EAAa94K,KAAKw4K,cAAc/9E,GAChC91D,EAAOm0I,EAAWn0I,MAAQ,KAAWo0I,cAAct+E,GAAM,KAAWs+E,cAAc5B,IAAmB,EACrG9sD,EAAMyuD,EAAWzuD,IAAM,KAAW2uD,eAAev+E,GACrD08E,EAAe1iE,MAAM9vE,KAAOA,EAAO,KACnCwyI,EAAe1iE,MAAM4V,IAAMA,EAAM,IACnC,EACAwuD,SAAU,SAAkBp+E,EAAIh7E,GAC9B,IAAI03J,EAAiBn3K,KAAK23K,kBAAkBl9E,GAC5C08E,EAAe1iE,MAAM9vE,KAAO,SAC5BwyI,EAAe1iE,MAAM4V,IAAM,SAC3B,KAAWuoD,YAAYuE,EAAgB,aAAat0K,OAAOs0K,EAAe8B,sBACzEj5K,KAAKupK,cAAgB,KAAWsJ,SAASsE,EAAgB,aAAat0K,OAAO4c,IAC9E03J,EAAe8B,mBAAqBx5J,EACpC03J,EAAe/sK,aAAa,kBAAmBqV,GAC/C,IAAIy5J,EAAe,KAAWC,WAAWhC,EAAgB,6BACzD+B,EAAazkE,MAAM4V,IAAmB,WAAb5qG,EAAwB,IAAmB,UAAbA,GAAqC,SAAbA,GAAoC,UAAbA,GAAqC,SAAbA,GAAoC,QAAbA,GAAmC,WAAbA,EAAwB,MAAQ,KAC3My5J,EAAazkE,MAAM8jE,OAAsB,QAAb94J,EAAqB,IAAM,KACvDy5J,EAAazkE,MAAM9vE,KAAoB,UAAbllB,GAAqC,UAAbA,GAAqC,SAAbA,GAAoC,QAAbA,GAAmC,WAAbA,EAAwB,IAAmB,QAAbA,GAAmC,WAAbA,EAAwB,MAAQ,KAC3My5J,EAAazkE,MAAM7vE,MAAqB,SAAbnlB,EAAsB,IAAM,IACzD,EACA04J,cAAe,SAAuB19E,GACpC,IAAI08E,EAAiBn3K,KAAK23K,kBAAkBl9E,GACxC9lF,EAASwiK,EAAeptD,wBACxB4uD,EAAYhkK,EAAO01G,IACnBouD,EAAa9jK,EAAOgwB,KACpBqzI,EAAQ,KAAWe,cAAc5B,GACjClE,EAAS,KAAW+F,eAAe7B,GACnCiC,EAAW,KAAWC,cAC1B,OAAOZ,EAAaT,EAAQoB,EAASpB,OAASS,EAAa,GAAKE,EAAY,GAAKA,EAAY1F,EAASmG,EAASnG,MACjH,EACA6B,UAAW,SAAmBr6E,GAC5B,OAAO,KAAWk4E,SAASl4E,EAAI,kBAAoB,KAAW0+E,WAAW1+E,EAAI,SAAWA,CAC1F,EACAu6E,aAAc,SAAsBzxK,GAElC,OAAIA,EAAQs6F,WAAa93F,OAAOC,KAAKzC,EAAQs6F,WAAWj9F,OAC/C2C,EAAQs6F,UAIbt6F,EAAQiS,KAAgC,WAAzB2J,EAAQ5b,EAAQiS,KAC1BzP,OAAO2iC,QAAQnlC,EAAQiS,KAAK6G,QAAO,SAAUC,EAAK6E,GACvD,IAAIG,EAAQwjJ,EAAe3jJ,EAAM,GAC/BrjB,EAAMwjB,EAAM,GACZzjB,EAAMyjB,EAAM,GAEd,MADY,UAARxjB,GAA2B,aAARA,IAAoBwe,EAAIze,IAAO,GAC/Cye,CACT,GAAG,CAAC,GAEC,CAAC,CACV,I,wGCvZJ,SAAS6C,EAAQxM,GAAgC,OAAOwM,EAAU,mBAAqBrM,QAAU,iBAAmBA,OAAOC,SAAW,SAAUJ,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBG,QAAUH,EAAEvG,cAAgB0G,QAAUH,IAAMG,OAAO3T,UAAY,gBAAkBwT,CAAG,EAAGwM,EAAQxM,EAAI,CAC7T,SAASgP,EAAQ1a,EAAG+L,GAAK,IAAI6B,EAAI9O,OAAOC,KAAKiB,GAAI,GAAIlB,OAAOiP,sBAAuB,CAAE,IAAIrC,EAAI5M,OAAOiP,sBAAsB/N,GAAI+L,IAAML,EAAIA,EAAEuO,QAAO,SAAUlO,GAAK,OAAOjN,OAAOic,yBAAyB/a,EAAG+L,GAAGiP,UAAY,KAAKpN,EAAE3T,KAAK0B,MAAMiS,EAAGlC,EAAI,CAAE,OAAOkC,CAAG,CAC9P,SAASqN,EAAcjb,GAAK,IAAK,IAAI+L,EAAI,EAAGA,EAAI/K,UAAUrH,OAAQoS,IAAK,CAAE,IAAI6B,EAAI,MAAQ5M,UAAU+K,GAAK/K,UAAU+K,GAAK,CAAC,EAAGA,EAAI,EAAI2O,EAAQ5b,OAAO8O,IAAI,GAAIjX,SAAQ,SAAUoV,GAAKmP,EAAgBlb,EAAG+L,EAAG6B,EAAE7B,GAAK,IAAKjN,OAAOqc,0BAA4Brc,OAAOsc,iBAAiBpb,EAAGlB,OAAOqc,0BAA0BvN,IAAM8M,EAAQ5b,OAAO8O,IAAIjX,SAAQ,SAAUoV,GAAKjN,OAAOuc,eAAerb,EAAG+L,EAAGjN,OAAOic,yBAAyBnN,EAAG7B,GAAK,GAAI,CAAE,OAAO/L,CAAG,CACtb,SAASkb,EAAgBvV,EAAK9O,EAAK5B,GAA4L,OAAnL4B,EAAMonK,EAAepnK,GAAUA,KAAO8O,EAAO7G,OAAOuc,eAAe1V,EAAK9O,EAAK,CAAE5B,MAAOA,EAAO+lB,YAAY,EAAMM,cAAc,EAAMC,UAAU,IAAkB5V,EAAI9O,GAAO5B,EAAgB0Q,CAAK,CAC3O,SAASs4J,EAAerwJ,GAAK,IAAInU,EAAIykK,EAAatwJ,EAAG,UAAW,MAAO,UAAYsK,EAAQze,GAAKA,EAAIsrB,OAAOtrB,EAAI,CAC/G,SAASykK,EAAatwJ,EAAG7B,GAAK,GAAI,UAAYmM,EAAQtK,KAAOA,EAAG,OAAOA,EAAG,IAAI5N,EAAI4N,EAAE/B,OAAOsyJ,aAAc,QAAI,IAAWn+J,EAAG,CAAE,IAAIvG,EAAIuG,EAAE7C,KAAKyQ,EAAG7B,GAAK,WAAY,GAAI,UAAYmM,EAAQze,GAAI,OAAOA,EAAG,MAAM,IAAIN,UAAU,+CAAiD,CAAE,OAAQ,WAAa4S,EAAIgZ,OAAS5d,QAAQyG,EAAI,CAC3T,SAASykK,EAAa51K,GACpB,IAAI61K,IAAOtxK,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,KAAmBA,UAAU,IACtE,WAAsB,QAAUvE,GAAa61K,EAAM71K,KAAU,QAASA,EAC5E,CACA,IAAI81K,EAAM,EACV,SAASC,EAASz3D,GAChB,IAAIz+G,EAAU0E,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EyxK,GAAW,SAAI,GACfC,GAAS,QAAI33D,GACb43D,GAAW,QAAI,MACfC,EAAkB,KAAWC,WAAajvK,OAAOzB,cAAW1L,EAC5Dq8K,EAAoBx2K,EAAQ6F,SAC9BA,OAAiC,IAAtB2wK,EAA+BF,EAAkBE,EAC5DC,EAAqBz2K,EAAQ04F,UAC7BA,OAAmC,IAAvB+9E,GAAuCA,EACnDC,EAAkB12K,EAAQ22K,OAC1BA,OAA6B,IAApBD,GAAqCA,EAC9CE,EAAgB52K,EAAQoB,KACxBA,OAAyB,IAAlBw1K,EAA2B,SAASt3K,SAAS22K,GAAOW,EAC3DC,EAAc72K,EAAQE,GACtBA,OAAqB,IAAhB22K,OAAyB18K,EAAY08K,EAC1CC,EAAiB92K,EAAQ+2K,MACzBA,OAA2B,IAAnBD,OAA4B38K,EAAY28K,EAChDE,EAAiBh3K,EAAQinK,MACzBA,OAA2B,IAAnB+P,OAA4B78K,EAAY68K,EAChDC,EAAiBj3K,EAAQqf,MACzBA,OAA2B,IAAnB43J,EAA4B,CAAC,EAAIA,EACvClyF,EAAO,WAAiB,EAGxBmyF,EAAO,SAAcC,GACvB,IAAI3uE,EAAS9jG,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,GAAKmB,EAAL,CACA,IAAIuxK,EAAcz4J,EAAcA,EAAc,CAAC,EAAGU,GAAQmpF,GACtDm/D,EAAQyP,EAAYh2K,MAAQA,EAC9B60K,EAAMmB,EAAYl3K,IAAMA,EACxBm3K,EAASD,EAAYnQ,OAASA,EAChCoP,EAAS19K,MAAQkN,EAASuxG,cAAc,iCAAkC93G,OAAOqoK,EAAO,QAAW9hK,EAASwoK,eAAe4H,IAAQpwK,EAASa,cAAc,SACrJ2vK,EAAS19K,MAAMwrC,cAClBiyI,EAAOz9K,MAAQw+K,GAAQ14D,EACvB,KAAW64D,cAAcjB,EAAS19K,MAAO,CACvCqC,KAAM,WACNkF,GAAI+1K,EACJc,MAAOA,EACP9P,MAAOoQ,IAETxxK,EAAS+T,KAAKskG,YAAYm4D,EAAS19K,OACnC,KAAWkO,aAAawvK,EAAS19K,MAAO,yBAA0ByI,GAClE,KAAWk2K,cAAcjB,EAAS19K,MAAOy+K,IAEvCjB,EAASx9K,QACbosF,GAAO,QAAMqxF,GAAQ,SAAUz9K,GAC7B09K,EAAS19K,MAAMglH,YAAchlH,CAC/B,GAAG,CACD+/F,WAAW,IAEby9E,EAASx9K,OAAQ,EAxBI,CAyBvB,EACI4+K,EAAS,WACN1xK,GAAaswK,EAASx9K,QAC3BosF,IACA,KAAW4uF,QAAQ0C,EAAS19K,QAAUkN,EAAS+T,KAAK0jG,YAAY+4D,EAAS19K,OACzEw9K,EAASx9K,OAAQ,EACnB,EAMA,OALI+/F,IAAci+E,GAAQZ,EAAamB,GAKhC,CACLh3K,GAAIA,EACJkB,KAAMA,EACNq9G,IAAK23D,EACLmB,OAAQA,EACRL,KAAMA,EACNf,UAAU,QAASA,GAEvB,C,0GCpFIqB,EAAsBjoK,SAC1B,SAASkoK,IACP,IAAIC,GAAgB,QAAOF,GAC3B,IAAKE,EACH,MAAM,IAAIh3K,MAAM,+BAElB,OAAOg3K,CACT,C,qCCTA,SAASC,EAA6BvoK,EAAG8vJ,GAAkB,IAAIC,EAAuB,qBAAX5vJ,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAAe,IAAK+vJ,EAAI,CAAE,GAAI//J,MAAM4C,QAAQoN,KAAO+vJ,EAAKyY,EAA8BxoK,KAAO8vJ,GAAkB9vJ,GAAyB,kBAAbA,EAAE/R,OAAqB,CAAM8hK,IAAI/vJ,EAAI+vJ,GAAI,IAAIhiK,EAAI,EAAOwhJ,EAAI,WAAc,EAAG,MAAO,CAAEptI,EAAGotI,EAAGtvI,EAAG,WAAe,OAAIlS,GAAKiS,EAAE/R,OAAe,CAAEpG,MAAM,GAAe,CAAEA,MAAM,EAAO0B,MAAOyW,EAAEjS,KAAQ,EAAGuG,EAAG,SAAWilC,GAAM,MAAMA,CAAI,EAAGlyB,EAAGkoI,EAAK,CAAE,MAAM,IAAI9hJ,UAAU,wIAA0I,CAAE,IAA6CjE,EAAzCymK,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAE/tJ,EAAG,WAAe4tJ,EAAKA,EAAGt+J,KAAKuO,EAAI,EAAGC,EAAG,WAAe,IAAIkH,EAAO4oJ,EAAGxvJ,OAAsC,OAA9B0vJ,EAAmB9oJ,EAAKtf,KAAasf,CAAM,EAAG7S,EAAG,SAAW67J,GAAOD,GAAS,EAAM1mK,EAAM2mK,CAAK,EAAG9oJ,EAAG,WAAe,IAAW4oJ,GAAoC,MAAhBF,EAAG,WAAmBA,EAAG,WAAa,CAAE,QAAU,GAAIG,EAAQ,MAAM1mK,CAAK,CAAE,EAAK,CAC/+B,SAASi/K,EAAqB7vK,GAAO,OAAO8vK,EAAqB9vK,IAAQ+vK,EAAmB/vK,IAAQ4vK,EAA8B5vK,IAAQgwK,GAAwB,CAClK,SAASA,IAAyB,MAAM,IAAIn7K,UAAU,uIAAyI,CAC/L,SAASk7K,EAAmBE,GAAQ,GAAsB,qBAAX1oK,QAAmD,MAAzB0oK,EAAK1oK,OAAOC,WAA2C,MAAtByoK,EAAK,cAAuB,OAAO74K,MAAM49B,KAAKi7I,EAAO,CAC/J,SAASH,EAAqB9vK,GAAO,GAAI5I,MAAM4C,QAAQgG,GAAM,OAAOkwK,EAAoBlwK,EAAM,CAC9F,SAASmwK,EAAU/oK,GAAgC,OAAO+oK,EAAY,mBAAqB5oK,QAAU,iBAAmBA,OAAOC,SAAW,SAAUJ,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBG,QAAUH,EAAEvG,cAAgB0G,QAAUH,IAAMG,OAAO3T,UAAY,gBAAkBwT,CAAG,EAAG+oK,EAAU/oK,EAAI,CACnU,SAASgpK,EAAiBpwK,EAAK7K,GAAK,OAAOk7K,EAAkBrwK,IAAQswK,EAAwBtwK,EAAK7K,IAAMy6K,EAA8B5vK,EAAK7K,IAAMo7K,GAAsB,CACvK,SAASA,IAAuB,MAAM,IAAI17K,UAAU,4IAA8I,CAClM,SAAS+6K,EAA8BxoK,EAAGowJ,GAAU,GAAKpwJ,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO8oK,EAAoB9oK,EAAGowJ,GAAS,IAAInwJ,EAAI7M,OAAO5G,UAAUc,SAASmE,KAAKuO,GAAGnN,MAAM,GAAI,GAAiE,MAAnD,WAANoN,GAAkBD,EAAEvG,cAAawG,EAAID,EAAEvG,YAAYzH,MAAgB,QAANiO,GAAqB,QAANA,EAAoBjQ,MAAM49B,KAAK5tB,GAAc,cAANC,GAAqB,2CAA2ClJ,KAAKkJ,GAAW6oK,EAAoB9oK,EAAGowJ,QAA3G,CAA/O,CAAmW,CACra,SAAS0Y,EAAoBlwK,EAAKmW,IAAkB,MAAPA,GAAeA,EAAMnW,EAAI3K,UAAQ8gB,EAAMnW,EAAI3K,QAAQ,IAAK,IAAIF,EAAI,EAAGuiK,EAAO,IAAItgK,MAAM+e,GAAMhhB,EAAIghB,EAAKhhB,IAAKuiK,EAAKviK,GAAK6K,EAAI7K,GAAI,OAAOuiK,CAAM,CACpL,SAAS4Y,EAAwB7oK,EAAGrS,GAAK,IAAIkU,EAAI,MAAQ7B,EAAI,KAAO,oBAAsBF,QAAUE,EAAEF,OAAOC,WAAaC,EAAE,cAAe,GAAI,MAAQ6B,EAAG,CAAE,IAAI5N,EAAG2L,EAAGlS,EAAGokF,EAAG/3E,EAAI,GAAIiN,GAAI,EAAIrH,GAAI,EAAI,IAAM,GAAIjS,GAAKmU,EAAIA,EAAEzQ,KAAK4O,IAAIE,KAAM,IAAMvS,EAAG,CAAE,GAAIoF,OAAO8O,KAAOA,EAAG,OAAQmF,GAAI,CAAI,MAAO,OAASA,GAAK/S,EAAIvG,EAAE0D,KAAKyQ,IAAIra,QAAUuS,EAAE7L,KAAK+F,EAAE/K,OAAQ6Q,EAAEnM,SAAWD,GAAIqZ,GAAI,GAAK,CAAE,MAAOhH,GAAKL,GAAI,EAAIC,EAAII,CAAG,CAAE,QAAU,IAAM,IAAKgH,GAAK,MAAQnF,EAAE,YAAciwE,EAAIjwE,EAAE,YAAa9O,OAAO++E,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAInyE,EAAG,MAAMC,CAAG,CAAE,CAAE,OAAO7F,CAAG,CAAE,CAC3hB,SAAS6uK,EAAkBrwK,GAAO,GAAI5I,MAAM4C,QAAQgG,GAAM,OAAOA,CAAK,C,kLACtE,IAAIwwK,EAAa,CACfC,WAAY,SAAoBvhF,GAC9B,GAAIA,EAAI,CACN,IAAIu9E,EAAQv9E,EAAGwhF,YACXxnE,EAAQoQ,iBAAiBpqB,GAE7B,OADAu9E,GAAS1nD,WAAW7b,EAAMynE,aAAe5rD,WAAW7b,EAAM0nE,cACnDnE,CACT,CACA,OAAO,CACT,EACAA,MAAO,SAAev9E,GACpB,GAAIA,EAAI,CACN,IAAIu9E,EAAQv9E,EAAGwhF,YACXxnE,EAAQoQ,iBAAiBpqB,GAE7B,OADAu9E,GAAS1nD,WAAW7b,EAAMynE,aAAe5rD,WAAW7b,EAAM0nE,cACnDnE,CACT,CACA,OAAO,CACT,EACAY,mBAAoB,WAClB,IAAI7kI,EAAM3qC,SAASgzK,gBACnB,OAAQvxK,OAAOwxK,aAAetoI,EAAI26H,YAAc36H,EAAIuoI,WAAa,EACnE,EACA5D,oBAAqB,WACnB,IAAI3kI,EAAM3qC,SAASgzK,gBACnB,OAAQvxK,OAAO0xK,aAAexoI,EAAIyoI,aAAezoI,EAAI0oI,YAAc,EACrE,EACA1D,cAAe,SAAuBt+E,EAAIiiF,GACxC,GAAIjiF,EAAI,CACN,IAAIu9E,EAAQv9E,EAAGwhF,YACf,GAAIS,EAAQ,CACV,IAAIjoE,EAAQoQ,iBAAiBpqB,GAC7Bu9E,GAAS1nD,WAAW7b,EAAMkoE,YAAcrsD,WAAW7b,EAAMmoE,YAC3D,CACA,OAAO5E,CACT,CACA,OAAO,CACT,EACAgB,eAAgB,SAAwBv+E,EAAIiiF,GAC1C,GAAIjiF,EAAI,CACN,IAAIw4E,EAASx4E,EAAGgrB,aAChB,GAAIi3D,EAAQ,CACV,IAAIjoE,EAAQoQ,iBAAiBpqB,GAC7Bw4E,GAAU3iD,WAAW7b,EAAMooE,WAAavsD,WAAW7b,EAAMqoE,aAC3D,CACA,OAAO7J,CACT,CACA,OAAO,CACT,EACA8J,gBAAiB,SAAyBtiF,EAAIiiF,GAC5C,GAAIjiF,EAAI,CACN,IAAIw4E,EAASx4E,EAAGuiF,aAChB,GAAIN,EAAQ,CACV,IAAIjoE,EAAQoQ,iBAAiBpqB,GAC7Bw4E,GAAU3iD,WAAW7b,EAAMooE,WAAavsD,WAAW7b,EAAMqoE,aAC3D,CACA,OAAO7J,CACT,CACA,OAAO,CACT,EACAoG,YAAa,WACX,IAAI4D,EAAMpyK,OACRkF,EAAI3G,SACJnC,EAAI8I,EAAEqsK,gBACNliK,EAAInK,EAAEmtK,qBAAqB,QAAQ,GACnCl0F,EAAIi0F,EAAIjB,YAAc/0K,EAAEk2K,aAAejjK,EAAEijK,YACzCx5K,EAAIs5K,EAAIG,aAAen2K,EAAE+1K,cAAgB9iK,EAAE8iK,aAC7C,MAAO,CACLhF,MAAOhvF,EACPiqF,OAAQtvK,EAEZ,EACA05K,UAAW,SAAmB5iF,GAC5B,GAAIA,EAAI,CACN,IAAI6iF,EAAO7iF,EAAGsvB,wBACd,MAAO,CACLM,IAAKizD,EAAKjzD,KAAOx/G,OAAOwxK,aAAejzK,SAASgzK,gBAAgB1N,WAAatlK,SAAS+O,KAAKu2J,WAAa,GACxG/pI,KAAM24I,EAAK34I,MAAQ95B,OAAO0xK,aAAenzK,SAASgzK,gBAAgBI,YAAcpzK,SAAS+O,KAAKqkK,YAAc,GAEhH,CACA,MAAO,CACLnyD,IAAK,OACL1lF,KAAM,OAEV,EACAxjC,MAAO,SAAeo8K,GACpB,GAAIA,EAIF,IAHA,IAAIC,EACA1jF,EAAmE,QAAvD0jF,EAAsBx9K,KAAKy9K,cAAcF,UAA8C,IAAxBC,OAAiC,EAASA,EAAoBrqB,WACzIjsE,EAAM,EACDxmF,EAAI,EAAGA,EAAIo5F,EAASl5F,OAAQF,IAAK,CACxC,GAAIo5F,EAASp5F,KAAO68K,EAAS,OAAOr2F,EACP,IAAzB4S,EAASp5F,GAAGm7G,UAAgB30B,GAClC,CAEF,OAAQ,CACV,EACAw2F,mBAAoB,SAA4BH,EAASI,GACvD,IAAIrtK,EAAQtQ,KACRu9K,GAAWI,GACb,CAACA,GAAYC,OAAO18J,OAAO1M,SAAS5W,SAAQ,SAAUigL,GACpD,OAAOA,EAAO1yK,MAAM,KAAKvN,SAAQ,SAAUioH,GACzC,OAAOv1G,EAAMuiK,SAAS0K,EAAS13D,EACjC,GACF,GAEJ,EACAi4D,sBAAuB,SAA+BP,EAASI,GAC7D,IAAIppJ,EAASv0B,KACTu9K,GAAWI,GACb,CAACA,GAAYC,OAAO18J,OAAO1M,SAAS5W,SAAQ,SAAUigL,GACpD,OAAOA,EAAO1yK,MAAM,KAAKvN,SAAQ,SAAUioH,GACzC,OAAOtxF,EAAOq+I,YAAY2K,EAAS13D,EACrC,GACF,GAEJ,EACAgtD,SAAU,SAAkB0K,EAAS13D,GAC/B03D,GAAW13D,IAAc7lH,KAAK2yK,SAAS4K,EAAS13D,KAC9C03D,EAAQx5D,UAAWw5D,EAAQx5D,UAAU77E,IAAI29E,GAAgB03D,EAAQ13D,WAAa,IAAMA,EAE5F,EACA+sD,YAAa,SAAqB2K,EAAS13D,GACrC03D,GAAW13D,IACT03D,EAAQx5D,UAAWw5D,EAAQx5D,UAAUv6G,OAAOq8G,GAAgB03D,EAAQ13D,UAAY03D,EAAQ13D,UAAUziH,QAAQ,IAAIkG,OAAO,UAAYu8G,EAAU16G,MAAM,KAAK3C,KAAK,KAAO,UAAW,MAAO,KAE5L,EACAmqK,SAAU,SAAkB4K,EAAS13D,GACnC,QAAI03D,IACEA,EAAQx5D,UAAkBw5D,EAAQx5D,UAAUigD,SAASn+C,GAAuB,IAAIv8G,OAAO,QAAUu8G,EAAY,QAAS,MAAMn8G,KAAK6zK,EAAQ13D,WAGjJ,EACAk4D,UAAW,SAAmBR,GAC5B,IAAI34D,EAAS38G,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Es1K,GACFx3K,OAAO2iC,QAAQk8E,GAAQhnH,SAAQ,SAAUujB,GACvC,IAAIG,EAAQq6J,EAAiBx6J,EAAM,GACjCrjB,EAAMwjB,EAAM,GACZplB,EAAQolB,EAAM,GAChB,OAAOi8J,EAAQ9oE,MAAM32G,GAAO5B,CAC9B,GAEJ,EACA8iB,KAAM,SAAcu+J,EAASp8D,GAC3B,OAAOnhH,KAAKizJ,UAAUsqB,GAAWA,EAAQS,iBAAiB78D,GAAY,EACxE,EACAg4D,WAAY,SAAoBoE,EAASp8D,GACvC,OAAOnhH,KAAKizJ,UAAUsqB,GAAWA,EAAQ5iE,cAAcwG,GAAY,IACrE,EACAl3G,cAAe,SAAuB1L,GACpC,IAAIilD,EAAav7C,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACtF,GAAI1J,EAAM,CACR,IAAIg/K,EAAUn0K,SAASa,cAAc1L,GACrCyB,KAAK66K,cAAc0C,EAAS/5H,GAC5B,IAAK,IAAIilH,EAAOxgK,UAAUrH,OAAQk5F,EAAW,IAAIn3F,MAAM8lK,EAAO,EAAIA,EAAO,EAAI,GAAIx2E,EAAO,EAAGA,EAAOw2E,EAAMx2E,IACtG6H,EAAS7H,EAAO,GAAKhqF,UAAUgqF,GAGjC,OADAsrF,EAAQvuC,OAAOpsI,MAAM26K,EAASzjF,GACvByjF,CACT,CAEF,EACAnzK,aAAc,SAAsBmzK,GAClC,IAAI5wH,EAAY1kD,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAChF/L,EAAQ+L,UAAUrH,OAAS,EAAIqH,UAAU,QAAKvK,EAC9CsC,KAAKizJ,UAAUsqB,IAAsB,OAAVrhL,QAA4BwB,IAAVxB,GAC/CqhL,EAAQnzK,aAAauiD,EAAWzwD,EAEpC,EACA2+K,cAAe,SAAuB0C,GACpC,IAAI9gD,EAASz8H,KACTwjD,EAAav7C,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACtF,GAAIjI,KAAKizJ,UAAUsqB,GAAU,CAC3B,IAAIU,EAAiB,SAASA,EAAepZ,EAAM3oK,GACjD,IAAIgiL,EAAiBC,EACjBv5D,EAAqB,OAAZ24D,QAAgC,IAAZA,GAA6D,QAAtCW,EAAkBX,EAAQr3E,cAAwC,IAApBg4E,GAA8BA,EAAgBrZ,GAAQ,CAAa,OAAZ0Y,QAAgC,IAAZA,GAA8D,QAAvCY,EAAmBZ,EAAQr3E,cAAyC,IAArBi4E,OAA8B,EAASA,EAAiBtZ,IAAS,GACxT,MAAO,CAAC3oK,GAAO0hL,OAAOvhK,QAAO,SAAU+hK,EAAI/1K,GACzC,GAAU,OAANA,QAAoB3K,IAAN2K,EAAiB,CACjC,IAAI9J,EAAOm9K,EAAUrzK,GACrB,GAAa,WAAT9J,GAA8B,WAATA,EACvB6/K,EAAGl9K,KAAKmH,QACH,GAAa,WAAT9J,EAAmB,CAC5B,IAAI8/K,EAAM17K,MAAM4C,QAAQ8C,GAAK41K,EAAepZ,EAAMx8J,GAAKtC,OAAO2iC,QAAQrgC,GAAGwN,KAAI,SAAU2L,GACrF,IAAIkE,EAAQi2J,EAAiBn6J,EAAO,GAClCwrB,EAAKtnB,EAAM,GACX44J,EAAK54J,EAAM,GACb,MAAgB,UAATm/I,IAAuByZ,GAAa,IAAPA,EAAgGA,EAAKtxI,OAAKtvC,EAA9F,GAAGmF,OAAOmqC,EAAG5pC,QAAQ,kBAAmB,SAASrF,cAAe,KAAK8E,OAAOy7K,EAC9H,IACAF,EAAKC,EAAIz9K,OAASw9K,EAAGv7K,OAAOw7K,EAAIn9J,QAAO,SAAU5f,GAC/C,QAASA,CACX,KAAM88K,CACR,CACF,CACA,OAAOA,CACT,GAAGx5D,EACL,EACA7+G,OAAO2iC,QAAQ8a,GAAY5lD,SAAQ,SAAU4+B,GAC3C,IAAIC,EAAQk/I,EAAiBn/I,EAAO,GAClC1+B,EAAM2+B,EAAM,GACZvgC,EAAQugC,EAAM,GAChB,QAAc/+B,IAAVxB,GAAiC,OAAVA,EAAgB,CACzC,IAAIqiL,EAAezgL,EAAIuL,MAAM,WACzBk1K,EACFhB,EAAQp/K,iBAAiBogL,EAAa,GAAGxgL,cAAe7B,GACvC,WAAR4B,EACT2+H,EAAOo+C,cAAc0C,EAASrhL,IAE9BA,EAAgB,UAAR4B,EAAkBs9K,EAAqB,IAAInzI,IAAIg2I,EAAe,QAAS/hL,KAASsM,KAAK,KAAKxB,OAAiB,UAARlJ,EAAkBmgL,EAAe,QAAS/hL,GAAOsM,KAAK,KAAKxB,OAAS9K,GAC9KqhL,EAAQr3E,OAASq3E,EAAQr3E,QAAU,CAAC,KAAOq3E,EAAQr3E,OAAOpoG,GAAO5B,GAClEqhL,EAAQnzK,aAAatM,EAAK5B,GAE9B,CACF,GACF,CACF,EACAqrH,aAAc,SAAsBg2D,EAAS54K,GAC3C,GAAI3E,KAAKizJ,UAAUsqB,GAAU,CAC3B,IAAIrhL,EAAQqhL,EAAQh2D,aAAa5iH,GACjC,OAAK8qB,MAAMvzB,GAGG,SAAVA,GAA8B,UAAVA,EACL,SAAVA,EAEFA,GALGA,CAMZ,CAEF,EACAsiL,kBAAmB,SAA2BjB,EAAS54K,EAAMzI,GAC3D,QAAO8D,KAAKizJ,UAAUsqB,IAAWv9K,KAAKunH,aAAag2D,EAAS54K,KAAUzI,CACxE,EACAuiL,qBAAsB,SAA8BlB,EAAS54K,EAAMzI,GACjE,OAAQ8D,KAAKw+K,kBAAkBjB,EAAS54K,EAAMzI,EAChD,EACAwiL,UAAW,SAAmBjkF,GAC5B,GAAIA,EAAI,CACN,IAAIw4E,EAASx4E,EAAGgrB,aACZhR,EAAQoQ,iBAAiBpqB,GAE7B,OADAw4E,GAAU3iD,WAAW7b,EAAMkqE,YAAcruD,WAAW7b,EAAMmqE,eAAiBtuD,WAAW7b,EAAMoqE,gBAAkBvuD,WAAW7b,EAAMqqE,mBACxH7L,CACT,CACA,OAAO,CACT,EACA8L,SAAU,SAAkBtkF,GAC1B,GAAIA,EAAI,CACN,IAAIu9E,EAAQv9E,EAAGwhF,YACXxnE,EAAQoQ,iBAAiBpqB,GAE7B,OADAu9E,GAAS1nD,WAAW7b,EAAMynE,aAAe5rD,WAAW7b,EAAM0nE,cAAgB7rD,WAAW7b,EAAMuqE,iBAAmB1uD,WAAW7b,EAAMwqE,kBACxHjH,CACT,CACA,OAAO,CACT,EACAkH,iBAAkB,SAA0B3B,EAASl4K,GACnD,IAAI85K,IAASl3K,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,KAAmBA,UAAU,GAC5E,GAAIs1K,EAAS,CACX,IAYIlzD,EACF1lF,EAbEy6I,EAAoB7B,EAAQzK,aAAe,CAC7CkF,MAAOuF,EAAQtB,YACfhJ,OAAQsK,EAAQ93D,cACdzlH,KAAKq/K,2BAA2B9B,GAChC+B,EAAqBF,EAAkBnM,OACvCsM,EAAoBH,EAAkBpH,MACtCwH,EAAoBn6K,EAAOogH,aAC3Bg6D,EAAmBp6K,EAAO42K,YAC1ByD,EAAer6K,EAAO0kH,wBACtB41D,EAAkB3/K,KAAK44K,qBACvBgH,EAAmB5/K,KAAK04K,sBACxBU,EAAWp5K,KAAKq5K,cAGlBwG,EAAS,MACPH,EAAar1D,IAAMm1D,EAAoBF,EAAqBlG,EAASnG,QACvE5oD,EAAMq1D,EAAar1D,IAAMs1D,EAAkBL,EAC3CO,EAAS,SACLx1D,EAAM,IACRA,EAAMs1D,IAGRt1D,EAAMm1D,EAAoBE,EAAar1D,IAAMs1D,EAEah7I,EAAxD+6I,EAAa/6I,KAAO46I,EAAoBnG,EAASpB,MAAczpK,KAAK8S,IAAI,EAAGq+J,EAAa/6I,KAAOi7I,EAAmBH,EAAmBF,GAA+BG,EAAa/6I,KAAOi7I,EAC5LrC,EAAQ9oE,MAAM4V,IAAMA,EAAM,KAC1BkzD,EAAQ9oE,MAAM9vE,KAAOA,EAAO,KAC5B44I,EAAQ9oE,MAAMqrE,gBAAkBD,EAChCV,IAAW5B,EAAQ9oE,MAAMooE,UAAuB,WAAXgD,EAAsB,oCAAsC,+BACnG,CACF,EACAE,iBAAkB,SAA0BxC,EAASl4K,GACnD,IAAI85K,IAASl3K,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,KAAmBA,UAAU,GAC5E,GAAIs1K,EAAS,CACX,IAOIlzD,EACF1lF,EAREy6I,EAAoB7B,EAAQzK,aAAe,CAC7CkF,MAAOuF,EAAQtB,YACfhJ,OAAQsK,EAAQ93D,cACdzlH,KAAKq/K,2BAA2B9B,GAChCyC,EAAe36K,EAAOogH,aACtBi6D,EAAer6K,EAAO0kH,wBACtBqvD,EAAWp5K,KAAKq5K,cAGlBwG,EAAS,MACPH,EAAar1D,IAAM21D,EAAeZ,EAAkBnM,OAASmG,EAASnG,QACxE5oD,GAAO,EAAI+0D,EAAkBnM,OAC7B4M,EAAS,SACLH,EAAar1D,IAAMA,EAAM,IAC3BA,GAAO,EAAIq1D,EAAar1D,MAG1BA,EAAM21D,EAINr7I,EAFEy6I,EAAkBpH,MAAQoB,EAASpB,OAET,EAArB0H,EAAa/6I,KACX+6I,EAAa/6I,KAAOy6I,EAAkBpH,MAAQoB,EAASpB,OAES,GAAjE0H,EAAa/6I,KAAOy6I,EAAkBpH,MAAQoB,EAASpB,OAGxD,EAETuF,EAAQ9oE,MAAM4V,IAAMA,EAAM,KAC1BkzD,EAAQ9oE,MAAM9vE,KAAOA,EAAO,KAC5B44I,EAAQ9oE,MAAMqrE,gBAAkBD,EAChCV,IAAW5B,EAAQ9oE,MAAMooE,UAAuB,WAAXgD,EAAsB,oCAAsC,+BACnG,CACF,EACAI,eAAgB,SAAwB1C,EAAShgG,GAC/C,GAAIggG,EAAS,CACX,IAKI54I,EALAu7I,EAAa3C,EAAQ3J,cACrBuM,EAAgBngL,KAAKq9K,UAAU6C,GAC/B9G,EAAWp5K,KAAKq5K,cAChB+G,EAAe7C,EAAQzK,aAAeyK,EAAQtB,YAAcj8K,KAAKqgL,2BAA2B9C,GAC5F+C,EAAiBtgL,KAAK+4K,cAAcmH,EAAWpmF,SAAS,IAExDlgD,SAASumI,EAAcx7I,KAAM,IAAM27I,EAAiBF,EAAehH,EAASpB,MAAQh4K,KAAKugL,0BACvF3mI,SAASumI,EAAcx7I,KAAM,IAAMy7I,EAEjC7iG,EAAQ,IAAM,EAChB54C,EAAOiV,SAASumI,EAAcx7I,KAAM,IAAM,IAAMiV,SAASumI,EAAcx7I,KAAM,IAAM,KAAO,OACjF44C,EAAQ,IAAM,IACvB54C,EAAOy0I,EAASpB,MAAQoI,EAAepgL,KAAKugL,0BAA4B,MAG1E57I,EAAO,QAGTA,EAAO,OAET44I,EAAQ9oE,MAAM4V,IAAM,MACpBkzD,EAAQ9oE,MAAM9vE,KAAOA,CACvB,CACF,EACA84I,cAAe,SAAuBF,GACpC,IAAI1iJ,EAAqB,OAAZ0iJ,QAAgC,IAAZA,OAAqB,EAASA,EAAQ9rE,WAIvE,OAHI52E,GAAUA,aAAkB2lJ,YAAc3lJ,EAAOvwB,OACnDuwB,EAASA,EAAOvwB,MAEXuwB,CACT,EACA4lJ,WAAY,SAAoBlD,GAC9B,IAAImD,EAAUz4K,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC9E4yB,EAAS76B,KAAKy9K,cAAcF,GAChC,OAAkB,OAAX1iJ,EAAkB6lJ,EAAU1gL,KAAKygL,WAAW5lJ,EAAQ6lJ,EAAQ79K,OAAO,CAACg4B,IAC7E,EACA8lJ,qBAAsB,SAA8BpD,GAClD,IAAIqD,EAAoB,GACxB,GAAIrD,EAAS,CACX,IAWEha,EAXEmd,EAAU1gL,KAAKygL,WAAWlD,GAC1BsD,EAAgB,gBAChBC,EAAgB,SAAuBz6J,GACzC,IACE,IAAI06J,EAAmBl2K,OAAO,oBAAoBwb,EAAM,MACxD,OAAOw6J,EAAcn3K,KAAKq3K,EAAiBhN,iBAAiB,cAAgB8M,EAAcn3K,KAAKq3K,EAAiBhN,iBAAiB,eAAiB8M,EAAcn3K,KAAKq3K,EAAiBhN,iBAAiB,aACzM,CAAE,MAAO53K,GACP,OAAO,CACT,CACF,EACIqnK,EAAY0X,EAA6BwF,GAE7C,IACE,IAAKld,EAAU1uJ,MAAOyuJ,EAAQC,EAAU5wJ,KAAKpY,MAAO,CAClD,IAAIqgC,EAAS0oI,EAAMrnK,MACf8kL,EAAsC,IAApBnmJ,EAAOghF,UAAkBhhF,EAAOomJ,QAAQ,mBAC9D,GAAID,EAAiB,CACnB,IAEEvd,EAFEyd,EAAYF,EAAgB71K,MAAM,KAClCu4J,EAAawX,EAA6BgG,GAE9C,IACE,IAAKxd,EAAW5uJ,MAAO2uJ,EAASC,EAAW9wJ,KAAKpY,MAAO,CACrD,IAAI2mH,EAAWsiD,EAAOvnK,MAClBu+F,EAAKz6F,KAAKm5K,WAAWt+I,EAAQsmF,GAC7B1mB,GAAMqmF,EAAcrmF,IACtBmmF,EAAkB1/K,KAAKu5F,EAE3B,CACF,CAAE,MAAOt+F,GACPunK,EAAWz8J,EAAE9K,EACf,CAAE,QACAunK,EAAW1pJ,GACb,CACF,CACwB,IAApB6gB,EAAOghF,UAAkBilE,EAAcjmJ,IACzC+lJ,EAAkB1/K,KAAK25B,EAE3B,CACF,CAAE,MAAO1+B,GACPqnK,EAAUv8J,EAAE9K,EACd,CAAE,QACAqnK,EAAUxpJ,GACZ,CACF,CACA,OAAO4mK,CACT,EACAO,4BAA6B,SAAqC5D,GAChE,GAAIA,EAAS,CACXA,EAAQ9oE,MAAM2sE,WAAa,SAC3B7D,EAAQ9oE,MAAMuR,QAAU,QACxB,IAAIq7D,EAAgB9D,EAAQ93D,aAG5B,OAFA83D,EAAQ9oE,MAAMuR,QAAU,OACxBu3D,EAAQ9oE,MAAM2sE,WAAa,UACpBC,CACT,CACA,OAAO,CACT,EACAhB,2BAA4B,SAAoC9C,GAC9D,GAAIA,EAAS,CACXA,EAAQ9oE,MAAM2sE,WAAa,SAC3B7D,EAAQ9oE,MAAMuR,QAAU,QACxB,IAAIs7D,EAAe/D,EAAQtB,YAG3B,OAFAsB,EAAQ9oE,MAAMuR,QAAU,OACxBu3D,EAAQ9oE,MAAM2sE,WAAa,UACpBE,CACT,CACA,OAAO,CACT,EACAjC,2BAA4B,SAAoC9B,GAC9D,GAAIA,EAAS,CACX,IAAIgE,EAAa,CAAC,EAOlB,OANAhE,EAAQ9oE,MAAM2sE,WAAa,SAC3B7D,EAAQ9oE,MAAMuR,QAAU,QACxBu7D,EAAWvJ,MAAQuF,EAAQtB,YAC3BsF,EAAWtO,OAASsK,EAAQ93D,aAC5B83D,EAAQ9oE,MAAMuR,QAAU,OACxBu3D,EAAQ9oE,MAAM2sE,WAAa,UACpBG,CACT,CACA,OAAO,CACT,EACAlK,OAAQ,SAAgBkG,EAASt7D,GAC/B,GAAIs7D,EAAS,CACXA,EAAQ9oE,MAAM+sE,QAAU,EACxB,IAAIh5F,GAAQ,IAAIt/E,KACZs4K,EAAU,EACVC,EAAO,SAASA,IAClBD,GAAWjE,EAAQ9oE,MAAM+sE,UAAW,IAAIt4K,MAAOgF,UAAYs6E,GAAQy5B,EACnEs7D,EAAQ9oE,MAAM+sE,QAAUA,EACxBh5F,GAAQ,IAAIt/E,MACPs4K,EAAU,IACb32K,OAAOo5G,uBAAyBA,sBAAsBw9D,IAAS3kL,WAAW2kL,EAAM,IAEpF,EACAA,GACF,CACF,EACAC,QAAS,SAAiBnE,EAASlmD,GACjC,GAAIkmD,EACF,IAAIiE,EAAU,EACZG,EAAW,GACX1/D,EAAWoV,EACXuqD,EAAMD,EAAW1/D,EACf4/D,EAASz8H,aAAY,WACvBo8H,GAAWI,EACPJ,GAAW,IACbA,EAAU,EACVn8H,cAAcw8H,IAEhBtE,EAAQ9oE,MAAM+sE,QAAUA,CAC1B,GAAGG,EAEP,EACAt2C,aAAc,WACZ,OAAOvhI,UAAUC,SACnB,EACA03G,YAAa,SAAqB87D,EAASl4K,GACzC,GAAIrF,KAAKizJ,UAAU5tJ,GAASA,EAAOo8G,YAAY87D,OAAc,KAAIl4K,EAAOo1F,KAAMp1F,EAAOy8K,UAAsD,MAAM,IAAI79K,MAAM,iBAAmBoB,EAAS,OAASk4K,GAAhGl4K,EAAOy8K,UAAUrgE,YAAY87D,EAA2E,CAC1M,EACAtqB,UAAW,SAAmBrmJ,GAC5B,MAAuF,YAAxD,qBAAhBm8G,YAA8B,YAAc2yD,EAAU3yD,cAA6Bn8G,aAAem8G,YAAcn8G,GAA0B,WAAnB8uK,EAAU9uK,IAA6B,OAARA,GAAiC,IAAjBA,EAAIivG,UAA0C,kBAAjBjvG,EAAIsmJ,QACxN,EACA6uB,aAAc,SAAsB5vE,EAAWrhG,GAC7C,IAAIkxK,EAAiBn9D,iBAAiB1S,GAAW4hE,iBAAiB,kBAC9DkO,EAAYD,EAAiB1xD,WAAW0xD,GAAkB,EAC1DE,EAAkBr9D,iBAAiB1S,GAAW4hE,iBAAiB,cAC/D4K,EAAauD,EAAkB5xD,WAAW4xD,GAAmB,EAC7DC,EAAgBhwE,EAAU4X,wBAC1Bq4D,EAAWtxK,EAAKi5G,wBAChBp1G,EAASytK,EAAS/3D,IAAMjhH,SAAS+O,KAAKu2J,WAAayT,EAAc93D,IAAMjhH,SAAS+O,KAAKu2J,WAAauT,EAAYtD,EAC9G0D,EAASlwE,EAAUu8D,UACnB2S,EAAgBlvE,EAAU6qE,aAC1BsF,EAAatiL,KAAKg5K,eAAeloK,GACjC6D,EAAS,EACXw9F,EAAUu8D,UAAY2T,EAAS1tK,EACtBA,EAAS2tK,EAAajB,IAC/BlvE,EAAUu8D,UAAY2T,EAAS1tK,EAAS0sK,EAAgBiB,EAE5D,EACAC,eAAgB,WACd,GAAI13K,OAAO23K,aACL33K,OAAO23K,eAAeC,MACxB53K,OAAO23K,eAAeC,QACb53K,OAAO23K,eAAeE,iBAAmB73K,OAAO23K,eAAeG,WAAa,GAAK93K,OAAO23K,eAAeI,WAAW,GAAGC,iBAAiBjiL,OAAS,GACxJiK,OAAO23K,eAAeE,uBAEnB,GAAIt5K,SAAS,cAAgBA,SAAS,aAAaq5K,MACxD,IACEr5K,SAAS,aAAaq5K,OACxB,CAAE,MAAOv/K,GAET,CAEJ,EACAs/K,aAAc,WACZ,OAAI33K,OAAO23K,aAAqB33K,OAAO23K,eAAeviL,WAAoBmJ,SAASo5K,aAAqBp5K,SAASo5K,eAAeviL,WAAoBmJ,SAAS,aAAqBA,SAAS,aAAa05K,cAAc7xK,KAC/M,IACT,EACAsvK,wBAAyB,WACvB,GAAqC,MAAjCvgL,KAAK+iL,yBAAkC,OAAO/iL,KAAK+iL,yBACvD,IAAIC,EAAY55K,SAASa,cAAc,OACvCjK,KAAK+9K,UAAUiF,EAAW,CACxBhL,MAAO,QACP/E,OAAQ,QACRgQ,SAAU,SACVxjK,SAAU,WACV4qG,IAAK,YAEPjhH,SAAS+O,KAAKspG,YAAYuhE,GAC1B,IAAIE,EAAiBF,EAAU/G,YAAc+G,EAAU7F,YAGvD,OAFA/zK,SAAS+O,KAAK0oG,YAAYmiE,GAC1BhjL,KAAK+iL,yBAA2BG,EACzBA,CACT,EACAC,4BAA6B,WAC3B,OAAOt4K,OAAOmxK,WAAa5yK,SAASgzK,gBAAgBH,WACtD,EACA1kC,WAAY,WACV,IAAKv3I,KAAKkrE,QAAS,CACjB,IAAI30D,EAAUvW,KAAKojL,mBACnBpjL,KAAKkrE,QAAU,CAAC,EACZ30D,EAAQ20D,UACVlrE,KAAKkrE,QAAQ30D,EAAQ20D,UAAW,EAChClrE,KAAKkrE,QAAQ,WAAa30D,EAAQzK,SAEhC9L,KAAKkrE,QAAQ,UACflrE,KAAKkrE,QAAQ,WAAY,EAChBlrE,KAAKkrE,QAAQ,YACtBlrE,KAAKkrE,QAAQ,WAAY,EAE7B,CACA,OAAOlrE,KAAKkrE,OACd,EACAk4G,iBAAkB,WAChB,IAAIC,EAAKv5K,UAAUC,UAAUhM,cACzBsL,EAAQ,sBAAsBuW,KAAKyjK,IAAO,sBAAsBzjK,KAAKyjK,IAAO,mCAAmCzjK,KAAKyjK,IAAO,kBAAkBzjK,KAAKyjK,IAAOA,EAAGxmL,QAAQ,cAAgB,GAAK,gCAAgC+iB,KAAKyjK,IAAO,GACzO,MAAO,CACLn4G,QAAS7hE,EAAM,IAAM,GACrByC,QAASzC,EAAM,IAAM,IAEzB,EACAyqK,UAAW,SAAmByJ,GAC5B,OAAOA,GAAmC,MAAxBA,EAAQzK,YAC5B,EACAwQ,oBAAqB,SAA6B/F,EAASj8F,EAAYt5E,GACrEu1K,EAAQj8F,GAAY1+E,MAAM26K,EAASv1K,EACrC,EACAkvK,QAAS,SAAiBqG,GACxB,QAAsB,OAAZA,GAAuC,qBAAZA,IAA2BA,EAAQrqB,WAAYlzJ,KAAKy9K,cAAcF,GACzG,EACAzD,SAAU,WACR,QAA4B,qBAAXjvK,SAA0BA,OAAOzB,WAAYyB,OAAOzB,SAASa,cAChF,EACA+pI,MAAO,SAAev5C,EAAIl3F,GACxBk3F,GAAMrxF,SAAS8hH,gBAAkBzwB,GAAMA,EAAGu5C,MAAMzwI,EAClD,EACAggL,mBAAoB,SAA4BhG,GAC9C,IAAIp8D,EAAWl5G,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GACnF,QAAOjI,KAAKizJ,UAAUsqB,IAAWA,EAAQz6E,QAAQ,2FAA+FjgG,OAAOs+G,EAAU,0IAA8It+G,OAAOs+G,EAAU,8GAAkHt+G,OAAOs+G,EAAU,+GAAmHt+G,OAAOs+G,EAAU,iHAAqHt+G,OAAOs+G,EAAU,mHAAuHt+G,OAAOs+G,EAAU,0HAA8Ht+G,OAAOs+G,GAC59B,EACAqiE,qBAAsB,SAA8BjG,GAClD,IAIEkG,EAJEtiE,EAAWl5G,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC/Ey7K,EAAoB1jL,KAAKgf,KAAKu+J,EAAS,2FAA+F16K,OAAOs+G,EAAU,0IAA8It+G,OAAOs+G,EAAU,8GAAkHt+G,OAAOs+G,EAAU,+GAAmHt+G,OAAOs+G,EAAU,iHAAqHt+G,OAAOs+G,EAAU,mHAAuHt+G,OAAOs+G,EAAU,0HAA8Ht+G,OAAOs+G,IACh9BwiE,EAA2B,GAC3BC,EAAa1I,EAA6BwI,GAE9C,IACE,IAAKE,EAAW9uK,MAAO2uK,EAASG,EAAWhxK,KAAKpY,MAAO,CACrD,IAAIqpL,EAAmBJ,EAAOvnL,MACoB,QAA9C2oH,iBAAiBg/D,GAAkB79D,SAAsE,UAAjDnB,iBAAiBg/D,GAAkBzC,YAAwBuC,EAAyBziL,KAAK2iL,EACvJ,CACF,CAAE,MAAO1nL,GACPynL,EAAW38K,EAAE9K,EACf,CAAE,QACAynL,EAAW5pK,GACb,CACA,OAAO2pK,CACT,EACAG,yBAA0B,SAAkCvG,EAASp8D,GACnE,IAAIuiE,EAAoB1jL,KAAKwjL,qBAAqBjG,EAASp8D,GAC3D,OAAOuiE,EAAkB9iL,OAAS,EAAI8iL,EAAkB,GAAK,IAC/D,EACAK,wBAAyB,SAAiCxG,EAASp8D,GACjE,IAAIuiE,EAAoB1jL,KAAKwjL,qBAAqBjG,EAASp8D,GAC3D,OAAOuiE,EAAkB9iL,OAAS,EAAI8iL,EAAkBA,EAAkB9iL,OAAS,GAAK,IAC1F,EACAojL,wBAAyB,SAAiC7xE,EAAWorE,EAASp8D,GAC5E,IAAIuiE,EAAoB1jL,KAAKwjL,qBAAqBrxE,EAAWgP,GACzDhgH,EAAQuiL,EAAkB9iL,OAAS,EAAI8iL,EAAkB5kH,WAAU,SAAU27B,GAC/E,OAAOA,IAAO8iF,CAChB,KAAM,EACFnlE,EAAYj3G,GAAS,GAAKuiL,EAAkB9iL,QAAUO,EAAQ,EAAIA,EAAQ,GAAK,EACnF,OAAOi3G,GAAa,EAAIsrE,EAAkBtrE,GAAa,IACzD,EACA6rE,0BAA2B,SAAmC1G,EAASp8D,GACrE,IAAI+iE,EAAkB3G,EAAQ5J,uBAC9B,MAAOuQ,EAAiB,CACtB,GAAIA,EAAgBphF,QAAQqe,GAC1B,OAAO+iE,EAEPA,EAAkBA,EAAgBvQ,sBAEtC,CACA,OAAO,IACT,EACAwQ,sBAAuB,SAA+B5G,EAASp8D,GAC7D,IAAIijE,EAAc7G,EAAQ7J,mBAC1B,MAAO0Q,EAAa,CAClB,GAAIA,EAAYthF,QAAQqe,GACtB,OAAOijE,EAEPA,EAAcA,EAAY1Q,kBAE9B,CACA,OAAO,IACT,EACA2Q,YAAa,SAAqB9G,GAChC,GAAIA,EAAS,CACX,IAAI7hE,EAAa6hE,EAAQrqB,SACrBzhD,EAAa8rE,EAAQ3J,eAAiB2J,EAAQ3J,cAAc1gB,SAChE,MAAsB,UAAfx3C,GAAyC,aAAfA,GAA4C,WAAfA,GAA0C,MAAfA,GAAqC,UAAfjK,GAAyC,aAAfA,GAA4C,WAAfA,GAA0C,MAAfA,KAAwB8rE,EAAQ+G,QAAQ,yCAE3O,CACA,OAAO,CACT,EACAC,WAAY,SAAoBhH,EAAS9oE,GACvC,GAAqB,kBAAVA,EACT8oE,EAAQ9oE,MAAM+R,QAAU/R,OAExB,IAAK,IAAI/uG,KAAQ+uG,EACf8oE,EAAQ9oE,MAAM/uG,GAAQ+uG,EAAM/uG,EAGlC,EACA8+K,MAAO,WACL,MAAO,mBAAmB96K,KAAKI,UAAUC,aAAec,OAAO,WACjE,EACA45K,UAAW,WACT,MAAO,aAAa/6K,KAAKI,UAAUC,UACrC,EACAytK,cAAe,WACb,MAAO,iBAAkB3sK,QAAUf,UAAU46K,eAAiB,GAAK56K,UAAU66K,iBAAmB,CAClG,EACAC,gBAAiB,SAAyBrH,GACxC,GAAIA,EAAS,CACX,IAAI9oE,EAAQoQ,iBAAiB04D,GACzBsH,EAAoBv0D,WAAW7b,EAAMs/D,iBAAiB,uBAAyB,KACnF,OAAO8Q,EAAoB,CAC7B,CACA,OAAO,CACT,EACAC,iBAAkB,SAA0BvH,GAC1C,GAAIA,EAAS,CACX,IAAI9oE,EAAQoQ,iBAAiB04D,GACzB3zD,EAAqB0G,WAAW7b,EAAMs/D,iBAAiB,wBAA0B,KACrF,OAAOnqD,EAAqB,CAC9B,CACA,OAAO,CACT,EACAm7D,UAAW,SAAmBC,EAAK1pG,GACjC,IAAIxW,EAAO,IAAIsB,KAAK,CAAC4+G,GAAM,CACzBzmL,KAAM,mCAER,GAAIsM,OAAOf,UAAUm7K,iBACnBn7K,UAAUm7K,iBAAiBngH,EAAMwW,EAAW,YACvC,CACL,IAAI4pG,EAAO97K,SAASa,cAAc,UACZvM,IAAlBwnL,EAAKC,UACPD,EAAK96K,aAAa,OAAQgyC,IAAIgpI,gBAAgBtgH,IAC9CogH,EAAK96K,aAAa,WAAYkxE,EAAW,QACzC4pG,EAAKzwE,MAAMuR,QAAU,OACrB58G,SAAS+O,KAAKspG,YAAYyjE,GAC1BA,EAAKG,QACLj8K,SAAS+O,KAAK0oG,YAAYqkE,KAE1BF,EAAM,+BAAiCA,EACvCn6K,OAAOzO,KAAK6vJ,UAAU+4B,IAE1B,CACF,EACAM,gBAAiB,WACf,IAAIz/D,EAAY59G,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,oBACpFmB,SAAS+O,KAAKs8F,MAAMiS,YAAY,oBAAqB1mH,KAAKmjL,8BAAgC,MAC1FnjL,KAAK6yK,SAASzpK,SAAS+O,KAAM0tG,EAC/B,EACA0/D,kBAAmB,WACjB,IAAI1/D,EAAY59G,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,oBACpFmB,SAAS+O,KAAKs8F,MAAM+wE,eAAe,qBACnCxlL,KAAK4yK,YAAYxpK,SAAS+O,KAAM0tG,EAClC,GAGF,SAAS4/D,EAAU9yK,GAAgC,OAAO8yK,EAAY,mBAAqB3yK,QAAU,iBAAmBA,OAAOC,SAAW,SAAUJ,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBG,QAAUH,EAAEvG,cAAgB0G,QAAUH,IAAMG,OAAO3T,UAAY,gBAAkBwT,CAAG,EAAG8yK,EAAU9yK,EAAI,CACnU,SAAS+yK,EAAkBxmL,EAAUwjB,GAAe,KAAMxjB,aAAoBwjB,GAAgB,MAAM,IAAItiB,UAAU,oCAAwC,CAC1J,SAASulL,EAAoBtgL,EAAQud,GAAS,IAAK,IAAIliB,EAAI,EAAGA,EAAIkiB,EAAMhiB,OAAQF,IAAK,CAAE,IAAImiB,EAAaD,EAAMliB,GAAImiB,EAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWN,cAAe,EAAU,UAAWM,IAAYA,EAAWL,UAAW,GAAMzc,OAAOuc,eAAejd,EAAQugL,EAAiB/iK,EAAW/kB,KAAM+kB,EAAa,CAAE,CAChV,SAASgjK,EAAenjK,EAAaK,EAAYC,GAA6N,OAA1MD,GAAY4iK,EAAoBjjK,EAAYvjB,UAAW4jB,GAAiBC,GAAa2iK,EAAoBjjK,EAAaM,GAAcjd,OAAOuc,eAAeI,EAAa,YAAa,CAAEF,UAAU,IAAiBE,CAAa,CAClS,SAASkjK,EAAiB/wK,GAAK,IAAInU,EAAIolL,EAAejxK,EAAG,UAAW,MAAO,UAAY4wK,EAAU/kL,GAAKA,EAAIsrB,OAAOtrB,EAAI,CACrH,SAASolL,EAAejxK,EAAG7B,GAAK,GAAI,UAAYyyK,EAAU5wK,KAAOA,EAAG,OAAOA,EAAG,IAAI5N,EAAI4N,EAAE/B,OAAOsyJ,aAAc,QAAI,IAAWn+J,EAAG,CAAE,IAAIvG,EAAIuG,EAAE7C,KAAKyQ,EAAG7B,GAAK,WAAY,GAAI,UAAYyyK,EAAU/kL,GAAI,OAAOA,EAAG,MAAM,IAAIN,UAAU,+CAAiD,CAAE,OAAQ,WAAa4S,EAAIgZ,OAAS5d,QAAQyG,EAAI,CACjU,IAAIkxK,EAA6C,WAC/C,SAASA,EAA8BxI,GACrC,IAAIt8K,EAAWgH,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,WAAa,EAChGy9K,EAAkB1lL,KAAM+lL,GACxB/lL,KAAKu9K,QAAUA,EACfv9K,KAAKiB,SAAWA,CAClB,CA2BA,OA1BA4kL,EAAeE,EAA+B,CAAC,CAC7CjoL,IAAK,qBACL5B,MAAO,WACL8D,KAAK4gL,kBAAoB7E,EAAW4E,qBAAqB3gL,KAAKu9K,SAC9D,IAAK,IAAI78K,EAAI,EAAGA,EAAIV,KAAK4gL,kBAAkBhgL,OAAQF,IACjDV,KAAK4gL,kBAAkBlgL,GAAGvC,iBAAiB,SAAU6B,KAAKiB,SAE9D,GACC,CACDnD,IAAK,uBACL5B,MAAO,WACL,GAAI8D,KAAK4gL,kBACP,IAAK,IAAIlgL,EAAI,EAAGA,EAAIV,KAAK4gL,kBAAkBhgL,OAAQF,IACjDV,KAAK4gL,kBAAkBlgL,GAAG9F,oBAAoB,SAAUoF,KAAKiB,SAGnE,GACC,CACDnD,IAAK,UACL5B,MAAO,WACL8D,KAAK62K,uBACL72K,KAAKu9K,QAAU,KACfv9K,KAAKiB,SAAW,KAChBjB,KAAK4gL,kBAAoB,IAC3B,KAEKmF,CACT,CAlCiD,GAoCjD,SAASC,IACP,IAAIC,EAAc,IAAI5hK,IACtB,MAAO,CACL+jE,GAAI,SAAY7pF,EAAMmyC,GACpB,IAAIrtC,EAAW4iL,EAAYzpK,IAAIje,GAC1B8E,EAAoCA,EAASnC,KAAKwvC,GAAxCrtC,EAAW,CAACqtC,GAC3Bu1I,EAAYxoK,IAAIlf,EAAM8E,EACxB,EACAglF,IAAK,SAAa9pF,EAAMmyC,GACtB,IAAIrtC,EAAW4iL,EAAYzpK,IAAIje,GAC3B8E,GACFA,EAASjC,OAAOiC,EAASxG,QAAQ6zC,KAAa,EAAG,EAErD,EACAqlD,KAAM,SAAcx3F,EAAM2nL,GACxB,IAAI7iL,EAAW4iL,EAAYzpK,IAAIje,GAC3B8E,GACFA,EAASmC,QAAQqQ,KAAI,SAAU66B,GAC7BA,EAAQw1I,EACV,GAEJ,EAEJ,CAEA,SAASphB,EAAev5J,EAAK7K,GAAK,OAAOqkK,EAAgBx5J,IAAQy5J,EAAsBz5J,EAAK7K,IAAMylL,EAA8B56K,EAAK7K,IAAMukK,GAAoB,CAC/J,SAASA,IAAqB,MAAM,IAAI7kK,UAAU,4IAA8I,CAChM,SAAS4kK,EAAsBhyJ,EAAGrS,GAAK,IAAIkU,EAAI,MAAQ7B,EAAI,KAAO,oBAAsBF,QAAUE,EAAEF,OAAOC,WAAaC,EAAE,cAAe,GAAI,MAAQ6B,EAAG,CAAE,IAAI5N,EAAG2L,EAAGlS,EAAGokF,EAAG/3E,EAAI,GAAIiN,GAAI,EAAIrH,GAAI,EAAI,IAAM,GAAIjS,GAAKmU,EAAIA,EAAEzQ,KAAK4O,IAAIE,KAAM,IAAMvS,EAAG,CAAE,GAAIoF,OAAO8O,KAAOA,EAAG,OAAQmF,GAAI,CAAI,MAAO,OAASA,GAAK/S,EAAIvG,EAAE0D,KAAKyQ,IAAIra,QAAUuS,EAAE7L,KAAK+F,EAAE/K,OAAQ6Q,EAAEnM,SAAWD,GAAIqZ,GAAI,GAAK,CAAE,MAAOhH,GAAKL,GAAI,EAAIC,EAAII,CAAG,CAAE,QAAU,IAAM,IAAKgH,GAAK,MAAQnF,EAAE,YAAciwE,EAAIjwE,EAAE,YAAa9O,OAAO++E,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAInyE,EAAG,MAAMC,CAAG,CAAE,CAAE,OAAO7F,CAAG,CAAE,CACzhB,SAASg4J,EAAgBx5J,GAAO,GAAI5I,MAAM4C,QAAQgG,GAAM,OAAOA,CAAK,CACpE,SAAS66K,EAAqB76K,GAAO,OAAO86K,EAAqB96K,IAAQ+6K,EAAmB/6K,IAAQ46K,EAA8B56K,IAAQg7K,GAAwB,CAClK,SAASA,IAAyB,MAAM,IAAInmL,UAAU,uIAAyI,CAC/L,SAASkmL,EAAmB9K,GAAQ,GAAsB,qBAAX1oK,QAAmD,MAAzB0oK,EAAK1oK,OAAOC,WAA2C,MAAtByoK,EAAK,cAAuB,OAAO74K,MAAM49B,KAAKi7I,EAAO,CAC/J,SAAS6K,EAAqB96K,GAAO,GAAI5I,MAAM4C,QAAQgG,GAAM,OAAOi7K,EAAoBj7K,EAAM,CAC9F,SAASi3J,EAA2B7vJ,EAAG8vJ,GAAkB,IAAIC,EAAuB,qBAAX5vJ,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAAe,IAAK+vJ,EAAI,CAAE,GAAI//J,MAAM4C,QAAQoN,KAAO+vJ,EAAKyjB,EAA8BxzK,KAAO8vJ,GAAkB9vJ,GAAyB,kBAAbA,EAAE/R,OAAqB,CAAM8hK,IAAI/vJ,EAAI+vJ,GAAI,IAAIhiK,EAAI,EAAOwhJ,EAAI,WAAc,EAAG,MAAO,CAAEptI,EAAGotI,EAAGtvI,EAAG,WAAe,OAAIlS,GAAKiS,EAAE/R,OAAe,CAAEpG,MAAM,GAAe,CAAEA,MAAM,EAAO0B,MAAOyW,EAAEjS,KAAQ,EAAGuG,EAAG,SAAWilC,GAAM,MAAMA,CAAI,EAAGlyB,EAAGkoI,EAAK,CAAE,MAAM,IAAI9hJ,UAAU,wIAA0I,CAAE,IAA6CjE,EAAzCymK,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAE/tJ,EAAG,WAAe4tJ,EAAKA,EAAGt+J,KAAKuO,EAAI,EAAGC,EAAG,WAAe,IAAIkH,EAAO4oJ,EAAGxvJ,OAAsC,OAA9B0vJ,EAAmB9oJ,EAAKtf,KAAasf,CAAM,EAAG7S,EAAG,SAAW67J,GAAOD,GAAS,EAAM1mK,EAAM2mK,CAAK,EAAG9oJ,EAAG,WAAe,IAAW4oJ,GAAoC,MAAhBF,EAAG,WAAmBA,EAAG,WAAa,CAAE,QAAU,GAAIG,EAAQ,MAAM1mK,CAAK,CAAE,EAAK,CAC7+B,SAASgqL,EAA8BxzK,EAAGowJ,GAAU,GAAKpwJ,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO6zK,EAAoB7zK,EAAGowJ,GAAS,IAAInwJ,EAAI7M,OAAO5G,UAAUc,SAASmE,KAAKuO,GAAGnN,MAAM,GAAI,GAAiE,MAAnD,WAANoN,GAAkBD,EAAEvG,cAAawG,EAAID,EAAEvG,YAAYzH,MAAgB,QAANiO,GAAqB,QAANA,EAAoBjQ,MAAM49B,KAAK5tB,GAAc,cAANC,GAAqB,2CAA2ClJ,KAAKkJ,GAAW4zK,EAAoB7zK,EAAGowJ,QAA3G,CAA/O,CAAmW,CACra,SAASyjB,EAAoBj7K,EAAKmW,IAAkB,MAAPA,GAAeA,EAAMnW,EAAI3K,UAAQ8gB,EAAMnW,EAAI3K,QAAQ,IAAK,IAAIF,EAAI,EAAGuiK,EAAO,IAAItgK,MAAM+e,GAAMhhB,EAAIghB,EAAKhhB,IAAKuiK,EAAKviK,GAAK6K,EAAI7K,GAAI,OAAOuiK,CAAM,CACpL,SAASwjB,EAAU9zK,GAAgC,OAAO8zK,EAAY,mBAAqB3zK,QAAU,iBAAmBA,OAAOC,SAAW,SAAUJ,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBG,QAAUH,EAAEvG,cAAgB0G,QAAUH,IAAMG,OAAO3T,UAAY,gBAAkBwT,CAAG,EAAG8zK,EAAU9zK,EAAI,CACnU,IAAI+zK,EAAc,CAChBpsD,OAAQ,SAAgBqsD,EAAMC,EAAM9rG,GAClC,OAAIA,EAAc96E,KAAK4jK,iBAAiB+iB,EAAM7rG,KAAW96E,KAAK4jK,iBAAiBgjB,EAAM9rG,GAAmB96E,KAAK6mL,WAAWF,EAAMC,EAChI,EACAC,WAAY,SAAoB95K,EAAGC,GACjC,GAAID,IAAMC,EAAG,OAAO,EACpB,GAAID,GAAKC,GAAqB,UAAhBy5K,EAAU15K,IAAkC,UAAhB05K,EAAUz5K,GAAgB,CAClE,IAEEtM,EACAE,EACA9C,EAJEgpL,EAAOnkL,MAAM4C,QAAQwH,GACvBg6K,EAAOpkL,MAAM4C,QAAQyH,GAIvB,GAAI85K,GAAQC,EAAM,CAEhB,GADAnmL,EAASmM,EAAEnM,OACPA,GAAUoM,EAAEpM,OAAQ,OAAO,EAC/B,IAAKF,EAAIE,EAAgB,IAARF,KAAY,IAAKV,KAAK6mL,WAAW95K,EAAErM,GAAIsM,EAAEtM,IAAK,OAAO,EACtE,OAAO,CACT,CACA,GAAIomL,GAAQC,EAAM,OAAO,EACzB,IAAIC,EAAQj6K,aAAa7D,KACvB+9K,EAAQj6K,aAAa9D,KACvB,GAAI89K,GAASC,EAAO,OAAO,EAC3B,GAAID,GAASC,EAAO,OAAOl6K,EAAEmB,WAAalB,EAAEkB,UAC5C,IAAIg5K,EAAUn6K,aAAazD,OACzB69K,EAAUn6K,aAAa1D,OACzB,GAAI49K,GAAWC,EAAS,OAAO,EAC/B,GAAID,GAAWC,EAAS,OAAOp6K,EAAE9M,YAAc+M,EAAE/M,WACjD,IAAI+F,EAAOD,OAAOC,KAAK+G,GAEvB,GADAnM,EAASoF,EAAKpF,OACVA,IAAWmF,OAAOC,KAAKgH,GAAGpM,OAAQ,OAAO,EAC7C,IAAKF,EAAIE,EAAgB,IAARF,KAAY,IAAKqF,OAAO5G,UAAU0N,eAAezI,KAAK4I,EAAGhH,EAAKtF,IAAK,OAAO,EAC3F,IAAKA,EAAIE,EAAgB,IAARF,KAEf,GADA5C,EAAMkI,EAAKtF,IACNV,KAAK6mL,WAAW95K,EAAEjP,GAAMkP,EAAElP,IAAO,OAAO,EAE/C,OAAO,CACT,CACA,OAAOiP,IAAMA,GAAKC,IAAMA,CAC1B,EACA42J,iBAAkB,SAA0BxpK,EAAM0gF,GAChD,IAAK1gF,IAAS0gF,EAEZ,OAAO,KAET,IACE,IAAI5+E,EAAQ9B,EAAK0gF,GACjB,GAAI96E,KAAKonL,WAAWlrL,GAAQ,OAAOA,CACrC,CAAE,MAAOmrL,GAGT,CACA,GAAIthL,OAAOC,KAAK5L,GAAMwG,OAAQ,CAC5B,GAAIZ,KAAKwM,WAAWsuE,GAClB,OAAOA,EAAM1gF,GACR,IAA4B,IAAxB0gF,EAAMj+E,QAAQ,KACvB,OAAOzC,EAAK0gF,GAIZ,IAFA,IAAIrmD,EAASqmD,EAAM3vE,MAAM,KACrBmmF,EAASl3F,EACJsG,EAAI,EAAGghB,EAAM+S,EAAO7zB,OAAQF,EAAIghB,IAAOhhB,EAAG,CACjD,GAAc,MAAV4wF,EACF,OAAO,KAETA,EAASA,EAAO78D,EAAO/zB,GACzB,CACA,OAAO4wF,CAEX,CACA,OAAO,IACT,EACAu0E,aAAc,SAAsBj5J,GAClC,IAAK,IAAI67J,EAAOxgK,UAAUrH,OAAQrE,EAAS,IAAIoG,MAAM8lK,EAAO,EAAIA,EAAO,EAAI,GAAIx2E,EAAO,EAAGA,EAAOw2E,EAAMx2E,IACpG11F,EAAO01F,EAAO,GAAKhqF,UAAUgqF,GAE/B,OAAOjyF,KAAKwM,WAAWI,GAAOA,EAAIhK,WAAM,EAAQrG,GAAUqQ,CAC5D,EACAsU,OAAQ,SAAgBhlB,EAAOu4B,EAAQ0uI,GACrC,IAAIG,EAAgB,GACpB,GAAIpnK,EAAO,CACT,IACEqnK,EADEC,EAAYhB,EAA2BtmK,GAE3C,IACE,IAAKsnK,EAAU1uJ,MAAOyuJ,EAAQC,EAAU5wJ,KAAKpY,MAAO,CAClD,IAEEipK,EAFE3yJ,EAAOyyJ,EAAMrnK,MACbwnK,EAAalB,EAA2B/tI,GAE5C,IACE,IAAKivI,EAAW5uJ,MAAO2uJ,EAASC,EAAW9wJ,KAAKpY,MAAO,CACrD,IAAIsgF,EAAQ2oF,EAAOvnK,MACnB,GAAI8vB,OAAOhsB,KAAK4jK,iBAAiB9yJ,EAAMgqE,IAAQ/8E,cAAclB,QAAQsmK,EAAYplK,gBAAkB,EAAG,CACpGulK,EAAcpiK,KAAK4P,GACnB,KACF,CACF,CACF,CAAE,MAAO3U,GACPunK,EAAWz8J,EAAE9K,EACf,CAAE,QACAunK,EAAW1pJ,GACb,CACF,CACF,CAAE,MAAO7d,GACPqnK,EAAUv8J,EAAE9K,EACd,CAAE,QACAqnK,EAAUxpJ,GACZ,CACF,CACA,OAAOspJ,CACT,EACAgkB,aAAc,SAAsBprL,EAAOqkC,EAAM4pE,GAC3CjuG,GAASqkC,IAAS4pE,IAChBA,GAAMjuG,EAAM0E,SACdupG,GAAMjuG,EAAM0E,OACZ2/B,GAAQrkC,EAAM0E,QAEhB1E,EAAMkF,OAAO+oG,EAAI,EAAGjuG,EAAMkF,OAAOm/B,EAAM,GAAG,IAE9C,EACAgnJ,gBAAiB,SAAyBrrL,EAAO2+E,GAC/C,IAAI15E,GAAS,EACb,GAAI05E,EACF,IAAK,IAAIn6E,EAAI,EAAGA,EAAIm6E,EAAKj6E,OAAQF,IAC/B,GAAIm6E,EAAKn6E,KAAOxE,EAAO,CACrBiF,EAAQT,EACR,KACF,CAGJ,OAAOS,CACT,EACA6iK,SAAU,SAAkB9nK,EAAO2+E,GACjC,GAAa,MAAT3+E,GAAiB2+E,GAAQA,EAAKj6E,OAAQ,CACxC,IACE6iL,EADEG,EAAaphB,EAA2B3nF,GAE5C,IACE,IAAK+oG,EAAW9uK,MAAO2uK,EAASG,EAAWhxK,KAAKpY,MAAO,CACrD,IAAIqD,EAAM4lL,EAAOvnL,MACjB,GAAI8D,KAAKs6H,OAAOp+H,EAAO2B,GAAM,OAAO,CACtC,CACF,CAAE,MAAO1B,GACPynL,EAAW38K,EAAE9K,EACf,CAAE,QACAynL,EAAW5pK,GACb,CACF,CACA,OAAO,CACT,EACAwtK,uBAAwB,SAAgC12K,EAAM3P,EAAOoK,EAAKk8K,GACxE,GAAIl8K,EAAI3K,OAAS,EAAG,CAElB,IADA,IAAI4iG,GAAW,EACN9iG,EAAI,EAAGA,EAAI6K,EAAI3K,OAAQF,IAAK,CACnC,IAAIgnL,EAAmB1nL,KAAKunL,gBAAgBh8K,EAAI7K,GAAI+mL,GACpD,GAAIC,EAAmBvmL,EAAO,CAC5BoK,EAAInK,OAAOV,EAAG,EAAGoQ,GACjB0yF,GAAW,EACX,KACF,CACF,CACKA,GACHj4F,EAAIrK,KAAK4P,EAEb,MACEvF,EAAIrK,KAAK4P,EAEb,EACA+yJ,cAAe,SAAuBn3J,GAIpC,OAHIA,GAAOA,EAAInC,OAAO,iBAAmB,IACvCmC,EAAMA,EAAItJ,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,MAAMA,QAAQ,UAAW,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,mBAAoB,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,MAAMA,QAAQ,UAAW,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,mBAAoB,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,cAAe,MAExjBsJ,CACT,EACAi7K,aAAc,SAAsBp0F,EAAO7tF,GACzC,GAAI6tF,EAAO,CACT,IAAI3wE,EAAQ2wE,EAAM3wE,MAClB,GAAIA,EAAO,CACT,IAAIglK,EAAYliL,EAAKtC,QAAQ,kBAAmB,SAASrF,cACrD8pL,EAAW9hL,OAAO5G,UAAU0N,eAAezI,KAAKwe,EAAOglK,GAAaA,EAAYliL,EACpF,OAAO6tF,EAAMh1F,KAAK,WAAWqkB,MAAMld,GAAMnH,OAASiW,SAA+B,KAApBoO,EAAMilK,IAA0BjlK,EAAMilK,EACrG,CACF,CACA,OAAO,IACT,EACAzhB,WAAY,SAAoB15J,GAE9B,OAAO1M,KAAK6G,SAAS6F,GAAOA,EAAItJ,QAAQ,SAAU,IAAIrF,cAAgB2O,CACxE,EACAo7K,YAAa,SAAqBp7K,GAEhC,OAAO1M,KAAK6G,SAAS6F,GAAOA,EAAItJ,QAAQ,OAAQ,KAAKA,QAAQ,UAAU,SAAU9B,EAAGZ,GAClF,OAAa,IAANA,EAAUY,EAAI,IAAMA,EAAEvD,aAC/B,IAAGA,cAAgB2O,CACrB,EACA27J,cAAe,SAAuB37J,GACpC,OAAO1M,KAAK6G,SAAS6F,EAAK,CACxB+1K,OAAO,IACJ/1K,EAAI,GAAGpQ,cAAgBoQ,EAAIlH,MAAM,GAAKkH,CAC7C,EACAiuE,QAAS,SAAiBz+E,GACxB,OAAiB,OAAVA,QAA4BwB,IAAVxB,GAAiC,KAAVA,GAAgByG,MAAM4C,QAAQrJ,IAA2B,IAAjBA,EAAM0E,UAAkB1E,aAAiBgN,OAA8B,WAArBu9K,EAAUvqL,IAAqD,IAA9B6J,OAAOC,KAAK9J,GAAO0E,MAChM,EACAwmL,WAAY,SAAoBlrL,GAC9B,OAAQ8D,KAAK26E,QAAQz+E,EACvB,EACAsQ,WAAY,SAAoBtQ,GAC9B,SAAUA,GAASA,EAAMkQ,aAAelQ,EAAMkI,MAAQlI,EAAM0G,MAC9D,EACA+E,SAAU,SAAkBzL,GAC1B,IAAIumL,IAAQx6K,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,KAAmBA,UAAU,GAC3E,OAAO/L,aAAiB6J,QAAU7J,EAAMkQ,cAAgBrG,SAAW08K,GAAuC,IAA9B18K,OAAOC,KAAK9J,GAAO0E,OACjG,EACA0H,OAAQ,SAAgBpM,GACtB,OAAOA,aAAiBgN,MAAQhN,EAAMkQ,cAAgBlD,IACxD,EACA3D,QAAS,SAAiBrJ,GACxB,IAAIumL,IAAQx6K,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,KAAmBA,UAAU,GAC3E,OAAOtF,MAAM4C,QAAQrJ,KAAWumL,GAA0B,IAAjBvmL,EAAM0E,OACjD,EACAiG,SAAU,SAAkB3K,GAC1B,IAAIumL,IAAQx6K,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,KAAmBA,UAAU,GAC3E,MAAwB,kBAAV/L,IAAuBumL,GAAmB,KAAVvmL,EAChD,EACA6rL,qBAAsB,WACpB,IAAIC,EAAQ//K,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAChF,OAAOjI,KAAKonL,WAAWY,IAA2B,IAAjBA,EAAMpnL,QAAgBonL,EAAM3+K,MAAM,OACrE,EAKA4+K,SAAU,SAAkB18K,EAAKD,GAC/B,IAAIwF,EACJ,GAAI9Q,KAAKonL,WAAW77K,GAClB,IACEuF,EAAOvF,EAAI08K,SAAS38K,EACtB,CAAE,MAAO48K,GACPp3K,EAAOs1K,EAAqB76K,GAAKiL,UAAUwI,KAAK1T,EAClD,CAEF,OAAOwF,CACT,EAKAq3K,cAAe,SAAuB58K,EAAKD,GACzC,IAAInK,GAAS,EACb,GAAInB,KAAKonL,WAAW77K,GAClB,IACEpK,EAAQoK,EAAI48K,cAAc78K,EAC5B,CAAE,MAAO88K,GACPjnL,EAAQoK,EAAIysE,YAAYouG,EAAqB76K,GAAKiL,UAAUwI,KAAK1T,GACnE,CAEF,OAAOnK,CACT,EACA8Q,KAAM,SAAco2K,EAAQC,GAC1B,IAAIC,EAAQtgL,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,EAC5E4tF,EAAa5tF,UAAUrH,OAAS,EAAIqH,UAAU,QAAKvK,EACnD8qL,EAAgBvgL,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,EACpF4D,EAAS7L,KAAK08I,QAAQ2rC,EAAQC,EAAQzyF,EAAY0yF,GAClDE,EAAiBF,EAMrB,OAHIvoL,KAAK26E,QAAQ0tG,IAAWroL,KAAK26E,QAAQ2tG,MACvCG,EAAmC,IAAlBD,EAAsBD,EAAQC,GAE1CC,EAAiB58K,CAC1B,EACA6wI,QAAS,SAAiB2rC,EAAQC,EAAQzyF,GACxC,IAAI0yF,EAAQtgL,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,EAC5E4D,GAAU,EACV68K,EAAc1oL,KAAK26E,QAAQ0tG,GAC3BM,EAAc3oL,KAAK26E,QAAQ2tG,GAE/B,OADgCz8K,EAA5B68K,GAAeC,EAAsB,EAAWD,EAAsBH,EAAeI,GAAuBJ,EAAiC,kBAAXF,GAAyC,kBAAXC,EAA8BzyF,EAAWwyF,EAAQC,GAAsBD,EAASC,GAAU,EAAID,EAASC,EAAS,EAAI,EACjRz8K,CACT,EACA+8K,iBAAkB,WAEhB,OAAO,IAAIC,KAAKC,cAASprL,EAAW,CAClCszK,SAAS,IACRt0B,OACL,EACAqsC,WAAY,WACV,IAAIz4K,EAAQtQ,KACR4M,EAAM3E,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC3Eq6F,EAAYr6F,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GACpF,OAAOlC,OAAO2iC,QAAQ97B,GAAKyP,QAAO,SAAU1J,EAAGwO,GAC7C,IAAIG,EAAQwjJ,EAAe3jJ,EAAM,GAC/BrjB,EAAMwjB,EAAM,GACZplB,EAAQolB,EAAM,GACZ0nK,EAAa1mF,EAAY,GAAGz/F,OAAOy/F,EAAW,KAAKz/F,OAAO/E,GAAOA,EAErE,OADAwS,EAAM3I,SAASzL,GAASyW,EAAIA,EAAE9P,OAAOyN,EAAMy4K,WAAW7sL,EAAO8sL,IAAer2K,EAAEzR,KAAK8nL,GAC5Er2K,CACT,GAAG,GACL,EACAzL,UAAW,SAAmBhL,GAC5B,IAAIq4B,EAASv0B,KACTsuB,EAASrmB,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,EAC7EghL,EAAgBhhL,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,EACpFihL,EAAmB,IAAIC,OAAOF,GAC9BG,EAAgB,IAAID,OAAOF,EAAgB36J,GAC/C,OAAItuB,KAAKuF,QAAQrJ,GACR,IAAMA,EAAM2Z,KAAI,SAAUxN,GAC/B,OAAOksB,EAAOrtB,UAAUmB,EAAGimB,EAAQ26J,EAAgB36J,EACrD,IAAG9lB,KAAK,MAAQ,IACPxI,KAAKsI,OAAOpM,GACdA,EAAMqM,cACJvI,KAAKwM,WAAWtQ,GAClBA,EAAM+D,WACJD,KAAK2H,SAASzL,GAChB,MAAQ6J,OAAO2iC,QAAQxsC,GAAO2Z,KAAI,SAAU2L,GACjD,IAAIkE,EAAQo/I,EAAetjJ,EAAO,GAChCnK,EAAIqO,EAAM,GACVrd,EAAIqd,EAAM,GACZ,MAAO,GAAG7iB,OAAOumL,GAAevmL,OAAOwU,EAAG,MAAMxU,OAAO0xB,EAAOrtB,UAAUmB,EAAGimB,EAAQ26J,EAAgB36J,GACrG,IAAG9lB,KAAK,OAAS,KAAK3F,OAAOqmL,GAAoB,IAE1CpiL,KAAKI,UAAUhL,EAE1B,GAGF,SAASijB,EAAQxM,GAAgC,OAAOwM,EAAU,mBAAqBrM,QAAU,iBAAmBA,OAAOC,SAAW,SAAUJ,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBG,QAAUH,EAAEvG,cAAgB0G,QAAUH,IAAMG,OAAO3T,UAAY,gBAAkBwT,CAAG,EAAGwM,EAAQxM,EAAI,CAC7T,SAAS02K,EAAqB99K,GAAO,OAAO+9K,EAAqB/9K,IAAQg+K,EAAmBh+K,IAAQi+K,EAA8Bj+K,IAAQk+K,GAAwB,CAClK,SAASA,IAAyB,MAAM,IAAIrpL,UAAU,uIAAyI,CAC/L,SAASopL,EAA8B72K,EAAGowJ,GAAU,GAAKpwJ,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO+2K,EAAoB/2K,EAAGowJ,GAAS,IAAInwJ,EAAI7M,OAAO5G,UAAUc,SAASmE,KAAKuO,GAAGnN,MAAM,GAAI,GAAiE,MAAnD,WAANoN,GAAkBD,EAAEvG,cAAawG,EAAID,EAAEvG,YAAYzH,MAAgB,QAANiO,GAAqB,QAANA,EAAoBjQ,MAAM49B,KAAK5tB,GAAc,cAANC,GAAqB,2CAA2ClJ,KAAKkJ,GAAW82K,EAAoB/2K,EAAGowJ,QAA3G,CAA/O,CAAmW,CACra,SAASwmB,EAAmB/N,GAAQ,GAAsB,qBAAX1oK,QAAmD,MAAzB0oK,EAAK1oK,OAAOC,WAA2C,MAAtByoK,EAAK,cAAuB,OAAO74K,MAAM49B,KAAKi7I,EAAO,CAC/J,SAAS8N,EAAqB/9K,GAAO,GAAI5I,MAAM4C,QAAQgG,GAAM,OAAOm+K,EAAoBn+K,EAAM,CAC9F,SAASm+K,EAAoBn+K,EAAKmW,IAAkB,MAAPA,GAAeA,EAAMnW,EAAI3K,UAAQ8gB,EAAMnW,EAAI3K,QAAQ,IAAK,IAAIF,EAAI,EAAGuiK,EAAO,IAAItgK,MAAM+e,GAAMhhB,EAAIghB,EAAKhhB,IAAKuiK,EAAKviK,GAAK6K,EAAI7K,GAAI,OAAOuiK,CAAM,CACpL,SAASxgJ,EAAgBvjB,EAAUwjB,GAAe,KAAMxjB,aAAoBwjB,GAAgB,MAAM,IAAItiB,UAAU,oCAAwC,CACxJ,SAASuiB,EAAkBtd,EAAQud,GAAS,IAAK,IAAIliB,EAAI,EAAGA,EAAIkiB,EAAMhiB,OAAQF,IAAK,CAAE,IAAImiB,EAAaD,EAAMliB,GAAImiB,EAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWN,cAAe,EAAU,UAAWM,IAAYA,EAAWL,UAAW,GAAMzc,OAAOuc,eAAejd,EAAQ6/J,EAAeriJ,EAAW/kB,KAAM+kB,EAAa,CAAE,CAC5U,SAASC,EAAaJ,EAAaK,EAAYC,GAAyN,OAAtMD,GAAYJ,EAAkBD,EAAYvjB,UAAW4jB,GAAiBC,GAAaL,EAAkBD,EAAaM,GAAcjd,OAAOuc,eAAeI,EAAa,YAAa,CAAEF,UAAU,IAAiBE,CAAa,CAC5R,SAASP,EAAgBvV,EAAK9O,EAAK5B,GAA4L,OAAnL4B,EAAMonK,EAAepnK,GAAUA,KAAO8O,EAAO7G,OAAOuc,eAAe1V,EAAK9O,EAAK,CAAE5B,MAAOA,EAAO+lB,YAAY,EAAMM,cAAc,EAAMC,UAAU,IAAkB5V,EAAI9O,GAAO5B,EAAgB0Q,CAAK,CAC3O,SAASs4J,EAAerwJ,GAAK,IAAInU,EAAIykK,EAAatwJ,EAAG,UAAW,MAAO,UAAYsK,EAAQze,GAAKA,EAAIsrB,OAAOtrB,EAAI,CAC/G,SAASykK,EAAatwJ,EAAG7B,GAAK,GAAI,UAAYmM,EAAQtK,KAAOA,EAAG,OAAOA,EAAG,IAAI5N,EAAI4N,EAAE/B,OAAOsyJ,aAAc,QAAI,IAAWn+J,EAAG,CAAE,IAAIvG,EAAIuG,EAAE7C,KAAKyQ,EAAG7B,GAAK,WAAY,GAAI,UAAYmM,EAAQze,GAAI,OAAOA,EAAG,MAAM,IAAIN,UAAU,+CAAiD,CAAE,OAAQ,WAAa4S,EAAIgZ,OAAS5d,QAAQyG,EAAI,CAC3T,IAAI80K,EAAwB,WAC1B,SAASA,EAASxoK,GAChB,IAAI9F,EAAO8F,EAAK9F,KACd9c,EAAO4iB,EAAK5iB,KACdkkB,EAAgBziB,KAAM2pL,GACtBxnK,EAAgBniB,KAAM,eAAW,GACjCmiB,EAAgBniB,KAAM,YAAQ,GAC9BA,KAAK4pL,QAAU,IAAI3hJ,IAAI5sB,GACvBrb,KAAKzB,KAAOA,CACd,CAgEA,OA/DAukB,EAAa6mK,EAAU,CAAC,CACtB7rL,IAAK,MACL5B,MAAO,SAAagD,GAClBc,KAAK4pL,QAAQ1hJ,IAAIhpC,EACnB,GACC,CACDpB,IAAK,SACL5B,MAAO,WAEP,GACC,CACD4B,IAAK,SACL5B,MAAO,SAAiBgD,GACtBc,KAAK4pL,QAAQ,UAAU1qL,EACzB,GACC,CACDpB,IAAK,QACL5B,MAAO,WACL8D,KAAK4pL,QAAQj7K,OACf,GACC,CACD7Q,IAAK,MACL5B,MAAO,SAAa2tL,EAAgBvxF,GAClC,IAAIwB,EAAW95F,KAAK8pL,KAAKD,EAAgBvxF,GACrChN,EAAWwO,EAAW95F,KAAK+pL,WAAWV,EAAqBrpL,KAAK4pL,SAAU9vF,GAAY,KAC1F,OAAO4sF,EAAYU,WAAW97F,GAAYA,EAAW,IACvD,GACC,CACDxtF,IAAK,aACL5B,MAAO,SAAoBgD,EAAUpB,GACnC,IAAIksL,EACAnvJ,EAAsB,OAAb37B,QAAkC,IAAbA,OAAsB,EAASA,EAAS27B,OAC1E,OAAmB,OAAXA,QAA8B,IAAXA,GAAwD,QAAlCmvJ,EAAgBnvJ,EAAO04D,aAAqC,IAAlBy2F,OAA2B,EAASA,EAAclsL,OAASA,GAAO+8B,GAAU76B,KAAKiqL,WAAWpvJ,EAAQ/8B,KAAQ,CACzM,GACC,CACDA,IAAK,OACL5B,MAAO,SAAc2tL,EAAgBvxF,GACnC,IAAIh3E,EAAO4oK,EACX,OAAuH,QAA9G5oK,EAAQg3E,IAA6B,OAAnBuxF,QAA8C,IAAnBA,OAA4B,EAASA,EAAe1jF,eAA+B,IAAV7kF,GAA2D,QAAtC4oK,EAAgB5oK,EAAM,kBAA0C,IAAlB4oK,OAA2B,EAASA,EAAc9lL,KAAKkd,KAAW,IACtQ,GACC,CACDxjB,IAAK,aACL5B,MAAO,WACL,IAAIoU,EAAQtQ,KACR4pL,EAAU3hL,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC9E6xF,EAAW7xF,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,GAC/EghG,EAAa,GAcjB,OAbAnP,EAASl8F,SAAQ,SAAUqiG,GACrBA,EAAMnG,oBAAoBn3F,MAC5BsmG,EAAaA,EAAWpmG,OAAOyN,EAAMy5K,WAAW9gF,EAAYhJ,EAAMnG,WACzDmG,EAAM1hG,KAAKoG,OAAS2L,EAAM/R,KACnC0qG,EAAW/nG,KAAK++F,GACPymF,EAAYU,WAAWnnF,EAAMniG,OACtCmrG,EAAaA,EAAWpmG,OAAO+mL,EAAQ1oK,QAAO,SAAU5f,GACtD,OAAOgP,EAAM25K,WAAW3oL,EAAG2+F,EAAMniG,IACnC,IAAG+X,KAAI,SAAUvU,GACf,OAAOA,EAAEiyF,KACX,KAEJ,IACO0V,CACT,KAEK0gF,CACT,CA1E4B,GA4ExBQ,EAAS,EACb,SAASC,IACP,IAAI7oK,EAAStZ,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,SAEjF,OADAkiL,IACO,GAAGtnL,OAAO0e,GAAQ1e,OAAOsnL,EAClC,CAEA,SAASE,EAAmB9+K,GAAO,OAAO++K,GAAmB/+K,IAAQg/K,GAAiBh/K,IAAQo3J,GAA4Bp3J,IAAQi/K,IAAsB,CACxJ,SAASA,KAAuB,MAAM,IAAIpqL,UAAU,uIAAyI,CAC7L,SAASuiK,GAA4BhwJ,EAAGowJ,GAAU,GAAKpwJ,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOqwJ,GAAkBrwJ,EAAGowJ,GAAS,IAAInwJ,EAAI7M,OAAO5G,UAAUc,SAASmE,KAAKuO,GAAGnN,MAAM,GAAI,GAAiE,MAAnD,WAANoN,GAAkBD,EAAEvG,cAAawG,EAAID,EAAEvG,YAAYzH,MAAgB,QAANiO,GAAqB,QAANA,EAAoBjQ,MAAM49B,KAAK5tB,GAAc,cAANC,GAAqB,2CAA2ClJ,KAAKkJ,GAAWowJ,GAAkBrwJ,EAAGowJ,QAAzG,CAA7O,CAA+V,CAC/Z,SAASwnB,GAAiB/O,GAAQ,GAAsB,qBAAX1oK,QAAmD,MAAzB0oK,EAAK1oK,OAAOC,WAA2C,MAAtByoK,EAAK,cAAuB,OAAO74K,MAAM49B,KAAKi7I,EAAO,CAC7J,SAAS8O,GAAmB/+K,GAAO,GAAI5I,MAAM4C,QAAQgG,GAAM,OAAOy3J,GAAkBz3J,EAAM,CAC1F,SAASy3J,GAAkBz3J,EAAKmW,IAAkB,MAAPA,GAAeA,EAAMnW,EAAI3K,UAAQ8gB,EAAMnW,EAAI3K,QAAQ,IAAK,IAAIF,EAAI,EAAGuiK,EAAO,IAAItgK,MAAM+e,GAAMhhB,EAAIghB,EAAKhhB,IAAKuiK,EAAKviK,GAAK6K,EAAI7K,GAAI,OAAOuiK,CAAM,CAClL,SAASvyH,KACP,IAAI+5I,EAAW,GACXC,EAAiB,SAAwB5sL,EAAK6sL,GAChD,IAAIC,EAAa3iL,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,IACjF4iL,EAAaC,EAAchtL,EAAK6sL,EAAYC,GAC5CG,EAAYF,EAAW3uL,OAAS2uL,EAAW/sL,MAAQA,EAAM,EAAI8sL,GAAc,EAK/E,OAJAH,EAASvpL,KAAK,CACZpD,IAAKA,EACL5B,MAAO6uL,IAEFA,CACT,EACIC,EAAe,SAAsB/Z,GACvCwZ,EAAWA,EAASvpK,QAAO,SAAUtU,GACnC,OAAOA,EAAI1Q,QAAU+0K,CACvB,GACF,EACIga,EAAmB,SAA0BntL,EAAK6sL,GACpD,OAAOG,EAAchtL,EAAK6sL,GAAYzuL,KACxC,EACI4uL,EAAgB,SAAuBhtL,EAAK6sL,GAC9C,IAAIC,EAAa3iL,UAAUrH,OAAS,QAAsBlD,IAAjBuK,UAAU,GAAmBA,UAAU,GAAK,EACrF,OAAOoiL,EAAmBI,GAAUj0K,UAAUwI,MAAK,SAAUpS,GAC3D,QAAO+9K,GAAoB/9K,EAAI9O,MAAQA,CACzC,KAAM,CACJA,IAAKA,EACL5B,MAAO0uL,EAEX,EACIM,EAAY,SAAmBzwF,GACjC,OAAOA,GAAK7gD,SAAS6gD,EAAGga,MAAMw8D,OAAQ,KAAW,CACnD,EACA,MAAO,CACLz0J,IAAK0uK,EACLztK,IAAK,SAAa3f,EAAK28F,EAAImwF,GACrBnwF,IACFA,EAAGga,MAAMw8D,OAASjlJ,OAAO0+J,EAAe5sL,GAAK,EAAM8sL,IAEvD,EACAj8K,MAAO,SAAe8rF,GAChBA,IACFuwF,EAAaE,EAAUzwF,IACvBA,EAAGga,MAAMw8D,OAAS,GAEtB,EACAka,WAAY,SAAoBrtL,GAC9B,OAAOmtL,EAAiBntL,GAAK,EAC/B,EAEJ,CACA,IAAIstL,GAAc16I,I,qEClvClB,IAAI5gC,EAAgB,SAASC,EAAG/C,GAI9B,OAHA8C,EAAgB/J,OAAOiK,gBAClB,CAAEC,UAAW,cAAgBtN,OAAS,SAAUoN,EAAG/C,GAAK+C,EAAEE,UAAYjD,CAAG,GAC1E,SAAU+C,EAAG/C,GAAK,IAAK,IAAIkD,KAAKlD,EAAOjH,OAAO5G,UAAU0N,eAAezI,KAAK4I,EAAGkD,KAAIH,EAAEG,GAAKlD,EAAEkD,GAAI,EAC7FJ,EAAcC,EAAG/C,EAC1B,EAEO,SAAS6C,EAAUE,EAAG/C,GAC3B,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI5M,UAAU,uBAAyB4rB,OAAOhf,GAAK,iCAE7D,SAASmD,IAAOnQ,KAAKoM,YAAc2D,CAAG,CADtCD,EAAcC,EAAG/C,GAEjB+C,EAAE5Q,UAAkB,OAAN6N,EAAajH,OAAO1G,OAAO2N,IAAMmD,EAAGhR,UAAY6N,EAAE7N,UAAW,IAAIgR,EACjF,CA2H6BpK,OAAO1G,OAgB7B,SAAS8gC,EAASxtB,GACvB,IAAImC,EAAsB,oBAAXhC,QAAyBA,OAAOC,SAAUF,EAAIiC,GAAKnC,EAAEmC,GAAIpU,EAAI,EAC5E,GAAImS,EAAG,OAAOA,EAAEzO,KAAKuO,GACrB,GAAIA,GAAyB,kBAAbA,EAAE/R,OAAqB,MAAO,CAC1CsS,KAAM,WAEF,OADIP,GAAKjS,GAAKiS,EAAE/R,SAAQ+R,OAAI,GACrB,CAAEzW,MAAOyW,GAAKA,EAAEjS,KAAMlG,MAAOmY,EACxC,GAEJ,MAAM,IAAIvS,UAAU0U,EAAI,0BAA4B,kCACtD,CAEO,SAASpC,EAAOC,EAAGC,GACxB,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACT,CAkBO,SAASo4K,EAAclhF,EAAI5pE,EAAM+qJ,GACtC,GAAIA,GAA6B,IAArBrjL,UAAUrH,OAAc,IAAK,IAA4BqS,EAAxBvS,EAAI,EAAGC,EAAI4/B,EAAK3/B,OAAYF,EAAIC,EAAGD,KACxEuS,GAAQvS,KAAK6/B,IACRttB,IAAIA,EAAKtQ,MAAMxD,UAAUqG,MAAMpB,KAAKm8B,EAAM,EAAG7/B,IAClDuS,EAAGvS,GAAK6/B,EAAK7/B,IAGrB,OAAOypG,EAAGtnG,OAAOoQ,GAAMtQ,MAAMxD,UAAUqG,MAAMpB,KAAKm8B,GACpD,CAqCyBx6B,OAAO1G,OAyDkB,oBAApBy0D,iBAAiCA,gBC3TxD,SAAStnD,EAAWtQ,GACvB,MAAwB,oBAAVA,CAClB,CCFO,SAASqvL,EAAiBC,GAC7B,IAAIn7K,EAAS,SAAUnR,GACnB+E,MAAMG,KAAKlF,GACXA,EAAS+F,OAAQ,IAAIhB,OAAQgB,KACjC,EACIwmL,EAAWD,EAAWn7K,GAG1B,OAFAo7K,EAAStsL,UAAY4G,OAAO1G,OAAO4E,MAAM9E,WACzCssL,EAAStsL,UAAUiN,YAAcq/K,EAC1BA,CACX,CCRO,IAAIC,EAAsBH,GAAiB,SAAUl7K,GACxD,OAAO,SAAiCk7B,GACpCl7B,EAAOrQ,MACPA,KAAKD,QAAUwrC,EACTA,EAAO3qC,OAAS,4CAA8C2qC,EAAO11B,KAAI,SAAU1Z,EAAKuE,GAAK,OAAOA,EAAI,EAAI,KAAOvE,EAAI8D,UAAY,IAAGuI,KAAK,QAC3I,GACNxI,KAAK2E,KAAO,sBACZ3E,KAAKurC,OAASA,CAClB,CACJ,ICVO,SAASogJ,EAAUpgL,EAAKuF,GAC3B,GAAIvF,EAAK,CACL,IAAIpK,EAAQoK,EAAI1O,QAAQiU,GACxB,GAAK3P,GAASoK,EAAInK,OAAOD,EAAO,EACpC,CACJ,CCDA,IAAIyqL,EAAgB,WAChB,SAASA,EAAaC,GAClB7rL,KAAK6rL,gBAAkBA,EACvB7rL,KAAKmhC,QAAS,EACdnhC,KAAK8rL,WAAa,KAClB9rL,KAAK+rL,YAAc,IACvB,CAoHA,OAnHAH,EAAazsL,UAAUzE,YAAc,WACjC,IAAIumC,EAAKrtB,EAAI4yC,EAAKvtC,EACdsyB,EACJ,IAAKvrC,KAAKmhC,OAAQ,CACdnhC,KAAKmhC,QAAS,EACd,IAAI2qJ,EAAa9rL,KAAK8rL,WACtB,GAAIA,EAEA,GADA9rL,KAAK8rL,WAAa,KACdnpL,MAAM4C,QAAQumL,GACd,IACI,IAAK,IAAIE,EAAe7rJ,EAAS2rJ,GAAaG,EAAiBD,EAAa94K,QAAS+4K,EAAezxL,KAAMyxL,EAAiBD,EAAa94K,OAAQ,CAC5I,IAAIg5K,EAAWD,EAAe/vL,MAC9BgwL,EAAS1iL,OAAOxJ,KACpB,CACJ,CACA,MAAOohC,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQ6qJ,IAAmBA,EAAezxL,OAASoZ,EAAKo4K,EAAa3qJ,SAASztB,EAAGxP,KAAK4nL,EACtF,CACA,QAAU,GAAI/qJ,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,MAGA4oL,EAAWtiL,OAAOxJ,MAG1B,IAAImsL,EAAmBnsL,KAAK6rL,gBAC5B,GAAIr/K,EAAW2/K,GACX,IACIA,GACJ,CACA,MAAOllL,GACHskC,EAAStkC,aAAaykL,EAAsBzkL,EAAEskC,OAAS,CAACtkC,EAC5D,CAEJ,IAAI8kL,EAAc/rL,KAAK+rL,YACvB,GAAIA,EAAa,CACb/rL,KAAK+rL,YAAc,KACnB,IACI,IAAK,IAAIK,EAAgBjsJ,EAAS4rJ,GAAcM,EAAkBD,EAAcl5K,QAASm5K,EAAgB7xL,KAAM6xL,EAAkBD,EAAcl5K,OAAQ,CACnJ,IAAIo5K,EAAYD,EAAgBnwL,MAChC,IACIqwL,EAAcD,EAClB,CACA,MAAOnwL,GACHovC,EAAoB,OAAXA,QAA8B,IAAXA,EAAoBA,EAAS,GACrDpvC,aAAeuvL,EACfngJ,EAAS8/I,EAAcA,EAAc,GAAI34K,EAAO64B,IAAU74B,EAAOvW,EAAIovC,SAGrEA,EAAOrqC,KAAK/E,EAEpB,CACJ,CACJ,CACA,MAAOqwL,GAAShmI,EAAM,CAAEtjD,MAAOspL,EAAS,CACxC,QACI,IACQH,IAAoBA,EAAgB7xL,OAASye,EAAKmzK,EAAc/qJ,SAASpoB,EAAG7U,KAAKgoL,EACzF,CACA,QAAU,GAAI5lI,EAAK,MAAMA,EAAItjD,KAAO,CACxC,CACJ,CACA,GAAIqoC,EACA,MAAM,IAAImgJ,EAAoBngJ,EAEtC,CACJ,EACAqgJ,EAAazsL,UAAU+oC,IAAM,SAAUukJ,GACnC,IAAI74K,EACJ,GAAI64K,GAAYA,IAAazsL,KACzB,GAAIA,KAAKmhC,OACLorJ,EAAcE,OAEb,CACD,GAAIA,aAAoBb,EAAc,CAClC,GAAIa,EAAStrJ,QAAUsrJ,EAASC,WAAW1sL,MACvC,OAEJysL,EAASE,WAAW3sL,KACxB,EACCA,KAAK+rL,YAA0C,QAA3Bn4K,EAAK5T,KAAK+rL,mBAAgC,IAAPn4K,EAAgBA,EAAK,IAAI1S,KAAKurL,EAC1F,CAER,EACAb,EAAazsL,UAAUutL,WAAa,SAAU7xJ,GAC1C,IAAIixJ,EAAa9rL,KAAK8rL,WACtB,OAAOA,IAAejxJ,GAAWl4B,MAAM4C,QAAQumL,IAAeA,EAAWr3K,SAASomB,EACtF,EACA+wJ,EAAazsL,UAAUwtL,WAAa,SAAU9xJ,GAC1C,IAAIixJ,EAAa9rL,KAAK8rL,WACtB9rL,KAAK8rL,WAAanpL,MAAM4C,QAAQumL,IAAeA,EAAW5qL,KAAK25B,GAASixJ,GAAcA,EAAa,CAACA,EAAYjxJ,GAAUA,CAC9H,EACA+wJ,EAAazsL,UAAUytL,cAAgB,SAAU/xJ,GAC7C,IAAIixJ,EAAa9rL,KAAK8rL,WAClBA,IAAejxJ,EACf76B,KAAK8rL,WAAa,KAEbnpL,MAAM4C,QAAQumL,IACnBH,EAAUG,EAAYjxJ,EAE9B,EACA+wJ,EAAazsL,UAAUqK,OAAS,SAAUijL,GACtC,IAAIV,EAAc/rL,KAAK+rL,YACvBA,GAAeJ,EAAUI,EAAaU,GAClCA,aAAoBb,GACpBa,EAASG,cAAc5sL,KAE/B,EACA4rL,EAAaiB,MAAQ,WACjB,IAAIpK,EAAQ,IAAImJ,EAEhB,OADAnJ,EAAMthJ,QAAS,EACRshJ,CACV,CAJoB,GAKdmJ,CACX,CA3HmB,GA6HRkB,EAAqBlB,EAAaiB,MACtC,SAASE,EAAe7wL,GAC3B,OAAQA,aAAiB0vL,GACpB1vL,GAAS,WAAYA,GAASsQ,EAAWtQ,EAAMsN,SAAWgD,EAAWtQ,EAAMgsC,MAAQ17B,EAAWtQ,EAAMxB,YAC7G,CACA,SAAS6xL,EAAcD,GACf9/K,EAAW8/K,GACXA,IAGAA,EAAU5xL,aAElB,CC7IO,IAAIZ,EAAS,CAChBkzL,iBAAkB,KAClBC,sBAAuB,KACvBlzL,aAAS2D,EACTwvL,uCAAuC,EACvCC,0BAA0B,GCJnBC,EAAkB,CACzBtwL,WAAY,SAAU4zC,EAASj0C,GAE3B,IADA,IAAIuL,EAAO,GACFs7C,EAAK,EAAGA,EAAKr7C,UAAUrH,OAAQ0iD,IACpCt7C,EAAKs7C,EAAK,GAAKr7C,UAAUq7C,GAE7B,IAAI+pI,EAAWD,EAAgBC,SAC/B,OAAiB,OAAbA,QAAkC,IAAbA,OAAsB,EAASA,EAASvwL,YACtDuwL,EAASvwL,WAAW8F,MAAMyqL,EAAUhC,EAAc,CAAC36I,EAASj0C,GAAUiW,EAAO1K,KAEjFlL,WAAW8F,WAAM,EAAQyoL,EAAc,CAAC36I,EAASj0C,GAAUiW,EAAO1K,IAC7E,EACAomC,aAAc,SAAU0yB,GACpB,IAAIusH,EAAWD,EAAgBC,SAC/B,QAAsB,OAAbA,QAAkC,IAAbA,OAAsB,EAASA,EAASj/I,eAAiBA,cAAc0yB,EACzG,EACAusH,cAAU3vL,GCfP,SAAS4vL,EAAqBnxL,GACjCixL,EAAgBtwL,YAAW,WACvB,IAAIkwL,EAAmBlzL,EAAOkzL,iBAC9B,IAAIA,EAIA,MAAM7wL,EAHN6wL,EAAiB7wL,EAKzB,GACJ,CCZO,SAASoxL,IAAS,CCAlB,IAAIC,EAAwB,WAAe,OAAOC,EAAmB,SAAK/vL,OAAWA,EAAa,CAAtE,GAC5B,SAASgwL,EAAkBxqL,GAC9B,OAAOuqL,EAAmB,SAAK/vL,EAAWwF,EAC9C,CACO,SAASyqL,EAAiBzxL,GAC7B,OAAOuxL,EAAmB,IAAKvxL,OAAOwB,EAC1C,CACO,SAAS+vL,EAAmBrjK,EAAMluB,EAAOgH,GAC5C,MAAO,CACHknB,KAAMA,EACNluB,MAAOA,EACPgH,MAAOA,EAEf,CCZA,IAAIjE,EAAU,KACP,SAAS2uL,EAAa/uJ,GACzB,GAAI/kC,EAAOozL,sCAAuC,CAC9C,IAAIW,GAAU5uL,EAKd,GAJI4uL,IACA5uL,EAAU,CAAE6uL,aAAa,EAAO5qL,MAAO,OAE3C27B,IACIgvJ,EAAQ,CACR,IAAIj6K,EAAK3U,EAAS6uL,EAAcl6K,EAAGk6K,YAAa5qL,EAAQ0Q,EAAG1Q,MAE3D,GADAjE,EAAU,KACN6uL,EACA,MAAM5qL,CAEd,CACJ,MAEI27B,GAER,CACO,SAASkvJ,EAAa5xL,GACrBrC,EAAOozL,uCAAyCjuL,IAChDA,EAAQ6uL,aAAc,EACtB7uL,EAAQiE,MAAQ/G,EAExB,CCjBA,IAAI6xL,EAAc,SAAU39K,GAExB,SAAS29K,EAAWC,GAChB,IAAI39K,EAAQD,EAAOjM,KAAKpE,OAASA,KAWjC,OAVAsQ,EAAM49K,WAAY,EACdD,GACA39K,EAAM29K,YAAcA,EAChBlB,EAAekB,IACfA,EAAY/lJ,IAAI53B,IAIpBA,EAAM29K,YAAcE,EAEjB79K,CACX,CAwDA,OAtEAT,EAAUm+K,EAAY39K,GAetB29K,EAAW3uL,OAAS,SAAU6T,EAAMhQ,EAAOkmC,GACvC,OAAO,IAAIglJ,EAAel7K,EAAMhQ,EAAOkmC,EAC3C,EACA4kJ,EAAW7uL,UAAU+T,KAAO,SAAUhX,GAC9B8D,KAAKkuL,UACLG,EAA0BV,EAAiBzxL,GAAQ8D,MAGnDA,KAAKsuL,MAAMpyL,EAEnB,EACA8xL,EAAW7uL,UAAU+D,MAAQ,SAAU/G,GAC/B6D,KAAKkuL,UACLG,EAA0BX,EAAkBvxL,GAAM6D,OAGlDA,KAAKkuL,WAAY,EACjBluL,KAAKoqI,OAAOjuI,GAEpB,EACA6xL,EAAW7uL,UAAUiqC,SAAW,WACxBppC,KAAKkuL,UACLG,EAA0Bb,EAAuBxtL,OAGjDA,KAAKkuL,WAAY,EACjBluL,KAAKuuL,YAEb,EACAP,EAAW7uL,UAAUzE,YAAc,WAC1BsF,KAAKmhC,SACNnhC,KAAKkuL,WAAY,EACjB79K,EAAOlR,UAAUzE,YAAY0J,KAAKpE,MAClCA,KAAKiuL,YAAc,KAE3B,EACAD,EAAW7uL,UAAUmvL,MAAQ,SAAUpyL,GACnC8D,KAAKiuL,YAAY/6K,KAAKhX,EAC1B,EACA8xL,EAAW7uL,UAAUirI,OAAS,SAAUjuI,GACpC,IACI6D,KAAKiuL,YAAY/qL,MAAM/G,EAC3B,CACA,QACI6D,KAAKtF,aACT,CACJ,EACAszL,EAAW7uL,UAAUovL,UAAY,WAC7B,IACIvuL,KAAKiuL,YAAY7kJ,UACrB,CACA,QACIppC,KAAKtF,aACT,CACJ,EACOszL,CACX,CAxEiB,CAwEfpC,GAEE4C,EAAQ9pK,SAASvlB,UAAUP,KAC/B,SAASA,EAAK8E,EAAIqE,GACd,OAAOymL,EAAMpqL,KAAKV,EAAIqE,EAC1B,CACA,IAAI0mL,EAAoB,WACpB,SAASA,EAAiBC,GACtB1uL,KAAK0uL,gBAAkBA,CAC3B,CAqCA,OApCAD,EAAiBtvL,UAAU+T,KAAO,SAAUhX,GACxC,IAAIwyL,EAAkB1uL,KAAK0uL,gBAC3B,GAAIA,EAAgBx7K,KAChB,IACIw7K,EAAgBx7K,KAAKhX,EACzB,CACA,MAAOgH,GACHyrL,EAAqBzrL,EACzB,CAER,EACAurL,EAAiBtvL,UAAU+D,MAAQ,SAAU/G,GACzC,IAAIuyL,EAAkB1uL,KAAK0uL,gBAC3B,GAAIA,EAAgBxrL,MAChB,IACIwrL,EAAgBxrL,MAAM/G,EAC1B,CACA,MAAO+G,GACHyrL,EAAqBzrL,EACzB,MAGAyrL,EAAqBxyL,EAE7B,EACAsyL,EAAiBtvL,UAAUiqC,SAAW,WAClC,IAAIslJ,EAAkB1uL,KAAK0uL,gBAC3B,GAAIA,EAAgBtlJ,SAChB,IACIslJ,EAAgBtlJ,UACpB,CACA,MAAOlmC,GACHyrL,EAAqBzrL,EACzB,CAER,EACOurL,CACX,CAzCuB,GA0CnBL,EAAkB,SAAU/9K,GAE5B,SAAS+9K,EAAeQ,EAAgB1rL,EAAOkmC,GAC3C,IACIslJ,EASIG,EAVJv+K,EAAQD,EAAOjM,KAAKpE,OAASA,KAE7BwM,EAAWoiL,KAAoBA,EAC/BF,EAAkB,CACdx7K,KAA0B,OAAnB07K,QAA8C,IAAnBA,EAA4BA,OAAiBlxL,EAC/EwF,MAAiB,OAAVA,QAA4B,IAAVA,EAAmBA,OAAQxF,EACpD0rC,SAAuB,OAAbA,QAAkC,IAAbA,EAAsBA,OAAW1rC,GAKhE4S,GAASxW,EAAOqzL,0BAChB0B,EAAY9oL,OAAO1G,OAAOuvL,GAC1BC,EAAUn0L,YAAc,WAAc,OAAO4V,EAAM5V,aAAe,EAClEg0L,EAAkB,CACdx7K,KAAM07K,EAAe17K,MAAQtU,EAAKgwL,EAAe17K,KAAM27K,GACvD3rL,MAAO0rL,EAAe1rL,OAAStE,EAAKgwL,EAAe1rL,MAAO2rL,GAC1DzlJ,SAAUwlJ,EAAexlJ,UAAYxqC,EAAKgwL,EAAexlJ,SAAUylJ,KAIvEH,EAAkBE,EAI1B,OADAt+K,EAAM29K,YAAc,IAAIQ,EAAiBC,GAClCp+K,CACX,CACA,OA7BAT,EAAUu+K,EAAgB/9K,GA6BnB+9K,CACX,CA/BqB,CA+BnBJ,GAEF,SAASW,EAAqBzrL,GACtBpJ,EAAOozL,sCACPa,EAAa7qL,GAGboqL,EAAqBpqL,EAE7B,CACA,SAAS4rL,EAAoB3yL,GACzB,MAAMA,CACV,CACA,SAASkyL,EAA0BU,EAAcC,GAC7C,IAAI/B,EAAwBnzL,EAAOmzL,sBACnCA,GAAyBG,EAAgBtwL,YAAW,WAAc,OAAOmwL,EAAsB8B,EAAcC,EAAa,GAC9H,CACO,IAAIb,EAAiB,CACxBhtJ,QAAQ,EACRjuB,KAAMq6K,EACNrqL,MAAO4rL,EACP1lJ,SAAUmkJ,GCrLHt6I,EAAa,WAAe,MAA0B,oBAAXngC,QAAyBA,OAAOmgC,YAAe,cAAiB,CAA9F,GCAjB,SAASg8I,EAAShwJ,GACrB,OAAOA,CACX,CCMO,SAASiwJ,EAAc/oL,GAC1B,OAAmB,IAAfA,EAAIvF,OACGquL,EAEQ,IAAf9oL,EAAIvF,OACGuF,EAAI,GAER,SAAegyD,GAClB,OAAOhyD,EAAIkW,QAAO,SAAUgO,EAAM3mB,GAAM,OAAOA,EAAG2mB,EAAO,GAAG8tC,EAChE,CACJ,CCXA,IAAIx4B,EAAc,WACd,SAASA,EAAWlhC,GACZA,IACAuB,KAAKmvL,WAAa1wL,EAE1B,CA4EA,OA3EAkhC,EAAWxgC,UAAUiwL,KAAO,SAAUC,GAClC,IAAIp8I,EAAa,IAAItT,EAGrB,OAFAsT,EAAW5xC,OAASrB,KACpBizC,EAAWo8I,SAAWA,EACfp8I,CACX,EACAtT,EAAWxgC,UAAUV,UAAY,SAAUmwL,EAAgB1rL,EAAOkmC,GAC9D,IAAI94B,EAAQtQ,KACRgvL,EAAaM,EAAaV,GAAkBA,EAAiB,IAAIR,EAAeQ,EAAgB1rL,EAAOkmC,GAY3G,OAXAwkJ,GAAa,WACT,IAAIh6K,EAAKtD,EAAO++K,EAAWz7K,EAAGy7K,SAAUhuL,EAASuS,EAAGvS,OACpD2tL,EAAW9mJ,IAAImnJ,EAEPA,EAASjrL,KAAK4qL,EAAY3tL,GAC5BA,EAEMiP,EAAM6+K,WAAWH,GAEjB1+K,EAAMi/K,cAAcP,GACpC,IACOA,CACX,EACArvJ,EAAWxgC,UAAUowL,cAAgB,SAAUC,GAC3C,IACI,OAAOxvL,KAAKmvL,WAAWK,EAC3B,CACA,MAAOrzL,GACHqzL,EAAKtsL,MAAM/G,EACf,CACJ,EACAwjC,EAAWxgC,UAAUvB,QAAU,SAAUsV,EAAMu8K,GAC3C,IAAIn/K,EAAQtQ,KAEZ,OADAyvL,EAAcC,EAAeD,GACtB,IAAIA,GAAY,SAAUz1L,EAASC,GACtC,IAAI+0L,EAAa,IAAIZ,EAAe,CAChCl7K,KAAM,SAAUhX,GACZ,IACIgX,EAAKhX,EACT,CACA,MAAOC,GACHlC,EAAOkC,GACP6yL,EAAWt0L,aACf,CACJ,EACAwI,MAAOjJ,EACPmvC,SAAUpvC,IAEdsW,EAAM7R,UAAUuwL,EACpB,GACJ,EACArvJ,EAAWxgC,UAAUgwL,WAAa,SAAUH,GACxC,IAAIp7K,EACJ,OAA8B,QAAtBA,EAAK5T,KAAKqB,cAA2B,IAAPuS,OAAgB,EAASA,EAAGnV,UAAUuwL,EAChF,EACArvJ,EAAWxgC,UAAU,GAAqB,WACtC,OAAOa,IACX,EACA2/B,EAAWxgC,UAAUsN,KAAO,WAExB,IADA,IAAIkjL,EAAa,GACRrsI,EAAK,EAAGA,EAAKr7C,UAAUrH,OAAQ0iD,IACpCqsI,EAAWrsI,GAAMr7C,UAAUq7C,GAE/B,OAAO4rI,EAAcS,EAAdT,CAA0BlvL,KACrC,EACA2/B,EAAWxgC,UAAUywL,UAAY,SAAUH,GACvC,IAAIn/K,EAAQtQ,KAEZ,OADAyvL,EAAcC,EAAeD,GACtB,IAAIA,GAAY,SAAUz1L,EAASC,GACtC,IAAIiC,EACJoU,EAAM7R,WAAU,SAAUwgC,GAAK,OAAQ/iC,EAAQ+iC,CAAI,IAAG,SAAU9iC,GAAO,OAAOlC,EAAOkC,EAAM,IAAG,WAAc,OAAOnC,EAAQkC,EAAQ,GACvI,GACJ,EACAyjC,EAAWtgC,OAAS,SAAUZ,GAC1B,OAAO,IAAIkhC,EAAWlhC,EAC1B,EACOkhC,CACX,CAlFiB,GAoFjB,SAAS+vJ,EAAeD,GACpB,IAAI77K,EACJ,OAAgG,QAAxFA,EAAqB,OAAhB67K,QAAwC,IAAhBA,EAAyBA,EAAc31L,EAAOC,eAA4B,IAAP6Z,EAAgBA,EAAK7Z,OACjI,CACA,SAAS81L,EAAW3zL,GAChB,OAAOA,GAASsQ,EAAWtQ,EAAMgX,OAAS1G,EAAWtQ,EAAMgH,QAAUsJ,EAAWtQ,EAAMktC,SAC1F,CACA,SAASkmJ,EAAapzL,GAClB,OAAQA,GAASA,aAAiB8xL,GAAgB6B,EAAW3zL,IAAU6wL,EAAe7wL,EAC1F,CCnGO,IAAI4zL,EAA0BvE,GAAiB,SAAUl7K,GAC5D,OAAO,WACHA,EAAOrQ,MACPA,KAAK2E,KAAO,0BACZ3E,KAAKD,QAAU,qBACnB,CACJ,ICDIgwL,EAAW,SAAU1/K,GAErB,SAAS0/K,IACL,IAAIz/K,EAAQD,EAAOjM,KAAKpE,OAASA,KAOjC,OANAsQ,EAAM6wB,QAAS,EACf7wB,EAAM0/K,iBAAmB,KACzB1/K,EAAM2/K,UAAY,GAClB3/K,EAAM49K,WAAY,EAClB59K,EAAM4/K,UAAW,EACjB5/K,EAAM6/K,YAAc,KACb7/K,CACX,CAkHA,OA5HAT,EAAUkgL,EAAS1/K,GAWnB0/K,EAAQ5wL,UAAUiwL,KAAO,SAAUC,GAC/B,IAAIe,EAAU,IAAIC,EAAiBrwL,KAAMA,MAEzC,OADAowL,EAAQf,SAAWA,EACZe,CACX,EACAL,EAAQ5wL,UAAUmxL,eAAiB,WAC/B,GAAItwL,KAAKmhC,OACL,MAAM,IAAI2uJ,CAElB,EACAC,EAAQ5wL,UAAU+T,KAAO,SAAUhX,GAC/B,IAAIoU,EAAQtQ,KACZ4tL,GAAa,WACT,IAAI3sJ,EAAKrtB,EAET,GADAtD,EAAMggL,kBACDhgL,EAAM49K,UAAW,CACb59K,EAAM0/K,mBACP1/K,EAAM0/K,iBAAmBrtL,MAAM49B,KAAKjwB,EAAM2/K,YAE9C,IACI,IAAK,IAAIh3K,EAAKknB,EAAS7vB,EAAM0/K,kBAAmBp0K,EAAK3C,EAAG/F,QAAS0I,EAAGphB,KAAMohB,EAAK3C,EAAG/F,OAAQ,CACtF,IAAIwtB,EAAW9kB,EAAG1f,MAClBwkC,EAASxtB,KAAKhX,EAClB,CACJ,CACA,MAAOklC,GAASH,EAAM,CAAE/9B,MAAOk+B,EAAS,CACxC,QACI,IACQxlB,IAAOA,EAAGphB,OAASoZ,EAAKqF,EAAGooB,SAASztB,EAAGxP,KAAK6U,EACpD,CACA,QAAU,GAAIgoB,EAAK,MAAMA,EAAI/9B,KAAO,CACxC,CACJ,CACJ,GACJ,EACA6sL,EAAQ5wL,UAAU+D,MAAQ,SAAU/G,GAChC,IAAImU,EAAQtQ,KACZ4tL,GAAa,WAET,GADAt9K,EAAMggL,kBACDhgL,EAAM49K,UAAW,CAClB59K,EAAM4/K,SAAW5/K,EAAM49K,WAAY,EACnC59K,EAAM6/K,YAAch0L,EACpB,IAAI8zL,EAAY3/K,EAAM2/K,UACtB,MAAOA,EAAUrvL,OACbqvL,EAAUntL,QAAQI,MAAM/G,EAEhC,CACJ,GACJ,EACA4zL,EAAQ5wL,UAAUiqC,SAAW,WACzB,IAAI94B,EAAQtQ,KACZ4tL,GAAa,WAET,GADAt9K,EAAMggL,kBACDhgL,EAAM49K,UAAW,CAClB59K,EAAM49K,WAAY,EAClB,IAAI+B,EAAY3/K,EAAM2/K,UACtB,MAAOA,EAAUrvL,OACbqvL,EAAUntL,QAAQsmC,UAE1B,CACJ,GACJ,EACA2mJ,EAAQ5wL,UAAUzE,YAAc,WAC5BsF,KAAKkuL,UAAYluL,KAAKmhC,QAAS,EAC/BnhC,KAAKiwL,UAAYjwL,KAAKgwL,iBAAmB,IAC7C,EACAjqL,OAAOuc,eAAeytK,EAAQ5wL,UAAW,WAAY,CACjDqd,IAAK,WACD,IAAI5I,EACJ,OAAkC,QAAzBA,EAAK5T,KAAKiwL,iBAA8B,IAAPr8K,OAAgB,EAASA,EAAGhT,QAAU,CACpF,EACAqhB,YAAY,EACZM,cAAc,IAElBwtK,EAAQ5wL,UAAUowL,cAAgB,SAAUP,GAExC,OADAhvL,KAAKswL,iBACEjgL,EAAOlR,UAAUowL,cAAcnrL,KAAKpE,KAAMgvL,EACrD,EACAe,EAAQ5wL,UAAUgwL,WAAa,SAAUH,GAGrC,OAFAhvL,KAAKswL,iBACLtwL,KAAKuwL,wBAAwBvB,GACtBhvL,KAAKwwL,gBAAgBxB,EAChC,EACAe,EAAQ5wL,UAAUqxL,gBAAkB,SAAUxB,GAC1C,IAAI1+K,EAAQtQ,KACR4T,EAAK5T,KAAMkwL,EAAWt8K,EAAGs8K,SAAUhC,EAAYt6K,EAAGs6K,UAAW+B,EAAYr8K,EAAGq8K,UAChF,OAAIC,GAAYhC,EACLpB,GAEX9sL,KAAKgwL,iBAAmB,KACxBC,EAAU/uL,KAAK8tL,GACR,IAAIpD,GAAa,WACpBt7K,EAAM0/K,iBAAmB,KACzBrE,EAAUsE,EAAWjB,EACzB,IACJ,EACAe,EAAQ5wL,UAAUoxL,wBAA0B,SAAUvB,GAClD,IAAIp7K,EAAK5T,KAAMkwL,EAAWt8K,EAAGs8K,SAAUC,EAAcv8K,EAAGu8K,YAAajC,EAAYt6K,EAAGs6K,UAChFgC,EACAlB,EAAW9rL,MAAMitL,GAEZjC,GACLc,EAAW5lJ,UAEnB,EACA2mJ,EAAQ5wL,UAAUsxL,aAAe,WAC7B,IAAIx9I,EAAa,IAAItT,EAErB,OADAsT,EAAW5xC,OAASrB,KACbizC,CACX,EACA88I,EAAQ1wL,OAAS,SAAU4uL,EAAa5sL,GACpC,OAAO,IAAIgvL,EAAiBpC,EAAa5sL,EAC7C,EACO0uL,CACX,CA9Hc,CA8HZpwJ,GAEE0wJ,EAAoB,SAAUhgL,GAE9B,SAASggL,EAAiBpC,EAAa5sL,GACnC,IAAIiP,EAAQD,EAAOjM,KAAKpE,OAASA,KAGjC,OAFAsQ,EAAM29K,YAAcA,EACpB39K,EAAMjP,OAASA,EACRiP,CACX,CAiBA,OAvBAT,EAAUwgL,EAAkBhgL,GAO5BggL,EAAiBlxL,UAAU+T,KAAO,SAAUhX,GACxC,IAAI0X,EAAIqF,EACwE,QAA/EA,EAAiC,QAA3BrF,EAAK5T,KAAKiuL,mBAAgC,IAAPr6K,OAAgB,EAASA,EAAGV,YAAyB,IAAP+F,GAAyBA,EAAG7U,KAAKwP,EAAI1X,EACjI,EACAm0L,EAAiBlxL,UAAU+D,MAAQ,SAAU/G,GACzC,IAAIyX,EAAIqF,EACyE,QAAhFA,EAAiC,QAA3BrF,EAAK5T,KAAKiuL,mBAAgC,IAAPr6K,OAAgB,EAASA,EAAG1Q,aAA0B,IAAP+V,GAAyBA,EAAG7U,KAAKwP,EAAIzX,EAClI,EACAk0L,EAAiBlxL,UAAUiqC,SAAW,WAClC,IAAIx1B,EAAIqF,EAC4E,QAAnFA,EAAiC,QAA3BrF,EAAK5T,KAAKiuL,mBAAgC,IAAPr6K,OAAgB,EAASA,EAAGw1B,gBAA6B,IAAPnwB,GAAyBA,EAAG7U,KAAKwP,EACjI,EACAy8K,EAAiBlxL,UAAUgwL,WAAa,SAAUH,GAC9C,IAAIp7K,EAAIqF,EACR,OAAmG,QAA3FA,EAA4B,QAAtBrF,EAAK5T,KAAKqB,cAA2B,IAAPuS,OAAgB,EAASA,EAAGnV,UAAUuwL,UAAgC,IAAP/1K,EAAgBA,EAAK6zK,CACpI,EACOuD,CACX,CAzBuB,CAyBrBN,GC7JEW,EAAmB,SAAUrgL,GAE7B,SAASqgL,EAAgBp/F,GACrB,IAAIhhF,EAAQD,EAAOjM,KAAKpE,OAASA,KAEjC,OADAsQ,EAAMghF,OAASA,EACRhhF,CACX,CAwBA,OA7BAT,EAAU6gL,EAAiBrgL,GAM3BtK,OAAOuc,eAAeouK,EAAgBvxL,UAAW,QAAS,CACtDqd,IAAK,WACD,OAAOxc,KAAKurH,UAChB,EACAtpG,YAAY,EACZM,cAAc,IAElBmuK,EAAgBvxL,UAAUgwL,WAAa,SAAUH,GAC7C,IAAI77I,EAAe9iC,EAAOlR,UAAUgwL,WAAW/qL,KAAKpE,KAAMgvL,GAE1D,OADC77I,EAAahS,QAAU6tJ,EAAW97K,KAAKlT,KAAKsxF,QACtCn+C,CACX,EACAu9I,EAAgBvxL,UAAUosH,SAAW,WACjC,IAAI33G,EAAK5T,KAAMkwL,EAAWt8K,EAAGs8K,SAAUC,EAAcv8K,EAAGu8K,YAAa7+F,EAAS19E,EAAG09E,OACjF,GAAI4+F,EACA,MAAMC,EAGV,OADAnwL,KAAKswL,iBACEh/F,CACX,EACAo/F,EAAgBvxL,UAAU+T,KAAO,SAAUhX,GACvCmU,EAAOlR,UAAU+T,KAAK9O,KAAKpE,KAAOA,KAAKsxF,OAASp1F,EACpD,EACOw0L,CACX,CA/BsB,CA+BpBX,E,qCC/BF,IAAIlmK,EAAU,EAAQ,OAElBq3H,EAAa,EAAQ,OAUrByvC,EAAc,SAAU91G,EAAM/8E,EAAK8yL,GAMtC,IAJA,IAEIC,EAFAxmK,EAAOwwD,EAIkB,OAArBg2G,EAAOxmK,EAAKnX,MAAemX,EAAOwmK,EACzC,GAAIA,EAAK/yL,MAAQA,EAOhB,OANAusB,EAAKnX,KAAO29K,EAAK39K,KACZ09K,IAEJC,EAAK39K,KAAqD2nE,EAAS,KACnEA,EAAK3nE,KAAO29K,GAENA,CAGV,EAGIC,EAAU,SAAUC,EAASjzL,GAChC,GAAKizL,EAAL,CAGA,IAAI1qK,EAAOsqK,EAAYI,EAASjzL,GAChC,OAAOuoB,GAAQA,EAAKnqB,KAFpB,CAGD,EAEI80L,EAAU,SAAUD,EAASjzL,EAAK5B,GACrC,IAAImqB,EAAOsqK,EAAYI,EAASjzL,GAC5BuoB,EACHA,EAAKnqB,MAAQA,EAGb60L,EAAQ79K,KAA+E,CACtFpV,IAAKA,EACLoV,KAAM69K,EAAQ79K,KACdhX,MAAOA,EAGV,EAEI+0L,EAAU,SAAUF,EAASjzL,GAChC,QAAKizL,KAGIJ,EAAYI,EAASjzL,EAC/B,EAGIozL,EAAa,SAAUH,EAASjzL,GACnC,GAAIizL,EACH,OAAOJ,EAAYI,EAASjzL,GAAK,EAEnC,EAGA5E,EAAOC,QAAU,WAKgD,IAAIg4L,EAGhEv3G,EAAU,CACbw3G,OAAQ,SAAUtzL,GACjB,IAAK87E,EAAQv8D,IAAIvf,GAChB,MAAM,IAAIojJ,EAAW,iCAAmCr3H,EAAQ/rB,GAElE,EACA,OAAU,SAAUA,GACnB,IAAI08B,EAAO22J,GAAMA,EAAGj+K,KAChBm+K,EAAcH,EAAWC,EAAIrzL,GAIjC,OAHIuzL,GAAe72J,GAAQA,IAAS62J,IACnCF,OAAK,KAEGE,CACV,EACA70K,IAAK,SAAU1e,GACd,OAAOgzL,EAAQK,EAAIrzL,EACpB,EACAuf,IAAK,SAAUvf,GACd,OAAOmzL,EAAQE,EAAIrzL,EACpB,EACA2f,IAAK,SAAU3f,EAAK5B,GACdi1L,IAEJA,EAAK,CACJj+K,UAAM,IAIR89K,EAA8C,EAAMlzL,EAAK5B,EAC1D,GAGD,OAAO09E,CACR,C,qCC9GA,IAAIwnE,EAAe,EAAQ,OACvBkwC,EAAY,EAAQ,OACpBznK,EAAU,EAAQ,OAElBq3H,EAAa,EAAQ,OACrBqwC,EAAOnwC,EAAa,SAAS,GAG7BowC,EAAUF,EAAU,qBAAqB,GAEzCG,EAAUH,EAAU,qBAAqB,GAEzCI,EAAUJ,EAAU,qBAAqB,GAEzCK,EAAaL,EAAU,wBAAwB,GAE/CM,EAAWN,EAAU,sBAAsB,GAG/Cp4L,EAAOC,UAAYo4L,GAAmD,WAKhC,IAAIM,EAGrCj4G,EAAU,CACbw3G,OAAQ,SAAUtzL,GACjB,IAAK87E,EAAQv8D,IAAIvf,GAChB,MAAM,IAAIojJ,EAAW,iCAAmCr3H,EAAQ/rB,GAElE,EACA,OAAU,SAAUA,GACnB,GAAI+zL,EAAI,CACP,IAAIhmL,EAAS8lL,EAAWE,EAAI/zL,GAI5B,OAHqB,IAAjB8zL,EAASC,KACZA,OAAK,GAEChmL,CACR,CACA,OAAO,CACR,EACA2Q,IAAK,SAAU1e,GACd,GAAI+zL,EACH,OAAOL,EAAQK,EAAI/zL,EAErB,EACAuf,IAAK,SAAUvf,GACd,QAAI+zL,GACIH,EAAQG,EAAI/zL,EAGrB,EACA2f,IAAK,SAAU3f,EAAK5B,GACd21L,IAEJA,EAAK,IAAIN,GAEVE,EAAQI,EAAI/zL,EAAK5B,EAClB,GAID,OAAO09E,CACR,C,qCCjEA,IAAIwnE,EAAe,EAAQ,OACvBkwC,EAAY,EAAQ,OACpBznK,EAAU,EAAQ,OAClBioK,EAAoB,EAAQ,OAE5B5wC,EAAa,EAAQ,OACrB6wC,EAAW3wC,EAAa,aAAa,GAGrC4wC,EAAcV,EAAU,yBAAyB,GAEjDW,EAAcX,EAAU,yBAAyB,GAEjDY,EAAcZ,EAAU,yBAAyB,GAEjDa,EAAiBb,EAAU,4BAA4B,GAG3Dp4L,EAAOC,QAAU44L,EAC6B,WAKM,IAAIK,EACfP,EAGnCj4G,EAAU,CACbw3G,OAAQ,SAAUtzL,GACjB,IAAK87E,EAAQv8D,IAAIvf,GAChB,MAAM,IAAIojJ,EAAW,iCAAmCr3H,EAAQ/rB,GAElE,EACA,OAAU,SAAUA,GACnB,GAAIi0L,GAAYj0L,IAAuB,kBAARA,GAAmC,oBAARA,IACzD,GAAIs0L,EACH,OAAOD,EAAeC,EAAKt0L,QAEtB,GAAIg0L,GACND,EACH,OAAOA,EAAG,UAAU/zL,GAGtB,OAAO,CACR,EACA0e,IAAK,SAAU1e,GACd,OAAIi0L,GAAYj0L,IAAuB,kBAARA,GAAmC,oBAARA,IACrDs0L,EACIJ,EAAYI,EAAKt0L,GAGnB+zL,GAAMA,EAAGr1K,IAAI1e,EACrB,EACAuf,IAAK,SAAUvf,GACd,OAAIi0L,GAAYj0L,IAAuB,kBAARA,GAAmC,oBAARA,IACrDs0L,EACIF,EAAYE,EAAKt0L,KAGjB+zL,GAAMA,EAAGx0K,IAAIvf,EACvB,EACA2f,IAAK,SAAU3f,EAAK5B,GACf61L,GAAYj0L,IAAuB,kBAARA,GAAmC,oBAARA,IACpDs0L,IACJA,EAAM,IAAIL,GAEXE,EAAYG,EAAKt0L,EAAK5B,IACZ41L,IACLD,IACJA,EAAKC,KAGgC,EAAKr0K,IAAI3f,EAAK5B,GAEtD,GAID,OAAO09E,CACR,EACEk4G,C,mCCjFH,IAAI5wC,EAAa,EAAQ,OACrBr3H,EAAU,EAAQ,OAClBwoK,EAAqB,EAAQ,OAC7BP,EAAoB,EAAQ,OAC5BQ,EAAwB,EAAQ,OAEhCC,EAAcD,GAAyBR,GAAqBO,EAGhEn5L,EAAOC,QAAU,WAGmB,IAAIq5L,EAGnC54G,EAAU,CACbw3G,OAAQ,SAAUtzL,GACjB,IAAK87E,EAAQv8D,IAAIvf,GAChB,MAAM,IAAIojJ,EAAW,iCAAmCr3H,EAAQ/rB,GAElE,EACA,OAAU,SAAUA,GACnB,QAAS00L,GAAgBA,EAAa,UAAU10L,EACjD,EACA0e,IAAK,SAAU1e,GACd,OAAO00L,GAAgBA,EAAah2K,IAAI1e,EACzC,EACAuf,IAAK,SAAUvf,GACd,QAAS00L,GAAgBA,EAAan1K,IAAIvf,EAC3C,EACA2f,IAAK,SAAU3f,EAAK5B,GACds2L,IACJA,EAAeD,KAGhBC,EAAa/0K,IAAI3f,EAAK5B,EACvB,GAGD,OAAO09E,CACR,C;;;;;;;;;;;;;;;AC1BA,IAAI9pE,EAAgB,SAASC,EAAG/C,GAI5B,OAHA8C,EAAgB/J,OAAOiK,gBAClB,CAAEC,UAAW,cAAgBtN,OAAS,SAAUoN,EAAG/C,GAAK+C,EAAEE,UAAYjD,CAAG,GAC1E,SAAU+C,EAAG/C,GAAK,IAAK,IAAIkD,KAAKlD,EAAOA,EAAEH,eAAeqD,KAAIH,EAAEG,GAAKlD,EAAEkD,GAAI,EACtEJ,EAAcC,EAAG/C,EAC5B,EAEO,SAAS6C,EAAUE,EAAG/C,GAEzB,SAASmD,IAAOnQ,KAAKoM,YAAc2D,CAAG,CADtCD,EAAcC,EAAG/C,GAEjB+C,EAAE5Q,UAAkB,OAAN6N,EAAajH,OAAO1G,OAAO2N,IAAMmD,EAAGhR,UAAY6N,EAAE7N,UAAW,IAAIgR,EACnF,CAEO,IAAIyE,EAAW,WAQlB,OAPAA,EAAW7O,OAAOkJ,QAAU,SAAkB4F,GAC1C,IAAK,IAAIC,EAAGpU,EAAI,EAAGkS,EAAI3K,UAAUrH,OAAQF,EAAIkS,EAAGlS,IAE5C,IAAK,IAAIwP,KADT4E,EAAI7M,UAAUvH,GACAoU,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,KAAI2E,EAAE3E,GAAK4E,EAAE5E,IAE9E,OAAO2E,CACX,EACOD,EAAShS,MAAM5C,KAAMiI,UAChC,EAEO,SAAS8M,EAAOD,EAAG7N,GACtB,IAAI4N,EAAI,CAAC,EACT,IAAK,IAAI3E,KAAK4E,EAAO/O,OAAO5G,UAAU0N,eAAezI,KAAK0Q,EAAG5E,IAAMjJ,EAAEpK,QAAQqT,GAAK,IAC9E2E,EAAE3E,GAAK4E,EAAE5E,IACb,GAAS,MAAL4E,GAAqD,oBAAjC/O,OAAOiP,sBACtB,KAAItU,EAAI,EAAb,IAAgBwP,EAAInK,OAAOiP,sBAAsBF,GAAIpU,EAAIwP,EAAEtP,OAAQF,IAC3DuG,EAAEpK,QAAQqT,EAAExP,IAAM,GAAKqF,OAAO5G,UAAU8V,qBAAqB7Q,KAAK0Q,EAAG5E,EAAExP,MACvEmU,EAAE3E,EAAExP,IAAMoU,EAAE5E,EAAExP,IAF4B,CAItD,OAAOmU,CACX,CAEO,SAAS49K,EAAWC,EAAYrtL,EAAQvH,EAAKkO,GAChD,IAA2H+D,EAAvHzO,EAAI2G,UAAUrH,OAAQoS,EAAI1R,EAAI,EAAI+D,EAAkB,OAAT2G,EAAgBA,EAAOjG,OAAOic,yBAAyB3c,EAAQvH,GAAOkO,EACrH,GAAuB,kBAAZ4X,SAAoD,oBAArBA,QAAQ+uK,SAAyB3/K,EAAI4Q,QAAQ+uK,SAASD,EAAYrtL,EAAQvH,EAAKkO,QACpH,IAAK,IAAItL,EAAIgyL,EAAW9xL,OAAS,EAAGF,GAAK,EAAGA,KAASqP,EAAI2iL,EAAWhyL,MAAIsS,GAAK1R,EAAI,EAAIyO,EAAEiD,GAAK1R,EAAI,EAAIyO,EAAE1K,EAAQvH,EAAKkV,GAAKjD,EAAE1K,EAAQvH,KAASkV,GAChJ,OAAO1R,EAAI,GAAK0R,GAAKjN,OAAOuc,eAAejd,EAAQvH,EAAKkV,GAAIA,CAChE,CAEO,SAAS4/K,EAAQC,EAAYC,GAChC,OAAO,SAAUztL,EAAQvH,GAAOg1L,EAAUztL,EAAQvH,EAAK+0L,EAAa,CACxE,CAEO,SAASE,EAAWC,EAAaC,GACpC,GAAuB,kBAAZrvK,SAAoD,oBAArBA,QAAQ0qD,SAAyB,OAAO1qD,QAAQ0qD,SAAS0kH,EAAaC,EACpH,CAEO,SAASx5K,EAAU1R,EAAS2R,EAAYC,EAAGC,GAC9C,SAASC,EAAM3d,GAAS,OAAOA,aAAiByd,EAAIzd,EAAQ,IAAIyd,GAAE,SAAU3f,GAAWA,EAAQkC,EAAQ,GAAI,CAC3G,OAAO,IAAKyd,IAAMA,EAAI5f,WAAU,SAAUC,EAASC,GAC/C,SAASsI,EAAUrG,GAAS,IAAM4d,EAAKF,EAAU1G,KAAKhX,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC1F,SAASzE,EAAStG,GAAS,IAAM4d,EAAKF,EAAU,SAAS1d,GAAS,CAAE,MAAO+K,GAAKhN,EAAOgN,EAAI,CAAE,CAC7F,SAAS6S,EAAKjO,GAAUA,EAAOrR,KAAOR,EAAQ6R,EAAO3P,OAAS2d,EAAMhO,EAAO3P,OAAOsE,KAAK+B,EAAWC,EAAW,CAC7GsX,GAAMF,EAAYA,EAAUhX,MAAMmF,EAAS2R,GAAc,KAAKxG,OAClE,GACJ,CAEO,SAAS6G,EAAYhS,EAASoQ,GACjC,IAAsG6B,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEhH,KAAMsH,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1H,SAA0BoH,EAAEpH,OAAOC,UAAY,WAAa,OAAO/S,IAAM,GAAIka,EACvJ,SAASM,EAAK5H,GAAK,OAAO,SAAUvK,GAAK,OAAOyR,EAAK,CAAClH,EAAGvK,GAAK,CAAG,CACjE,SAASyR,EAAKW,GACV,GAAIT,EAAG,MAAM,IAAI5Z,UAAU,mCAC3B,MAAO+Z,MACH,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR4F,EAAG,GAASR,EAAE,UAAYQ,EAAG,GAAKR,EAAE,YAAcpF,EAAIoF,EAAE,YAAcpF,EAAEzQ,KAAK6V,GAAI,GAAKA,EAAE/G,SAAW2B,EAAIA,EAAEzQ,KAAK6V,EAAGQ,EAAG,KAAKjgB,KAAM,OAAOqa,EAE3J,OADIoF,EAAI,EAAGpF,IAAG4F,EAAK,CAAS,EAARA,EAAG,GAAQ5F,EAAE3Y,QACzBue,EAAG,IACP,KAAK,EAAG,KAAK,EAAG5F,EAAI4F,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAEC,QAAgB,CAAEle,MAAOue,EAAG,GAAIjgB,MAAM,GAChD,KAAK,EAAG2f,EAAEC,QAASH,EAAIQ,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEI,IAAIG,MAAOP,EAAEG,KAAKI,MAAO,SACxC,QACI,GAAM7F,EAAIsF,EAAEG,OAAMzF,EAAIA,EAAEjU,OAAS,GAAKiU,EAAEA,EAAEjU,OAAS,MAAkB,IAAV6Z,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVM,EAAG,MAAc5F,GAAM4F,EAAG,GAAK5F,EAAE,IAAM4F,EAAG,GAAK5F,EAAE,IAAM,CAAEsF,EAAEC,MAAQK,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYN,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI4F,EAAI,KAAO,CACpE,GAAI5F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIrZ,KAAKuZ,GAAK,KAAO,CAC9D5F,EAAE,IAAIsF,EAAEI,IAAIG,MAChBP,EAAEG,KAAKI,MAAO,SAEtBD,EAAKtC,EAAK/T,KAAK2D,EAASoS,EAC5B,CAAE,MAAOlT,GAAKwT,EAAK,CAAC,EAAGxT,GAAIgT,EAAI,CAAG,CAAE,QAAUD,EAAInF,EAAI,CAAG,CACzD,GAAY,EAAR4F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEve,MAAOue,EAAG,GAAKA,EAAG,QAAK,EAAQjgB,MAAM,EAC9E,CACJ,CAEO,SAAS04L,EAAgBvgL,EAAGE,EAAGwE,EAAG87K,QAC1Bz1L,IAAPy1L,IAAkBA,EAAK97K,GAC3B1E,EAAEwgL,GAAMtgL,EAAEwE,EACd,CAEO,SAASmqE,EAAa3uE,EAAG1Z,GAC5B,IAAK,IAAI+W,KAAK2C,EAAa,YAAN3C,GAAoB/W,EAAQ0T,eAAeqD,KAAI/W,EAAQ+W,GAAK2C,EAAE3C,GACvF,CAEO,SAASiwB,EAASxtB,GACrB,IAAImC,EAAsB,oBAAXhC,QAAyBA,OAAOC,SAAUF,EAAIiC,GAAKnC,EAAEmC,GAAIpU,EAAI,EAC5E,GAAImS,EAAG,OAAOA,EAAEzO,KAAKuO,GACrB,GAAIA,GAAyB,kBAAbA,EAAE/R,OAAqB,MAAO,CAC1CsS,KAAM,WAEF,OADIP,GAAKjS,GAAKiS,EAAE/R,SAAQ+R,OAAI,GACrB,CAAEzW,MAAOyW,GAAKA,EAAEjS,KAAMlG,MAAOmY,EACxC,GAEJ,MAAM,IAAIvS,UAAU0U,EAAI,0BAA4B,kCACxD,CAEO,SAASpC,EAAOC,EAAGC,GACtB,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAY/L,EAA3BvG,EAAImS,EAAEzO,KAAKuO,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAItS,EAAEwS,QAAQ1Y,KAAMyY,EAAG/R,KAAK8R,EAAE9W,MACxE,CACA,MAAOgH,GAAS+D,EAAI,CAAE/D,MAAOA,EAAS,CACtC,QACI,IACQ8P,IAAMA,EAAExY,OAASqY,EAAInS,EAAE,YAAYmS,EAAEzO,KAAK1D,EAClD,CACA,QAAU,GAAIuG,EAAG,MAAMA,EAAE/D,KAAO,CACpC,CACA,OAAO+P,CACX,CAEO,SAASm1B,IACZ,IAAK,IAAIn1B,EAAK,GAAIvS,EAAI,EAAGA,EAAIuH,UAAUrH,OAAQF,IAC3CuS,EAAKA,EAAGpQ,OAAO6P,EAAOzK,UAAUvH,KACpC,OAAOuS,CACX,CAEO,SAASmgL,IACZ,IAAK,IAAIt+K,EAAI,EAAGpU,EAAI,EAAG2yL,EAAKprL,UAAUrH,OAAQF,EAAI2yL,EAAI3yL,IAAKoU,GAAK7M,UAAUvH,GAAGE,OACxE,IAAIoS,EAAIrQ,MAAMmS,GAAIuC,EAAI,EAA3B,IAA8B3W,EAAI,EAAGA,EAAI2yL,EAAI3yL,IACzC,IAAK,IAAIqM,EAAI9E,UAAUvH,GAAImlE,EAAI,EAAGytH,EAAKvmL,EAAEnM,OAAQilE,EAAIytH,EAAIztH,IAAKxuD,IAC1DrE,EAAEqE,GAAKtK,EAAE84D,GACjB,OAAO7yD,CACX,CAEO,SAASugL,EAAQlrL,GACpB,OAAOrI,gBAAgBuzL,GAAWvzL,KAAKqI,EAAIA,EAAGrI,MAAQ,IAAIuzL,EAAQlrL,EACtE,CAEO,SAASmrL,EAAiBzrL,EAAS2R,EAAYE,GAClD,IAAK9G,OAAOuM,cAAe,MAAM,IAAIjf,UAAU,wCAC/C,IAAoDM,EAAhDwZ,EAAIN,EAAUhX,MAAMmF,EAAS2R,GAAc,IAAQu9G,EAAI,GAC3D,OAAOv2H,EAAI,CAAC,EAAG8Z,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW9Z,EAAEoS,OAAOuM,eAAiB,WAAc,OAAOrf,IAAM,EAAGU,EACpH,SAAS8Z,EAAK5H,GAASsH,EAAEtH,KAAIlS,EAAEkS,GAAK,SAAUvK,GAAK,OAAO,IAAItO,SAAQ,SAAUgT,EAAGC,GAAKiqH,EAAE/1H,KAAK,CAAC0R,EAAGvK,EAAG0E,EAAGC,IAAM,GAAKymL,EAAO7gL,EAAGvK,EAAI,GAAI,EAAG,CACzI,SAASorL,EAAO7gL,EAAGvK,GAAK,IAAMyR,EAAKI,EAAEtH,GAAGvK,GAAK,CAAE,MAAOpB,GAAK5N,EAAO49H,EAAE,GAAG,GAAIhwH,EAAI,CAAE,CACjF,SAAS6S,EAAK9G,GAAKA,EAAE9W,iBAAiBq3L,EAAUx5L,QAAQC,QAAQgZ,EAAE9W,MAAMmM,GAAG7H,KAAKkzL,EAASz5L,GAAUZ,EAAO49H,EAAE,GAAG,GAAIjkH,EAAI,CACvH,SAAS0gL,EAAQx3L,GAASu3L,EAAO,OAAQv3L,EAAQ,CACjD,SAASjC,EAAOiC,GAASu3L,EAAO,QAASv3L,EAAQ,CACjD,SAAS7C,EAAO2gB,EAAG3R,GAAS2R,EAAE3R,GAAI4uH,EAAEn0H,QAASm0H,EAAEr2H,QAAQ6yL,EAAOx8D,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAK,CACrF,CAEO,SAAS08D,EAAiBhhL,GAC7B,IAAIjS,EAAGwP,EACP,OAAOxP,EAAI,CAAC,EAAG8Z,EAAK,QAASA,EAAK,SAAS,SAAUvT,GAAK,MAAMA,CAAG,IAAIuT,EAAK,UAAW9Z,EAAEoS,OAAOC,UAAY,WAAc,OAAO/S,IAAM,EAAGU,EAC1I,SAAS8Z,EAAK5H,EAAGoH,GAAKtZ,EAAEkS,GAAKD,EAAEC,GAAK,SAAUvK,GAAK,OAAQ6H,GAAKA,GAAK,CAAEhU,MAAOq3L,EAAQ5gL,EAAEC,GAAGvK,IAAK7N,KAAY,WAANoY,GAAmBoH,EAAIA,EAAE3R,GAAKA,CAAG,EAAI2R,CAAG,CAClJ,CAEO,SAAS45K,EAAcjhL,GAC1B,IAAKG,OAAOuM,cAAe,MAAM,IAAIjf,UAAU,wCAC/C,IAAiCM,EAA7BmS,EAAIF,EAAEG,OAAOuM,eACjB,OAAOxM,EAAIA,EAAEzO,KAAKuO,IAAMA,EAAwB,oBAAbwtB,EAA0BA,EAASxtB,GAAKA,EAAEG,OAAOC,YAAarS,EAAI,CAAC,EAAG8Z,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW9Z,EAAEoS,OAAOuM,eAAiB,WAAc,OAAOrf,IAAM,EAAGU,GAC9M,SAAS8Z,EAAK5H,GAAKlS,EAAEkS,GAAKD,EAAEC,IAAM,SAAUvK,GAAK,OAAO,IAAItO,SAAQ,SAAUC,EAASC,GAAUoO,EAAIsK,EAAEC,GAAGvK,GAAIhP,EAAOW,EAASC,EAAQoO,EAAE7N,KAAM6N,EAAEnM,MAAQ,GAAI,CAAG,CAC/J,SAAS7C,EAAOW,EAASC,EAAQ8V,EAAG1H,GAAKtO,QAAQC,QAAQqO,GAAG7H,MAAK,SAAS6H,GAAKrO,EAAQ,CAAEkC,MAAOmM,EAAG7N,KAAMuV,GAAM,GAAG9V,EAAS,CAC/H,CAEO,SAAS45L,EAAqBC,EAAQrjG,GAEzC,OADI1qF,OAAOuc,eAAkBvc,OAAOuc,eAAewxK,EAAQ,MAAO,CAAE53L,MAAOu0F,IAAiBqjG,EAAOrjG,IAAMA,EAClGqjG,CACX,CAEO,SAASC,EAAa15D,GACzB,GAAIA,GAAOA,EAAIwW,WAAY,OAAOxW,EAClC,IAAIxuH,EAAS,CAAC,EACd,GAAW,MAAPwuH,EAAa,IAAK,IAAIhjH,KAAKgjH,EAASt0H,OAAO8G,eAAezI,KAAKi2H,EAAKhjH,KAAIxL,EAAOwL,GAAKgjH,EAAIhjH,IAE5F,OADAxL,EAAOo1C,QAAUo5E,EACVxuH,CACX,CAEO,SAASmoL,EAAgB35D,GAC5B,OAAQA,GAAOA,EAAIwW,WAAcxW,EAAM,CAAEp5E,QAASo5E,EACtD,CAEO,SAAS45D,EAAuB7nG,EAAU8nG,GAC7C,IAAKA,EAAW72K,IAAI+uE,GAChB,MAAM,IAAIhsF,UAAU,kDAExB,OAAO8zL,EAAW13K,IAAI4vE,EAC1B,CAEO,SAAS+nG,EAAuB/nG,EAAU8nG,EAAYh4L,GACzD,IAAKg4L,EAAW72K,IAAI+uE,GAChB,MAAM,IAAIhsF,UAAU,kDAGxB,OADA8zL,EAAWz2K,IAAI2uE,EAAUlwF,GAClBA,CACX,C,qCCzNe,WAAS+K,EAAE2L,GAAG,OAAOA,EAAEA,GAAG,CAAC,EAAE,IAAI7Y,SAAQ,SAAS8a,EAAE7B,GAAG,IAAI8B,EAAE,IAAI/Z,eAAe4X,EAAE,GAAGmyE,EAAE,GAAGpkF,EAAE,CAAC,EAAEqM,EAAE,WAAW,MAAM,CAAC4+H,GAAG,IAAI72H,EAAE9Y,OAAO,IAAI,GAAGC,WAAW6Y,EAAE7Y,WAAWD,OAAO8Y,EAAE9Y,OAAOP,IAAIqZ,EAAElY,YAAYqU,KAAK,WAAW,OAAOlX,QAAQC,QAAQ8a,EAAE/Y,aAAa,EAAEshD,KAAK,WAAW,OAAOtjD,QAAQC,QAAQ8a,EAAE/Y,cAAcyE,KAAKsG,KAAKC,MAAM,EAAE+9D,KAAK,WAAW,OAAO/qE,QAAQC,QAAQ,IAAIosE,KAAK,CAACtxD,EAAEhZ,WAAW,EAAEo/B,MAAMnuB,EAAEzS,QAAQ,CAAC0L,KAAK,WAAW,OAAO2M,CAAC,EAAE+1B,QAAQ,WAAW,OAAOo8C,CAAC,EAAEtoE,IAAI,SAASvV,GAAG,OAAOvG,EAAEuG,EAAElJ,cAAc,EAAEsf,IAAI,SAASpW,GAAG,OAAOA,EAAElJ,gBAAgB2C,CAAC,GAAG,EAAE,IAAI,IAAIC,KAAKmU,EAAE1Y,KAAKwW,EAAEvW,QAAQ,MAAM4K,GAAE,GAAI6N,EAAEs/K,OAAO,WAAWt/K,EAAElZ,wBAAwBwH,QAAQ,gCAA+B,SAAS6D,EAAE2L,EAAEiC,GAAGlC,EAAEzR,KAAK0R,EAAEA,EAAE7U,eAAe+mF,EAAE5jF,KAAK,CAAC0R,EAAEiC,IAAInU,EAAEkS,GAAGlS,EAAEkS,GAAGlS,EAAEkS,GAAG,IAAIiC,EAAEA,CAAC,IAAGA,EAAE9H,IAAI,EAAE+H,EAAE9X,QAAQgW,EAAE8B,EAAEvX,gBAAgB,WAAWqV,EAAE6J,YAAY7J,EAAEtY,QAAQwa,EAAE9W,iBAAiB2C,EAAEiS,EAAEtY,QAAQqG,IAAImU,EAAEnW,KAAKiU,EAAEuF,MAAM,KAAK,GAAE,C,oECAx4B,wD,WACE,WAG+Chf,GAC9CA,EAAQ0iH,SACoC3iH,GAC5CA,EAAO2iH,SAHT,IAIIw4E,EAA8B,iBAAV,EAAAn6K,GAAsB,EAAAA,EAE7Cm6K,EAAWvmI,SAAWumI,GACtBA,EAAWxpL,SAAWwpL,GACtBA,EAAWtwK,KAUZ,IAAIuwK,EAGJC,EAAS,WAGT3qF,EAAO,GACP4qF,EAAO,EACPC,EAAO,GACPC,EAAO,GACPC,EAAO,IACPC,EAAc,GACdC,EAAW,IACXC,EAAY,IAGZC,EAAgB,QAChBC,EAAgB,eAChBC,EAAkB,4BAGlB1pJ,EAAS,CACR,SAAY,kDACZ,YAAa,iDACb,gBAAiB,iBAIlB2pJ,EAAgBtrF,EAAO4qF,EACvBhmL,EAAQD,KAAKC,MACb2mL,EAAqBnpK,OAAO0D,aAa5B,SAASxsB,EAAM3E,GACd,MAAM,IAAI86I,WAAW9tG,EAAOhtC,GAC7B,CAUA,SAASsX,EAAIoQ,EAAOviB,GACnB,IAAI9C,EAASqlB,EAAMrlB,OACfiL,EAAS,GACb,MAAOjL,IACNiL,EAAOjL,GAAU8C,EAAGuiB,EAAMrlB,IAE3B,OAAOiL,CACR,CAYA,SAASupL,EAAUx2I,EAAQl7C,GAC1B,IAAI0E,EAAQw2C,EAAOzzC,MAAM,KACrBU,EAAS,GACTzD,EAAMxH,OAAS,IAGlBiL,EAASzD,EAAM,GAAK,IACpBw2C,EAASx2C,EAAM,IAGhBw2C,EAASA,EAAOx7C,QAAQ6xL,EAAiB,KACzC,IAAII,EAASz2I,EAAOzzC,MAAM,KACtB8wD,EAAUpmD,EAAIw/K,EAAQ3xL,GAAI8E,KAAK,KACnC,OAAOqD,EAASowD,CACjB,CAeA,SAASq5H,EAAW12I,GACnB,IAGI1iD,EACAq5L,EAJArvK,EAAS,GACTsvK,EAAU,EACV50L,EAASg+C,EAAOh+C,OAGpB,MAAO40L,EAAU50L,EAChB1E,EAAQ0iD,EAAOzxC,WAAWqoL,KACtBt5L,GAAS,OAAUA,GAAS,OAAUs5L,EAAU50L,GAEnD20L,EAAQ32I,EAAOzxC,WAAWqoL,KACF,QAAX,MAARD,GACJrvK,EAAOhlB,OAAe,KAARhF,IAAkB,KAAe,KAARq5L,GAAiB,QAIxDrvK,EAAOhlB,KAAKhF,GACZs5L,MAGDtvK,EAAOhlB,KAAKhF,GAGd,OAAOgqB,CACR,CAUA,SAASuvK,EAAWxvK,GACnB,OAAOpQ,EAAIoQ,GAAO,SAAS/pB,GAC1B,IAAIgqB,EAAS,GAOb,OANIhqB,EAAQ,QACXA,GAAS,MACTgqB,GAAUivK,EAAmBj5L,IAAU,GAAK,KAAQ,OACpDA,EAAQ,MAAiB,KAARA,GAElBgqB,GAAUivK,EAAmBj5L,GACtBgqB,CACR,IAAG1d,KAAK,GACT,CAWA,SAASktL,EAAax5C,GACrB,OAAIA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEbtyC,CACR,CAaA,SAAS+rF,EAAan+B,EAAO35C,GAG5B,OAAO25C,EAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAAR35C,IAAc,EACzD,CAOA,SAAS+3E,EAAMC,EAAOC,EAAWC,GAChC,IAAI1+K,EAAI,EAGR,IAFAw+K,EAAQE,EAAYvnL,EAAMqnL,EAAQlB,GAAQkB,GAAS,EACnDA,GAASrnL,EAAMqnL,EAAQC,GACOD,EAAQX,EAAgBT,GAAQ,EAAGp9K,GAAKuyF,EACrEisF,EAAQrnL,EAAMqnL,EAAQX,GAEvB,OAAO1mL,EAAM6I,GAAK69K,EAAgB,GAAKW,GAASA,EAAQnB,GACzD,CASA,SAASxuG,EAAO/tB,GAEf,IAEIqN,EAIAwwH,EACAnwH,EACA1kE,EACA80L,EACAjtG,EACA3xE,EACAmgJ,EACA3iJ,EAEAqhL,EAfAhwK,EAAS,GACTiwK,EAAch+H,EAAMv3D,OAEpBF,EAAI,EACJkS,EAAIiiL,EACJuB,EAAOxB,EAqBX,IALAoB,EAAQ79H,EAAM6f,YAAY88G,GACtBkB,EAAQ,IACXA,EAAQ,GAGJnwH,EAAI,EAAGA,EAAImwH,IAASnwH,EAEpB1N,EAAMhrD,WAAW04D,IAAM,KAC1B3iE,EAAM,aAEPgjB,EAAOhlB,KAAKi3D,EAAMhrD,WAAW04D,IAM9B,IAAK1kE,EAAQ60L,EAAQ,EAAIA,EAAQ,EAAI,EAAG70L,EAAQg1L,GAAwC,CAOvF,IAAKF,EAAOv1L,EAAGsoF,EAAI,EAAG3xE,EAAIuyF,GAA0BvyF,GAAKuyF,EAAM,CAe9D,GAbIzoG,GAASg1L,GACZjzL,EAAM,iBAGPs0J,EAAQk+B,EAAav9H,EAAMhrD,WAAWhM,OAElCq2J,GAAS5tD,GAAQ4tD,EAAQhpJ,GAAO+lL,EAAS7zL,GAAKsoF,KACjD9lF,EAAM,YAGPxC,GAAK82J,EAAQxuE,EACbn0E,EAAIwC,GAAK++K,EAAO5B,EAAQn9K,GAAK++K,EAAO3B,EAAOA,EAAOp9K,EAAI++K,EAElD5+B,EAAQ3iJ,EACX,MAGDqhL,EAAatsF,EAAO/0F,EAChBm0E,EAAIx6E,EAAM+lL,EAAS2B,IACtBhzL,EAAM,YAGP8lF,GAAKktG,CAEN,CAEA1wH,EAAMt/C,EAAOtlB,OAAS,EACtBw1L,EAAOR,EAAMl1L,EAAIu1L,EAAMzwH,EAAa,GAARywH,GAIxBznL,EAAM9N,EAAI8kE,GAAO+uH,EAAS3hL,GAC7B1P,EAAM,YAGP0P,GAAKpE,EAAM9N,EAAI8kE,GACf9kE,GAAK8kE,EAGLt/C,EAAO9kB,OAAOV,IAAK,EAAGkS,EAEvB,CAEA,OAAO6iL,EAAWvvK,EACnB,CASA,SAAShe,EAAOiwD,GACf,IAAIvlD,EACAijL,EACAQ,EACAC,EACAF,EACAvwH,EACAhzD,EACAokH,EACA5/G,EACAxC,EACA0hL,EAGAJ,EAEAK,EACAN,EACAO,EANAvwK,EAAS,GAoBb,IAXAiyC,EAAQm9H,EAAWn9H,GAGnBg+H,EAAch+H,EAAMv3D,OAGpBgS,EAAIiiL,EACJgB,EAAQ,EACRO,EAAOxB,EAGF/uH,EAAI,EAAGA,EAAIswH,IAAetwH,EAC9B0wH,EAAep+H,EAAM0N,GACjB0wH,EAAe,KAClBrwK,EAAOhlB,KAAKi0L,EAAmBoB,IAIjCF,EAAiBC,EAAcpwK,EAAOtlB,OAMlC01L,GACHpwK,EAAOhlB,KAAK4zL,GAIb,MAAOuB,EAAiBF,EAAa,CAIpC,IAAKtjL,EAAI0hL,EAAQ1uH,EAAI,EAAGA,EAAIswH,IAAetwH,EAC1C0wH,EAAep+H,EAAM0N,GACjB0wH,GAAgB3jL,GAAK2jL,EAAe1jL,IACvCA,EAAI0jL,GAcN,IARAC,EAAwBH,EAAiB,EACrCxjL,EAAID,EAAIpE,GAAO+lL,EAASsB,GAASW,IACpCtzL,EAAM,YAGP2yL,IAAUhjL,EAAID,GAAK4jL,EACnB5jL,EAAIC,EAECgzD,EAAI,EAAGA,EAAIswH,IAAetwH,EAO9B,GANA0wH,EAAep+H,EAAM0N,GAEjB0wH,EAAe3jL,KAAOijL,EAAQtB,GACjCrxL,EAAM,YAGHqzL,GAAgB3jL,EAAG,CAEtB,IAAKqkH,EAAI4+D,EAAOx+K,EAAIuyF,GAA0BvyF,GAAKuyF,EAAM,CAExD,GADA/0F,EAAIwC,GAAK++K,EAAO5B,EAAQn9K,GAAK++K,EAAO3B,EAAOA,EAAOp9K,EAAI++K,EAClDn/D,EAAIpiH,EACP,MAED4hL,EAAUx/D,EAAIpiH,EACdqhL,EAAatsF,EAAO/0F,EACpBqR,EAAOhlB,KACNi0L,EAAmBQ,EAAa9gL,EAAI4hL,EAAUP,EAAY,KAE3Dj/D,EAAIzoH,EAAMioL,EAAUP,EACrB,CAEAhwK,EAAOhlB,KAAKi0L,EAAmBQ,EAAa1+D,EAAG,KAC/Cm/D,EAAOR,EAAMC,EAAOW,EAAuBH,GAAkBC,GAC7DT,EAAQ,IACNQ,CACH,GAGCR,IACAjjL,CAEH,CACA,OAAOsT,EAAO1d,KAAK,GACpB,CAaA,SAASkuL,EAAUv+H,GAClB,OAAOi9H,EAAUj9H,GAAO,SAASvZ,GAChC,OAAOm2I,EAAcrrL,KAAKk1C,GACvBsnC,EAAOtnC,EAAOp5C,MAAM,GAAGzH,eACvB6gD,CACJ,GACD,CAaA,SAAS+3I,EAAQx+H,GAChB,OAAOi9H,EAAUj9H,GAAO,SAASvZ,GAChC,OAAOo2I,EAActrL,KAAKk1C,GACvB,OAAS12C,EAAO02C,GAChBA,CACJ,GACD,CAKA01I,EAAW,CAMV,QAAW,QAQX,KAAQ,CACP,OAAUgB,EACV,OAAUG,GAEX,OAAUvvG,EACV,OAAUh+E,EACV,QAAWyuL,EACX,UAAaD,GAWb,aACC,OAAOpC,CACP,yCAgBH,CAnhBC,E,iCCCD,IAAIlxL,EAAU4oB,OAAO7sB,UAAUiE,QAC3BwzL,EAAkB,OAElBC,EAAS,CACTC,QAAS,UACTC,QAAS,WAGb79L,EAAOC,QAAU,CACb,QAAW09L,EAAOE,QAClBC,WAAY,CACRF,QAAS,SAAU56L,GACf,OAAOkH,EAAQgB,KAAKlI,EAAO06L,EAAiB,IAChD,EACAG,QAAS,SAAU76L,GACf,OAAO8vB,OAAO9vB,EAClB,GAEJ46L,QAASD,EAAOC,QAChBC,QAASF,EAAOE,Q,qCCnBpB,IAAI7vL,EAAY,EAAQ,OACpBH,EAAQ,EAAQ,OAChBkwL,EAAU,EAAQ,OAEtB/9L,EAAOC,QAAU,CACb89L,QAASA,EACTlwL,MAAOA,EACPG,UAAWA,E,qCCPf,IAAI9N,EAAQ,EAAQ,OAEhBikB,EAAMtX,OAAO5G,UAAU0N,eACvBtH,EAAU5C,MAAM4C,QAEhB3L,EAAW,CACXs9L,WAAW,EACXC,iBAAiB,EACjBC,aAAa,EACbC,WAAY,GACZC,QAAS,QACTC,iBAAiB,EACjBC,OAAO,EACPC,QAASr+L,EAAM8sF,OACf4uG,UAAW,IACX3iC,MAAO,EACPulC,mBAAmB,EACnBC,0BAA0B,EAC1BC,eAAgB,IAChBC,aAAa,EACbC,cAAc,EACdC,oBAAoB,GAGpBJ,EAA2B,SAAUjrL,GACrC,OAAOA,EAAItJ,QAAQ,aAAa,SAAU40L,EAAIC,GAC1C,OAAOjsK,OAAO0D,aAAakqB,SAASq+I,EAAW,IACnD,GACJ,EAEIC,EAAkB,SAAUr6L,EAAK0F,GACjC,OAAI1F,GAAsB,kBAARA,GAAoB0F,EAAQi0L,OAAS35L,EAAIhB,QAAQ,MAAQ,EAChEgB,EAAIsN,MAAM,KAGdtN,CACX,EAOIs6L,EAAc,sBAGdZ,EAAkB,iBAElBa,EAAc,SAAgC1rL,EAAKnJ,GACnD,IAMI7C,EANAkM,EAAM,CAAEqD,UAAW,MAEnBooL,EAAW90L,EAAQm0L,kBAAoBhrL,EAAItJ,QAAQ,MAAO,IAAMsJ,EAChEw4D,EAAQ3hE,EAAQq0L,iBAAmBhiG,SAAWl4F,EAAY6F,EAAQq0L,eAClExvL,EAAQiwL,EAASltL,MAAM5H,EAAQuxL,UAAW5vH,GAC1CozH,GAAa,EAGbhB,EAAU/zL,EAAQ+zL,QACtB,GAAI/zL,EAAQg0L,gBACR,IAAK72L,EAAI,EAAGA,EAAI0H,EAAMxH,SAAUF,EACM,IAA9B0H,EAAM1H,GAAG7D,QAAQ,WACbuL,EAAM1H,KAAO62L,EACbD,EAAU,QACHlvL,EAAM1H,KAAOy3L,IACpBb,EAAU,cAEdgB,EAAY53L,EACZA,EAAI0H,EAAMxH,QAKtB,IAAKF,EAAI,EAAGA,EAAI0H,EAAMxH,SAAUF,EAC5B,GAAIA,IAAM43L,EAAV,CAGA,IAKIx6L,EAAKD,EALL8vJ,EAAOvlJ,EAAM1H,GAEb63L,EAAmB5qC,EAAK9wJ,QAAQ,MAChCgpB,GAA4B,IAAtB0yK,EAA0B5qC,EAAK9wJ,QAAQ,KAAO07L,EAAmB,GAG9D,IAAT1yK,GACA/nB,EAAMyF,EAAQk0L,QAAQ9pC,EAAM/zJ,EAAS69L,QAASH,EAAS,OACvDz5L,EAAM0F,EAAQw0L,mBAAqB,KAAO,KAE1Cj6L,EAAMyF,EAAQk0L,QAAQ9pC,EAAKnoJ,MAAM,EAAGqgB,GAAMjsB,EAAS69L,QAASH,EAAS,OACrEz5L,EAAMzE,EAAMo/L,SACRN,EAAgBvqC,EAAKnoJ,MAAMqgB,EAAM,GAAItiB,IACrC,SAAUk1L,GACN,OAAOl1L,EAAQk0L,QAAQgB,EAAY7+L,EAAS69L,QAASH,EAAS,QAClE,KAIJz5L,GAAO0F,EAAQo0L,0BAAwC,eAAZL,IAC3Cz5L,EAAM85L,EAAyB95L,IAG/B8vJ,EAAK9wJ,QAAQ,QAAU,IACvBgB,EAAM0H,EAAQ1H,GAAO,CAACA,GAAOA,GAG7Bwf,EAAIjZ,KAAKwI,EAAK9O,GACd8O,EAAI9O,GAAO1E,EAAMs/L,QAAQ9rL,EAAI9O,GAAMD,GAEnC+O,EAAI9O,GAAOD,CA/Bf,CAmCJ,OAAO+O,CACX,EAEIsnB,EAAc,SAAUxxB,EAAO7E,EAAK0F,EAASo1L,GAG7C,IAFA,IAAIC,EAAOD,EAAe96L,EAAMq6L,EAAgBr6L,EAAK0F,GAE5C7C,EAAIgC,EAAM9B,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACxC,IAAIkM,EACA4tB,EAAO93B,EAAMhC,GAEjB,GAAa,OAAT85B,GAAiBj3B,EAAQs0L,YACzBjrL,EAAM,GAAG/J,OAAO+1L,OACb,CACHhsL,EAAMrJ,EAAQu0L,aAAe/xL,OAAO1G,OAAO,MAAQ,CAAC,EACpD,IAAIw5L,EAA+B,MAAnBr+J,EAAK5vB,OAAO,IAA+C,MAAjC4vB,EAAK5vB,OAAO4vB,EAAK55B,OAAS,GAAa45B,EAAKh1B,MAAM,GAAI,GAAKg1B,EACjGr5B,EAAQy4C,SAASi/I,EAAW,IAC3Bt1L,EAAQs0L,aAA6B,KAAdgB,GAGvBppK,MAAMtuB,IACJq5B,IAASq+J,GACT7sK,OAAO7qB,KAAW03L,GAClB13L,GAAS,GACRoC,EAAQs0L,aAAe12L,GAASoC,EAAQ8zL,YAE5CzqL,EAAM,GACNA,EAAIzL,GAASy3L,GACQ,cAAdC,IACPjsL,EAAIisL,GAAaD,GAXjBhsL,EAAM,CAAE,EAAGgsL,EAanB,CAEAA,EAAOhsL,CACX,CAEA,OAAOgsL,CACX,EAEIE,EAAY,SAA8BC,EAAUl7L,EAAK0F,EAASo1L,GAClE,GAAKI,EAAL,CAKA,IAAIj7L,EAAMyF,EAAQ2zL,UAAY6B,EAAS31L,QAAQ,cAAe,QAAU21L,EAIpEC,EAAW,eACX/4F,EAAQ,gBAIRg5F,EAAU11L,EAAQ4uJ,MAAQ,GAAK6mC,EAASp5K,KAAK9hB,GAC7C+8B,EAASo+J,EAAUn7L,EAAI0H,MAAM,EAAGyzL,EAAQ93L,OAASrD,EAIjDkI,EAAO,GACX,GAAI60B,EAAQ,CAER,IAAKt3B,EAAQu0L,cAAgBz6K,EAAIjZ,KAAK2B,OAAO5G,UAAW07B,KAC/Ct3B,EAAQ4zL,gBACT,OAIRnxL,EAAK9E,KAAK25B,EACd,CAIA,IAAIn6B,EAAI,EACR,MAAO6C,EAAQ4uJ,MAAQ,GAAqC,QAA/B8mC,EAAUh5F,EAAMrgF,KAAK9hB,KAAkB4C,EAAI6C,EAAQ4uJ,MAAO,CAEnF,GADAzxJ,GAAK,GACA6C,EAAQu0L,cAAgBz6K,EAAIjZ,KAAK2B,OAAO5G,UAAW85L,EAAQ,GAAGzzL,MAAM,GAAI,MACpEjC,EAAQ4zL,gBACT,OAGRnxL,EAAK9E,KAAK+3L,EAAQ,GACtB,CAQA,OAJIA,GACAjzL,EAAK9E,KAAK,IAAMpD,EAAI0H,MAAMyzL,EAAQ93L,OAAS,KAGxC+yB,EAAYluB,EAAMnI,EAAK0F,EAASo1L,EAhDvC,CAiDJ,EAEIO,EAAwB,SAA+BjtL,GACvD,IAAKA,EACD,OAAOrS,EAGX,GAAqB,OAAjBqS,EAAKwrL,cAAqC/5L,IAAjBuO,EAAKwrL,SAAiD,oBAAjBxrL,EAAKwrL,QACnE,MAAM,IAAIr3L,UAAU,iCAGxB,GAA4B,qBAAjB6L,EAAKqrL,SAA4C,UAAjBrrL,EAAKqrL,SAAwC,eAAjBrrL,EAAKqrL,QACxE,MAAM,IAAIl3L,UAAU,qEAExB,IAAIk3L,EAAkC,qBAAjBrrL,EAAKqrL,QAA0B19L,EAAS09L,QAAUrrL,EAAKqrL,QAE5E,MAAO,CACHJ,UAAqC,qBAAnBjrL,EAAKirL,UAA4Bt9L,EAASs9L,YAAcjrL,EAAKirL,UAC/EC,gBAAiD,mBAAzBlrL,EAAKkrL,gBAAgClrL,EAAKkrL,gBAAkBv9L,EAASu9L,gBAC7FC,YAAyC,mBAArBnrL,EAAKmrL,YAA4BnrL,EAAKmrL,YAAcx9L,EAASw9L,YACjFC,WAAuC,kBAApBprL,EAAKorL,WAA0BprL,EAAKorL,WAAaz9L,EAASy9L,WAC7EC,QAASA,EACTC,gBAAiD,mBAAzBtrL,EAAKsrL,gBAAgCtrL,EAAKsrL,gBAAkB39L,EAAS29L,gBAC7FC,MAA6B,mBAAfvrL,EAAKurL,MAAsBvrL,EAAKurL,MAAQ59L,EAAS49L,MAC/DC,QAAiC,oBAAjBxrL,EAAKwrL,QAAyBxrL,EAAKwrL,QAAU79L,EAAS69L,QACtE3C,UAAqC,kBAAnB7oL,EAAK6oL,WAA0B17L,EAAMg2H,SAASnjH,EAAK6oL,WAAa7oL,EAAK6oL,UAAYl7L,EAASk7L,UAE5G3iC,MAA8B,kBAAflmJ,EAAKkmJ,QAAqC,IAAflmJ,EAAKkmJ,OAAoBlmJ,EAAKkmJ,MAAQv4J,EAASu4J,MACzFulC,mBAA8C,IAA3BzrL,EAAKyrL,kBACxBC,yBAAmE,mBAAlC1rL,EAAK0rL,yBAAyC1rL,EAAK0rL,yBAA2B/9L,EAAS+9L,yBACxHC,eAA+C,kBAAxB3rL,EAAK2rL,eAA8B3rL,EAAK2rL,eAAiBh+L,EAASg+L,eACzFC,aAAkC,IAArB5rL,EAAK4rL,YAClBC,aAA2C,mBAAtB7rL,EAAK6rL,aAA6B7rL,EAAK6rL,aAAel+L,EAASk+L,aACpFC,mBAAuD,mBAA5B9rL,EAAK8rL,mBAAmC9rL,EAAK8rL,mBAAqBn+L,EAASm+L,mBAE9G,EAEA7+L,EAAOC,QAAU,SAAUuT,EAAKT,GAC5B,IAAI1I,EAAU21L,EAAsBjtL,GAEpC,GAAY,KAARS,GAAsB,OAARA,GAA+B,qBAARA,EACrC,OAAOnJ,EAAQu0L,aAAe/xL,OAAO1G,OAAO,MAAQ,CAAC,EASzD,IANA,IAAI85L,EAAyB,kBAARzsL,EAAmB0rL,EAAY1rL,EAAKnJ,GAAWmJ,EAChEE,EAAMrJ,EAAQu0L,aAAe/xL,OAAO1G,OAAO,MAAQ,CAAC,EAIpD2G,EAAOD,OAAOC,KAAKmzL,GACdz4L,EAAI,EAAGA,EAAIsF,EAAKpF,SAAUF,EAAG,CAClC,IAAI5C,EAAMkI,EAAKtF,GACX04L,EAASN,EAAUh7L,EAAKq7L,EAAQr7L,GAAMyF,EAAwB,kBAARmJ,GAC1DE,EAAMxT,EAAMkL,MAAMsI,EAAKwsL,EAAQ71L,EACnC,CAEA,OAA4B,IAAxBA,EAAQ6zL,YACDxqL,EAGJxT,EAAMigM,QAAQzsL,EACzB,C,qCCrQA,IAAI0sL,EAAiB,EAAQ,KACzBlgM,EAAQ,EAAQ,OAChB69L,EAAU,EAAQ,OAClB55K,EAAMtX,OAAO5G,UAAU0N,eAEvB0sL,EAAwB,CACxBP,SAAU,SAAkBz3K,GACxB,OAAOA,EAAS,IACpB,EACAi2K,MAAO,QACPgC,QAAS,SAAiBj4K,EAAQzjB,GAC9B,OAAOyjB,EAAS,IAAMzjB,EAAM,GAChC,EACAqrL,OAAQ,SAAgB5nK,GACpB,OAAOA,CACX,GAGAhc,EAAU5C,MAAM4C,QAChBrE,EAAOyB,MAAMxD,UAAU+B,KACvBu4L,EAAc,SAAUluL,EAAKmuL,GAC7Bx4L,EAAK0B,MAAM2I,EAAKhG,EAAQm0L,GAAgBA,EAAe,CAACA,GAC5D,EAEIC,EAAQzwL,KAAK/J,UAAUoJ,YAEvBqxL,EAAgB3C,EAAQ,WACxBr9L,EAAW,CACXigM,gBAAgB,EAChB3C,WAAW,EACXI,QAAS,QACTC,iBAAiB,EACjBzC,UAAW,IACX5sL,QAAQ,EACRtB,QAASxN,EAAM8O,OACf4xL,kBAAkB,EAClBlkC,OAAQgkC,EACRG,UAAW9C,EAAQD,WAAW4C,GAE9BJ,SAAS,EACTQ,cAAe,SAAuBvmL,GAClC,OAAOkmL,EAAMv1L,KAAKqP,EACtB,EACAwmL,WAAW,EACXlC,oBAAoB,GAGpBmC,EAAwB,SAA+B7xL,GACvD,MAAoB,kBAANA,GACM,kBAANA,GACM,mBAANA,GACM,kBAANA,GACM,kBAANA,CAClB,EAEI8xL,EAAW,CAAC,EAEZjzL,EAAY,SAASA,EACrB0a,EACAL,EACA64K,EACAC,EACAtC,EACAkC,EACArzL,EACAsa,EACAjP,EACAilL,EACA8C,EACApkC,EACAmkC,EACAD,EACAxC,EACAgD,GAEA,IAAI1tL,EAAMgV,EAEN24K,EAAQD,EACRxgL,EAAO,EACP0gL,GAAW,EACf,WAAyC,KAAjCD,EAAQA,EAAM/9K,IAAI29K,MAAkCK,EAAU,CAElE,IAAI30K,EAAM00K,EAAM/9K,IAAIoF,GAEpB,GADA9H,GAAQ,EACW,qBAAR+L,EAAqB,CAC5B,GAAIA,IAAQ/L,EACR,MAAM,IAAIu/H,WAAW,uBAErBmhD,GAAW,CAEnB,CACmC,qBAAxBD,EAAM/9K,IAAI29K,KACjBrgL,EAAO,EAEf,CAeA,GAbsB,oBAAXoH,EACPtU,EAAMsU,EAAOK,EAAQ3U,GACdA,aAAe1D,KACtB0D,EAAMotL,EAAcptL,GACW,UAAxBwtL,GAAmC70L,EAAQqH,KAClDA,EAAMxT,EAAMo/L,SAAS5rL,GAAK,SAAU1Q,GAChC,OAAIA,aAAiBgN,KACV8wL,EAAc99L,GAElBA,CACX,KAGQ,OAAR0Q,EAAc,CACd,GAAImrL,EACA,OAAOnxL,IAAYkzL,EAAmBlzL,EAAQ2a,EAAQ3nB,EAASgN,QAAS0wL,EAAS,MAAO1hC,GAAUr0I,EAGtG3U,EAAM,EACV,CAEA,GAAIstL,EAAsBttL,IAAQxT,EAAMgO,SAASwF,GAAM,CACnD,GAAIhG,EAAS,CACT,IAAI6zL,EAAWX,EAAmBv4K,EAAS3a,EAAQ2a,EAAQ3nB,EAASgN,QAAS0wL,EAAS,MAAO1hC,GAC7F,MAAO,CAACmkC,EAAUU,GAAY,IAAMV,EAAUnzL,EAAQgG,EAAKhT,EAASgN,QAAS0wL,EAAS,QAAS1hC,IACnG,CACA,MAAO,CAACmkC,EAAUx4K,GAAU,IAAMw4K,EAAU/tK,OAAOpf,IACvD,CAEA,IAMI8tL,EANArmK,EAAS,GAEb,GAAmB,qBAARznB,EACP,OAAOynB,EAIX,GAA4B,UAAxB+lK,GAAmC70L,EAAQqH,GAEvCktL,GAAoBlzL,IACpBgG,EAAMxT,EAAMo/L,SAAS5rL,EAAKhG,IAE9B8zL,EAAU,CAAC,CAAEx+L,MAAO0Q,EAAIhM,OAAS,EAAIgM,EAAIpE,KAAK,MAAQ,UAAO,SAC1D,GAAIjD,EAAQ2b,GACfw5K,EAAUx5K,MACP,CACH,IAAIlb,EAAOD,OAAOC,KAAK4G,GACvB8tL,EAAUzoL,EAAOjM,EAAKiM,KAAKA,GAAQjM,CACvC,CAIA,IAFA,IAAI20L,EAAiBN,GAAkB90L,EAAQqH,IAAuB,IAAfA,EAAIhM,OAAe2gB,EAAS,KAAOA,EAEjFskD,EAAI,EAAGA,EAAI60H,EAAQ95L,SAAUilE,EAAG,CACrC,IAAI/nE,EAAM48L,EAAQ70H,GACd3pE,EAAuB,kBAAR4B,GAAyC,qBAAdA,EAAI5B,MAAwB4B,EAAI5B,MAAQ0Q,EAAI9O,GAE1F,IAAIm8L,GAAuB,OAAV/9L,EAAjB,CAIA,IAAIkR,EAAY7H,EAAQqH,GACa,oBAAxBwtL,EAAqCA,EAAoBO,EAAgB78L,GAAO68L,EACvFA,GAAkBzD,EAAY,IAAMp5L,EAAM,IAAMA,EAAM,KAE5Dw8L,EAAY78K,IAAImE,EAAQ9H,GACxB,IAAI8gL,EAAmBtB,IACvBsB,EAAiBn9K,IAAI08K,EAAUG,GAC/Bb,EAAYplK,EAAQntB,EAChBhL,EACAkR,EACAgtL,EACAC,EACAtC,EACAkC,EACwB,UAAxBG,GAAmCN,GAAoBv0L,EAAQqH,GAAO,KAAOhG,EAC7Esa,EACAjP,EACAilL,EACA8C,EACApkC,EACAmkC,EACAD,EACAxC,EACAsD,GAzBJ,CA2BJ,CAEA,OAAOvmK,CACX,EAEIwmK,EAA4B,SAAmC5uL,GAC/D,IAAKA,EACD,OAAOrS,EAGX,GAAqB,OAAjBqS,EAAKrF,SAA4C,qBAAjBqF,EAAKrF,SAAmD,oBAAjBqF,EAAKrF,QAC5E,MAAM,IAAIxG,UAAU,iCAGxB,IAAIk3L,EAAUrrL,EAAKqrL,SAAW19L,EAAS09L,QACvC,GAA4B,qBAAjBrrL,EAAKqrL,SAA4C,UAAjBrrL,EAAKqrL,SAAwC,eAAjBrrL,EAAKqrL,QACxE,MAAM,IAAIl3L,UAAU,qEAGxB,IAAIw1J,EAASqhC,EAAQ,WACrB,GAA2B,qBAAhBhrL,EAAK2pJ,OAAwB,CACpC,IAAKv4I,EAAIjZ,KAAK6yL,EAAQD,WAAY/qL,EAAK2pJ,QACnC,MAAM,IAAIx1J,UAAU,mCAExBw1J,EAAS3pJ,EAAK2pJ,MAClB,CACA,IAAImkC,EAAY9C,EAAQD,WAAWphC,GAE/B10I,EAAStnB,EAASsnB,OAKtB,OAJ2B,oBAAhBjV,EAAKiV,QAAyB3b,EAAQ0G,EAAKiV,WAClDA,EAASjV,EAAKiV,QAGX,CACH24K,eAA+C,mBAAxB5tL,EAAK4tL,eAA+B5tL,EAAK4tL,eAAiBjgM,EAASigM,eAC1F3C,UAAqC,qBAAnBjrL,EAAKirL,UAA4Bt9L,EAASs9L,YAAcjrL,EAAKirL,UAC/EI,QAASA,EACTC,gBAAiD,mBAAzBtrL,EAAKsrL,gBAAgCtrL,EAAKsrL,gBAAkB39L,EAAS29L,gBAC7FzC,UAAqC,qBAAnB7oL,EAAK6oL,UAA4Bl7L,EAASk7L,UAAY7oL,EAAK6oL,UAC7E5sL,OAA+B,mBAAhB+D,EAAK/D,OAAuB+D,EAAK/D,OAAStO,EAASsO,OAClEtB,QAAiC,oBAAjBqF,EAAKrF,QAAyBqF,EAAKrF,QAAUhN,EAASgN,QACtEkzL,iBAAmD,mBAA1B7tL,EAAK6tL,iBAAiC7tL,EAAK6tL,iBAAmBlgM,EAASkgM,iBAChG54K,OAAQA,EACR00I,OAAQA,EACRmkC,UAAWA,EACXC,cAA6C,oBAAvB/tL,EAAK+tL,cAA+B/tL,EAAK+tL,cAAgBpgM,EAASogM,cACxFC,UAAqC,mBAAnBhuL,EAAKguL,UAA0BhuL,EAAKguL,UAAYrgM,EAASqgM,UAC3EhoL,KAA2B,oBAAdhG,EAAKgG,KAAsBhG,EAAKgG,KAAO,KACpD8lL,mBAAuD,mBAA5B9rL,EAAK8rL,mBAAmC9rL,EAAK8rL,mBAAqBn+L,EAASm+L,mBAE9G,EAEA7+L,EAAOC,QAAU,SAAUyoB,EAAQ3V,GAC/B,IAGIyuL,EACAx5K,EAJAtU,EAAMgV,EACNre,EAAUs3L,EAA0B5uL,GAKV,oBAAnB1I,EAAQ2d,QACfA,EAAS3d,EAAQ2d,OACjBtU,EAAMsU,EAAO,GAAItU,IACVrH,EAAQhC,EAAQ2d,UACvBA,EAAS3d,EAAQ2d,OACjBw5K,EAAUx5K,GAGd,IAMI45K,EANA90L,EAAO,GAEX,GAAmB,kBAAR4G,GAA4B,OAARA,EAC3B,MAAO,GAKPkuL,EADA7uL,GAAQA,EAAK6uL,eAAevB,EACdttL,EAAK6uL,YACZ7uL,GAAQ,YAAaA,EACdA,EAAKutL,QAAU,UAAY,SAE3B,UAGlB,IAAIY,EAAsBb,EAAsBuB,GAChD,GAAI7uL,GAAQ,mBAAoBA,GAAuC,mBAAxBA,EAAKouL,eAChD,MAAM,IAAIj6L,UAAU,iDAExB,IAAIi6L,EAAyC,UAAxBD,GAAmCnuL,GAAQA,EAAKouL,eAEhEK,IACDA,EAAU30L,OAAOC,KAAK4G,IAGtBrJ,EAAQ0O,MACRyoL,EAAQzoL,KAAK1O,EAAQ0O,MAIzB,IADA,IAAIqoL,EAAchB,IACT54L,EAAI,EAAGA,EAAIg6L,EAAQ95L,SAAUF,EAAG,CACrC,IAAI5C,EAAM48L,EAAQh6L,GAEd6C,EAAQ02L,WAA0B,OAAbrtL,EAAI9O,IAG7B27L,EAAYzzL,EAAMkB,EACd0F,EAAI9O,GACJA,EACAs8L,EACAC,EACA92L,EAAQw0L,mBACRx0L,EAAQ02L,UACR12L,EAAQ2E,OAAS3E,EAAQqD,QAAU,KACnCrD,EAAQ2d,OACR3d,EAAQ0O,KACR1O,EAAQ2zL,UACR3zL,EAAQy2L,cACRz2L,EAAQqyJ,OACRryJ,EAAQw2L,UACRx2L,EAAQu2L,iBACRv2L,EAAQ+zL,QACRgD,GAER,CAEA,IAAIS,EAAS/0L,EAAKwC,KAAKjF,EAAQuxL,WAC3BvzK,GAAoC,IAA3Bhe,EAAQs2L,eAA0B,IAAM,GAYrD,OAVIt2L,EAAQg0L,kBACgB,eAApBh0L,EAAQ+zL,QAER/1K,GAAU,uBAGVA,GAAU,mBAIXw5K,EAAOn6L,OAAS,EAAI2gB,EAASw5K,EAAS,EACjD,C,qCC7TA,IAAI9D,EAAU,EAAQ,OAElB55K,EAAMtX,OAAO5G,UAAU0N,eACvBtH,EAAU5C,MAAM4C,QAEhBy1L,EAAY,WAEZ,IADA,IAAI/0K,EAAQ,GACHvlB,EAAI,EAAGA,EAAI,MAAOA,EACvBulB,EAAM/kB,KAAK,MAAQR,EAAI,GAAK,IAAM,IAAMA,EAAET,SAAS,KAAK3D,eAG5D,OAAO2pB,CACX,CAPe,GASXg1K,EAAe,SAAsB9mG,GACrC,MAAOA,EAAMvzF,OAAS,EAAG,CACrB,IAAIkQ,EAAOqjF,EAAMz5E,MACb9N,EAAMkE,EAAKlE,IAAIkE,EAAKpL,MAExB,GAAIH,EAAQqH,GAAM,CAGd,IAFA,IAAIsuL,EAAY,GAEPr1H,EAAI,EAAGA,EAAIj5D,EAAIhM,SAAUilE,EACR,qBAAXj5D,EAAIi5D,IACXq1H,EAAUh6L,KAAK0L,EAAIi5D,IAI3B/0D,EAAKlE,IAAIkE,EAAKpL,MAAQw1L,CAC1B,CACJ,CACJ,EAEIC,EAAgB,SAAuB95L,EAAQkC,GAE/C,IADA,IAAIqJ,EAAMrJ,GAAWA,EAAQu0L,aAAe/xL,OAAO1G,OAAO,MAAQ,CAAC,EAC1DqB,EAAI,EAAGA,EAAIW,EAAOT,SAAUF,EACR,qBAAdW,EAAOX,KACdkM,EAAIlM,GAAKW,EAAOX,IAIxB,OAAOkM,CACX,EAEItI,EAAQ,SAASA,EAAMe,EAAQhE,EAAQkC,GAEvC,IAAKlC,EACD,OAAOgE,EAGX,GAAsB,kBAAXhE,EAAqB,CAC5B,GAAIkE,EAAQF,GACRA,EAAOnE,KAAKG,OACT,KAAIgE,GAA4B,kBAAXA,EAKxB,MAAO,CAACA,EAAQhE,IAJXkC,IAAYA,EAAQu0L,cAAgBv0L,EAAQ4zL,mBAAsB95K,EAAIjZ,KAAK2B,OAAO5G,UAAWkC,MAC9FgE,EAAOhE,IAAU,EAIzB,CAEA,OAAOgE,CACX,CAEA,IAAKA,GAA4B,kBAAXA,EAClB,MAAO,CAACA,GAAQxC,OAAOxB,GAG3B,IAAI+5L,EAAc/1L,EAKlB,OAJIE,EAAQF,KAAYE,EAAQlE,KAC5B+5L,EAAcD,EAAc91L,EAAQ9B,IAGpCgC,EAAQF,IAAWE,EAAQlE,IAC3BA,EAAOzD,SAAQ,SAAUkT,EAAMpQ,GAC3B,GAAI2c,EAAIjZ,KAAKiB,EAAQ3E,GAAI,CACrB,IAAI26L,EAAah2L,EAAO3E,GACpB26L,GAAoC,kBAAfA,GAA2BvqL,GAAwB,kBAATA,EAC/DzL,EAAO3E,GAAK4D,EAAM+2L,EAAYvqL,EAAMvN,GAEpC8B,EAAOnE,KAAK4P,EAEpB,MACIzL,EAAO3E,GAAKoQ,CAEpB,IACOzL,GAGJU,OAAOC,KAAK3E,GAAQgb,QAAO,SAAUC,EAAKxe,GAC7C,IAAI5B,EAAQmF,EAAOvD,GAOnB,OALIuf,EAAIjZ,KAAKkY,EAAKxe,GACdwe,EAAIxe,GAAOwG,EAAMgY,EAAIxe,GAAM5B,EAAOqH,GAElC+Y,EAAIxe,GAAO5B,EAERogB,CACX,GAAG8+K,EACP,EAEInsL,EAAS,SAA4B5J,EAAQhE,GAC7C,OAAO0E,OAAOC,KAAK3E,GAAQgb,QAAO,SAAUC,EAAKxe,GAE7C,OADAwe,EAAIxe,GAAOuD,EAAOvD,GACXwe,CACX,GAAGjX,EACP,EAEI6gF,EAAS,SAAUx5E,EAAK+qL,EAASH,GACjC,IAAIgE,EAAiB5uL,EAAItJ,QAAQ,MAAO,KACxC,GAAgB,eAAZk0L,EAEA,OAAOgE,EAAel4L,QAAQ,iBAAkBjI,UAGpD,IACI,OAAOoO,mBAAmB+xL,EAC9B,CAAE,MAAOr0L,GACL,OAAOq0L,CACX,CACJ,EAEIpzL,EAAS,SAAgBwE,EAAK6uL,EAAgBjE,EAASltK,EAAMwrI,GAG7D,GAAmB,IAAflpJ,EAAI9L,OACJ,OAAO8L,EAGX,IAAIkyC,EAASlyC,EAOb,GANmB,kBAARA,EACPkyC,EAAS9rC,OAAO3T,UAAUc,SAASmE,KAAKsI,GAClB,kBAARA,IACdkyC,EAAS5yB,OAAOtf,IAGJ,eAAZ4qL,EACA,OAAO9zC,OAAO5kG,GAAQx7C,QAAQ,mBAAmB,SAAU40L,GACvD,MAAO,SAAWp+I,SAASo+I,EAAGxyL,MAAM,GAAI,IAAM,KAClD,IAIJ,IADA,IAAIggE,EAAM,GACD9kE,EAAI,EAAGA,EAAIk+C,EAAOh+C,SAAUF,EAAG,CACpC,IAAIY,EAAIs9C,EAAOzxC,WAAWzM,GAGhB,KAANY,GACS,KAANA,GACM,KAANA,GACM,MAANA,GACCA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,KAClBs0J,IAAWqhC,EAAQH,UAAkB,KAANx1L,GAAoB,KAANA,GAEjDkkE,GAAO5mB,EAAOh0C,OAAOlK,GAIrBY,EAAI,IACJkkE,GAAYw1H,EAAS15L,GAIrBA,EAAI,KACJkkE,GAAaw1H,EAAS,IAAQ15L,GAAK,GAAM05L,EAAS,IAAY,GAAJ15L,GAI1DA,EAAI,OAAUA,GAAK,MACnBkkE,GAAaw1H,EAAS,IAAQ15L,GAAK,IAAO05L,EAAS,IAAS15L,GAAK,EAAK,IAAS05L,EAAS,IAAY,GAAJ15L,IAIpGZ,GAAK,EACLY,EAAI,QAAiB,KAAJA,IAAc,GAA8B,KAAvBs9C,EAAOzxC,WAAWzM,IAExD8kE,GAAOw1H,EAAS,IAAQ15L,GAAK,IACvB05L,EAAS,IAAS15L,GAAK,GAAM,IAC7B05L,EAAS,IAAS15L,GAAK,EAAK,IAC5B05L,EAAS,IAAY,GAAJ15L,GAC3B,CAEA,OAAOkkE,CACX,EAEI6zH,EAAU,SAAiBn9L,GAI3B,IAHA,IAAIi4F,EAAQ,CAAC,CAAEvnF,IAAK,CAAE+F,EAAGzW,GAASwJ,KAAM,MACpC2gG,EAAO,GAEF3lG,EAAI,EAAGA,EAAIyzF,EAAMvzF,SAAUF,EAKhC,IAJA,IAAIoQ,EAAOqjF,EAAMzzF,GACbkM,EAAMkE,EAAKlE,IAAIkE,EAAKpL,MAEpBM,EAAOD,OAAOC,KAAK4G,GACdi5D,EAAI,EAAGA,EAAI7/D,EAAKpF,SAAUilE,EAAG,CAClC,IAAI/nE,EAAMkI,EAAK6/D,GACXhoE,EAAM+O,EAAI9O,GACK,kBAARD,GAA4B,OAARA,IAAuC,IAAvBwoG,EAAKxpG,QAAQgB,KACxDs2F,EAAMjzF,KAAK,CAAE0L,IAAKA,EAAKlH,KAAM5H,IAC7BuoG,EAAKnlG,KAAKrD,GAElB,CAKJ,OAFAo9L,EAAa9mG,GAENj4F,CACX,EAEIkzH,EAAW,SAAkBxiH,GAC7B,MAA+C,oBAAxC7G,OAAO5G,UAAUc,SAASmE,KAAKwI,EAC1C,EAEIxF,EAAW,SAAkBwF,GAC7B,SAAKA,GAAsB,kBAARA,OAITA,EAAIR,aAAeQ,EAAIR,YAAYhF,UAAYwF,EAAIR,YAAYhF,SAASwF,GACtF,EAEI8rL,EAAU,SAAiB3rL,EAAGC,GAC9B,MAAO,GAAGnK,OAAOkK,EAAGC,EACxB,EAEIwrL,EAAW,SAAkB36L,EAAK6F,GAClC,GAAI6B,EAAQ1H,GAAM,CAEd,IADA,IAAI29L,EAAS,GACJ96L,EAAI,EAAGA,EAAI7C,EAAI+C,OAAQF,GAAK,EACjC86L,EAAOt6L,KAAKwC,EAAG7F,EAAI6C,KAEvB,OAAO86L,CACX,CACA,OAAO93L,EAAG7F,EACd,EAEA3E,EAAOC,QAAU,CACbgiM,cAAeA,EACflsL,OAAQA,EACRypL,QAASA,EACTW,QAASA,EACTnzG,OAAQA,EACRh+E,OAAQA,EACRd,SAAUA,EACVgoH,SAAUA,EACVopE,SAAUA,EACVl0L,MAAOA,E,yCCjOPgwL,EAAW,EAAQ,OAEvB,SAASmH,IACPz7L,KAAKqK,SAAW,KAChBrK,KAAKwZ,QAAU,KACfxZ,KAAKhF,KAAO,KACZgF,KAAKsK,KAAO,KACZtK,KAAK0K,KAAO,KACZ1K,KAAKyK,SAAW,KAChBzK,KAAKwK,KAAO,KACZxK,KAAKuK,OAAS,KACdvK,KAAK4V,MAAQ,KACb5V,KAAK2K,SAAW,KAChB3K,KAAK6I,KAAO,KACZ7I,KAAKmK,KAAO,IACd,CAQA,IAAIuxL,EAAkB,oBACpBC,EAAc,WAGdC,EAAoB,oCAMpBC,EAAS,CACP,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,MAIvCC,EAAS,CACP,IAAK,IAAK,IAAK,KAAM,IAAK,KAC1Bj5L,OAAOg5L,GAGTE,EAAa,CAAC,KAAMl5L,OAAOi5L,GAO3BE,EAAe,CACb,IAAK,IAAK,IAAK,IAAK,KACpBn5L,OAAOk5L,GACTE,EAAkB,CAChB,IAAK,IAAK,KAEZC,EAAiB,IACjBC,EAAsB,yBACtBC,EAAoB,+BAEpBC,EAAiB,CACfC,YAAY,EACZ,eAAe,GAGjBC,EAAmB,CACjBD,YAAY,EACZ,eAAe,GAGjBE,EAAkB,CAChBC,MAAM,EACNC,OAAO,EACPC,KAAK,EACLC,QAAQ,EACRC,MAAM,EACN,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GAEX1wH,EAAc,EAAQ,OAExB,SAAS2wH,EAASrhM,EAAKywE,EAAkB6wH,GACvC,GAAIthM,GAAsB,kBAARA,GAAoBA,aAAeggM,EAAO,OAAOhgM,EAEnE,IAAIqpF,EAAI,IAAI22G,EAEZ,OADA32G,EAAE/9E,MAAMtL,EAAKywE,EAAkB6wH,GACxBj4G,CACT,CA6RA,SAASk4G,EAAUpwL,GAQjB,MADmB,kBAARA,IAAoBA,EAAMkwL,EAASlwL,IACxCA,aAAe6uL,EACd7uL,EAAIgpJ,SADyB6lC,EAAIt8L,UAAUy2J,OAAOxxJ,KAAKwI,EAEhE,CA0DA,SAASqwL,EAAW57L,EAAQ67L,GAC1B,OAAOJ,EAASz7L,GAAQ,GAAO,GAAMrH,QAAQkjM,EAC/C,CAMA,SAASC,EAAiB97L,EAAQ67L,GAChC,OAAK77L,EACEy7L,EAASz7L,GAAQ,GAAO,GAAM+7L,cAAcF,GAD7BA,CAExB,CA1WAzB,EAAIt8L,UAAU4H,MAAQ,SAAUtL,EAAKywE,EAAkB6wH,GACrD,GAAmB,kBAARthM,EACT,MAAM,IAAI2E,UAAU,gDAAkD3E,GAQxE,IAAI4hM,EAAa5hM,EAAIoB,QAAQ,KAC3BygM,GAA2B,IAAhBD,GAAqBA,EAAa5hM,EAAIoB,QAAQ,KAAO,IAAM,IACtE0gM,EAAS9hM,EAAI0P,MAAMmyL,GACnBE,EAAa,MACfD,EAAO,GAAKA,EAAO,GAAGn6L,QAAQo6L,EAAY,KAC1C/hM,EAAM8hM,EAAO/0L,KAAK80L,GAElB,IAAIjrH,EAAO52E,EAQX,GAFA42E,EAAOA,EAAKrrE,QAEP+1L,GAA+C,IAA1BthM,EAAI0P,MAAM,KAAKvK,OAAc,CAErD,IAAI68L,EAAa7B,EAAkBh8K,KAAKyyD,GACxC,GAAIorH,EAeF,OAdAz9L,KAAK6I,KAAOwpE,EACZryE,KAAKmK,KAAOkoE,EACZryE,KAAK2K,SAAW8yL,EAAW,GACvBA,EAAW,IACbz9L,KAAKuK,OAASkzL,EAAW,GAEvBz9L,KAAK4V,MADHs2D,EACWC,EAAYplE,MAAM/G,KAAKuK,OAAOc,OAAO,IAErCrL,KAAKuK,OAAOc,OAAO,IAEzB6gE,IACTlsE,KAAKuK,OAAS,GACdvK,KAAK4V,MAAQ,CAAC,GAET5V,IAEX,CAEA,IAAIiuF,EAAQytG,EAAgB97K,KAAKyyD,GACjC,GAAI4b,EAAO,CACTA,EAAQA,EAAM,GACd,IAAIyvG,EAAazvG,EAAMlwF,cACvBiC,KAAKqK,SAAWqzL,EAChBrrH,EAAOA,EAAKhnE,OAAO4iF,EAAMrtF,OAC3B,CAQA,GAAIm8L,GAAqB9uG,GAAS5b,EAAKhpE,MAAM,sBAAuB,CAClE,IAAImQ,EAAgC,OAAtB64D,EAAKhnE,OAAO,EAAG,IACzBmO,GAAay0E,GAASsuG,EAAiBtuG,KACzC5b,EAAOA,EAAKhnE,OAAO,GACnBrL,KAAKwZ,SAAU,EAEnB,CAEA,IAAK+iL,EAAiBtuG,KAAWz0E,GAAYy0E,IAAUuuG,EAAgBvuG,IAAU,CAuB/E,IADA,IAUIjzF,EAAM2iM,EAVNC,GAAW,EACNl9L,EAAI,EAAGA,EAAIu7L,EAAgBr7L,OAAQF,IAAK,CAC/C,IAAIm9L,EAAMxrH,EAAKx1E,QAAQo/L,EAAgBv7L,KAC1B,IAATm9L,KAA4B,IAAbD,GAAkBC,EAAMD,KAAYA,EAAUC,EACnE,CASEF,GAFe,IAAbC,EAEOvrH,EAAK2F,YAAY,KAMjB3F,EAAK2F,YAAY,IAAK4lH,IAOjB,IAAZD,IACF3iM,EAAOq3E,EAAK7sE,MAAM,EAAGm4L,GACrBtrH,EAAOA,EAAK7sE,MAAMm4L,EAAS,GAC3B39L,KAAKhF,KAAOuO,mBAAmBvO,IAIjC4iM,GAAW,EACX,IAASl9L,EAAI,EAAGA,EAAIs7L,EAAap7L,OAAQF,IAAK,CACxCm9L,EAAMxrH,EAAKx1E,QAAQm/L,EAAat7L,KACvB,IAATm9L,KAA4B,IAAbD,GAAkBC,EAAMD,KAAYA,EAAUC,EACnE,EAEiB,IAAbD,IAAkBA,EAAUvrH,EAAKzxE,QAErCZ,KAAKsK,KAAO+nE,EAAK7sE,MAAM,EAAGo4L,GAC1BvrH,EAAOA,EAAK7sE,MAAMo4L,GAGlB59L,KAAK89L,YAML99L,KAAKyK,SAAWzK,KAAKyK,UAAY,GAMjC,IAAIszL,EAAoC,MAArB/9L,KAAKyK,SAAS,IAA0D,MAA5CzK,KAAKyK,SAASzK,KAAKyK,SAAS7J,OAAS,GAGpF,IAAKm9L,EAEH,IADA,IAAIC,EAAYh+L,KAAKyK,SAASU,MAAM,MACpBxK,GAAPD,EAAI,EAAOs9L,EAAUp9L,QAAQF,EAAIC,EAAGD,IAAK,CAChD,IAAIitJ,EAAOqwC,EAAUt9L,GACrB,GAAKitJ,IACAA,EAAKtkJ,MAAM8yL,GAAsB,CAEpC,IADA,IAAI8B,EAAU,GACLp4H,EAAI,EAAGxuD,EAAIs2I,EAAK/sJ,OAAQilE,EAAIxuD,EAAGwuD,IAClC8nF,EAAKxgJ,WAAW04D,GAAK,IAMvBo4H,GAAW,IAEXA,GAAWtwC,EAAK9nF,GAIpB,IAAKo4H,EAAQ50L,MAAM8yL,GAAsB,CACvC,IAAI+B,EAAaF,EAAUx4L,MAAM,EAAG9E,GAChCy9L,EAAUH,EAAUx4L,MAAM9E,EAAI,GAC9B09L,EAAMzwC,EAAKtkJ,MAAM+yL,GACjBgC,IACFF,EAAWh9L,KAAKk9L,EAAI,IACpBD,EAAQ77L,QAAQ87L,EAAI,KAElBD,EAAQv9L,SACVyxE,EAAO,IAAM8rH,EAAQ31L,KAAK,KAAO6pE,GAEnCryE,KAAKyK,SAAWyzL,EAAW11L,KAAK,KAChC,KACF,CACF,CACF,CAGExI,KAAKyK,SAAS7J,OAASs7L,EACzBl8L,KAAKyK,SAAW,GAGhBzK,KAAKyK,SAAWzK,KAAKyK,SAAS1M,cAG3BggM,IAOH/9L,KAAKyK,SAAW6pL,EAASqC,QAAQ32L,KAAKyK,WAGxC,IAAIyF,EAAIlQ,KAAK0K,KAAO,IAAM1K,KAAK0K,KAAO,GAClC/G,EAAI3D,KAAKyK,UAAY,GACzBzK,KAAKsK,KAAO3G,EAAIuM,EAChBlQ,KAAKmK,MAAQnK,KAAKsK,KAMdyzL,IACF/9L,KAAKyK,SAAWzK,KAAKyK,SAASY,OAAO,EAAGrL,KAAKyK,SAAS7J,OAAS,GAC/C,MAAZyxE,EAAK,KACPA,EAAO,IAAMA,GAGnB,CAMA,IAAKgqH,EAAeqB,GAOlB,IAASh9L,EAAI,EAAGC,EAAIo7L,EAAWn7L,OAAQF,EAAIC,EAAGD,IAAK,CACjD,IAAI29L,EAAKtC,EAAWr7L,GACpB,IAA0B,IAAtB2xE,EAAKx1E,QAAQwhM,GAAjB,CACA,IAAIvwE,EAAM1yH,mBAAmBijM,GACzBvwE,IAAQuwE,IACVvwE,EAAM01B,OAAO66C,IAEfhsH,EAAOA,EAAKlnE,MAAMkzL,GAAI71L,KAAKslH,EALc,CAM3C,CAIF,IAAItjH,EAAO6nE,EAAKx1E,QAAQ,MACV,IAAV2N,IAEFxK,KAAKwK,KAAO6nE,EAAKhnE,OAAOb,GACxB6nE,EAAOA,EAAK7sE,MAAM,EAAGgF,IAEvB,IAAI8zL,EAAKjsH,EAAKx1E,QAAQ,KAmBtB,IAlBY,IAARyhM,GACFt+L,KAAKuK,OAAS8nE,EAAKhnE,OAAOizL,GAC1Bt+L,KAAK4V,MAAQy8D,EAAKhnE,OAAOizL,EAAK,GAC1BpyH,IACFlsE,KAAK4V,MAAQu2D,EAAYplE,MAAM/G,KAAK4V,QAEtCy8D,EAAOA,EAAK7sE,MAAM,EAAG84L,IACZpyH,IAETlsE,KAAKuK,OAAS,GACdvK,KAAK4V,MAAQ,CAAC,GAEZy8D,IAAQryE,KAAK2K,SAAW0nE,GACxBmqH,EAAgBkB,IAAe19L,KAAKyK,WAAazK,KAAK2K,WACxD3K,KAAK2K,SAAW,KAId3K,KAAK2K,UAAY3K,KAAKuK,OAAQ,CAC5B2F,EAAIlQ,KAAK2K,UAAY,GAAzB,IACImK,EAAI9U,KAAKuK,QAAU,GACvBvK,KAAK6I,KAAOqH,EAAI4E,CAClB,CAIA,OADA9U,KAAKmK,KAAOnK,KAAK41J,SACV51J,IACT,EAeAy7L,EAAIt8L,UAAUy2J,OAAS,WACrB,IAAI56J,EAAOgF,KAAKhF,MAAQ,GACpBA,IACFA,EAAOI,mBAAmBJ,GAC1BA,EAAOA,EAAKoI,QAAQ,OAAQ,KAC5BpI,GAAQ,KAGV,IAAIqP,EAAWrK,KAAKqK,UAAY,GAC9BM,EAAW3K,KAAK2K,UAAY,GAC5BH,EAAOxK,KAAKwK,MAAQ,GACpBF,GAAO,EACPsL,EAAQ,GAEN5V,KAAKsK,KACPA,EAAOtP,EAAOgF,KAAKsK,KACVtK,KAAKyK,WACdH,EAAOtP,IAAwC,IAAhCgF,KAAKyK,SAAS5N,QAAQ,KAAcmD,KAAKyK,SAAW,IAAMzK,KAAKyK,SAAW,KACrFzK,KAAK0K,OACPJ,GAAQ,IAAMtK,KAAK0K,OAInB1K,KAAK4V,OAA+B,kBAAf5V,KAAK4V,OAAsB7P,OAAOC,KAAKhG,KAAK4V,OAAOhV,SAC1EgV,EAAQu2D,EAAYjlE,UAAUlH,KAAK4V,MAAO,CACxCklL,YAAa,SACbjB,gBAAgB,KAIpB,IAAItvL,EAASvK,KAAKuK,QAAWqL,GAAU,IAAMA,GAAW,GAuBxD,OArBIvL,GAAoC,MAAxBA,EAASgB,QAAQ,KAAchB,GAAY,KAMvDrK,KAAKwZ,WAAanP,GAAYmyL,EAAgBnyL,MAAuB,IAATC,GAC9DA,EAAO,MAAQA,GAAQ,IACnBK,GAAmC,MAAvBA,EAASC,OAAO,KAAcD,EAAW,IAAMA,IACrDL,IACVA,EAAO,IAGLE,GAA2B,MAAnBA,EAAKI,OAAO,KAAcJ,EAAO,IAAMA,GAC/CD,GAA+B,MAArBA,EAAOK,OAAO,KAAcL,EAAS,IAAMA,GAEzDI,EAAWA,EAASvH,QAAQ,SAAS,SAAUiG,GAC7C,OAAOjO,mBAAmBiO,EAC5B,IACAkB,EAASA,EAAOnH,QAAQ,IAAK,OAEtBiH,EAAWC,EAAOK,EAAWJ,EAASC,CAC/C,EAMAixL,EAAIt8L,UAAUnF,QAAU,SAAUkjM,GAChC,OAAOl9L,KAAKo9L,cAAcN,EAASI,GAAU,GAAO,IAAOtnC,QAC7D,EAOA6lC,EAAIt8L,UAAUi+L,cAAgB,SAAUF,GACtC,GAAwB,kBAAbA,EAAuB,CAChC,IAAIqB,EAAM,IAAI9C,EACd8C,EAAIx3L,MAAMm2L,GAAU,GAAO,GAC3BA,EAAWqB,CACb,CAIA,IAFA,IAAI1yL,EAAS,IAAI4vL,EACb+C,EAAQz4L,OAAOC,KAAKhG,MACfy+L,EAAK,EAAGA,EAAKD,EAAM59L,OAAQ69L,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACjB5yL,EAAO6yL,GAAQ1+L,KAAK0+L,EACtB,CASA,GAHA7yL,EAAOrB,KAAO0yL,EAAS1yL,KAGD,KAAlB0yL,EAAS/yL,KAEX,OADA0B,EAAO1B,KAAO0B,EAAO+pJ,SACd/pJ,EAIT,GAAIqxL,EAAS1jL,UAAY0jL,EAAS7yL,SAAU,CAG1C,IADA,IAAIs0L,EAAQ54L,OAAOC,KAAKk3L,GACf0B,EAAK,EAAGA,EAAKD,EAAM/9L,OAAQg+L,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACJ,aAATC,IAAuBhzL,EAAOgzL,GAAQ3B,EAAS2B,GACrD,CASA,OANIrC,EAAgB3wL,EAAOxB,WAAawB,EAAOpB,WAAaoB,EAAOlB,WACjEkB,EAAOlB,SAAW,IAClBkB,EAAOhD,KAAOgD,EAAOlB,UAGvBkB,EAAO1B,KAAO0B,EAAO+pJ,SACd/pJ,CACT,CAEA,GAAIqxL,EAAS7yL,UAAY6yL,EAAS7yL,WAAawB,EAAOxB,SAAU,CAW9D,IAAKmyL,EAAgBU,EAAS7yL,UAAW,CAEvC,IADA,IAAIrE,EAAOD,OAAOC,KAAKk3L,GACd70L,EAAI,EAAGA,EAAIrC,EAAKpF,OAAQyH,IAAK,CACpC,IAAIgP,EAAIrR,EAAKqC,GACbwD,EAAOwL,GAAK6lL,EAAS7lL,EACvB,CAEA,OADAxL,EAAO1B,KAAO0B,EAAO+pJ,SACd/pJ,CACT,CAGA,GADAA,EAAOxB,SAAW6yL,EAAS7yL,SACtB6yL,EAAS5yL,MAASiyL,EAAiBW,EAAS7yL,UAS/CwB,EAAOlB,SAAWuyL,EAASvyL,aAT+B,CAC1D,IAAIm0L,GAAW5B,EAASvyL,UAAY,IAAIQ,MAAM,KAC9C,MAAO2zL,EAAQl+L,UAAYs8L,EAAS5yL,KAAOw0L,EAAQh8L,UAC9Co6L,EAAS5yL,OAAQ4yL,EAAS5yL,KAAO,IACjC4yL,EAASzyL,WAAYyyL,EAASzyL,SAAW,IAC3B,KAAfq0L,EAAQ,IAAaA,EAAQx8L,QAAQ,IACrCw8L,EAAQl+L,OAAS,GAAKk+L,EAAQx8L,QAAQ,IAC1CuJ,EAAOlB,SAAWm0L,EAAQt2L,KAAK,IACjC,CAUA,GAPAqD,EAAOtB,OAAS2yL,EAAS3yL,OACzBsB,EAAO+J,MAAQsnL,EAAStnL,MACxB/J,EAAOvB,KAAO4yL,EAAS5yL,MAAQ,GAC/BuB,EAAO7Q,KAAOkiM,EAASliM,KACvB6Q,EAAOpB,SAAWyyL,EAASzyL,UAAYyyL,EAAS5yL,KAChDuB,EAAOnB,KAAOwyL,EAASxyL,KAEnBmB,EAAOlB,UAAYkB,EAAOtB,OAAQ,CACpC,IAAI2F,EAAIrE,EAAOlB,UAAY,GACvBmK,EAAIjJ,EAAOtB,QAAU,GACzBsB,EAAOhD,KAAOqH,EAAI4E,CACpB,CAGA,OAFAjJ,EAAO2N,QAAU3N,EAAO2N,SAAW0jL,EAAS1jL,QAC5C3N,EAAO1B,KAAO0B,EAAO+pJ,SACd/pJ,CACT,CAEA,IAAIkzL,EAAclzL,EAAOlB,UAA0C,MAA9BkB,EAAOlB,SAASC,OAAO,GAC1Do0L,EAAW9B,EAAS5yL,MAAQ4yL,EAASvyL,UAA4C,MAAhCuyL,EAASvyL,SAASC,OAAO,GAC1Eq0L,EAAaD,GAAYD,GAAgBlzL,EAAOvB,MAAQ4yL,EAASvyL,SACjEu0L,EAAgBD,EAChBE,EAAUtzL,EAAOlB,UAAYkB,EAAOlB,SAASQ,MAAM,MAAQ,GAE3Di0L,GADAN,EAAU5B,EAASvyL,UAAYuyL,EAASvyL,SAASQ,MAAM,MAAQ,GACnDU,EAAOxB,WAAamyL,EAAgB3wL,EAAOxB,WA2BzD,GAlBI+0L,IACFvzL,EAAOpB,SAAW,GAClBoB,EAAOnB,KAAO,KACVmB,EAAOvB,OACU,KAAf60L,EAAQ,GAAaA,EAAQ,GAAKtzL,EAAOvB,KAAe60L,EAAQ78L,QAAQuJ,EAAOvB,OAErFuB,EAAOvB,KAAO,GACV4yL,EAAS7yL,WACX6yL,EAASzyL,SAAW,KACpByyL,EAASxyL,KAAO,KACZwyL,EAAS5yL,OACQ,KAAfw0L,EAAQ,GAAaA,EAAQ,GAAK5B,EAAS5yL,KAAew0L,EAAQx8L,QAAQ46L,EAAS5yL,OAEzF4yL,EAAS5yL,KAAO,MAElB20L,EAAaA,IAA8B,KAAfH,EAAQ,IAA4B,KAAfK,EAAQ,KAGvDH,EAEFnzL,EAAOvB,KAAO4yL,EAAS5yL,MAA0B,KAAlB4yL,EAAS5yL,KAAc4yL,EAAS5yL,KAAOuB,EAAOvB,KAC7EuB,EAAOpB,SAAWyyL,EAASzyL,UAAkC,KAAtByyL,EAASzyL,SAAkByyL,EAASzyL,SAAWoB,EAAOpB,SAC7FoB,EAAOtB,OAAS2yL,EAAS3yL,OACzBsB,EAAO+J,MAAQsnL,EAAStnL,MACxBupL,EAAUL,OAEL,GAAIA,EAAQl+L,OAKZu+L,IAAWA,EAAU,IAC1BA,EAAQzkL,MACRykL,EAAUA,EAAQt8L,OAAOi8L,GACzBjzL,EAAOtB,OAAS2yL,EAAS3yL,OACzBsB,EAAO+J,MAAQsnL,EAAStnL,WACnB,GAAuB,MAAnBsnL,EAAS3yL,OAAgB,CAMlC,GAAI60L,EAAW,CACbvzL,EAAOvB,KAAO60L,EAAQr8L,QACtB+I,EAAOpB,SAAWoB,EAAOvB,KAMzB,IAAI+0L,KAAaxzL,EAAOvB,MAAQuB,EAAOvB,KAAKzN,QAAQ,KAAO,IAAIgP,EAAOvB,KAAKa,MAAM,KAC7Ek0L,IACFxzL,EAAO7Q,KAAOqkM,EAAWv8L,QACzB+I,EAAOpB,SAAW40L,EAAWv8L,QAC7B+I,EAAOvB,KAAOuB,EAAOpB,SAEzB,CAQA,OAPAoB,EAAOtB,OAAS2yL,EAAS3yL,OACzBsB,EAAO+J,MAAQsnL,EAAStnL,MAEA,OAApB/J,EAAOlB,UAAuC,OAAlBkB,EAAOtB,SACrCsB,EAAOhD,MAAQgD,EAAOlB,SAAWkB,EAAOlB,SAAW,KAAOkB,EAAOtB,OAASsB,EAAOtB,OAAS,KAE5FsB,EAAO1B,KAAO0B,EAAO+pJ,SACd/pJ,CACT,CAEA,IAAKszL,EAAQv+L,OAaX,OARAiL,EAAOlB,SAAW,KAEdkB,EAAOtB,OACTsB,EAAOhD,KAAO,IAAMgD,EAAOtB,OAE3BsB,EAAOhD,KAAO,KAEhBgD,EAAO1B,KAAO0B,EAAO+pJ,SACd/pJ,EAgBT,IARA,IAAI28E,EAAO22G,EAAQ35L,OAAO,GAAG,GACzBqpB,GAAoBhjB,EAAOvB,MAAQ4yL,EAAS5yL,MAAQ60L,EAAQv+L,OAAS,KAAgB,MAAT4nF,GAAyB,OAATA,IAA2B,KAATA,EAM9GwlC,EAAK,EACAttH,EAAIy+L,EAAQv+L,OAAQF,GAAK,EAAGA,IACnC8nF,EAAO22G,EAAQz+L,GACF,MAAT8nF,EACF22G,EAAQ/9L,OAAOV,EAAG,GACA,OAAT8nF,GACT22G,EAAQ/9L,OAAOV,EAAG,GAClBstH,KACSA,IACTmxE,EAAQ/9L,OAAOV,EAAG,GAClBstH,KAKJ,IAAKixE,IAAeC,EAClB,KAAOlxE,IAAMA,EACXmxE,EAAQ78L,QAAQ,OAIhB28L,GAA6B,KAAfE,EAAQ,IAAeA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGv0L,OAAO,IACvEu0L,EAAQ78L,QAAQ,IAGdusB,GAAsD,MAAjCswK,EAAQ32L,KAAK,KAAK6C,QAAQ,IACjD8zL,EAAQj+L,KAAK,IAGf,IAAIo+L,EAA4B,KAAfH,EAAQ,IAAcA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGv0L,OAAO,GAGvE,GAAIw0L,EAAW,CACbvzL,EAAOpB,SAAW60L,EAAa,GAAKH,EAAQv+L,OAASu+L,EAAQr8L,QAAU,GACvE+I,EAAOvB,KAAOuB,EAAOpB,SAMjB40L,KAAaxzL,EAAOvB,MAAQuB,EAAOvB,KAAKzN,QAAQ,KAAO,IAAIgP,EAAOvB,KAAKa,MAAM,KAC7Ek0L,IACFxzL,EAAO7Q,KAAOqkM,EAAWv8L,QACzB+I,EAAOpB,SAAW40L,EAAWv8L,QAC7B+I,EAAOvB,KAAOuB,EAAOpB,SAEzB,CAsBA,OApBAw0L,EAAaA,GAAepzL,EAAOvB,MAAQ60L,EAAQv+L,OAE/Cq+L,IAAeK,GACjBH,EAAQ78L,QAAQ,IAGd68L,EAAQv+L,OAAS,EACnBiL,EAAOlB,SAAWw0L,EAAQ32L,KAAK,MAE/BqD,EAAOlB,SAAW,KAClBkB,EAAOhD,KAAO,MAIQ,OAApBgD,EAAOlB,UAAuC,OAAlBkB,EAAOtB,SACrCsB,EAAOhD,MAAQgD,EAAOlB,SAAWkB,EAAOlB,SAAW,KAAOkB,EAAOtB,OAASsB,EAAOtB,OAAS,KAE5FsB,EAAO7Q,KAAOkiM,EAASliM,MAAQ6Q,EAAO7Q,KACtC6Q,EAAO2N,QAAU3N,EAAO2N,SAAW0jL,EAAS1jL,QAC5C3N,EAAO1B,KAAO0B,EAAO+pJ,SACd/pJ,CACT,EAEA4vL,EAAIt8L,UAAU2+L,UAAY,WACxB,IAAIxzL,EAAOtK,KAAKsK,KACZI,EAAOixL,EAAY/7K,KAAKtV,GACxBI,IACFA,EAAOA,EAAK,GACC,MAATA,IACF1K,KAAK0K,KAAOA,EAAKW,OAAO,IAE1Bf,EAAOA,EAAKe,OAAO,EAAGf,EAAK1J,OAAS8J,EAAK9J,SAEvC0J,IAAQtK,KAAKyK,SAAWH,EAC9B,EAEAnR,EAAQ,GAAQ2jM,EAGhB3jM,EAAQ,GAAS6jM,C,mCCjwBjB7jM,EAAQ,EAAU,CAAComM,EAAK38K,KACpB,MAAMvd,EAASk6L,EAAIniF,WAAamiF,EAChC,IAAK,MAAOzhM,EAAKD,KAAQ+kB,EACrBvd,EAAOvH,GAAOD,EAElB,OAAOwH,CAAM,C,mBCTjB,SAAU4B,EAAE4N,GAAuD3b,EAAOC,QAAQ0b,GAAoJ,EAAtO,CAAwO,qBAAqBkP,MAAKA,MAAU,WAAY,OAAO,SAAS9c,GAAG,IAAI4N,EAAE,CAAC,EAAE,SAASjC,EAAEI,GAAG,GAAG6B,EAAE7B,GAAG,OAAO6B,EAAE7B,GAAG7Z,QAAQ,IAAIwZ,EAAEkC,EAAE7B,GAAG,CAACtS,EAAEsS,EAAErS,GAAE,EAAGxH,QAAQ,CAAC,GAAG,OAAO8N,EAAE+L,GAAG5O,KAAKuO,EAAExZ,QAAQwZ,EAAEA,EAAExZ,QAAQyZ,GAAGD,EAAEhS,GAAE,EAAGgS,EAAExZ,OAAO,CAAC,OAAOyZ,EAAEC,EAAE5L,EAAE2L,EAAEtR,EAAEuT,EAAEjC,EAAE7C,EAAE,SAAS9I,EAAE4N,EAAE7B,GAAGJ,EAAED,EAAE1L,EAAE4N,IAAI9O,OAAOuc,eAAerb,EAAE4N,EAAE,CAACoN,YAAW,EAAGzF,IAAIxJ,GAAG,EAAEJ,EAAEI,EAAE,SAAS/L,GAAG,qBAAqB6L,QAAQA,OAAOyM,aAAaxZ,OAAOuc,eAAerb,EAAE6L,OAAOyM,YAAY,CAACrjB,MAAM,WAAW6J,OAAOuc,eAAerb,EAAE,aAAa,CAAC/K,OAAM,GAAI,EAAE0W,EAAEiC,EAAE,SAAS5N,EAAE4N,GAAG,GAAG,EAAEA,IAAI5N,EAAE2L,EAAE3L,IAAI,EAAE4N,EAAE,OAAO5N,EAAE,GAAG,EAAE4N,GAAG,kBAAkB5N,GAAGA,GAAGA,EAAE4pI,WAAW,OAAO5pI,EAAE,IAAI+L,EAAEjN,OAAO1G,OAAO,MAAM,GAAGuT,EAAEI,EAAEA,GAAGjN,OAAOuc,eAAetP,EAAE,UAAU,CAACiP,YAAW,EAAG/lB,MAAM+K,IAAI,EAAE4N,GAAG,iBAAiB5N,EAAE,IAAI,IAAI0L,KAAK1L,EAAE2L,EAAE7C,EAAEiD,EAAEL,EAAE,SAASkC,GAAG,OAAO5N,EAAE4N,EAAE,EAAEjW,KAAK,KAAK+T,IAAI,OAAOK,CAAC,EAAEJ,EAAEA,EAAE,SAAS3L,GAAG,IAAI4N,EAAE5N,GAAGA,EAAE4pI,WAAW,WAAW,OAAO5pI,EAAE,UAAU,EAAE,WAAW,OAAOA,CAAC,EAAE,OAAO2L,EAAE7C,EAAE8E,EAAE,IAAIA,GAAGA,CAAC,EAAEjC,EAAED,EAAE,SAAS1L,EAAE4N,GAAG,OAAO9O,OAAO5G,UAAU0N,eAAezI,KAAK6C,EAAE4N,EAAE,EAAEjC,EAAE1C,EAAE,GAAG0C,EAAEA,EAAEkC,EAAE,OAAO,CAA75B,CAA+5B,CAAC,KAAK,SAAS7N,EAAE4N,EAAEjC,GAAG,IAAII,EAAEL,EAAEjS,GAAE,SAAUkS,EAAEtR,GAAGqR,EAAE,GAAGK,EAAE1R,EAAEZ,EAAE,oBAAoBsS,EAAEA,EAAEpQ,MAAMiS,EAAElC,GAAGK,OAAE,IAAStS,IAAIuG,EAAE9N,QAAQuH,EAAG,EAAzF,CAA2F,qBAAqBqjB,MAAMA,MAAK,WAAY,SAAS9c,IAAI,IAAI4N,EAAE9O,OAAOic,yBAAyB5Y,SAAS,iBAAiB,IAAIyL,GAAG,kBAAkBzL,UAAUA,SAASo2L,cAAc,OAAOp2L,SAASo2L,cAAc,GAAG3qL,GAAGA,EAAE2H,MAAMvV,GAAGmC,SAASo2L,cAAc,OAAOp2L,SAASo2L,cAAc,IAAI,MAAM,IAAIv7L,KAAK,CAAC,MAAM6Q,GAAG,IAAIlC,EAAEI,EAAEL,EAAEjS,EAAE,kCAAkCY,EAAE,6BAA6ByL,EAAErM,EAAEkf,KAAK9K,EAAE7P,QAAQ3D,EAAEse,KAAK9K,EAAE7P,OAAO6/E,EAAE/3E,GAAGA,EAAE,KAAI,EAAGmD,EAAEnD,GAAGA,EAAE,KAAI,EAAGgD,EAAE3G,SAAS0B,SAASX,KAAK/G,QAAQgG,SAAS0B,SAASN,KAAK,IAAIqI,EAAEzJ,SAAS8zK,qBAAqB,UAAUp4F,IAAI/0E,IAAI6C,EAAExJ,SAASgzK,gBAAgBqjB,UAAUzsL,EAAE,IAAI1J,OAAO,sBAAsB4G,EAAE,GAAG,iDAAiD,KAAKyC,EAAEC,EAAExP,QAAQ4P,EAAE,MAAMhM,QAAQ,IAAI,IAAIrG,EAAE,EAAEA,EAAEkS,EAAEjS,OAAOD,IAAI,CAAC,GAAG,gBAAgBkS,EAAElS,GAAGhE,WAAW,OAAOkW,EAAElS,GAAG,GAAGkS,EAAElS,GAAG0U,MAAMyvE,EAAE,OAAOjyE,EAAElS,GAAG,GAAGmkF,IAAI/0E,GAAG8C,EAAElS,GAAG4gH,WAAW1uG,EAAElS,GAAG4gH,UAAUv6G,SAAS2L,EAAE,OAAOE,EAAElS,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,OAAOsG,CAAE,GAAE,EAAEy4L,KAAK,SAASz4L,EAAE4N,EAAEjC,GAAG,aAAa,GAAGA,EAAEI,EAAE6B,GAAG,qBAAqBhK,OAAO,CAAC,IAAImI,EAAEnI,OAAOzB,SAASo2L,cAAc7sL,EAAEC,EAAE,QAAQI,EAAEL,IAAI,kBAAkBvJ,UAAUrD,OAAOuc,eAAelZ,SAAS,gBAAgB,CAACoT,IAAI7J,IAAI,IAAIjS,EAAEsS,GAAGA,EAAEqC,IAAIhM,MAAM,2BAA2B3I,IAAIkS,EAAE1C,EAAExP,EAAE,GAAG,CAAC,SAASY,IAAI,IAAI2F,GAAE,EAAG,OAAO,SAAS4N,IAAI,2TAA2TnL,KAAKmL,IAAI,0kDAA0kDnL,KAAKmL,EAAExJ,OAAO,EAAE,OAAOpE,GAAE,EAAG,CAAv7D,CAAy7D6C,UAAUC,WAAWD,UAAU8uI,QAAQ/tI,OAAO6pI,OAAOztI,CAAC,CAAC,IAAI8F,EAAE,CAACo/F,QAAQ,SAASllG,GAAGA,EAAEnN,OAAOwtG,iBAAiBq4F,UAAUr+L,CAAC,GAAGuT,EAAE,WAAW9H,CAAC,GAAI,G,sHCAn+H,SAASm1I,EAAEj7I,GAAG,OAAOi7I,EAAE,mBAAmBpvI,QAAQ,iBAAiBA,OAAOC,SAAS,SAAS9L,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmB6L,QAAQ7L,EAAEmF,cAAc0G,QAAQ7L,IAAI6L,OAAO3T,UAAU,gBAAgB8H,CAAC,GAAGA,EAAE,CAAC,SAASm7I,EAAEn7I,GAAG,OAAO,SAASA,GAAG,GAAGtE,MAAM4C,QAAQ0B,GAAG,OAAO0S,EAAE1S,EAAE,CAA3C,CAA6CA,IAAI,SAASA,GAAG,GAAG,oBAAoB6L,QAAQ,MAAM7L,EAAE6L,OAAOC,WAAW,MAAM9L,EAAE,cAAc,OAAOtE,MAAM49B,KAAKt5B,EAAE,CAA/G,CAAiHA,IAAI24L,EAAE34L,IAAI,WAAW,MAAM,IAAI7G,UAAU,uIAAuI,CAAtK,EAAyK,CAAC,SAASw/L,EAAE34L,EAAE4N,GAAG,GAAG5N,EAAE,CAAC,GAAG,iBAAiBA,EAAE,OAAO0S,EAAE1S,EAAE4N,GAAG,IAAIjC,EAAE7M,OAAO5G,UAAUc,SAASmE,KAAK6C,GAAGzB,MAAM,GAAG,GAAG,MAAM,WAAWoN,GAAG3L,EAAEmF,cAAcwG,EAAE3L,EAAEmF,YAAYzH,MAAM,QAAQiO,GAAG,QAAQA,EAAEjQ,MAAM49B,KAAKt5B,GAAG,cAAc2L,GAAG,2CAA2ClJ,KAAKkJ,GAAG+G,EAAE1S,EAAE4N,QAAG,CAAM,CAAC,CAAC,SAAS8E,EAAE1S,EAAE4N,IAAI,MAAMA,GAAGA,EAAE5N,EAAErG,UAAUiU,EAAE5N,EAAErG,QAAQ,IAAI,IAAIgS,EAAE,EAAED,EAAE,IAAIhQ,MAAMkS,GAAGjC,EAAEiC,EAAEjC,IAAID,EAAEC,GAAG3L,EAAE2L,GAAG,OAAOD,CAAC,CAAC,SAASskH,EAAEhwH,EAAE4N,GAAG,IAAIjC,EAAE,oBAAoBE,QAAQ7L,EAAE6L,OAAOC,WAAW9L,EAAE,cAAc,IAAI2L,EAAE,CAAC,GAAGjQ,MAAM4C,QAAQ0B,KAAK2L,EAAEgtL,EAAE34L,KAAK4N,GAAG5N,GAAG,iBAAiBA,EAAErG,OAAO,CAACgS,IAAI3L,EAAE2L,GAAG,IAAID,EAAE,EAAEK,EAAE,WAAW,EAAE,MAAM,CAAC8B,EAAE9B,EAAEJ,EAAE,WAAW,OAAOD,GAAG1L,EAAErG,OAAO,CAACpG,MAAK,GAAI,CAACA,MAAK,EAAG0B,MAAM+K,EAAE0L,KAAK,EAAE1L,EAAE,SAASA,GAAG,MAAMA,CAAC,EAAE+S,EAAEhH,EAAE,CAAC,MAAM,IAAI5S,UAAU,wIAAwI,CAAC,IAAI2M,EAAErM,GAAE,EAAGC,GAAE,EAAG,MAAM,CAACmU,EAAE,WAAWlC,EAAEA,EAAExO,KAAK6C,EAAE,EAAE2L,EAAE,WAAW,IAAI3L,EAAE2L,EAAEM,OAAO,OAAOxS,EAAEuG,EAAEzM,KAAKyM,CAAC,EAAEA,EAAE,SAASA,GAAGtG,GAAE,EAAGoM,EAAE9F,CAAC,EAAE+S,EAAE,WAAW,IAAItZ,GAAG,MAAMkS,EAAEyuB,QAAQzuB,EAAEyuB,QAAQ,CAAC,QAAQ,GAAG1gC,EAAE,MAAMoM,CAAC,CAAC,EAAE,CAAC,IAAIq7I,EAAE,MAAMR,EAAE,SAAS9hD,EAAE,QAAQ+5F,EAAE,OAAOC,EAAE,CAAC13C,EAAER,EAAE9hD,EAAE+5F,GAAGjmE,EAAEkmE,EAAEzjL,QAAO,SAAUpV,EAAE4N,GAAG,OAAO5N,EAAEpE,OAAO,CAACgS,EAAE,SAASA,EAAE,QAAS,GAAE,IAAIsF,EAAE,GAAGtX,OAAOi9L,EAAE,CAAC,SAASzjL,QAAO,SAAUpV,EAAE4N,GAAG,OAAO5N,EAAEpE,OAAO,CAACgS,EAAEA,EAAE,SAASA,EAAE,QAAS,GAAE,IAAIkrL,EAAE,CAAC,aAAa,OAAO,YAAY,aAAa,OAAO,YAAY,cAAc,QAAQ,cAAc,SAASC,EAAE/4L,GAAG,OAAOA,GAAGA,EAAEisJ,UAAU,IAAIn1J,cAAc,IAAI,CAAC,SAASkiM,EAAEh5L,GAAG,GAAG,MAAMA,EAAE,OAAO4D,OAAO,GAAG,oBAAoB5D,EAAEhH,WAAW,CAAC,IAAI4U,EAAE5N,EAAEgtK,cAAc,OAAOp/J,GAAGA,EAAEqrL,aAAar1L,MAAM,CAAC,OAAO5D,CAAC,CAAC,SAASk5L,EAAEl5L,GAAG,OAAOA,aAAag5L,EAAEh5L,GAAGwnH,SAASxnH,aAAawnH,OAAO,CAAC,SAAS2xE,EAAEn5L,GAAG,OAAOA,aAAag5L,EAAEh5L,GAAG8hH,aAAa9hH,aAAa8hH,WAAW,CAAC,SAASs3E,EAAEp5L,GAAG,MAAM,oBAAoBu5K,aAAav5K,aAAag5L,EAAEh5L,GAAGu5K,YAAYv5K,aAAau5K,WAAW,CAAC,IAAI34B,EAAE,CAACljJ,KAAK,cAAcg/C,SAAQ,EAAG28I,MAAM,QAAQ58L,GAAG,SAASuD,GAAG,IAAI4N,EAAE5N,EAAEizC,MAAMn0C,OAAOC,KAAK6O,EAAE0rL,UAAU3iM,SAAQ,SAAUqJ,GAAG,IAAI2L,EAAEiC,EAAE+vG,OAAO39G,IAAI,CAAC,EAAE0L,EAAEkC,EAAE2uC,WAAWv8C,IAAI,CAAC,EAAE+L,EAAE6B,EAAE0rL,SAASt5L,GAAGm5L,EAAEptL,IAAIgtL,EAAEhtL,KAAKjN,OAAOkJ,OAAO+D,EAAEyhG,MAAM7hG,GAAG7M,OAAOC,KAAK2M,GAAG/U,SAAQ,SAAUqJ,GAAG,IAAI4N,EAAElC,EAAE1L,IAAG,IAAK4N,EAAE7B,EAAE4yG,gBAAgB3+G,GAAG+L,EAAE5I,aAAanD,GAAE,IAAK4N,EAAE,GAAGA,EAAG,IAAI,GAAE,EAAE8zE,OAAO,SAAS1hF,GAAG,IAAI4N,EAAE5N,EAAEizC,MAAMtnC,EAAE,CAAC4tL,OAAO,CAAC/gL,SAAS5K,EAAEtR,QAAQk9L,SAAS97J,KAAK,IAAI0lF,IAAI,IAAIqyD,OAAO,KAAKjI,MAAM,CAACh1J,SAAS,YAAYihL,UAAU,CAAC,GAAG,OAAO36L,OAAOkJ,OAAO4F,EAAE0rL,SAASC,OAAO/rF,MAAM7hG,EAAE4tL,QAAQ3rL,EAAE+vG,OAAOhyG,EAAEiC,EAAE0rL,SAAS9rB,OAAO1uK,OAAOkJ,OAAO4F,EAAE0rL,SAAS9rB,MAAMhgE,MAAM7hG,EAAE6hK,OAAO,WAAW1uK,OAAOC,KAAK6O,EAAE0rL,UAAU3iM,SAAQ,SAAUqJ,GAAG,IAAI0L,EAAEkC,EAAE0rL,SAASt5L,GAAG+L,EAAE6B,EAAE2uC,WAAWv8C,IAAI,CAAC,EAAE8F,EAAEhH,OAAOC,KAAK6O,EAAE+vG,OAAO/3G,eAAe5F,GAAG4N,EAAE+vG,OAAO39G,GAAG2L,EAAE3L,IAAIoV,QAAO,SAAUpV,EAAE4N,GAAG,OAAO5N,EAAE4N,GAAG,GAAG5N,CAAE,GAAE,CAAC,GAAGm5L,EAAEztL,IAAIqtL,EAAErtL,KAAK5M,OAAOkJ,OAAO0D,EAAE8hG,MAAM1nG,GAAGhH,OAAOC,KAAKgN,GAAGpV,SAAQ,SAAUqJ,GAAG0L,EAAEizG,gBAAgB3+G,EAAG,IAAI,GAAE,CAAC,EAAE05L,SAAS,CAAC,kBAAkBC,EAAG,oBAAoB,EAAA1mL,EAAO,EAAAA,EAAO,oBAAoB6J,KAAKA,KAAK,oBAAoBlZ,OAAOA,OAAO,CAAC,EAAgG,SAASmlE,EAAG/oE,EAAE4N,GAAG7U,KAAK6gM,IAAI55L,EAAEjH,KAAKimB,MAAMpR,CAAC,CAAtI,mBAAmB+rL,EAAG9jM,YAAYA,WAAW,mBAAmB8jM,EAAGxyJ,cAAcA,aAAsD4hC,EAAG7wE,UAAU+oF,IAAI,WAAWloF,KAAK6gM,IAAIj+L,MAAM,KAAK5C,KAAKimB,MAAM,EAAE,IAAI66K,EAAGF,EAAG11F,aAAa,CAAC,EAAE41F,EAAGr3L,KAAKq3L,EAAGC,QAAQD,EAAGE,OAAOF,EAAGG,MAAMH,EAAGI,UAAU,IAAIh4L,KAAK,IAAIi4L,EAAG,CAAC,EAAE,SAASC,EAAGn6L,GAAG,OAAOA,EAAEkE,MAAM,KAAK,EAAE,CAAC,SAASkzL,EAAGp3L,EAAE4N,GAAG,IAAIjC,EAAE3L,EAAE8iH,wBAAwB,MAAM,CAACiuD,MAAMplK,EAAEolK,MAAM,EAAE/E,OAAOrgK,EAAEqgK,OAAO,EAAE5oD,IAAIz3G,EAAEy3G,IAAI,EAAEzlF,MAAMhyB,EAAEgyB,MAAM,EAAE2zI,OAAO3lK,EAAE2lK,OAAO,EAAE5zI,KAAK/xB,EAAE+xB,KAAK,EAAE1F,EAAErsB,EAAE+xB,KAAK,EAAE1qB,EAAErH,EAAEy3G,IAAI,EAAE,CAAC,SAAS+pB,EAAGntI,GAAG,IAAI4N,EAAEwpL,EAAGp3L,GAAG2L,EAAE3L,EAAEg1K,YAAYtpK,EAAE1L,EAAEw+G,aAAa,OAAOl3G,KAAK+F,IAAIO,EAAEmjK,MAAMplK,IAAI,IAAIA,EAAEiC,EAAEmjK,OAAOzpK,KAAK+F,IAAIO,EAAEo+J,OAAOtgK,IAAI,IAAIA,EAAEkC,EAAEo+J,QAAQ,CAACh0I,EAAEh4B,EAAEo6L,WAAWpnL,EAAEhT,EAAEq6L,UAAUtpB,MAAMplK,EAAEqgK,OAAOtgK,EAAE,CAAC,SAAS4uL,EAAGt6L,EAAE4N,GAAG,IAAIjC,EAAEiC,EAAE2sL,aAAa3sL,EAAE2sL,cAAc,GAAGv6L,EAAE+8J,SAASnvJ,GAAG,OAAM,EAAG,GAAGjC,GAAGytL,EAAEztL,GAAG,CAAC,IAAID,EAAEkC,EAAE,EAAE,CAAC,GAAGlC,GAAG1L,EAAEitK,WAAWvhK,GAAG,OAAM,EAAGA,EAAEA,EAAE8+F,YAAY9+F,EAAErI,IAAI,OAAOqI,EAAE,CAAC,OAAM,CAAE,CAAC,SAAS8uL,EAAGx6L,GAAG,OAAOg5L,EAAEh5L,GAAG49G,iBAAiB59G,EAAE,CAAC,SAASy6L,EAAGz6L,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAMpK,QAAQmjM,EAAE/4L,KAAK,CAAC,CAAC,SAAS02G,EAAG12G,GAAG,QAAQk5L,EAAEl5L,GAAGA,EAAEgtK,cAAchtK,EAAEmC,WAAWyB,OAAOzB,UAAUgzK,eAAe,CAAC,SAASulB,EAAG16L,GAAG,MAAM,SAAS+4L,EAAE/4L,GAAGA,EAAEA,EAAE26L,cAAc36L,EAAEwqG,aAAa4uF,EAAEp5L,GAAGA,EAAEqD,KAAK,OAAOqzG,EAAG12G,EAAE,CAAC,SAAS46L,EAAG56L,GAAG,OAAOm5L,EAAEn5L,IAAI,UAAUw6L,EAAGx6L,GAAGwY,SAASxY,EAAE6rK,aAAa,IAAI,CAAC,SAASgvB,EAAG76L,GAAG,IAAI,IAAI4N,EAAEorL,EAAEh5L,GAAG2L,EAAEivL,EAAG56L,GAAG2L,GAAG8uL,EAAG9uL,IAAI,WAAW6uL,EAAG7uL,GAAG6M,UAAU7M,EAAEivL,EAAGjvL,GAAG,OAAOA,IAAI,SAASotL,EAAEptL,IAAI,SAASotL,EAAEptL,IAAI,WAAW6uL,EAAG7uL,GAAG6M,UAAU5K,EAAEjC,GAAG,SAAS3L,GAAG,IAAI4N,GAAG,IAAI/K,UAAUC,UAAUhM,cAAclB,QAAQ,WAAW,IAAI,IAAIiN,UAAUC,UAAUlN,QAAQ,YAAYujM,EAAEn5L,IAAI,UAAUw6L,EAAGx6L,GAAGwY,SAAS,OAAO,KAAK,IAAI,IAAI7M,EAAE+uL,EAAG16L,GAAGm5L,EAAExtL,IAAI,CAAC,OAAO,QAAQ/V,QAAQmjM,EAAEptL,IAAI,GAAG,CAAC,IAAID,EAAE8uL,EAAG7uL,GAAG,GAAG,SAASD,EAAE+2G,WAAW,SAAS/2G,EAAEovL,aAAa,UAAUpvL,EAAEqvL,UAAU,IAAI,CAAC,YAAY,eAAenlM,QAAQ8V,EAAEsvL,aAAaptL,GAAG,WAAWlC,EAAEsvL,YAAYptL,GAAGlC,EAAEuO,QAAQ,SAASvO,EAAEuO,OAAO,OAAOtO,EAAEA,EAAEA,EAAE6+F,UAAU,CAAC,OAAO,IAAI,CAAvc,CAAycxqG,IAAI4N,CAAC,CAAC,SAASqtL,EAAGj7L,GAAG,MAAM,CAAC,MAAM,UAAUpK,QAAQoK,IAAI,EAAE,IAAI,GAAG,CAAC,IAAIk7L,EAAG5zL,KAAK8S,IAAI+gL,EAAG7zL,KAAKke,IAAI41K,EAAG9zL,KAAKkwC,MAAM,SAAS6jJ,EAAGr7L,EAAE4N,EAAEjC,GAAG,OAAOuvL,EAAGl7L,EAAEm7L,EAAGvtL,EAAEjC,GAAG,CAAC,SAAS2vL,EAAGt7L,GAAG,OAAOlB,OAAOkJ,OAAO,CAAC,EAAE,CAACo7G,IAAI,EAAEzlF,MAAM,EAAE2zI,OAAO,EAAE5zI,KAAK,GAAG19B,EAAE,CAAC,SAASu7L,EAAGv7L,EAAE4N,GAAG,OAAOA,EAAEwH,QAAO,SAAUxH,EAAEjC,GAAG,OAAOiC,EAAEjC,GAAG3L,EAAE4N,CAAE,GAAE,CAAC,EAAE,CAAC,SAAS4tL,EAAGx7L,GAAG,OAAOA,EAAEkE,MAAM,KAAK,EAAE,CAAC,IAAIu3L,EAAG,CAACr4E,IAAI,OAAOzlF,MAAM,OAAO2zI,OAAO,OAAO5zI,KAAK,QAAQ,SAASg+J,EAAG17L,GAAG,IAAI4N,EAAEjC,EAAE3L,EAAEu5L,OAAO7tL,EAAE1L,EAAE27L,WAAW5vL,EAAE/L,EAAE47L,UAAU91L,EAAE9F,EAAE67L,UAAUpiM,EAAEuG,EAAE87L,QAAQpiM,EAAEsG,EAAEwY,SAASqlE,EAAE79E,EAAE+7L,gBAAgBluL,EAAE7N,EAAEg8L,SAAS3hM,EAAE2F,EAAEi8L,aAAanzL,GAAE,IAAKzO,EAAE,SAAS2F,GAAG,IAAI4N,EAAE5N,EAAEg4B,EAAErsB,EAAE3L,EAAEgT,EAAEtH,EAAE9H,OAAOs4L,kBAAkB,EAAE,MAAM,CAAClkK,EAAEojK,EAAGA,EAAGxtL,EAAElC,GAAGA,IAAI,EAAEsH,EAAEooL,EAAGA,EAAGzvL,EAAED,GAAGA,IAAI,EAAE,CAAtG,CAAwGjS,GAAG,mBAAmBY,EAAEA,EAAEZ,GAAGA,EAAEsZ,EAAEjK,EAAEkvB,EAAE/uB,OAAE,IAAS8J,EAAE,EAAEA,EAAE3R,EAAE0H,EAAEkK,EAAEpH,OAAE,IAASxK,EAAE,EAAEA,EAAE1E,EAAEjD,EAAEmM,eAAe,KAAKqN,EAAExZ,EAAEmM,eAAe,KAAKoN,EAAE4lL,EAAE7yL,EAAEo7I,EAAEp/D,EAAEn+E,OAAO,GAAGiK,EAAE,CAAC,IAAImqB,EAAE6iK,EAAGlvL,GAAGq+I,EAAE,eAAer0B,EAAE,cAAc39F,IAAIghK,EAAErtL,IAAI,WAAW6uL,EAAGxiK,EAAE0+E,EAAG/qG,IAAI6M,UAAU,aAAa9e,IAAIswJ,EAAE,eAAer0B,EAAE,eAAmB5pH,IAAIo1I,IAAIp1I,IAAI6sL,GAAG7sL,IAAI8yF,GAAG,QAAQ/4F,KAAKC,EAAE46I,EAAE/0I,GAAGosB,EAAEgyH,GAAGt+I,EAAEsgK,OAAOpgK,GAAGiyE,EAAE,GAAG,GAAG9xE,IAAI6sL,IAAI7sL,IAAIo1I,GAAGp1I,IAAI40I,GAAG,QAAQ76I,KAAKkN,EAAE6rF,EAAE51F,GAAG+uB,EAAE29F,GAAGjqH,EAAEqlK,MAAM9nK,GAAG40E,EAAE,GAAG,EAAE,CAAC,IAAIs+G,EAAE/rL,EAAEtR,OAAOkJ,OAAO,CAACwQ,SAAS9e,GAAGmU,GAAG4tL,GAAI,OAAO59G,EAAE/+E,OAAOkJ,OAAO,CAAC,EAAEoI,IAAI+rL,EAAE,CAAC,GAAGp2L,GAAGkN,EAAE,IAAI,GAAGkpL,EAAEnpL,GAAGtW,EAAE,IAAI,GAAGy/L,EAAE15E,WAAW1gC,EAAEm6G,kBAAkB,IAAI,EAAE,aAAajzL,EAAE,OAAO2C,EAAE,MAAM,eAAe3C,EAAE,OAAO2C,EAAE,SAASuwL,IAAIr9L,OAAOkJ,OAAO,CAAC,EAAEoI,IAAIxC,EAAE,CAAC,GAAG7H,GAAGkN,EAAErH,EAAE,KAAK,GAAGgC,EAAEoF,GAAGtW,EAAEuM,EAAE,KAAK,GAAG2E,EAAE60G,UAAU,GAAG70G,GAAG,CAAC,IAAIwuL,EAAG,CAACC,SAAQ,GAAQC,EAAG,CAAC5+J,KAAK,QAAQC,MAAM,OAAO2zI,OAAO,MAAMluD,IAAI,UAAU,SAASm5E,EAAGv8L,GAAG,OAAOA,EAAE7D,QAAQ,0BAAyB,SAAU6D,GAAG,OAAOs8L,EAAGt8L,EAAG,GAAE,CAAC,IAAIw8L,EAAG,CAAC1jL,MAAM,MAAMkK,IAAI,SAAS,SAASy5K,GAAGz8L,GAAG,OAAOA,EAAE7D,QAAQ,cAAa,SAAU6D,GAAG,OAAOw8L,EAAGx8L,EAAG,GAAE,CAAC,SAAS08L,GAAG18L,GAAG,IAAI4N,EAAEorL,EAAEh5L,GAAG,MAAM,CAACu1K,WAAW3nK,EAAE0nK,YAAY7N,UAAU75J,EAAEwnK,YAAY,CAAC,SAASunB,GAAG38L,GAAG,OAAOo3L,EAAG1gF,EAAG12G,IAAI09B,KAAKg/J,GAAG18L,GAAGu1K,UAAU,CAAC,SAASqnB,GAAG58L,GAAG,IAAI4N,EAAE4sL,EAAGx6L,GAAG2L,EAAEiC,EAAEouK,SAAStwK,EAAEkC,EAAEivL,UAAU9wL,EAAE6B,EAAEkvL,UAAU,MAAM,6BAA6Br6L,KAAKkJ,EAAEI,EAAEL,EAAE,CAAC,SAASqxL,GAAG/8L,GAAG,MAAM,CAAC,OAAO,OAAO,aAAapK,QAAQmjM,EAAE/4L,KAAK,EAAEA,EAAEgtK,cAAc97J,KAAKioL,EAAEn5L,IAAI48L,GAAG58L,GAAGA,EAAE+8L,GAAGrC,EAAG16L,GAAG,CAAC,SAASg9L,GAAGh9L,EAAE4N,GAAG,IAAIjC,OAAE,IAASiC,IAAIA,EAAE,IAAI,IAAIlC,EAAEqxL,GAAG/8L,GAAG+L,EAAEL,KAAK,OAAOC,EAAE3L,EAAEgtK,oBAAe,EAAOrhK,EAAEuF,MAAMpL,EAAEkzL,EAAEttL,GAAGjS,EAAEsS,EAAE,CAACjG,GAAGlK,OAAOkK,EAAEm3L,gBAAgB,GAAGL,GAAGlxL,GAAGA,EAAE,IAAIA,EAAEhS,EAAEkU,EAAEhS,OAAOnC,GAAG,OAAOsS,EAAErS,EAAEA,EAAEkC,OAAOohM,GAAGtC,EAAGjhM,IAAI,CAAC,SAASyjM,GAAGl9L,GAAG,OAAOlB,OAAOkJ,OAAO,CAAC,EAAEhI,EAAE,CAAC09B,KAAK19B,EAAEg4B,EAAEorF,IAAIpjH,EAAEgT,EAAE2qB,MAAM39B,EAAEg4B,EAAEh4B,EAAE+wK,MAAMO,OAAOtxK,EAAEgT,EAAEhT,EAAEgsK,QAAQ,CAAC,SAASmxB,GAAGn9L,EAAE4N,GAAG,MAAM,aAAaA,EAAEsvL,GAAG,SAASl9L,GAAG,IAAI4N,EAAEorL,EAAEh5L,GAAG2L,EAAE+qG,EAAG12G,GAAG0L,EAAEkC,EAAEqvL,eAAelxL,EAAEJ,EAAEuqK,YAAYpwK,EAAE6F,EAAEoqK,aAAat8K,EAAE,EAAEC,EAAE,EAAE,OAAOgS,IAAIK,EAAEL,EAAEqlK,MAAMjrK,EAAE4F,EAAEsgK,OAAO,iCAAiCvpK,KAAKI,UAAUC,aAAarJ,EAAEiS,EAAE0uL,WAAW1gM,EAAEgS,EAAE2uL,YAAY,CAACtpB,MAAMhlK,EAAEigK,OAAOlmK,EAAEkyB,EAAEv+B,EAAEkjM,GAAG38L,GAAGgT,EAAEtZ,EAAE,CAAvP,CAAyPsG,IAAIm5L,EAAEvrL,GAAG,SAAS5N,GAAG,IAAI4N,EAAEwpL,EAAGp3L,GAAG,OAAO4N,EAAEw1G,IAAIx1G,EAAEw1G,IAAIpjH,EAAEq1K,UAAUznK,EAAE8vB,KAAK9vB,EAAE8vB,KAAK19B,EAAEw1K,WAAW5nK,EAAE0jK,OAAO1jK,EAAEw1G,IAAIpjH,EAAE+1K,aAAanoK,EAAE+vB,MAAM/vB,EAAE8vB,KAAK19B,EAAEk2K,YAAYtoK,EAAEmjK,MAAM/wK,EAAEk2K,YAAYtoK,EAAEo+J,OAAOhsK,EAAE+1K,aAAanoK,EAAEoqB,EAAEpqB,EAAE8vB,KAAK9vB,EAAEoF,EAAEpF,EAAEw1G,IAAIx1G,CAAC,CAAjN,CAAmNA,GAAGsvL,GAAG,SAASl9L,GAAG,IAAI4N,EAAEjC,EAAE+qG,EAAG12G,GAAG0L,EAAEgxL,GAAG18L,GAAG+L,EAAE,OAAO6B,EAAE5N,EAAEgtK,oBAAe,EAAOp/J,EAAEsD,KAAKpL,EAAEo1L,EAAGvvL,EAAEyxL,YAAYzxL,EAAEuqK,YAAYnqK,EAAEA,EAAEqxL,YAAY,EAAErxL,EAAEA,EAAEmqK,YAAY,GAAGz8K,EAAEyhM,EAAGvvL,EAAEugK,aAAavgK,EAAEoqK,aAAahqK,EAAEA,EAAEmgK,aAAa,EAAEngK,EAAEA,EAAEgqK,aAAa,GAAGr8K,GAAGgS,EAAE6pK,WAAWonB,GAAG38L,GAAG69E,GAAGnyE,EAAE+7J,UAAU,MAAM,QAAQ+yB,EAAGzuL,GAAGJ,GAAG0xL,YAAY3jM,GAAGwhM,EAAGvvL,EAAEuqK,YAAYnqK,EAAEA,EAAEmqK,YAAY,GAAGpwK,GAAG,CAACirK,MAAMjrK,EAAEkmK,OAAOvyK,EAAEu+B,EAAEt+B,EAAEsZ,EAAE6qE,EAAE,CAAxW,CAA0W64B,EAAG12G,IAAI,CAAC,SAASs9L,GAAGt9L,EAAE4N,EAAEjC,GAAG,IAAID,EAAE,oBAAoBkC,EAAE,SAAS5N,GAAG,IAAI4N,EAAEovL,GAAGtC,EAAG16L,IAAI2L,EAAE,CAAC,WAAW,SAAS/V,QAAQ4kM,EAAGx6L,GAAGwY,WAAW,GAAG2gL,EAAEn5L,GAAG66L,EAAG76L,GAAGA,EAAE,OAAOk5L,EAAEvtL,GAAGiC,EAAEqM,QAAO,SAAUja,GAAG,OAAOk5L,EAAEl5L,IAAIs6L,EAAGt6L,EAAE2L,IAAI,SAASotL,EAAE/4L,EAAG,IAAG,EAAE,CAAvK,CAAyKA,GAAG,GAAGpE,OAAOgS,GAAG7B,EAAE,GAAGnQ,OAAO8P,EAAE,CAACC,IAAI7F,EAAEiG,EAAE,GAAGtS,EAAEsS,EAAEqJ,QAAO,SAAUxH,EAAEjC,GAAG,IAAID,EAAEyxL,GAAGn9L,EAAE2L,GAAG,OAAOiC,EAAEw1G,IAAI83E,EAAGxvL,EAAE03G,IAAIx1G,EAAEw1G,KAAKx1G,EAAE+vB,MAAMw9J,EAAGzvL,EAAEiyB,MAAM/vB,EAAE+vB,OAAO/vB,EAAE0jK,OAAO6pB,EAAGzvL,EAAE4lK,OAAO1jK,EAAE0jK,QAAQ1jK,EAAE8vB,KAAKw9J,EAAGxvL,EAAEgyB,KAAK9vB,EAAE8vB,MAAM9vB,CAAE,GAAEuvL,GAAGn9L,EAAE8F,IAAI,OAAOrM,EAAEs3K,MAAMt3K,EAAEkkC,MAAMlkC,EAAEikC,KAAKjkC,EAAEuyK,OAAOvyK,EAAE63K,OAAO73K,EAAE2pH,IAAI3pH,EAAEu+B,EAAEv+B,EAAEikC,KAAKjkC,EAAEuZ,EAAEvZ,EAAE2pH,IAAI3pH,CAAC,CAAC,SAAS8jM,GAAGv9L,GAAG,IAAI4N,EAAEjC,EAAE3L,EAAEy5L,UAAU/tL,EAAE1L,EAAEs2K,QAAQvqK,EAAE/L,EAAE47L,UAAU91L,EAAEiG,EAAEouL,EAAGpuL,GAAG,KAAKtS,EAAEsS,EAAEyvL,EAAGzvL,GAAG,KAAKrS,EAAEiS,EAAEqsB,EAAErsB,EAAEolK,MAAM,EAAErlK,EAAEqlK,MAAM,EAAElzF,EAAElyE,EAAEqH,EAAErH,EAAEqgK,OAAO,EAAEtgK,EAAEsgK,OAAO,EAAE,OAAOlmK,GAAG,KAAKq7I,EAAEvzI,EAAE,CAACoqB,EAAEt+B,EAAEsZ,EAAErH,EAAEqH,EAAEtH,EAAEsgK,QAAQ,MAAM,KAAKrrB,EAAE/yI,EAAE,CAACoqB,EAAEt+B,EAAEsZ,EAAErH,EAAEqH,EAAErH,EAAEqgK,QAAQ,MAAM,KAAKntE,EAAEjxF,EAAE,CAACoqB,EAAErsB,EAAEqsB,EAAErsB,EAAEolK,MAAM/9J,EAAE6qE,GAAG,MAAM,KAAK+6G,EAAEhrL,EAAE,CAACoqB,EAAErsB,EAAEqsB,EAAEtsB,EAAEqlK,MAAM/9J,EAAE6qE,GAAG,MAAM,QAAQjwE,EAAE,CAACoqB,EAAErsB,EAAEqsB,EAAEhlB,EAAErH,EAAEqH,GAAG,IAAInF,EAAE/H,EAAEm1L,EAAGn1L,GAAG,KAAK,GAAG,MAAM+H,EAAE,CAAC,IAAIxT,EAAE,MAAMwT,EAAE,SAAS,QAAQ,OAAOpU,GAAG,IAAI,QAAQmU,EAAEC,GAAGD,EAAEC,IAAIlC,EAAEtR,GAAG,EAAEqR,EAAErR,GAAG,GAAG,MAAM,IAAI,MAAMuT,EAAEC,GAAGD,EAAEC,IAAIlC,EAAEtR,GAAG,EAAEqR,EAAErR,GAAG,GAAG,CAAC,OAAOuT,CAAC,CAAC,SAAS4vL,GAAGx9L,EAAE4N,QAAG,IAASA,IAAIA,EAAE,CAAC,GAAG,IAAIjC,EAAEiC,EAAElC,EAAEC,EAAEiwL,UAAU7vL,OAAE,IAASL,EAAE1L,EAAE47L,UAAUlwL,EAAE5F,EAAE6F,EAAE8xL,SAAShkM,OAAE,IAASqM,EAAE,kBAAkBA,EAAEpM,EAAEiS,EAAE+xL,aAAa7/G,OAAE,IAASnkF,EAAE,WAAWA,EAAEmU,EAAElC,EAAEgyL,eAAetjM,OAAE,IAASwT,EAAE,SAASA,EAAE/E,EAAE6C,EAAEiyL,YAAY7qL,OAAE,IAASjK,GAAGA,EAAEG,EAAE0C,EAAEkyL,QAAQz8L,OAAE,IAAS6H,EAAE,EAAEA,EAAE2C,EAAE0vL,EAAG,iBAAiBl6L,EAAEA,EAAEm6L,EAAGn6L,EAAEy3L,IAAIn8L,EAAE,WAAWrC,EAAE,YAAY,SAAS4Y,EAAEjT,EAAE89L,MAAMvE,OAAOvmL,EAAEhT,EAAEs5L,SAASvmL,EAAErW,EAAErC,GAAG0L,EAAEu3L,GAAGpE,EAAElmL,GAAGA,EAAEA,EAAE+qL,gBAAgBrnF,EAAG12G,EAAEs5L,SAASC,QAAQ9/L,EAAEokF,GAAGkE,EAAEq1G,EAAGp3L,EAAEs5L,SAASG,WAAWzhK,EAAEulK,GAAG,CAAC9D,UAAU13G,EAAEu0F,QAAQrjK,EAAEumL,SAAS,WAAWoC,UAAU7vL,IAAIi+I,EAAEkzC,GAAGp+L,OAAOkJ,OAAO,CAAC,EAAEiL,EAAE+kB,IAAI29F,EAAE,WAAWt7H,EAAE2vJ,EAAEjoE,EAAEo6G,EAAE,CAAC/4E,IAAIr9G,EAAEq9G,IAAIuS,EAAEvS,IAAIx3G,EAAEw3G,IAAIkuD,OAAO37C,EAAE27C,OAAOvrK,EAAEurK,OAAO1lK,EAAE0lK,OAAO5zI,KAAK33B,EAAE23B,KAAKi4F,EAAEj4F,KAAK9xB,EAAE8xB,KAAKC,MAAMg4F,EAAEh4F,MAAM53B,EAAE43B,MAAM/xB,EAAE+xB,OAAOvtB,EAAEpQ,EAAEg+L,cAActwL,OAAO,GAAG,WAAWrT,GAAG+V,EAAE,CAAC,IAAI6tL,EAAE7tL,EAAErE,GAAGjN,OAAOC,KAAKo9L,GAAGxlM,SAAQ,SAAUqJ,GAAG,IAAI4N,EAAE,CAACixF,EAAE8hD,GAAG/qJ,QAAQoK,IAAI,EAAE,GAAG,EAAE2L,EAAE,CAACw1I,EAAER,GAAG/qJ,QAAQoK,IAAI,EAAE,IAAI,IAAIm8L,EAAEn8L,IAAIi+L,EAAEtyL,GAAGiC,CAAE,GAAE,CAAC,OAAOuuL,CAAC,CAAC,SAAS+B,GAAGl+L,EAAE4N,QAAG,IAASA,IAAIA,EAAE,CAAC,GAAG,IAAIjC,EAAEiC,EAAElC,EAAEC,EAAEiwL,UAAU7vL,EAAEJ,EAAE8xL,SAAS33L,EAAE6F,EAAE+xL,aAAajkM,EAAEkS,EAAEkyL,QAAQnkM,EAAEiS,EAAEwyL,eAAetgH,EAAElyE,EAAEyyL,sBAAsBvwL,OAAE,IAASgwE,EAAE3qE,EAAE2qE,EAAExjF,EAAEmhM,EAAG9vL,GAAG5C,EAAEzO,EAAEX,EAAEi5H,EAAEA,EAAE14G,QAAO,SAAUja,GAAG,OAAOw7L,EAAGx7L,KAAK3F,CAAE,IAAGw+L,EAAE9lL,EAAEjK,EAAEmR,QAAO,SAAUja,GAAG,OAAO6N,EAAEjY,QAAQoK,IAAI,CAAE,IAAG,IAAI+S,EAAEpZ,SAASoZ,EAAEjK,EAAE,eAAeoxL,EAAGmE,UAAUp5L,QAAQhJ,MAAM,CAAC,+DAA+D,kEAAkE,6BAA6B,8DAA8D,6BAA6BsF,KAAK,OAAO,IAAI0H,EAAE8J,EAAEqC,QAAO,SAAUxH,EAAEjC,GAAG,OAAOiC,EAAEjC,GAAG6xL,GAAGx9L,EAAE,CAAC47L,UAAUjwL,EAAE8xL,SAAS1xL,EAAE2xL,aAAa53L,EAAE+3L,QAAQpkM,IAAI0gM,EAAGxuL,IAAIiC,CAAE,GAAE,CAAC,GAAG,OAAO9O,OAAOC,KAAKkK,GAAG+B,MAAK,SAAUhL,EAAE4N,GAAG,OAAO3E,EAAEjJ,GAAGiJ,EAAE2E,EAAG,GAAE,CAAC,SAAS0wL,GAAGt+L,EAAE4N,EAAEjC,GAAG,YAAO,IAASA,IAAIA,EAAE,CAACqsB,EAAE,EAAEhlB,EAAE,IAAI,CAACowG,IAAIpjH,EAAEojH,IAAIx1G,EAAEo+J,OAAOrgK,EAAEqH,EAAE2qB,MAAM39B,EAAE29B,MAAM/vB,EAAEmjK,MAAMplK,EAAEqsB,EAAEs5I,OAAOtxK,EAAEsxK,OAAO1jK,EAAEo+J,OAAOrgK,EAAEqH,EAAE0qB,KAAK19B,EAAE09B,KAAK9vB,EAAEmjK,MAAMplK,EAAEqsB,EAAE,CAAC,SAASumK,GAAGv+L,GAAG,MAAM,CAACmhJ,EAAEtiD,EAAE8hD,EAAEi4C,GAAGzgK,MAAK,SAAUvqB,GAAG,OAAO5N,EAAE4N,IAAI,CAAE,GAAE,CAAC,SAAS4wL,GAAGx+L,EAAE4N,EAAEjC,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAID,EAAEytL,EAAEvrL,GAAGurL,EAAEvrL,IAAI,SAAS5N,GAAG,IAAI4N,EAAE5N,EAAE8iH,wBAA0Bl1G,EAAEmjK,MAAM/wK,EAAEg1K,YAAiBpnK,EAAEo+J,OAAOhsK,EAAEw+G,YAAe,CAAnG,CAAqG5wG,GAAG,IAAI7B,EAAEjG,EAAErM,EAAEi9G,EAAG9oG,GAAGlU,EAAE09L,EAAGp3L,GAAG69E,EAAE,CAAC03F,WAAW,EAAE9N,UAAU,GAAG55J,EAAE,CAACmqB,EAAE,EAAEhlB,EAAE,GAAG,OAAOtH,IAAIA,IAAIC,MAAM,SAASotL,EAAEnrL,IAAIgvL,GAAGnjM,MAAMokF,GAAG9xE,EAAE6B,KAAKorL,EAAEjtL,IAAIotL,EAAEptL,GAAG,CAACwpK,YAAYzvK,EAAEiG,GAAGwpK,WAAW9N,UAAU3hK,EAAE2hK,WAAWi1B,GAAG3wL,IAAIotL,EAAEvrL,KAAKC,EAAEupL,EAAGxpL,IAAIoqB,GAAGpqB,EAAE4nK,WAAW3nK,EAAEmF,GAAGpF,EAAEynK,WAAW57K,IAAIoU,EAAEmqB,EAAE2kK,GAAGljM,KAAK,CAACu+B,EAAEt+B,EAAEgkC,KAAKmgD,EAAE03F,WAAW1nK,EAAEmqB,EAAEhlB,EAAEtZ,EAAE0pH,IAAIvlC,EAAE4pF,UAAU55J,EAAEmF,EAAE+9J,MAAMr3K,EAAEq3K,MAAM/E,OAAOtyK,EAAEsyK,OAAO,CAAC,SAASyyB,GAAGz+L,GAAG,IAAI4N,EAAE,IAAIwP,IAAIzR,EAAE,IAAIq1B,IAAIt1B,EAAE,GAAG,SAASK,EAAE/L,GAAG2L,EAAEs1B,IAAIjhC,EAAEtC,MAAM,GAAG9B,OAAOoE,EAAE05L,UAAU,GAAG15L,EAAE0+L,kBAAkB,IAAI/nM,SAAQ,SAAUqJ,GAAG,IAAI2L,EAAEyK,IAAIpW,GAAG,CAAC,IAAI0L,EAAEkC,EAAE2H,IAAIvV,GAAG0L,GAAGK,EAAEL,EAAE,CAAE,IAAGA,EAAEzR,KAAK+F,EAAE,CAAC,OAAOA,EAAErJ,SAAQ,SAAUqJ,GAAG4N,EAAE4I,IAAIxW,EAAEtC,KAAKsC,EAAG,IAAGA,EAAErJ,SAAQ,SAAUqJ,GAAG2L,EAAEyK,IAAIpW,EAAEtC,OAAOqO,EAAE/L,EAAG,IAAG0L,CAAC,CAAC,SAASizL,GAAG3+L,GAAG,IAAI,IAAI4N,EAAE5M,UAAUrH,OAAOgS,EAAE,IAAIjQ,MAAMkS,EAAE,EAAEA,EAAE,EAAE,GAAGlC,EAAE,EAAEA,EAAEkC,EAAElC,IAAIC,EAAED,EAAE,GAAG1K,UAAU0K,GAAG,MAAM,GAAG9P,OAAO+P,GAAGyJ,QAAO,SAAUpV,EAAE4N,GAAG,OAAO5N,EAAE7D,QAAQ,KAAKyR,EAAG,GAAE5N,EAAE,CAAC,IAAI4+L,GAAG,gFAAgF35J,GAAG,CAAC,OAAO,UAAU,QAAQ,KAAK,SAAS,WAAW,WAAe45J,GAAG,+GAA+GC,GAAG,CAAClD,UAAU,SAAShlG,UAAU,GAAG4iG,SAAS,YAAY,SAASuF,KAAK,IAAI,IAAI/+L,EAAEgB,UAAUrH,OAAOiU,EAAE,IAAIlS,MAAMsE,GAAG2L,EAAE,EAAEA,EAAE3L,EAAE2L,IAAIiC,EAAEjC,GAAG3K,UAAU2K,GAAG,OAAOiC,EAAEuqB,MAAK,SAAUn4B,GAAG,QAAQA,GAAG,mBAAmBA,EAAE8iH,sBAAuB,GAAE,CAAC,SAASk8E,GAAGh/L,QAAG,IAASA,IAAIA,EAAE,CAAC,GAAG,IAAI4N,EAAE5N,EAAE2L,EAAEiC,EAAEqxL,iBAAiBvzL,OAAE,IAASC,EAAE,GAAGA,EAAEI,EAAE6B,EAAEs2J,eAAep+J,OAAE,IAASiG,EAAE+yL,GAAG/yL,EAAE,OAAO,SAAS/L,EAAE4N,EAAEjC,QAAG,IAASA,IAAIA,EAAE7F,GAAG,IAAIiG,EAAEtS,EAAEC,EAAE,CAACkiM,UAAU,SAASsD,iBAAiB,GAAG5iM,QAAQwC,OAAOkJ,OAAO,CAAC,EAAE82L,GAAGh5L,GAAGk4L,cAAc,CAAC,EAAE1E,SAAS,CAACG,UAAUz5L,EAAEu5L,OAAO3rL,GAAG2uC,WAAW,CAAC,EAAEohE,OAAO,CAAC,GAAG9/B,EAAE,GAAGhwE,GAAE,EAAGxT,EAAE,CAAC44C,MAAMv5C,EAAEylM,WAAW,SAASxzL,GAAG,IAAII,EAAE,mBAAmBJ,EAAEA,EAAEjS,EAAE4C,SAASqP,EAAE7C,IAAIpP,EAAE4C,QAAQwC,OAAOkJ,OAAO,CAAC,EAAElC,EAAEpM,EAAE4C,QAAQyP,GAAGrS,EAAE0lM,cAAc,CAAC3F,UAAUP,EAAEl5L,GAAGg9L,GAAGh9L,GAAGA,EAAE+9L,eAAef,GAAGh9L,EAAE+9L,gBAAgB,GAAGxE,OAAOyD,GAAGpvL,IAAI,IAAInU,EAAEoU,EAAEkF,EAAE9J,EAAE,SAASjJ,GAAG,IAAI4N,EAAE6wL,GAAGz+L,GAAG,OAAO84L,EAAE1jL,QAAO,SAAUpV,EAAE2L,GAAG,OAAO3L,EAAEpE,OAAOgS,EAAEqM,QAAO,SAAUja,GAAG,OAAOA,EAAEq5L,QAAQ1tL,CAAE,IAAI,GAAE,GAAG,CAAzH,CAA2H,SAAS3L,GAAG,IAAI4N,EAAE5N,EAAEoV,QAAO,SAAUpV,EAAE4N,GAAG,IAAIjC,EAAE3L,EAAE4N,EAAElQ,MAAM,OAAOsC,EAAE4N,EAAElQ,MAAMiO,EAAE7M,OAAOkJ,OAAO,CAAC,EAAE2D,EAAEiC,EAAE,CAACtR,QAAQwC,OAAOkJ,OAAO,CAAC,EAAE2D,EAAErP,QAAQsR,EAAEtR,SAASnJ,KAAK2L,OAAOkJ,OAAO,CAAC,EAAE2D,EAAExY,KAAKya,EAAEza,QAAQya,EAAE5N,CAAE,GAAE,CAAC,GAAG,OAAOlB,OAAOC,KAAK6O,GAAGgB,KAAI,SAAU5O,GAAG,OAAO4N,EAAE5N,EAAG,GAAE,CAAvP,CAAyP,GAAGpE,OAAO8P,EAAEhS,EAAE4C,QAAQs6F,aAAa,GAAGl9F,EAAEwlM,iBAAiBj2L,EAAEgR,QAAO,SAAUja,GAAG,OAAOA,EAAE08C,OAAQ,IAAG,eAAew9I,EAAGmE,SAAS,EAAI,SAASr+L,GAAGA,EAAErJ,SAAQ,SAAUiX,GAAG,GAAGhS,OAAOkD,OAAOC,KAAK6O,GAAGq3B,IAAIhrB,QAAO,SAAUja,EAAE4N,EAAEjC,GAAG,OAAOA,EAAE/V,QAAQoK,KAAK4N,CAAE,IAAGjX,SAAQ,SAAUgV,GAAG,OAAOA,GAAG,IAAI,OAAO,iBAAiBiC,EAAElQ,MAAMuH,QAAQhJ,MAAM0iM,GAAGC,GAAG75K,OAAOnX,EAAElQ,MAAM,SAAS,WAAW,IAAIqnB,OAAOnX,EAAElQ,MAAM,MAAM,MAAM,IAAI,UAAU,kBAAkBkQ,EAAE8uC,SAASz3C,QAAQhJ,MAAM0iM,GAAGC,GAAGhxL,EAAElQ,KAAK,YAAY,YAAY,IAAIqnB,OAAOnX,EAAE8uC,SAAS,MAAM,MAAM,IAAI,QAAQo8I,EAAEljM,QAAQgY,EAAEyrL,OAAO,GAAGp0L,QAAQhJ,MAAM0iM,GAAGC,GAAGhxL,EAAElQ,KAAK,UAAU,UAAUo7L,EAAEv3L,KAAK,MAAM,IAAIwjB,OAAOnX,EAAEyrL,OAAO,MAAM,MAAM,IAAI,KAAK,mBAAmBzrL,EAAEnR,IAAIwI,QAAQhJ,MAAM0iM,GAAGC,GAAGhxL,EAAElQ,KAAK,OAAO,aAAa,IAAIqnB,OAAOnX,EAAEnR,IAAI,MAAM,MAAM,IAAI,SAAS,MAAMmR,EAAE8zE,QAAQ,mBAAmB9zE,EAAE8zE,QAAQz8E,QAAQhJ,MAAM0iM,GAAGC,GAAGhxL,EAAElQ,KAAK,WAAW,aAAa,IAAIqnB,OAAOnX,EAAEnR,IAAI,MAAM,MAAM,IAAI,WAAW,MAAMmR,EAAE8rL,UAAUh+L,MAAM4C,QAAQsP,EAAE8rL,WAAWz0L,QAAQhJ,MAAM0iM,GAAGC,GAAGhxL,EAAElQ,KAAK,aAAa,UAAU,IAAIqnB,OAAOnX,EAAE8rL,UAAU,MAAM,MAAM,IAAI,mBAAmBh+L,MAAM4C,QAAQsP,EAAE8wL,mBAAmBz5L,QAAQhJ,MAAM0iM,GAAGC,GAAGhxL,EAAElQ,KAAK,qBAAqB,UAAU,IAAIqnB,OAAOnX,EAAE8wL,kBAAkB,MAAM,MAAM,IAAI,UAAU,IAAI,OAAO,MAAM,QAAQz5L,QAAQhJ,MAAM,2DAA2D2R,EAAElQ,KAAK,oCAAoCunC,GAAGr2B,KAAI,SAAU5O,GAAG,MAAM,IAAIA,EAAE,GAAI,IAAGuB,KAAK,MAAM,UAAUoK,EAAE,mBAAmBiC,EAAE8rL,UAAU9rL,EAAE8rL,SAAS/iM,SAAQ,SAAUgV,GAAG,MAAM3L,EAAE+X,MAAK,SAAU/X,GAAG,OAAOA,EAAEtC,OAAOiO,CAAE,KAAI1G,QAAQhJ,MAAM0iM,GAAG,0EAA0E55K,OAAOnX,EAAElQ,MAAMiO,EAAEA,GAAI,GAAG,GAAG,GAAE,EAAl/C,EAAq/ClS,EAAE,GAAGmC,OAAOqN,EAAEvP,EAAE4C,QAAQs6F,WAAW/oF,EAAE,SAAS7N,GAAG,OAAOA,EAAEtC,IAAI,EAAEqV,EAAE,IAAIiuB,IAAIvnC,EAAEwgB,QAAO,SAAUja,GAAG,IAAI4N,EAAEC,EAAE7N,GAAG,IAAI+S,EAAEqD,IAAIxI,GAAG,OAAOmF,EAAEkuB,IAAIrzB,IAAG,CAAG,MAAK,SAASusL,EAAGzgM,EAAE4C,QAAQs/L,aAAWliM,EAAEwlM,iBAAiBnnL,MAAK,SAAU/X,GAAG,MAAM,SAASA,EAAEtC,IAAK,KAAIuH,QAAQhJ,MAAM,CAAC,2DAA2D,gCAAgCsF,KAAK,OAAM,IAAIH,EAAEo5L,EAAG5sL,GAAG,CAACxM,EAAEw0K,UAAUx0K,EAAEu0K,YAAYv0K,EAAEy0K,aAAaz0K,EAAEs0K,YAAYv9I,MAAK,SAAUn4B,GAAG,OAAOqpH,WAAWrpH,EAAG,KAAIiF,QAAQC,KAAK,CAAC,8DAA8D,4DAA4D,6DAA6D,2DAA2D,cAAc3D,KAAK,KAAK,CAAC,OAAO7H,EAAEwlM,iBAAiBvoM,SAAQ,SAAUqJ,GAAG,IAAI4N,EAAE5N,EAAEtC,KAAKiO,EAAE3L,EAAE1D,QAAQoP,OAAE,IAASC,EAAE,CAAC,EAAEA,EAAEI,EAAE/L,EAAE0hF,OAAO,GAAG,mBAAmB31E,EAAE,CAAC,IAAIjG,EAAEiG,EAAE,CAACknC,MAAMv5C,EAAEgE,KAAKkQ,EAAE3V,SAASoC,EAAEiC,QAAQoP,IAAIjS,EAAE,WAAW,EAAEokF,EAAE5jF,KAAK6L,GAAGrM,EAAE,CAAE,IAAGY,EAAEgU,QAAQ,EAAEgxL,YAAY,WAAW,IAAIxxL,EAAE,CAAC,IAAI7N,EAAEtG,EAAE4/L,SAAS1rL,EAAE5N,EAAEy5L,UAAU9tL,EAAE3L,EAAEu5L,OAAO,GAAGwF,GAAGnxL,EAAEjC,GAAG,CAACjS,EAAEokM,MAAM,CAACrE,UAAU+E,GAAG5wL,EAAEitL,EAAGlvL,GAAG,UAAUjS,EAAE4C,QAAQk9L,UAAUD,OAAOpsD,EAAGxhI,IAAIjS,EAAEgjJ,OAAM,EAAGhjJ,EAAEkiM,UAAUliM,EAAE4C,QAAQs/L,UAAUliM,EAAEwlM,iBAAiBvoM,SAAQ,SAAUqJ,GAAG,OAAOtG,EAAEskM,cAAch+L,EAAEtC,MAAMoB,OAAOkJ,OAAO,CAAC,EAAEhI,EAAE7M,KAAM,IAAG,IAAI,IAAIuY,EAAE,EAAEK,EAAE,EAAEA,EAAErS,EAAEwlM,iBAAiBvlM,OAAOoS,IAAI,CAAC,GAAG,eAAemuL,EAAGmE,WAAW3yL,GAAG,GAAG,IAAI,CAACzG,QAAQhJ,MAAM,iIAAiI,KAAK,CAAC,IAAG,IAAKvC,EAAEgjJ,MAAM,CAAC,IAAI52I,EAAEpM,EAAEwlM,iBAAiBnzL,GAAGtS,EAAEqM,EAAErJ,GAAGohF,EAAE/3E,EAAExJ,QAAQwM,OAAE,IAAS+0E,EAAE,CAAC,EAAEA,EAAE9qE,EAAEjN,EAAEpI,KAAK,mBAAmBjE,IAAIC,EAAED,EAAE,CAACw5C,MAAMv5C,EAAE4C,QAAQwM,EAAEpL,KAAKqV,EAAE9a,SAASoC,KAAKX,EAAE,MAAMA,EAAEgjJ,OAAM,EAAG3wI,GAAG,CAAC,CAAC,KAAK,eAAemuL,EAAGmE,UAAUp5L,QAAQhJ,MAAM4iM,GAAG,CAAC,EAAExwL,QAAQtC,EAAE,WAAW,OAAO,IAAIjZ,SAAQ,SAAUkN,GAAG3F,EAAEglM,cAAcr/L,EAAEtG,EAAG,GAAE,EAAE,WAAW,OAAOD,IAAIA,EAAE,IAAI3G,SAAQ,SAAUkN,GAAGlN,QAAQC,UAAUwG,MAAK,WAAYE,OAAE,EAAOuG,EAAE+L,IAAK,GAAG,KAAItS,CAAC,GAAGq/D,QAAQ,WAAWhwD,IAAI+E,GAAE,CAAE,GAAG,IAAIkxL,GAAG/+L,EAAE4N,GAAG,MAAM,eAAessL,EAAGmE,UAAUp5L,QAAQhJ,MAAM4iM,IAAIxkM,EAAE,SAASyO,IAAI+0E,EAAElnF,SAAQ,SAAUqJ,GAAG,OAAOA,GAAI,IAAG69E,EAAE,EAAE,CAAC,OAAOxjF,EAAE8kM,WAAWxzL,GAAGpS,MAAK,SAAUyG,IAAI6N,GAAGlC,EAAE2zL,eAAe3zL,EAAE2zL,cAAct/L,EAAG,IAAG3F,CAAC,CAAC,CAAC,IAAIklM,GAAGP,GAAG,CAACC,iBAAiB,CAAC,CAACvhM,KAAK,iBAAiBg/C,SAAQ,EAAG28I,MAAM,QAAQ58L,GAAG,WAAW,EAAEilF,OAAO,SAAS1hF,GAAG,IAAI4N,EAAE5N,EAAEizC,MAAMtnC,EAAE3L,EAAE/H,SAASyT,EAAE1L,EAAE1D,QAAQyP,EAAEL,EAAE0vK,OAAOt1K,OAAE,IAASiG,GAAGA,EAAEtS,EAAEiS,EAAE8zL,OAAO9lM,OAAE,IAASD,GAAGA,EAAEokF,EAAEm7G,EAAEprL,EAAE0rL,SAASC,QAAQ1rL,EAAE,GAAGjS,OAAOgS,EAAEwxL,cAAc3F,UAAU7rL,EAAEwxL,cAAc7F,QAAQ,OAAOzzL,GAAG+H,EAAElX,SAAQ,SAAUqJ,GAAGA,EAAE9I,iBAAiB,SAASyU,EAAE0C,OAAO+tL,EAAI,IAAG1iM,GAAGmkF,EAAE3mF,iBAAiB,SAASyU,EAAE0C,OAAO+tL,GAAI,WAAWt2L,GAAG+H,EAAElX,SAAQ,SAAUqJ,GAAGA,EAAErM,oBAAoB,SAASgY,EAAE0C,OAAO+tL,EAAI,IAAG1iM,GAAGmkF,EAAElqF,oBAAoB,SAASgY,EAAE0C,OAAO+tL,EAAG,CAAC,EAAEjpM,KAAK,CAAC,GAAG,CAACuK,KAAK,gBAAgBg/C,SAAQ,EAAG28I,MAAM,OAAO58L,GAAG,SAASuD,GAAG,IAAI4N,EAAE5N,EAAEizC,MAAMtnC,EAAE3L,EAAEtC,KAAKkQ,EAAEowL,cAAcryL,GAAG4xL,GAAG,CAAC9D,UAAU7rL,EAAEkwL,MAAMrE,UAAUnjB,QAAQ1oK,EAAEkwL,MAAMvE,OAAOC,SAAS,WAAWoC,UAAUhuL,EAAEguL,WAAW,EAAEzoM,KAAK,CAAC,GAAG,CAACuK,KAAK,gBAAgBg/C,SAAQ,EAAG28I,MAAM,cAAc58L,GAAG,SAASuD,GAAG,IAAI4N,EAAE5N,EAAEizC,MAAMtnC,EAAE3L,EAAE1D,QAAQoP,EAAEC,EAAEowL,gBAAgBhwL,OAAE,IAASL,GAAGA,EAAE5F,EAAE6F,EAAEqwL,SAASviM,OAAE,IAASqM,GAAGA,EAAEpM,EAAEiS,EAAEswL,aAAap+G,OAAE,IAASnkF,GAAGA,EAAE,GAAG,eAAewgM,EAAGmE,SAAS,CAAC,IAAIxwL,EAAE2sL,EAAG5sL,EAAE0rL,SAASC,QAAQkG,oBAAoB,GAAGhmM,GAAG,CAAC,YAAY,MAAM,QAAQ,SAAS,QAAQ0+B,MAAK,SAAUn4B,GAAG,OAAO6N,EAAEjY,QAAQoK,IAAI,CAAE,KAAIiF,QAAQC,KAAK,CAAC,oEAAoE,iEAAiE,OAAO,qEAAqE,kEAAkE,qEAAqE,2CAA2C,OAAO,qEAAqE,uEAAuE3D,KAAK,KAAK,CAAC,IAAIlH,EAAE,CAACuhM,UAAUzB,EAAGvsL,EAAEguL,WAAWC,UAAUL,EAAG5tL,EAAEguL,WAAWrC,OAAO3rL,EAAE0rL,SAASC,OAAOoC,WAAW/tL,EAAEkwL,MAAMvE,OAAOwC,gBAAgBhwL,GAAG,MAAM6B,EAAEowL,cAAc0B,gBAAgB9xL,EAAE+vG,OAAO47E,OAAOz6L,OAAOkJ,OAAO,CAAC,EAAE4F,EAAE+vG,OAAO47E,OAAOmC,EAAG58L,OAAOkJ,OAAO,CAAC,EAAE3N,EAAE,CAACyhM,QAAQluL,EAAEowL,cAAc0B,cAAclnL,SAAS5K,EAAEtR,QAAQk9L,SAASwC,SAASviM,EAAEwiM,aAAap+G,OAAO,MAAMjwE,EAAEowL,cAAcxwB,QAAQ5/J,EAAE+vG,OAAO6vD,MAAM1uK,OAAOkJ,OAAO,CAAC,EAAE4F,EAAE+vG,OAAO6vD,MAAMkuB,EAAG58L,OAAOkJ,OAAO,CAAC,EAAE3N,EAAE,CAACyhM,QAAQluL,EAAEowL,cAAcxwB,MAAMh1J,SAAS,WAAWwjL,UAAS,EAAGC,aAAap+G,OAAOjwE,EAAE2uC,WAAWg9I,OAAOz6L,OAAOkJ,OAAO,CAAC,EAAE4F,EAAE2uC,WAAWg9I,OAAO,CAAC,wBAAwB3rL,EAAEguL,WAAW,EAAEzoM,KAAK,CAAC,GAAGytJ,EAAE,CAACljJ,KAAK,SAASg/C,SAAQ,EAAG28I,MAAM,OAAOK,SAAS,CAAC,iBAAiBj9L,GAAG,SAASuD,GAAG,IAAI4N,EAAE5N,EAAEizC,MAAMtnC,EAAE3L,EAAE1D,QAAQoP,EAAE1L,EAAEtC,KAAKqO,EAAEJ,EAAE+B,OAAO5H,OAAE,IAASiG,EAAE,CAAC,EAAE,GAAGA,EAAEtS,EAAEyZ,EAAEkC,QAAO,SAAUpV,EAAE2L,GAAG,OAAO3L,EAAE2L,GAAG,SAAS3L,EAAE4N,EAAEjC,GAAG,IAAID,EAAEyuL,EAAGn6L,GAAG+L,EAAE,CAAC6sL,EAAEz3C,GAAGvrJ,QAAQ8V,IAAI,GAAG,EAAE,EAAE5F,EAAE,mBAAmB6F,EAAEA,EAAE7M,OAAOkJ,OAAO,CAAC,EAAE4F,EAAE,CAACguL,UAAU57L,KAAK2L,EAAElS,EAAEqM,EAAE,GAAGpM,EAAEoM,EAAE,GAAG,OAAOrM,EAAEA,GAAG,EAAEC,GAAGA,GAAG,GAAGqS,EAAE,CAAC6sL,EAAE/5F,GAAGjpG,QAAQ8V,IAAI,EAAE,CAACssB,EAAEt+B,EAAEsZ,EAAEvZ,GAAG,CAACu+B,EAAEv+B,EAAEuZ,EAAEtZ,EAAE,CAAnM,CAAqMiS,EAAEiC,EAAEkwL,MAAMh4L,GAAG9F,CAAE,GAAE,CAAC,GAAGtG,EAAED,EAAEmU,EAAEguL,WAAW/9G,EAAEnkF,EAAEs+B,EAAEnqB,EAAEnU,EAAEsZ,EAAE,MAAMpF,EAAEowL,cAAc0B,gBAAgB9xL,EAAEowL,cAAc0B,cAAc1nK,GAAG6lD,EAAEjwE,EAAEowL,cAAc0B,cAAc1sL,GAAGnF,GAAGD,EAAEowL,cAActyL,GAAGjS,CAAC,GAAG,CAACiE,KAAK,OAAOg/C,SAAQ,EAAG28I,MAAM,OAAO58L,GAAG,SAASuD,GAAG,IAAI4N,EAAE5N,EAAEizC,MAAMtnC,EAAE3L,EAAE1D,QAAQoP,EAAE1L,EAAEtC,KAAK,IAAIkQ,EAAEowL,cAActyL,GAAGi0L,MAAM,CAAC,IAAI,IAAI5zL,EAAEJ,EAAEi0L,SAAS95L,OAAE,IAASiG,GAAGA,EAAEtS,EAAEkS,EAAEk0L,QAAQnmM,OAAE,IAASD,GAAGA,EAAEokF,EAAElyE,EAAEm0L,mBAAmBjyL,EAAElC,EAAEkyL,QAAQxjM,EAAEsR,EAAE8xL,SAAS30L,EAAE6C,EAAE+xL,aAAa3qL,EAAEpH,EAAEiyL,YAAY30L,EAAE0C,EAAEwyL,eAAe/8L,OAAE,IAAS6H,GAAGA,EAAE2C,EAAED,EAAEyyL,sBAAsB1hM,EAAEkR,EAAEtR,QAAQs/L,UAAU3oL,EAAEknL,EAAGz9L,GAAGsW,EAAE6qE,IAAI5qE,IAAIvW,GAAI0E,EAAU,SAASpB,GAAG,GAAG,SAASm6L,EAAGn6L,GAAG,MAAM,GAAG,IAAI4N,EAAE2uL,EAAGv8L,GAAG,MAAM,CAACy8L,GAAGz8L,GAAG4N,EAAE6uL,GAAG7uL,GAAG,CAAxE,CAA0ElR,GAAlF,CAAC6/L,EAAG7/L,KAAkFqJ,EAAE,CAACrJ,GAAGd,OAAOoX,GAAGoC,QAAO,SAAUpV,EAAE2L,GAAG,OAAO3L,EAAEpE,OAAO,SAASu+L,EAAGxuL,GAAGuyL,GAAGtwL,EAAE,CAACguL,UAAUjwL,EAAE8xL,SAASpjM,EAAEqjM,aAAa50L,EAAE+0L,QAAQhwL,EAAEswL,eAAe/8L,EAAEg9L,sBAAsBxyL,IAAID,EAAG,GAAE,IAAIo2E,EAAEn0E,EAAEkwL,MAAMrE,UAAUzhK,EAAEpqB,EAAEkwL,MAAMvE,OAAOvvC,EAAE,IAAI5sI,IAAIu4G,GAAE,EAAGwmE,EAAEp2L,EAAE,GAAGqK,EAAE,EAAEA,EAAErK,EAAEpM,OAAOyW,IAAI,CAAC,IAAI6tL,EAAEl4L,EAAEqK,GAAGkxI,EAAE64C,EAAG8D,GAAG8B,EAAE,UAAUvE,EAAGyC,GAAG+B,EAAE,CAAC7+C,EAAER,GAAG/qJ,QAAQ0rJ,IAAI,EAAE2+C,EAAED,EAAE,QAAQ,SAASphI,EAAE4+H,GAAG5vL,EAAE,CAACguL,UAAUqC,EAAER,SAASpjM,EAAEqjM,aAAa50L,EAAE80L,YAAY7qL,EAAE8qL,QAAQhwL,IAAI4nH,EAAEuqE,EAAED,EAAElhG,EAAE+5F,EAAEmH,EAAEp/C,EAAEQ,EAAEp/D,EAAEk+G,GAAGjoK,EAAEioK,KAAKxqE,EAAE8mE,EAAG9mE,IAAI,IAAI1B,EAAEwoE,EAAG9mE,GAAGyqE,EAAE,GAAG,GAAGp6L,GAAGo6L,EAAEjmM,KAAK2kE,EAAE0iF,IAAI,GAAG5nJ,GAAGwmM,EAAEjmM,KAAK2kE,EAAE62D,IAAI,EAAE72D,EAAEm1D,IAAI,GAAGmsE,EAAEhsJ,OAAM,SAAUl0C,GAAG,OAAOA,CAAE,IAAG,CAACm8L,EAAE8B,EAAEtoE,GAAE,EAAG,KAAK,CAACq0B,EAAExzI,IAAIynL,EAAEiC,EAAE,CAAC,GAAGvqE,EAAE,IAAI,IAAIslB,EAAE,SAASj7I,GAAG,IAAI4N,EAAE7H,EAAEgS,MAAK,SAAUnK,GAAG,IAAIjC,EAAEq+I,EAAEz0I,IAAI3H,GAAG,GAAGjC,EAAE,OAAOA,EAAEpN,MAAM,EAAEyB,GAAGk0C,OAAM,SAAUl0C,GAAG,OAAOA,CAAE,GAAG,IAAG,GAAG4N,EAAE,OAAOuuL,EAAEvuL,EAAE,OAAO,EAAEutI,EAAE/5I,EAAE,EAAE,EAAE+5I,EAAE,EAAEA,IAAK,GAAG,UAAUF,EAAEE,GAAG,MAAMvtI,EAAEguL,YAAYO,IAAIvuL,EAAEowL,cAActyL,GAAGi0L,OAAM,EAAG/xL,EAAEguL,UAAUO,EAAEvuL,EAAE8uI,OAAM,EAAG,CAAC,EAAEgiD,iBAAiB,CAAC,UAAUvrM,KAAK,CAACwsM,OAAM,IAAK,CAACjiM,KAAK,kBAAkBg/C,SAAQ,EAAG28I,MAAM,OAAO58L,GAAG,SAASuD,GAAG,IAAI4N,EAAE5N,EAAEizC,MAAMtnC,EAAE3L,EAAE1D,QAAQoP,EAAE1L,EAAEtC,KAAKqO,EAAEJ,EAAEi0L,SAAS95L,OAAE,IAASiG,GAAGA,EAAEtS,EAAEkS,EAAEk0L,QAAQnmM,OAAE,IAASD,GAAGA,EAAEokF,EAAElyE,EAAE8xL,SAAS5vL,EAAElC,EAAE+xL,aAAarjM,EAAEsR,EAAEiyL,YAAY90L,EAAE6C,EAAEkyL,QAAQ9qL,EAAEpH,EAAEw0L,OAAOl3L,OAAE,IAAS8J,GAAGA,EAAE3R,EAAEuK,EAAEy0L,aAAax0L,OAAE,IAASxK,EAAE,EAAEA,EAAE1E,EAAE8gM,GAAG5vL,EAAE,CAAC6vL,SAAS5/G,EAAE6/G,aAAa7vL,EAAEgwL,QAAQ/0L,EAAE80L,YAAYvjM,IAAI4Y,EAAEknL,EAAGvsL,EAAEguL,WAAW5oL,EAAEwoL,EAAG5tL,EAAEguL,WAAW71L,GAAGiN,EAAE+uE,EAAEk5G,EAAGhoL,GAAG+kB,EAAE,MAAM+pD,EAAE,IAAI,IAAIioE,EAAEp8I,EAAEowL,cAAc0B,cAAc/pE,EAAE/nH,EAAEkwL,MAAMrE,UAAU0C,EAAEvuL,EAAEkwL,MAAMvE,OAAOnpL,EAAE,mBAAmBxE,EAAEA,EAAE9M,OAAOkJ,OAAO,CAAC,EAAE4F,EAAEkwL,MAAM,CAAClC,UAAUhuL,EAAEguL,aAAahwL,EAAEqyL,EAAE,CAACjmK,EAAE,EAAEhlB,EAAE,GAAG,GAAGg3I,EAAE,CAAC,GAAGlkJ,GAAGpM,EAAE,CAAC,IAAI4nJ,EAAE,MAAMv/D,EAAEo/D,EAAEy3C,EAAEmH,EAAE,MAAMh+G,EAAE4+D,EAAE9hD,EAAEmhG,EAAE,MAAMj+G,EAAE,SAAS,QAAQk+G,EAAEj2C,EAAEjoE,GAAGnjB,EAAEorF,EAAEjoE,GAAGrlF,EAAE4kJ,GAAG7rB,EAAEu0B,EAAEjoE,GAAGrlF,EAAEqjM,GAAGhsE,EAAE9qH,GAAGkzL,EAAE6D,GAAG,EAAE,EAAEE,EAAE,UAAUltL,EAAE2iH,EAAEqqE,GAAG7D,EAAE6D,GAAG/kD,EAAE,UAAUjoI,GAAGmpL,EAAE6D,IAAIrqE,EAAEqqE,GAAG7kD,EAAEvtI,EAAE0rL,SAAS9rB,MAAMmrB,EAAE1vL,GAAGkyI,EAAEhO,EAAGgO,GAAG,CAAC41B,MAAM,EAAE/E,OAAO,GAAGt5J,EAAE9E,EAAEowL,cAAc,oBAAoBpwL,EAAEowL,cAAc,oBAAoBH,QAAQ,CAACz6E,IAAI,EAAEzlF,MAAM,EAAE2zI,OAAO,EAAE5zI,KAAK,GAAGsyF,EAAEt9G,EAAE4uI,GAAGu3C,EAAEnmL,EAAEqtL,GAAGptE,EAAE0oE,EAAG,EAAE1lE,EAAEqqE,GAAGrH,EAAEqH,IAAI9sL,GAAEnN,EAAE4vH,EAAEqqE,GAAG,EAAEjsE,EAAEpB,EAAE3C,EAAE5/G,EAAE8vL,EAAEvtE,EAAE3C,EAAE5/G,EAAE0oL,GAAE/yL,GAAG4vH,EAAEqqE,GAAG,EAAEjsE,EAAEpB,EAAEkmE,EAAEzoL,EAAE6qI,EAAEtoB,EAAEkmE,EAAEzoL,EAAE2oL,GAAEnrL,EAAE0rL,SAAS9rB,OAAOqtB,EAAGjtL,EAAE0rL,SAAS9rB,OAAOwrB,GAAED,GAAE,MAAMh3G,EAAEg3G,GAAE1jB,WAAW,EAAE0jB,GAAEvjB,YAAY,EAAE,EAAE0jB,GAAEtrL,EAAEowL,cAActwL,OAAOE,EAAEowL,cAActwL,OAAOE,EAAEguL,WAAW75G,GAAG,EAAEo3G,GAAEnvC,EAAEjoE,GAAG7uE,GAAEgmL,GAAEF,GAAEI,GAAEpvC,EAAEjoE,GAAG+2G,GAAEI,GAAE,GAAGpzL,EAAE,CAAC,IAAI86I,GAAEy6C,EAAGpyL,EAAEkyL,EAAGv8H,EAAEu6H,IAAGv6H,EAAEqhI,EAAEh3L,EAAEiyL,EAAGzlE,EAAE2jE,IAAG3jE,GAAGu0B,EAAEjoE,GAAG6+D,GAAEq9C,EAAEl8G,GAAG6+D,GAAEq/C,CAAC,CAAC,GAAGvmM,EAAE,CAAC,IAAIigM,GAAG,MAAM53G,EAAEo/D,EAAEy3C,EAAE7vH,GAAG,MAAMgZ,EAAE4+D,EAAE9hD,EAAEg7F,GAAG7vC,EAAEhyH,GAAGkiK,GAAGL,GAAGn9L,EAAEi9L,IAAIvC,GAAGyC,GAAGn9L,EAAEqsE,IAAIuxH,GAAGe,EAAGpyL,EAAEkyL,EAAGjB,GAAGf,IAAGe,GAAGL,GAAG5wL,EAAEiyL,EAAG9D,GAAGgC,IAAGhC,IAAIptC,EAAEhyH,GAAGsiK,GAAG2D,EAAEjmK,GAAGsiK,GAAGT,EAAE,CAAC,CAACjsL,EAAEowL,cAActyL,GAAGuyL,CAAC,CAAC,EAAES,iBAAiB,CAAC,WAAW,CAAChhM,KAAK,QAAQg/C,SAAQ,EAAG28I,MAAM,OAAO58L,GAAG,SAASuD,GAAG,IAAI4N,EAAEjC,EAAE3L,EAAEizC,MAAMvnC,EAAE1L,EAAEtC,KAAKqO,EAAE/L,EAAE1D,QAAQwJ,EAAE6F,EAAE2tL,SAAS9rB,MAAM/zK,EAAEkS,EAAEqyL,cAAc0B,cAAchmM,EAAEygM,EAAGxuL,EAAEiwL,WAAW/9G,EAAEo9G,EAAGvhM,GAAGmU,EAAE,CAAC+qL,EAAE/5F,GAAGjpG,QAAQ8D,IAAI,EAAE,SAAS,QAAQ,GAAGoM,GAAGrM,EAAE,CAAC,IAAIY,EAAE,SAAS2F,EAAE4N,GAAG,OAAO0tL,EAAG,iBAAiBt7L,EAAE,mBAAmBA,EAAEA,EAAElB,OAAOkJ,OAAO,CAAC,EAAE4F,EAAEkwL,MAAM,CAAClC,UAAUhuL,EAAEguL,aAAa57L,GAAGA,EAAEu7L,EAAGv7L,EAAE64L,GAAG,CAAlI,CAAoI9sL,EAAE8xL,QAAQlyL,GAAG7C,EAAEqkI,EAAGrnI,GAAGiN,EAAE,MAAM8qE,EAAEsjE,EAAEy3C,EAAE3vL,EAAE,MAAM40E,EAAE8iE,EAAE9hD,EAAEz9F,EAAEuK,EAAEmyL,MAAMrE,UAAU5rL,GAAGlC,EAAEmyL,MAAMrE,UAAU57G,GAAGpkF,EAAEokF,GAAGlyE,EAAEmyL,MAAMvE,OAAO1rL,GAAGjC,EAAEnS,EAAEokF,GAAGlyE,EAAEmyL,MAAMrE,UAAU57G,GAAGnhF,EAAEm+L,EAAG/0L,GAAGmN,EAAEvW,EAAE,MAAMmhF,EAAEnhF,EAAEq5K,cAAc,EAAEr5K,EAAEw5K,aAAa,EAAE,EAAEljK,EAAE5R,EAAE,EAAEwK,EAAE,EAAE7F,EAAE1L,EAAE0Y,GAAGgvE,EAAE9uE,EAAEnK,EAAE+E,GAAGxT,EAAE4O,GAAG+uB,EAAE/kB,EAAE,EAAEnK,EAAE+E,GAAG,EAAEmF,EAAEg3I,EAAEqxC,EAAGt1L,EAAEiyB,EAAE+pD,GAAG4zC,EAAE93C,EAAElyE,EAAEqyL,cAActyL,KAAKkC,EAAE,CAAC,GAAG+nH,GAAGq0B,EAAEp8I,EAAEyyL,aAAar2C,EAAEhyH,EAAEpqB,EAAE,CAAC,EAAE8zE,OAAO,SAAS1hF,GAAG,IAAI4N,EAAE5N,EAAEizC,MAAMtnC,EAAE3L,EAAE1D,QAAQg6K,QAAQ5qK,OAAE,IAASC,EAAE,sBAAsBA,EAAE,MAAMD,IAAI,iBAAiBA,IAAIA,EAAEkC,EAAE0rL,SAASC,OAAO7lF,cAAchoG,OAAO,eAAewuL,EAAGmE,WAAWlF,EAAEztL,IAAIzG,QAAQhJ,MAAM,CAAC,sEAAsE,sEAAsE,cAAcsF,KAAK,OAAO+4L,EAAG1sL,EAAE0rL,SAASC,OAAO7tL,GAAGkC,EAAE0rL,SAAS9rB,MAAM9hK,EAAE,eAAewuL,EAAGmE,UAAUp5L,QAAQhJ,MAAM,CAAC,sEAAsE,YAAYsF,KAAK,MAAM,EAAEm4L,SAAS,CAAC,iBAAiBgF,iBAAiB,CAAC,oBAAoB,CAAChhM,KAAK,OAAOg/C,SAAQ,EAAG28I,MAAM,OAAOqF,iBAAiB,CAAC,mBAAmBjiM,GAAG,SAASuD,GAAG,IAAI4N,EAAE5N,EAAEizC,MAAMtnC,EAAE3L,EAAEtC,KAAKgO,EAAEkC,EAAEkwL,MAAMrE,UAAU1tL,EAAE6B,EAAEkwL,MAAMvE,OAAOzzL,EAAE8H,EAAEowL,cAAcsC,gBAAgB7mM,EAAE+jM,GAAG5vL,EAAE,CAAC+vL,eAAe,cAAcjkM,EAAE8jM,GAAG5vL,EAAE,CAACgwL,aAAY,IAAK//G,EAAEygH,GAAG7kM,EAAEiS,GAAGmC,EAAEywL,GAAG5kM,EAAEqS,EAAEjG,GAAGzL,EAAEkkM,GAAG1gH,GAAG/0E,EAAEy1L,GAAG1wL,GAAGD,EAAEowL,cAAcryL,GAAG,CAAC40L,yBAAyB1iH,EAAE2iH,oBAAoB3yL,EAAE4yL,kBAAkBpmM,EAAEqmM,iBAAiB53L,GAAG8E,EAAE2uC,WAAWg9I,OAAOz6L,OAAOkJ,OAAO,CAAC,EAAE4F,EAAE2uC,WAAWg9I,OAAO,CAAC,+BAA+Bl/L,EAAE,sBAAsByO,GAAG,MAAM,SAAS63L,GAAG3gM,EAAE4N,EAAEjC,GAAG3L,GAAG4N,GAAGjC,GAAG3L,EAAE9I,iBAAiB0W,EAAEjC,GAAE,EAAG,CAAC,SAASi1L,GAAG5gM,EAAE4N,EAAEjC,GAAG3L,GAAG4N,GAAG5N,EAAErM,oBAAoBia,EAAEjC,GAAE,EAAG,CAAC,MAAMk1L,GAAG,oBAAoBj9L,OAAOk9L,GAAG,OAAOC,GAAGF,GAAGj9L,YAAO,EAAO,SAASo9L,MAAMhhM,GAAG,IAAI4N,EAAEjC,EAAED,EAAEK,EAAE,GAAG,iBAAiB/L,EAAE,KAAK2L,EAAED,EAAEK,GAAG/L,EAAE4N,EAAEmzL,KAAKnzL,EAAEjC,EAAED,EAAEK,GAAG/L,GAAG4N,EAAE,OAAOkzL,GAAG,IAAIjzL,EAAEizL,GAAG,MAAMzmM,GAAE,SAAE,KAAK,QAAEuT,KAAK5N,IAAI6N,IAAI7N,IAAIA,EAAE9I,iBAAiByU,EAAED,EAAEK,GAAG8B,EAAE,KAAK7N,EAAErM,oBAAoBgY,EAAED,EAAEK,GAAG8B,EAAEizL,IAAK,GAAE,CAAC9rG,WAAU,EAAGE,MAAM,SAASpsF,EAAE,KAAKzO,IAAIwT,GAAE,EAAG,IAAIkF,EAAE,OAAOA,EAAEjK,GAAE,YAAK,QAAEiK,GAAGjK,CAAC,CAAC,IAAIy+I,GAAG05C,GAAGJ,IAAIj9L,OAAOzB,SAAS0+L,IAAIj9L,OAAOf,WAAWo+L,GAAG15C,KAAKA,GAAG,CAAC,IAAI25C,GAAG,KAAKD,GAAGE,MAAM,QAAQF,GAAGG,KAAK,OAAOH,GAAGI,KAAK,OAAOJ,GAAGK,KAAK,OAAO,IAAI7lC,GAAG,CAAChqE,cAAa,EAAG/zF,KAAK,YAAYie,MAAM,CAAC4lL,aAAa,CAACC,UAAS,EAAGlqM,KAAKytB,QAAQo/F,WAAW,CAACq9E,UAAS,EAAGlqM,KAAKytB,QAAQ8pF,YAAY,CAAC2yF,UAAS,EAAGlqM,KAAKytB,QAAQouF,SAAS,CAACquF,UAAS,EAAGlqM,KAAKiW,SAASk0L,SAAS,CAACD,UAAS,EAAGlqM,KAAK6P,QAAQu6L,UAAU,CAACF,UAAS,EAAGlqM,KAAKiW,SAASo0L,YAAY,CAACH,UAAS,EAAGlqM,KAAK6P,SAASwoF,MAAM,CAAC,oBAAoB,QAAQ,SAAS,QAAQ,OAAO,UAAUiJ,MAAM,SAASjtF,EAAED,GAAG,IAAI5F,GAAE,QAAE,MAAM,OAAO,SAAE,WAAY6F,EAAE+1L,WAAW57L,EAAE7Q,MAAM83I,OAAQ,KAAG,SAAE,WAAYphI,EAAE+1L,WAAW57L,EAAE7Q,MAAM83I,OAAQ,IAAG,CAAC60D,YAAY,SAAS5hM,GAAG0L,EAAEojF,KAAK,QAAQ9uF,GAAG0L,EAAEojF,KAAK,oBAAoB9uF,EAAE5B,OAAOnJ,MAAM,EAAE4sM,aAAa,SAAS7hM,GAAG0L,EAAEojF,KAAK,SAAS9uF,GAAG0L,EAAEojF,KAAK,oBAAoB9uF,EAAE5B,OAAOnJ,MAAM,EAAE6sM,YAAY,SAAS9hM,GAAG0L,EAAEojF,KAAK,QAAQ9uF,EAAE,EAAE+hM,WAAW,SAAS/hM,GAAG0L,EAAEojF,KAAK,OAAO9uF,EAAE,EAAEkxD,MAAMprD,EAAEk8L,aAAa,SAAShiM,GAAG8F,EAAE7Q,MAAMgtM,OAAOv2L,EAAEojF,KAAK,SAAS9uF,EAAE,EAAE,GAAGm9J,GAAG,CAAC5vD,MAAM,aAAauH,GAAG,CAAC,eAAe,aAAa,cAAc,WAAW,WAAW,YAAY,gBAAgB,mBAAmB2mD,GAAGnqE,OAAO,SAAStxF,EAAE4N,EAAEjC,EAAED,EAAEK,EAAEjG,GAAG,OAAO,WAAI,QAAE,MAAMq3J,GAAG,EAAC,QAAEn9J,EAAEk/F,OAAO,YAAW,QAAE,QAAQ,CAACnV,IAAI,QAAQw3G,aAAa51L,EAAE41L,aAAap9E,WAAWx4G,EAAEw4G,WAAWtV,YAAYljG,EAAEkjG,YAAYsE,SAASxnG,EAAEwnG,SAAS+uF,QAAQt0L,EAAE,KAAKA,EAAE,GAAG,WAAW,OAAOlC,EAAEk2L,aAAal2L,EAAEk2L,YAAYjmM,MAAM+P,EAAE1K,UAAU,GAAGmhM,SAASv0L,EAAE,KAAKA,EAAE,GAAG,WAAW,OAAOlC,EAAEm2L,cAAcn2L,EAAEm2L,aAAalmM,MAAM+P,EAAE1K,UAAU,GAAGmuK,QAAQvhK,EAAE,KAAKA,EAAE,GAAG,WAAW,OAAOlC,EAAEo2L,aAAap2L,EAAEo2L,YAAYnmM,MAAM+P,EAAE1K,UAAU,GAAGouK,OAAOxhK,EAAE,KAAKA,EAAE,GAAG,WAAW,OAAOlC,EAAEq2L,YAAYr2L,EAAEq2L,WAAWpmM,MAAM+P,EAAE1K,UAAU,GAAGohM,QAAQx0L,EAAE,KAAKA,EAAE,IAAG,SAAE,SAAE,WAAY,OAAOlC,EAAEs2L,cAAct2L,EAAEs2L,aAAarmM,MAAM+P,EAAE1K,UAAW,GAAE,CAAC,UAAU,CAAC,SAASygM,SAAS91L,EAAE81L,SAASC,UAAU/1L,EAAE+1L,UAAU,oBAAoB,OAAO,gBAAgB,KAAK9lM,OAAO+P,EAAEg2L,YAAY,YAAY,kBAAkB,KAAK/lM,OAAO+P,EAAEg2L,YAAY,cAAc,KAAK,GAAG7sF,KAAI,QAAE90G,EAAEk/F,OAAO,WAAW,EAAEu8D,GAAG4mC,OAAO,2BAA2B,IAAIC,GAAG,CAAC7wG,cAAa,EAAG/zF,KAAK,WAAWie,MAAM,CAACwoG,WAAW,CAACq9E,UAAS,EAAGlqM,KAAKoE,MAAMlB,UAAU,SAASwF,GAAG,OAAOA,EAAEk0C,OAAM,SAAUl0C,GAAG,YAAO,IAASi7I,EAAEj7I,EAAEnJ,WAAM,IAASmJ,EAAEmT,OAAO,kBAAkBnT,EAAE+kH,QAAS,GAAE,GAAGw9E,aAAa,CAACjrM,KAAKiW,UAAUoiF,MAAM,CAAC,SAASiJ,MAAM,SAAS54F,EAAE4N,GAAG,MAAM,CAAC40L,WAAU,QAAE,aAAaC,YAAY,SAASziM,GAAG4N,EAAEkhF,KAAK,QAAQ9uF,EAAE,EAAE,EAAGsiM,OAAU,SAAStiM,EAAE4N,EAAEjC,EAAED,EAAEK,EAAEjG,GAAG,OAAO,WAAI,QAAE,MAAK,QAAE,CAACynG,MAAM,CAAC,WAAW,CAACm1F,UAAU/2L,EAAE42L,eAAeI,YAAY/0L,EAAE,KAAKA,EAAE,IAAG,SAAE,WAAa,GAAE,CAAC,aAAa6zL,SAAS,KAAKjyB,QAAQ5hK,EAAE,KAAKA,EAAE,GAAG,WAAW,OAAOlC,EAAE+2L,aAAa/2L,EAAE+2L,YAAY9mM,MAAM+P,EAAE1K,UAAU,IAAI0K,EAAE82L,WAAW,GAAE,SAAE,IAAI,QAAE,KAAE,MAAK,QAAE72L,EAAEw4G,YAAW,SAAUv2G,GAAG,OAAO,WAAI,QAAE,KAAE,CAAC/W,IAAI+W,EAAE/W,KAAK,CAAC+W,EAAEy/J,OAAM,QAAE,QAAO,KAAK,WAAI,QAAE,KAAK,CAACx2K,IAAI,EAAE02G,OAAM,QAAE,CAAC,UAAU,CAACwX,SAASn3G,EAAEm3G,aAAa,EAAC,QAAE/kH,EAAEk/F,OAAO,UAAU,CAACimB,OAAOv3G,IAAG,WAAY,MAAM,EAAC,QAAE,OAAO,MAAK,QAAEA,EAAEuF,OAAO,GAAI,KAAI,KAAK,GAAI,IAAG,OAAO,GAAG,EAAEmvL,OAAU,2BAA8BM,GAAG,CAACnxG,cAAa,EAAG/zF,KAAK,eAAeie,MAAM,CAACwoG,WAAW,CAACq9E,UAAS,EAAGlqM,KAAKoE,MAAMlB,UAAU,SAASwF,GAAG,OAAOA,EAAEk0C,OAAM,SAAUl0C,GAAG,YAAO,IAASi7I,EAAEj7I,EAAEnJ,WAAM,IAASmJ,EAAEmT,OAAO,kBAAkBnT,EAAE+kH,QAAS,GAAE,GAAG48E,YAAY,CAACH,UAAS,EAAGlqM,KAAK6P,QAAQ8kK,UAAU,CAACu1B,UAAS,GAAIqB,yBAAyB,CAACrB,UAAS,IAAK7xG,MAAM,CAAC,aAAa,cAAciJ,MAAM,SAAS54F,EAAE4N,GAAG,MAAM,CAAC40L,WAAU,QAAE,aAAaM,gBAAgB,SAAS9iM,EAAE2L,GAAGA,EAAEwnG,UAAUvlG,EAAEkhF,KAAK,aAAa9uF,EAAE2L,EAAE,EAAEo3L,iBAAiB,SAAS/iM,EAAE2L,GAAGiC,EAAEkhF,KAAK,aAAa9uF,EAAE2L,EAAE,EAAE,GAAGwF,GAAG,CAAC,KAAK,uBAAuB,YAAY,iBAAiB6xL,GAAG,CAAC,UAAU,eAAe,KAAK,gBAAgB,iBAAiBJ,GAAGtxG,OAAO,SAAStxF,EAAE4N,EAAEjC,EAAED,EAAEK,EAAEjG,GAAG,OAAO,WAAI,QAAE,MAAK,QAAE,CAACynG,MAAM,eAAeC,MAAM,CAACy+D,UAAUtgK,EAAEsgK,UAAU,MAAM02B,YAAY/0L,EAAE,KAAKA,EAAE,IAAG,SAAE,WAAa,GAAE,CAAC,cAAclC,EAAE82L,UAAU,CAAC1xB,KAAK,UAAUt0K,GAAG,KAAKZ,OAAO+P,EAAEg2L,YAAY,YAAY,uBAAuBj2L,EAAE82L,UAAU,iBAAiB,YAAY92L,EAAE82L,UAAU,gBAAgB,gBAAgB92L,EAAE82L,UAAU,mBAAmB,GAAE,SAAE,IAAI,QAAE,KAAE,MAAK,QAAE72L,EAAEw4G,YAAW,SAAUv2G,EAAE7B,GAAG,OAAO,WAAI,QAAE,KAAE,CAAClV,IAAI+W,EAAE/W,KAAK,CAAC+W,EAAEq1L,UAAS,IAAKr1L,EAAEs1L,SAAQ,WAAI,QAAE,KAAK,CAACrsM,IAAI,EAAE24K,QAAQ,SAASxvK,GAAG,OAAO0L,EAAEo3L,gBAAgB9iM,EAAE4N,EAAE,EAAE2/F,OAAM,QAAE,CAAC,oBAAoB,CAACwX,SAASn3G,EAAEm3G,SAAS5R,SAASvlG,EAAEulG,SAASgwF,YAAYv1L,EAAEw1L,gBAAgBz3L,EAAEk3L,yBAAyBx1B,MAAMz/J,EAAEy/J,SAASg2B,aAAa,SAASrjM,GAAG,OAAO0L,EAAEq3L,iBAAiB/iM,EAAE4N,EAAE,EAAEkjK,KAAK,SAASt0K,GAAG,KAAKZ,OAAO+P,EAAEg2L,YAAY,YAAY/lM,OAAOmQ,GAAG,kBAAkB6B,EAAEm3G,YAAYn3G,EAAEulG,eAAU,EAAO,gBAAgBvlG,EAAEulG,UAAU,EAAC,QAAEnzG,EAAEk/F,OAAO,UAAU,CAACimB,OAAOv3G,IAAG,WAAY,MAAM,EAAC,QAAE,OAAO,MAAK,QAAEA,EAAEuF,OAAO,GAAI,KAAI,GAAG6vL,MAAK,QAAE,QAAO,IAAK,GAAI,IAAG,OAAO,GAAG7xL,GAAG,EAAEyxL,GAAGP,OAAO,8BAA8B,IAAInyE,GAAG,SAASlwH,EAAE4N,EAAEjC,GAAG,IAAID,EAAEC,EAAE23L,QAAQ,OAAO53L,EAAE1L,KAAK0L,EAAEkC,EAAE,EAAE21L,GAAG,SAASvjM,EAAE4N,EAAEjC,GAAG,IAAID,EAAEC,EAAE23L,QAAQ,OAAOtjM,EAAEm4B,MAAK,SAAUn4B,GAAG,OAAOkwH,GAAGlwH,EAAE4N,EAAE,CAAC01L,QAAQ53L,GAAI,GAAE,EAAE6mG,GAAG,SAASvyG,EAAE4N,EAAEjC,GAAG,IAAID,EAAEC,EAAE23L,QAAQ,OAAOtjM,EAAE+X,MAAK,SAAU/X,GAAG,OAAO0L,EAAE1L,KAAK4N,CAAE,GAAE,EAAE41L,GAAG,SAASxjM,EAAE4N,EAAEjC,GAAG,IAAID,EAAEC,EAAEyO,IAAIrO,EAAEJ,EAAE23L,QAAQ,OAAOC,GAAGvjM,EAAE4N,EAAE,CAAC01L,QAAQv3L,KAAK/L,EAAErG,QAAQ+R,EAAE1L,EAAEA,EAAEpE,OAAOgS,EAAE,EAAEyvJ,GAAG,SAASr9J,EAAE4N,EAAEjC,GAAG,IAAID,EAAEC,EAAE6Z,IAAIzZ,EAAEJ,EAAE23L,QAAQ,OAAM,IAAKC,GAAGvjM,EAAE4N,EAAE,CAAC01L,QAAQv3L,KAAK/L,EAAErG,QAAQ+R,EAAE1L,EAAEA,EAAEia,QAAO,SAAUja,GAAG,OAAM,IAAKkwH,GAAGlwH,EAAE4N,EAAE,CAAC01L,QAAQv3L,GAAI,GAAE,EAAE0kH,GAAG5kH,OAAO,WAAW43L,GAAG53L,OAAO,WAAW63L,GAAG,SAAS1jM,GAAG,OAAO,SAAE,WAAY,MAAM,mBAAmBA,EAAE/K,MAAM+K,EAAE/K,MAAM,iBAAiB+K,EAAE/K,MAAM,SAAS2Y,GAAG,OAAO5N,EAAE/K,MAAMiP,MAAM,KAAKkR,QAAO,SAAUpV,EAAE4N,GAAG,OAAO5N,EAAE4N,EAAG,GAAEA,EAAE,EAAE5N,EAAE/K,QAAQw7H,IAAIzwH,EAAE/K,QAAQwuM,GAAG,SAAS71L,GAAG,IAAIjC,EAAE3L,EAAE/K,QAAQw7H,GAAG,QAAQ,QAAQ,IAAI,GAAG3xH,OAAO5G,UAAU0N,eAAezI,KAAKyQ,EAAEjC,GAAG,OAAOiC,EAAEjC,EAAE,CAAC,MAAM3L,GAAG,CAAC,OAAO4N,CAAC,EAAE,WAAWqtI,EAAEj7I,EAAE/K,OAAO,SAAS2Y,GAAG,OAAOA,EAAE5N,EAAE/K,MAAM,EAAE,SAAS+K,GAAG,OAAOA,CAAC,CAAE,GAAE,EAAE2jM,GAAG,SAAS3jM,EAAE4N,GAAG,IAAIjC,GAAE,SAAE,WAAY,OAAO3L,EAAE/K,MAAMmgB,QAAO,SAAUpV,EAAE4N,GAAG,OAAO9O,OAAOkJ,OAAOhI,GAAG2L,EAAE,CAAC,EAAED,EAAEkC,EAAEw1L,cAAcr3L,EAAE6B,EAAElC,KAAKC,EAAE7M,OAAOuc,eAAe1P,EAAED,EAAE,CAACzW,MAAM8W,EAAEiP,YAAW,EAAGM,cAAa,EAAGC,UAAS,IAAK5P,EAAED,GAAGK,EAAEJ,IAAI,IAAIA,EAAED,EAAEK,CAAE,GAAE,CAAC,EAAG,IAAGL,EAAE,SAAS1L,GAAG,IAAI0L,EAAEC,EAAE1W,MAAM+K,GAAG,YAAO,IAAS0L,IAAI,IAAKK,EAAEL,KAAKkC,EAAE3Y,MAAM+K,GAAE,EAAI,EAAE+L,EAAE,SAAS/L,GAAG,OAAOA,EAAEmzG,WAAWnzG,EAAEkjM,QAAQljM,EAAEijM,OAAO,EAAEn9L,GAAE,SAAE,WAAY,OAAO9F,EAAE/K,MAAMkjC,MAAK,SAAUn4B,GAAG,OAAO+L,EAAE/L,EAAG,GAAG,IAAG,OAAO,SAAE,WAAY,IAAG,IAAK8F,EAAE7Q,QAAQ2Y,EAAE3Y,MAAM,MAAM,OAAO2Y,EAAE3Y,OAAO+K,EAAE/K,MAAM0E,QAAQiU,EAAE3Y,MAAM,CAAC,IAAI0W,EAAElS,EAAEu2H,EAAEhwH,EAAE/K,MAAMsa,WAAW,IAAI,IAAI9V,EAAEoU,MAAMlC,EAAElS,EAAEkS,KAAKpY,MAAM,CAAC,IAAImG,EAAEiS,EAAE1W,MAAM,GAAGyW,EAAEhS,EAAE0pM,eAAe,KAAK,CAAC,CAAC,MAAMpjM,GAAGvG,EAAEuG,EAAEA,EAAE,CAAC,QAAQvG,EAAEsZ,GAAG,CAAC,CAAC,GAAG,OAAOnF,EAAE3Y,QAAO,IAAK8W,EAAE/L,EAAE/K,MAAM2Y,EAAE3Y,QAAQ,CAAC,IAAI4oF,EAAEhwE,EAAEmiH,EAAEhwH,EAAE/K,OAAO,IAAI,IAAI4Y,EAAEA,MAAMgwE,EAAEhwE,EAAElC,KAAKpY,MAAM,CAAC,IAAI8G,EAAEwjF,EAAE5oF,MAAM,GAAGyW,EAAErR,EAAE+oM,eAAe,KAAK,CAAC,CAAC,MAAMpjM,GAAG6N,EAAE7N,EAAEA,EAAE,CAAC,QAAQ6N,EAAEkF,GAAG,CAAC,CAAE,IAAG,CAAC6wL,eAAe,WAAW,IAAG,IAAK99L,EAAE7Q,OAAO,OAAO2Y,EAAE3Y,MAAM,IAAI,IAAI0W,EAAEiC,EAAE3Y,MAAM,EAAE8W,EAAE,EAAEJ,IAAIiC,EAAE3Y,OAAO8W,IAAI/L,EAAE/K,MAAM0E,SAASqG,EAAE/K,MAAM0E,QAAQgS,IAAIA,EAAE,IAAID,EAAEC,OAAOA,CAAC,EAAEk4L,gBAAgB,WAAW,IAAG,IAAK/9L,EAAE7Q,OAAO,OAAO2Y,EAAE3Y,MAAM,IAAI,IAAI0W,EAAEiC,EAAE3Y,MAAM,EAAE8W,EAAE,EAAEJ,IAAIiC,EAAE3Y,OAAO8W,IAAI/L,EAAE/K,MAAM0E,SAASgS,EAAE,IAAIA,EAAE3L,EAAE/K,MAAM0E,OAAO,IAAI+R,EAAEC,OAAOA,CAAC,EAAEm4L,WAAWp4L,EAAE,EAAMq4L,IAAG,QAAE,CAACrmM,KAAK,aAAa+zF,cAAa,EAAG91E,MAAM,CAACwoG,WAAW,CAACq9E,UAAS,GAAIwC,gBAAgB,CAAC,EAAE1nM,QAAQ,CAACklM,UAAS,EAAGlqM,KAAKoE,OAAOuoM,QAAQ,CAACjqJ,QAAQy2E,GAAGn5H,KAAK,CAACytB,OAAOlZ,OAAO4R,WAAW6lL,QAAQ,CAACtpJ,QAAQypJ,GAAGnsM,KAAK,CAACytB,OAAOlZ,OAAO4R,WAAWymL,WAAW,CAAClqJ,QAAQ,WAAW1iD,KAAK,CAACytB,OAAOlZ,OAAO4R,WAAW0mL,QAAQ,CAACnqJ,QAAQ,QAAQ1iD,KAAK,CAACytB,OAAOlZ,OAAO4R,WAAW2mL,eAAe,CAAC9sM,KAAKoE,OAAOo+G,SAAS,CAAC9/D,SAAQ,EAAG1iD,KAAKiW,SAASiY,IAAI,CAACw0B,QAAQ,EAAE1iD,KAAK6P,QAAQiT,IAAI,CAAC4/B,QAAQ,IAAI1iD,KAAK6P,QAAQk9L,WAAW,CAACrqJ,SAAQ,EAAG1iD,KAAKiW,SAAS+2L,kBAAkB,CAACtqJ,QAAQ,iBAAiB1iD,KAAKytB,QAAQw/K,cAAc,CAACvqJ,SAAQ,EAAG1iD,KAAKiW,SAASi3L,aAAa,CAACxqJ,SAAQ,EAAG1iD,KAAKiW,SAASk3L,SAAS,CAACzqJ,SAAQ,EAAG1iD,KAAKiW,SAASg1L,aAAa,CAACvoJ,SAAQ,EAAG1iD,KAAKiW,SAASg0L,aAAa,CAACvnJ,QAAQ,MAAM1iD,KAAKytB,QAAQouF,SAAS,CAACn5D,SAAQ,EAAG1iD,KAAKiW,SAASm3L,QAAQ,CAAC1qJ,SAAQ,EAAG1iD,KAAKiW,SAASo3L,cAAc,CAAC3qJ,SAAQ,EAAG1iD,KAAKiW,SAASq3L,aAAa,CAAC5qJ,SAAQ,EAAG1iD,KAAKiW,SAASshG,YAAY,CAAC70D,QAAQ,gBAAgB1iD,KAAKytB,QAAQ08K,SAAS,CAACznJ,QAAQ,EAAE1iD,KAAK6P,QAAQu6L,UAAU,CAAC1nJ,SAAQ,EAAG1iD,KAAKiW,SAAS0+J,UAAU,CAACjyH,QAAQ,IAAI1iD,KAAK6P,QAAQ09L,cAAc,CAACvtM,KAAKwH,SAAS6wF,MAAM,CAAC,WAAW,UAAU,oBAAoB,SAAS,QAAQ,OAAO,SAAS,eAAe,gBAAgB,eAAe,eAAeiJ,MAAM,SAASl/F,EAAEmkF,GAAG,IAAIhwE,EAAE,SAAS7N,GAAG,IAAI4N,GAAE,QAAE,CAAC,GAAGjC,EAAE+3L,IAAG,QAAE1jM,EAAE,aAAY,SAAE,WAAY,OAAO4N,EAAEq2L,QAAQt4L,EAAE1W,KAAM,IAAG,IAAIyW,EAAEg4L,IAAG,QAAE1jM,EAAE,aAAY,SAAE,WAAY,OAAO4N,EAAE01L,QAAQ53L,EAAEzW,KAAM,IAAG,IAAI8W,EAAE23L,IAAG,QAAE1jM,EAAE,gBAAe,SAAE,WAAY,OAAO4N,EAAEs2L,WAAWn4L,EAAE9W,KAAM,IAAG,IAAI6Q,EAAE49L,IAAG,QAAE1jM,EAAE,aAAY,SAAE,WAAY,OAAO4N,EAAEu2L,QAAQr+L,EAAE7Q,KAAM,IAAG,IAAIwE,GAAE,SAAE,WAAY,OAAOuG,EAAE85G,SAAS95G,EAAEwlB,IAAIle,KAAKke,IAAI,EAAExlB,EAAEwlB,IAAK,KAAG,SAAE,WAAY,OAAO5X,EAAE4X,IAAI/rB,EAAExE,KAAM,IAAG,IAAIyE,GAAE,SAAE,WAAY,OAAOsG,EAAE85G,SAAS95G,EAAEoa,IAAI,CAAE,IAAG,OAAO,SAAE,WAAY,OAAOxM,EAAEwM,IAAI1gB,EAAEzE,KAAM,KAAG,SAAE,WAAY,OAAO2Y,EAAEtR,QAAQ0D,EAAE1D,OAAQ,IAAGsR,CAAC,CAAxhB,CAA0hBlU,GAAGW,GAAE,SAAE,WAAY,OAAOX,EAAEsqM,eAAgB,IAAGl7L,GAAE,UAAIiK,GAAE,UAAI9J,GAAE,UAAI7H,GAAE,UAAIwK,GAAE,SAAE,WAAY,IAAI5L,EAAE,OAAO,QAAQA,EAAEoB,EAAEnM,aAAQ,IAAS+K,OAAE,EAAOA,EAAEkT,EAAEksF,KAAKluC,KAAM,IAAGx0D,GAAE,SAAE,IAAI,SAAE,WAAY,OAAOA,EAAEzH,KAAM,IAAE,WAAYyH,EAAEzH,OAAO4oF,EAAEiR,KAAK,SAASp1F,EAAE2qM,YAAYz4L,EAAE3W,QAAQkN,SAAS8hH,eAAer4G,EAAE3W,MAAM83I,QAAQlvD,EAAEiR,KAAK,iBAAiB/7E,EAAE9d,MAAM83I,UAAUrzI,EAAE2qM,YAAYz4L,EAAE3W,QAAQkN,SAAS8hH,eAAer4G,EAAE3W,MAAMgtM,OAAOvoM,EAAE8qM,cAAc7L,IAAI96G,EAAEiR,KAAK,gBAAgB/7E,EAAE9d,MAAMgtM,OAAOpkH,EAAEiR,KAAK,SAASjR,EAAEiR,KAAK,SAAU,IAAG,IAAI77E,EAAE,WAAWvZ,EAAEy5G,WAAWz2G,EAAEzH,OAAM,EAAG,EAAE+d,EAAE,SAAShT,GAAG+S,EAAE9d,MAAM8nK,SAAS,MAAM/8J,OAAE,EAAOA,EAAE+vK,eAAel6K,YAAW,WAAYkd,EAAE9d,MAAM83I,OAAQ,IAAGrwI,EAAEzH,OAAM,CAAE,GAAE,SAAE,WAAY,OAAOyE,EAAEy5G,QAAS,IAAE,WAAY,OAAOngG,GAAI,IAAG,IAAIjN,GAAE,QAAE,IAAIg8E,GAAE,SAAE,WAAY,OAAO,IAAI1/E,OAAO0D,EAAE9Q,MAAMkH,QAAQ,sBAAsB,QAAQ,IAAK,IAAG67B,GAAE,SAAE,WAAY,OAAOjyB,EAAE9Q,MAAM4Y,EAAEvR,QAAQ2d,QAAO,SAAUja,GAAG,OAAO+hF,EAAE9sF,MAAMwN,KAAKoL,EAAEo2L,QAAQjkM,GAAI,SAAG,CAAO,IAAGi+L,GAAE,QAAE,IAAI+B,GAAE,SAAE,WAAY,OAAO,IAAIh/J,IAAIi9J,EAAEhpM,MAAM2Z,KAAI,SAAU5O,GAAG,OAAO6N,EAAEy1L,QAAQtjM,EAAG,IAAI,IAAGigM,EAAE,WAAW,GAAGvmM,EAAEogH,SAAS,CAAC,IAAG,IAAKp+G,MAAM4C,QAAQ5E,EAAEyqH,YAAY,OAAM,EAAG,GAAG85E,EAAEhpM,MAAM0E,SAASD,EAAEyqH,WAAWxqH,OAAO,OAAM,EAAG,GAAGmF,OAAOC,KAAKk/L,EAAEhpM,OAAOkjC,MAAK,SAAUn4B,GAAG,OAAOi+L,EAAEhpM,MAAM+K,KAAKuyG,GAAG1kG,EAAEvR,QAAQ5C,EAAEyqH,WAAWnkH,GAAG,CAACsjM,QAAQz1L,EAAEy1L,SAAU,IAAG,OAAM,CAAE,KAAK,CAAC,GAAG,IAAIrF,EAAEhpM,MAAM0E,QAAQD,EAAEyqH,aAAa9pH,EAAEpF,MAAM,OAAM,EAAG,GAAG,IAAIgpM,EAAEhpM,MAAM0E,QAAQD,EAAEyqH,aAAa9pH,EAAEpF,MAAM,OAAM,EAAG,GAAGgpM,EAAEhpM,MAAM,KAAKs9G,GAAG1kG,EAAEvR,QAAQ5C,EAAEyqH,WAAW,CAACm/E,QAAQz1L,EAAEy1L,UAAU,OAAM,CAAE,CAAC,OAAM,CAAE,EAAE1kI,EAAE,WAAW,IAAIqhI,IAAI,CAAChC,EAAEhpM,MAAM,GAAG,IAAI+K,EAAE4N,EAAEoiH,EAAEt2H,EAAEogH,SAASpgH,EAAEyqH,WAAWzqH,EAAEyqH,aAAa9pH,EAAEpF,MAAM,GAAG,CAACyE,EAAEyqH,aAAa,IAAI,IAAIv2G,EAAEC,MAAM7N,EAAE4N,EAAEjC,KAAKpY,MAAM,CAAC,IAAIoY,EAAE3L,EAAE/K,MAAMyW,EAAE6mG,GAAG1kG,EAAEvR,QAAQqP,EAAE,CAAC23L,QAAQz1L,EAAEy1L,WAAU,IAAKC,GAAG11L,EAAEvR,QAAQoP,EAAE,CAAC43L,QAAQz1L,EAAEy1L,YAAYrF,EAAEhpM,MAAMuuM,GAAGvF,EAAEhpM,MAAMyW,EAAE,CAAC0O,IAAI,IAAIkpL,QAAQz1L,EAAEy1L,UAAU,CAAC,CAAC,MAAMtjM,GAAG4N,EAAE5N,EAAEA,EAAE,CAAC,QAAQ4N,EAAEmF,GAAG,CAAC,CAAC,EAAE6rD,KAAI,SAAE,WAAY,OAAOllE,EAAEyqH,UAAW,IAAE,WAAY,OAAOvlD,GAAI,GAAE,CAACq2B,MAAK,KAAK,SAAE,WAAY,OAAOpnF,EAAEvR,OAAQ,IAAE,WAAY2hM,EAAEhpM,MAAM4Y,EAAEvR,QAAQ2d,QAAO,SAAUja,GAAG,OAAOggM,EAAE/qM,MAAMmhB,IAAIvI,EAAEy1L,QAAQtjM,GAAI,GAAG,GAAE,CAACi1F,MAAK,IAAK,IAAIwgC,EAAE1B,EAAE,SAAS/zH,EAAE4N,IAAIA,EAAEA,EAAEk3L,gBAAgB7vM,MAAMi/C,OAAM,SAAUl0C,GAAG,IAAI4N,EAAE2kG,GAAG1kG,EAAEvR,QAAQ0D,EAAE,CAACsjM,QAAQz1L,EAAEy1L,UAAU,OAAOC,GAAGtF,EAAEhpM,MAAM2Y,EAAE,CAAC01L,QAAQz1L,EAAEy1L,SAAU,IAAG11L,EAAE3Y,MAAM0B,SAAQ,SAAUqJ,GAAG,IAAI4N,EAAE2kG,GAAG1kG,EAAEvR,QAAQ0D,EAAE,CAACsjM,QAAQz1L,EAAEy1L,UAAUrF,EAAEhpM,MAAMooK,GAAG4gC,EAAEhpM,MAAM2Y,EAAE,CAAC4X,IAAI3X,EAAE2X,IAAI89K,QAAQz1L,EAAEy1L,UAAUzlH,EAAEiR,KAAK,UAAUlhF,EAAG,IAAGA,EAAE3Y,MAAM0B,SAAQ,SAAUqJ,GAAG,IAAI4N,EAAE2kG,GAAG1kG,EAAEvR,QAAQ0D,EAAE,CAACsjM,QAAQz1L,EAAEy1L,UAAUC,GAAGtF,EAAEhpM,MAAM2Y,EAAE,CAAC01L,QAAQz1L,EAAEy1L,YAAYrF,EAAEhpM,MAAMuuM,GAAGvF,EAAEhpM,MAAM2Y,EAAE,CAACwM,IAAIvM,EAAEuM,IAAIkpL,QAAQz1L,EAAEy1L,UAAUzlH,EAAEiR,KAAK,WAAWlhF,GAAI,GAAE,EAAEsyL,EAAE,SAASlgM,EAAE4N,GAAG,GAAGA,EAAEA,EAAEk3L,eAAevB,GAAGtF,EAAEhpM,MAAM2Y,EAAE,CAAC01L,QAAQz1L,EAAEy1L,UAAUrF,EAAEhpM,MAAMooK,GAAG4gC,EAAEhpM,MAAM2Y,EAAE,CAAC4X,IAAI3X,EAAE2X,IAAI89K,QAAQz1L,EAAEy1L,UAAUzlH,EAAEiR,KAAK,UAAUlhF,OAAO,CAAC,IAAIlU,EAAEogH,UAAU,IAAImkF,EAAEhpM,MAAM0E,OAAO,CAAC,IAAIgS,EAAEsyL,EAAEhpM,MAAM,GAAGgpM,EAAEhpM,MAAMooK,GAAG4gC,EAAEhpM,MAAMgpM,EAAEhpM,MAAM,GAAG,CAACuwB,IAAI,EAAE89K,QAAQz1L,EAAEy1L,UAAUzlH,EAAEiR,KAAK,UAAUnjF,EAAE,CAACsyL,EAAEhpM,MAAMuuM,GAAGvF,EAAEhpM,MAAM2Y,EAAE,CAACwM,IAAIvM,EAAEuM,IAAIkpL,QAAQz1L,EAAEy1L,UAAUzlH,EAAEiR,KAAK,WAAWlhF,EAAE,CAAC,EAAEqtI,EAAE,WAAW,IAAIglD,IAAI,CAAC,IAAIjgM,EAAE4N,EAAEqwL,EAAEhpM,MAAM2Z,KAAI,SAAU5O,GAAG,OAAO6N,EAAEy1L,QAAQtjM,EAAG,IAAGA,EAAEtG,EAAEogH,SAASlsG,EAAEA,EAAEjU,OAAOiU,EAAE,GAAGvT,EAAEpF,MAAM4oF,EAAEiR,KAAK,oBAAoB9uF,GAAG69E,EAAEiR,KAAK,SAAS9uF,EAAE,CAAC,EAAE24L,EAAE,WAAW/sL,EAAE3W,MAAMA,MAAM,GAAG2W,EAAE3W,MAAMwuH,cAAc,IAAIC,MAAM,UAAU93G,EAAE3W,MAAMwuH,cAAc,IAAIC,MAAM,UAAU,EAAEhxG,GAAE,SAAE,WAAY,IAAI1S,EAAE4N,EAAE,OAAO,QAAQA,EAAE,QAAQ5N,EAAEtG,EAAE0qM,sBAAiB,IAASpkM,EAAEA,EAAEg4B,EAAE/iC,aAAQ,IAAS2Y,EAAEA,EAAEC,EAAEvR,OAAQ,IAAG6kJ,GAAE,QAAE,GAAGR,GAAE,SAAE,WAAY,IAAI3gJ,EAAE4N,EAAE,IAAIozB,IAAItuB,EAAEzd,MAAM2Z,KAAI,SAAU5O,GAAG,OAAO6N,EAAEy1L,QAAQtjM,EAAG,KAAI2L,EAAEkC,EAAEvR,QAAQsS,KAAI,SAAU5O,EAAE2L,GAAG,IAAID,EAAE,CAAC7U,IAAIgX,EAAEy1L,QAAQtjM,GAAGmT,MAAMtF,EAAEo2L,QAAQjkM,GAAGqtK,MAAMx/J,EAAEs2L,QAAQnkM,GAAGojM,cAAcz3L,EAAEm5L,eAAe9kM,GAAG,OAAO0L,EAAEq5G,SAASr5G,EAAE2hK,MAAMrtK,EAAE/K,MAAMi/C,OAAM,SAAUl0C,GAAG,OAAOggM,EAAE/qM,MAAMmhB,IAAIpW,EAAG,IAAGggM,EAAE/qM,MAAMmhB,IAAIvI,EAAEy1L,QAAQtjM,IAAI0L,EAAEynG,UAAUznG,EAAE2hK,MAAMx/J,EAAEq2L,WAAWlkM,IAAIA,EAAE/K,MAAMi/C,OAAM,SAAUl0C,GAAG,IAAI4N,EAAE2kG,GAAG1kG,EAAEvR,QAAQ0D,EAAE,CAACsjM,QAAQz1L,EAAEy1L,UAAU,OAAOz1L,EAAEq2L,WAAWt2L,EAAG,IAAGC,EAAEq2L,WAAWlkM,KAAKtG,EAAEogH,WAAWkmF,EAAE/qM,MAAMiV,MAAM2D,EAAE2X,KAAK9Z,EAAEq5G,UAAUi7E,EAAE/qM,MAAMiV,MAAM2D,EAAEuM,MAAK,IAAK1O,EAAEq5G,UAAUr5G,EAAEu3L,QAAQv3L,EAAE2hK,MAAMrtK,EAAE/K,MAAMkjC,MAAK,SAAUn4B,GAAG,OAAO4N,EAAEwI,IAAIpW,EAAG,IAAG4N,EAAEwI,IAAIvI,EAAEy1L,QAAQtjM,IAAI0L,EAAEw3L,SAASxpM,EAAEkrM,eAAel5L,EAAE2hK,MAAMrtK,EAAE/K,MAAMi/C,OAAM,SAAUl0C,GAAG,OAAOggM,EAAE/qM,MAAMmhB,IAAIpW,EAAG,IAAGggM,EAAE/qM,MAAMmhB,IAAIvI,EAAEy1L,QAAQtjM,KAAK0L,CAAE,IAAGA,EAAEskH,EAAErkH,GAAG,IAAI,IAAID,EAAEmC,MAAM7N,EAAE0L,EAAEC,KAAKpY,MAAM,CAAC,IAAIwY,EAAE/L,EAAE/K,OAAM,IAAK8W,EAAEshK,OAAQthK,EAAEonG,UAAU,WAAW,IAAInzG,EAAE,IAAIghC,IAAIj1B,EAAE+4L,eAAe7vM,OAAO0W,EAAEsO,QAAO,SAAUrM,GAAG,OAAO5N,EAAEoW,IAAIvI,EAAEy1L,QAAQ11L,EAAEk3L,gBAAiB,IAAGnuM,SAAQ,SAAUqJ,GAAG,OAAOA,EAAEmzG,UAAS,CAAG,GAAE,CAAhK,EAAoK,CAAC,CAAC,MAAMnzG,GAAG0L,EAAE1L,EAAEA,EAAE,CAAC,QAAQ0L,EAAEqH,GAAG,CAAC,OAAOpH,CAAE,IAAGkzF,EAAE8kG,GAAGhjD,EAAEQ,GAAGy3C,EAAE/5F,EAAE+kG,eAAe/K,EAAEh6F,EAAEglG,gBAAgBlxE,EAAE9zB,EAAEilG,WAAW5wL,EAAE,GAAG4lL,EAAE,SAASC,GAAE,SAAE,WAAY,IAAI/4L,EAAEm7I,EAAEttI,EAAEvR,QAAQyC,QAAQ,OAAOiB,EAAEzB,MAAM4iJ,EAAElsJ,OAAO2G,OAAOoE,EAAEzB,MAAM,EAAE4iJ,EAAElsJ,OAAQ,IAAG+jM,EAAE,WAAW,IAAIh5L,EAAE4N,EAAE,QAAQ5N,EAAE+S,EAAE9d,aAAQ,IAAS+K,OAAE,EAAOA,EAAE0zG,cAAc,gBAAgB,GAAG9lG,GAAG3E,EAAEhU,MAAM,CAAC,IAAI0W,EAAED,EAAEkyG,iBAAiBhwG,GAAG,IAAIjC,EAAE,EAAEiC,EAAEysL,UAAUhxE,WAAW39G,EAAEsgK,QAAQ3iD,WAAW39G,EAAEgsK,YAAYruD,WAAW39G,EAAEisK,eAAe1uK,EAAEhU,MAAM6pG,IAAIi3E,aAAa9sK,EAAEhU,MAAM6pG,IAAI2oE,WAAW97J,IAAIg1I,EAAE1rJ,MAAM0E,QAAQsP,EAAEhU,MAAM6pG,IAAI2oE,UAAUx+J,EAAEhU,MAAM6pG,IAAI2oE,UAAUp+C,WAAW39G,EAAEsgK,QAAQ3iD,WAAW39G,EAAEgsK,YAAYruD,WAAW39G,EAAEisK,eAAe,IAAIhsK,EAAE,EAAEiC,EAAEysL,UAAUpxL,EAAEhU,MAAM6pG,IAAI2oE,WAAW97J,IAAIg1I,EAAE1rJ,MAAM0E,QAAQsP,EAAEhU,MAAM6pG,IAAI2oE,UAAUx+J,EAAEhU,MAAM6pG,IAAI2oE,UAAUp+C,WAAW39G,EAAEsgK,QAAQ3iD,WAAW39G,EAAEgsK,YAAYruD,WAAW39G,EAAEisK,cAAc,CAAC,GAAE,SAAE,WAAY,MAAM,CAACj7K,EAAEzH,MAAM4Y,EAAEvR,QAAQ0jM,EAAE/qM,MAAO,IAAE,SAAU+K,EAAE4N,IAAG,KAAM,MAAMA,OAAE,EAAOA,EAAE,MAAK,IAAKlR,EAAEzH,OAAO,IAAIgpM,EAAEhpM,MAAM0E,SAASg5H,EAAE9kH,EAAEvR,QAAQu7D,WAAU,SAAU73D,GAAG,OAAOggM,EAAE/qM,MAAMmhB,IAAIvI,EAAEy1L,QAAQtjM,GAAI,MAAI,QAAEg5L,GAAI,GAAE,CAAC/jG,MAAK,EAAGD,WAAU,IAAK,IAAIkkG,GAAE,SAAE,WAAY,MAAM,CAAC,mBAAmBx8L,EAAEzH,MAAM,sBAAsB0rJ,EAAE1rJ,MAAMglB,QAAO,SAAUja,GAAG,OAAOA,EAAEijM,UAAS,IAAKjjM,EAAEkjM,MAAO,IAAGvpM,OAAO,2BAA2BkU,EAAEvR,QAAQ3C,OAAOgnJ,EAAE1rJ,MAAMglB,QAAO,SAAUja,GAAG,OAAOA,EAAE+kH,QAAS,IAAGprH,OAAO,uBAAuBgnJ,EAAE1rJ,MAAMglB,QAAO,SAAUja,GAAG,OAAOA,EAAE+kH,QAAS,IAAGprH,OAAO,eAAegnJ,EAAE1rJ,MAAMglB,QAAO,SAAUja,GAAG,OAAOA,EAAE+kH,QAAS,IAAGprH,OAAOkU,EAAEuM,IAAI,iBAAiBumI,EAAE1rJ,MAAMglB,QAAO,SAAUja,GAAG,OAAOA,EAAE+kH,QAAS,IAAGprH,OAAOkU,EAAE2X,IAAI,oBAAoB3X,EAAEvR,QAAQ3C,OAAO,gBAAgBD,EAAEogH,SAAS,eAAepgH,EAAEgrM,QAAQ,gBAAgBhrM,EAAEy5G,SAAU,KAAG,QAAE,YAAY+lF,GAAG,IAAIC,GAAE,SAAE,WAAY,OAAOx4C,EAAE1rJ,MAAMglB,QAAO,SAAUja,GAAG,OAAOA,EAAE+kH,QAAS,IAAG9qG,QAAO,SAAUja,GAAG,OAAOA,EAAEqtK,KAAM,GAAG,IAAG+rB,GAAE,SAAE,WAAY,OAAO1/L,EAAEogH,SAAS,IAAIq/E,EAAElkM,MAAM0E,OAAOD,EAAEm1G,YAAY,IAAIsqF,EAAElkM,MAAM0E,OAAO,oBAAoBw/L,EAAElkM,MAAM0E,OAAO,oBAAoB,IAAIw/L,EAAElkM,MAAM0E,OAAOD,EAAEm1G,YAAYsqF,EAAElkM,MAAM,GAAGke,MAAM,EAAG,IAAGytI,GAAE,SAAE,WAAY,IAAI5gJ,EAAEm5L,EAAElkM,MAAM2Z,KAAI,SAAU5O,GAAG,OAAOA,EAAE8kM,cAAe,IAAG,OAAOprM,EAAEogH,SAAS95G,EAAEA,EAAE,IAAI3F,EAAEpF,KAAM,IAAG0kM,GAAG,UAAI5wH,EAAG,WAAWlzE,YAAW,WAAY8jM,EAAG1kM,MAAMgU,EAAEhU,MAAM6pG,IAAIk7E,QAAQ+qB,eAAgB,GAAE,EAAE/D,GAAG,SAASj4H,GAAIi4H,GAAG,SAASj4H,GAAI,IAAI8wH,EAAG,SAASngM,EAAEmkF,EAAEhwE,GAAG,IAAIxT,GAAE,SAAE,IAAI,SAAE,YAAY,SAAE,WAAYA,EAAEpF,OAAM,CAAG,GAAG,KAAG,SAAE,WAAYoF,EAAEpF,OAAM,EAAGyH,GAAI,IAAG,IAAIoM,GAAE,SAAE,IAAI,SAAE,YAAY,SAAE,WAAYA,EAAE7T,OAAO6T,EAAE7T,KAAM,GAAG,IAAG,IAAI8d,GAAE,UAAI9J,GAAE,WAAI,SAAE,WAAY,MAAM,CAAC5O,EAAEpF,MAAM6T,EAAE7T,MAAO,IAAE,WAAY,IAAI+K,EAAE4N,EAAEvT,EAAEpF,SAAS,QAAQ+K,GAAE,QAAEtG,UAAK,IAASsG,OAAE,EAAOA,EAAE8+F,KAAK/rF,EAAE9d,OAAM,QAAEyE,GAAGolG,IAAI/rF,EAAE9d,OAAM,QAAEyE,IAAI,QAAQkU,GAAE,QAAEiwE,UAAK,IAASjwE,OAAE,EAAOA,EAAEkxF,KAAK71F,EAAEhU,OAAM,QAAE4oF,GAAGihB,IAAI71F,EAAEhU,OAAM,QAAE4oF,GAAI,IAAG,IAAIz8E,GAAE,WAAI,SAAE,WAAY,MAAM,CAAC2R,EAAE9d,MAAMgU,EAAEhU,MAAO,IAAE,WAAYyH,IAAIqW,EAAE9d,OAAOgU,EAAEhU,OAAO2W,GAAI,IAAG,IAAIA,EAAE,WAAWxK,EAAEnM,MAAMsqM,GAAGxsL,EAAE9d,MAAMgU,EAAEhU,MAAM4Y,EAAE,EAAEnR,EAAE,WAAW,IAAIsD,EAAE,QAAQA,EAAEoB,EAAEnM,aAAQ,IAAS+K,GAAGA,EAAE84D,UAAU13D,EAAEnM,WAAM,CAAM,EAAEge,GAAE,SAAE,GAAID,EAAE,WAAW,OAAOC,EAAEhe,OAAOge,EAAEhe,KAAK,EAAE8Q,EAAE,WAAW,OAAOkN,EAAEhe,OAAM,CAAE,EAAE8sF,EAAE,WAAW,OAAO9uE,EAAEhe,OAAM,CAAE,GAAE,SAAE,WAAY,MAAM,CAACmM,EAAEnM,MAAO,IAAE,WAAY,GAAGmM,EAAEnM,MAAM,OAAO,MAAM4Y,OAAE,EAAOA,EAAEm3L,YAAY/xL,EAAEhe,OAAM,OAAQmb,UAAU+rL,GAAI,IAAG,IAAInkK,GAAE,UAAIgyH,EAAE,WAAW,IAAIhqJ,EAAE,KAAK,MAAM6N,OAAE,EAAOA,EAAEo3L,kBAAkBl/L,KAAKohC,aAAanP,EAAE/iC,OAAO+iC,EAAE/iC,MAAMY,YAAW,WAAYkQ,GAAI,GAAE,QAAQ/F,EAAE,MAAM6N,OAAE,EAAOA,EAAEo3L,wBAAmB,IAASjlM,EAAEA,EAAE,KAAK,EAAE21H,EAAE,WAAW,IAAI31H,EAAE,KAAK,MAAM6N,OAAE,EAAOA,EAAEq3L,iBAAiBnjH,KAAK56C,aAAanP,EAAE/iC,OAAO+iC,EAAE/iC,MAAMY,YAAW,WAAYksF,GAAI,GAAE,QAAQ/hF,EAAE,MAAM6N,OAAE,EAAOA,EAAEq3L,uBAAkB,IAASllM,EAAEA,EAAE,KAAK,EAAEm8L,EAAE,WAAW,IAAIn8L,EAAE,OAAOoQ,IAAI,QAAQpQ,EAAE,MAAM6N,OAAE,EAAOA,EAAEi2E,eAAU,IAAS9jF,EAAEA,EAAE,SAAS,IAAI,gBAAgB2gM,GAAG5tL,EAAE9d,MAAM,QAAQ8Q,GAAG46L,GAAGx+L,SAAS,QAAQ87L,GAAG,MAAM,IAAI,kBAAkB0C,GAAG5tL,EAAE9d,MAAM,QAAQ+d,GAAG2tL,GAAGx+L,SAAS,QAAQ87L,GAAG,MAAM,IAAI,QAAQ0C,GAAG5tL,EAAE9d,MAAM,YAAY+0J,GAAG22C,GAAG13L,EAAEhU,MAAM,YAAY+0J,GAAG22C,GAAG5tL,EAAE9d,MAAM,WAAW0gI,GAAGgrE,GAAG13L,EAAEhU,MAAM,WAAW0gI,GAAG,MAAM,IAAI,QAAQgrE,GAAG5tL,EAAE9d,MAAM,QAAQ8Q,GAAG46L,GAAG13L,EAAEhU,MAAM,QAAQ8Q,GAAG46L,GAAG5tL,EAAE9d,MAAM,OAAO8sF,GAAG4+G,GAAG13L,EAAEhU,MAAM,OAAO8sF,GAAG,MAAM,IAAI,SAAS,MAAM,QAAQ,MAAM5oF,YAAY,EAAEiX,EAAE,WAAWwwL,GAAG7tL,EAAE9d,MAAM,QAAQ8Q,GAAG66L,GAAGz+L,SAAS,QAAQ87L,GAAG2C,GAAG7tL,EAAE9d,MAAM,QAAQ+d,GAAG4tL,GAAG7tL,EAAE9d,MAAM,YAAY+0J,GAAG42C,GAAG33L,EAAEhU,MAAM,YAAY+0J,GAAG42C,GAAG7tL,EAAE9d,MAAM,WAAW0gI,GAAGirE,GAAG33L,EAAEhU,MAAM,WAAW0gI,GAAGirE,GAAG7tL,EAAE9d,MAAM,QAAQ8Q,GAAG66L,GAAG33L,EAAEhU,MAAM,QAAQ8Q,GAAG66L,GAAG7tL,EAAE9d,MAAM,OAAO8sF,GAAG6+G,GAAG33L,EAAEhU,MAAM,OAAO8sF,EAAE,EAAEk8G,EAAE,SAASj+L,GAAG,IAAI4N,EAAEjC,GAAG,QAAQiC,EAAEmF,EAAE9d,aAAQ,IAAS2Y,OAAE,EAAOA,EAAEmvJ,SAAS/8J,EAAE5B,WAAW,QAAQuN,EAAE1C,EAAEhU,aAAQ,IAAS0W,OAAE,EAAOA,EAAEoxJ,SAAS/8J,EAAE5B,UAAU2jF,GAAG,EAAE,OAAO,SAAE,WAAY,MAAM,CAAC3gF,EAAEnM,MAAMge,EAAEhe,MAAO,IAAE,WAAY,IAAI+K,EAAE4N,EAAEjC,EAAED,EAAEK,EAAE3K,EAAEnM,QAAQge,EAAEhe,QAAQ,MAAM4Y,OAAE,EAAOA,EAAEm3L,YAAY,QAAQhlM,EAAEiJ,EAAEhU,aAAQ,IAAS+K,GAAGA,EAAE88G,UAAUv6G,OAAO,yBAAyB,QAAQqL,EAAE,MAAMC,OAAE,EAAOA,EAAEs3L,cAAS,IAASv3L,GAAGA,EAAEzQ,KAAK0Q,GAAG,QAAQlC,EAAEvK,EAAEnM,aAAQ,IAAS0W,GAAGA,EAAE0C,WAAW,QAAQ3C,EAAEzC,EAAEhU,aAAQ,IAASyW,GAAGA,EAAEoxG,UAAU77E,IAAI,yBAAyB,QAAQl1B,EAAE,MAAM8B,OAAE,EAAOA,EAAEu3L,cAAS,IAASr5L,GAAGA,EAAE5O,KAAK0Q,IAAK,IAAG,CAAC5V,SAASmJ,EAAE6hM,QAAQhwL,EAAE,CAAjkF,CAAmkFF,EAAE9J,EAAEnK,OAAOkJ,OAAOlJ,OAAOkJ,OAAO,CAAC4zL,UAAU,SAAS93G,QAAQ,iBAAiBpqF,EAAEmrM,eAAe,CAACM,OAAO,WAAW,IAAInlM,EAAE4N,EAAEqF,IAAI81D,IAAK,QAAQn7D,EAAE,QAAQ5N,EAAEtG,EAAEmrM,qBAAgB,IAAS7kM,OAAE,EAAOA,EAAEmlM,cAAS,IAASv3L,GAAGA,EAAEzQ,KAAK6C,EAAE,EAAEolM,OAAO,WAAWpyL,GAAG,KAAKiwL,QAAQ,OAAO,SAAE,WAAY,MAAM,CAACvmM,EAAEzH,MAAO,IAAE,WAAY,OAAO4kM,EAAG5kM,MAAMyH,EAAEzH,KAAM,IAAG,CAACgD,SAAS6Q,EAAEu8L,WAAW3oM,EAAE69G,QAAQxnG,EAAEuyL,SAASr8L,EAAEioD,MAAM9vD,EAAE2rI,MAAM95H,EAAEgvL,KAAKjvL,EAAEuyL,OAAO,WAAW7oM,EAAEzH,MAAM+d,IAAIC,GAAG,EAAEuyL,oBAAoBz/L,EAAE0/L,oBAAoB,SAASzlM,GAAG69E,EAAEiR,KAAK,eAAe9uF,EAAE,EAAE0lM,qBAAqB,SAAS1lM,GAAG69E,EAAEiR,KAAK,gBAAgB9uF,EAAE,EAAE2lM,oBAAoB,SAAS3lM,GAAGiT,GAAG,EAAE2yL,mBAAmB,SAAS5lM,GAAGgT,GAAG,EAAE6yL,gBAAgBllD,EAAEmlD,kBAAkB,SAAS9lM,EAAE4N,GAAGlU,EAAEy5G,WAAWvlG,EAAEy/J,OAAO3zK,EAAEogH,SAASia,EAAE/zH,EAAE4N,GAAGsyL,EAAElgM,EAAE4N,GAAGqtI,KAAI,IAAKvhJ,EAAEirM,gBAAgBjoM,EAAEzH,OAAM,IAAI,IAAKyE,EAAE6qM,eAAex+L,EAAE9Q,OAAO0jM,IAAI,EAAE6J,UAAUtJ,EAAE6M,iBAAiB3M,EAAEr0E,SAAS67B,EAAEiiD,yBAAyB1hD,EAAEyiD,eAAe,WAAWhL,KAAI,QAAEI,EAAE,EAAE6K,gBAAgB,WAAWhL,KAAI,QAAEG,EAAE,EAAEgN,aAAa,WAAW,IAAIhmM,EAAE4N,EAAEoiH,EAAEniH,EAAEvR,QAAQyC,QAAQ,IAAI,IAAI6O,EAAEC,MAAM7N,EAAE4N,EAAEjC,KAAKpY,MAAM,CAAC,IAAImY,EAAE1L,EAAE/K,MAAM,GAAG09H,EAAEjnH,GAAG,KAAK,CAAC,CAAC,MAAM1L,GAAG4N,EAAE5N,EAAEA,EAAE,CAAC,QAAQ4N,EAAEmF,GAAG,EAAC,QAAEimL,EAAE,EAAEiN,YAAY,WAAW,IAAIjmM,EAAE4N,EAAEoiH,EAAEmrB,EAAEttI,EAAEvR,QAAQyC,QAAQwQ,WAAW,IAAI,IAAI3B,EAAEC,MAAM7N,EAAE4N,EAAEjC,KAAKpY,MAAM,CAAC,IAAImY,EAAE1L,EAAE/K,MAAM,GAAG09H,EAAEjnH,GAAG,KAAK,CAAC,CAAC,MAAM1L,GAAG4N,EAAE5N,EAAEA,EAAE,CAAC,QAAQ4N,EAAEmF,GAAG,EAAC,QAAEimL,EAAE,EAAEkN,UAAU,SAASlmM,GAAG,IAAI4N,EAAEjC,EAAE,IAAIjS,EAAE2qM,WAAW,CAAC,IAAI34L,GAAE,EAAG,GAAGotL,EAAEr2L,KAAKzC,EAAEnJ,MAAMqc,GAAGlT,EAAEnJ,IAAIC,cAAc4U,GAAE,GAAI,UAAU1L,EAAEjD,OAAOmW,GAAG,KAAKxH,EAAE,CAAC,IAAIK,EAAEjG,EAAEkqH,EAAE+oE,EAAE9jM,OAAO,IAAI,IAAI6Q,EAAE+H,MAAM9B,EAAEjG,EAAE6F,KAAKpY,MAAM,CAAC,IAAIkG,EAAEsS,EAAE9W,MAAM,IAAG,KAAM,QAAQ0W,EAAE,QAAQiC,EAAEC,EAAEo2L,QAAQp2L,EAAEvR,QAAQ7C,WAAM,IAASmU,OAAE,EAAOA,EAAE9W,qBAAgB,IAAS6U,OAAE,EAAOA,EAAEijE,WAAW17D,KAAKy/G,EAAEl5H,GAAG,KAAK,CAAC,CAAC,MAAMuG,GAAG8F,EAAE9F,EAAEA,EAAE,CAAC,QAAQ8F,EAAEiN,GAAG,CAACo0B,aAAasuF,GAAGA,EAAE5/H,YAAW,WAAYqd,EAAE,EAAG,GAAE,IAAI,CAAC,CAAC,EAAE4wL,WAAWnxE,EAAEwzE,cAActM,EAAGuM,kBAAkBzM,EAAG,EAAE33F,WAAW,CAACqkG,OAAO5qC,GAAG6qC,MAAMhE,GAAGiE,UAAU3D,MAAMmB,GAAGyC,YAAY,gBAAgB,IAAIC,GAAG,CAAC,WAAW,KAAK,OAAO,gBAAgB,YAAY,wBAAwB,YAAY,gBAAgB,yBAAyBC,GAAG,CAAC38G,IAAI,SAASwjB,MAAM,qBAAqBo5F,GAAG,CAAC9vM,IAAI,EAAE02G,MAAM,aAAaq5F,GAAG,CAAC,cAAc,gBAAgBC,GAAG,CAAC,WAAWC,IAAG,QAAE,OAAO,CAACv5F,MAAM,gBAAgB,EAAC,QAAE,QAAO,QAAE,QAAO,QAAE,SAAS,GAAGw5F,GAAG,CAAClwM,IAAI,EAAE02G,MAAM,4BAA4By5F,IAAG,QAAE,OAAO,CAACz5F,MAAM,gBAAgB,EAAC,QAAE,QAAO,QAAE,QAAO,QAAE,SAAS,GAAGw2F,GAAGzyG,OAAO,SAAStxF,EAAE4N,EAAEjC,EAAED,EAAEK,EAAEjG,GAAG,IAAIrM,GAAE,QAAE,UAAUC,GAAE,QAAE,WAAWmkF,GAAE,QAAE,cAAc,OAAO,WAAI,QAAE,OAAM,QAAE,CAACkM,IAAI,UAAUwjB,MAAM,aAAak0F,SAASzhM,EAAEqlM,YAAY,EAAErlM,EAAEyhM,SAAStyB,QAAQvhK,EAAE,KAAKA,EAAE,GAAG,WAAW,OAAO5N,EAAE+sI,OAAO/sI,EAAE+sI,MAAMpxI,MAAMqE,EAAEgB,UAAU,GAAGouK,OAAOxhK,EAAE,MAAMA,EAAE,IAAI,SAASA,GAAG,OAAO5N,EAAEqkM,YAAYrkM,EAAEiiM,KAAKr0L,EAAE,IAAI9O,OAAOkJ,OAAO,CAAC,EAAEhI,EAAEwiM,UAAUxiM,EAAEi/F,QAAQ,CAACgoG,WAAWr5L,EAAE,MAAMA,EAAE,KAAI,SAAE,SAAE,WAAY,OAAO,OAAO5N,EAAE6iM,0BAA0B7iM,EAAE8lM,kBAAkB9lM,EAAEknM,OAAOlnM,EAAE6lM,gBAAgB7lM,EAAE6iM,0BAA2B,GAAE,CAAC,UAAU,UAAU,CAAC,WAAWpzB,UAAU,CAAC7hK,EAAE,MAAMA,EAAE,KAAI,SAAE,SAAE,WAAY,OAAO5N,EAAE4jM,gBAAgB5jM,EAAE4jM,eAAejoM,MAAMqE,EAAEgB,UAAW,GAAE,CAAC,UAAU,UAAU,CAAC,UAAU4M,EAAE,MAAMA,EAAE,KAAI,SAAE,SAAE,WAAY,OAAO5N,EAAE6jM,iBAAiB7jM,EAAE6jM,gBAAgBloM,MAAMqE,EAAEgB,UAAW,GAAE,CAAC,UAAU,UAAU,CAAC,QAAQ4M,EAAE,MAAMA,EAAE,KAAI,SAAE,SAAE,WAAY,OAAO5N,EAAEgmM,cAAchmM,EAAEgmM,aAAarqM,MAAMqE,EAAEgB,UAAW,GAAE,CAAC,UAAU,UAAU,CAAC,UAAU4M,EAAE,MAAMA,EAAE,KAAI,SAAE,SAAE,WAAY,OAAO5N,EAAEimM,aAAajmM,EAAEimM,YAAYtqM,MAAMqE,EAAEgB,UAAW,GAAE,CAAC,UAAU,UAAU,CAAC,SAAS4M,EAAE,MAAMA,EAAE,IAAI,WAAW,OAAO5N,EAAEkmM,WAAWlmM,EAAEkmM,UAAUvqM,MAAMqE,EAAEgB,UAAU,IAAIxE,GAAG,KAAKZ,OAAOoE,EAAE/H,SAASu2F,IAAI,aAAasiF,KAAK9wK,EAAEqkM,WAAW,WAAW,KAAK,gBAAgBrkM,EAAEqlM,WAAW,gBAAgB,UAAU,YAAY,KAAKzpM,OAAOoE,EAAE/H,SAASu2F,IAAI,YAAY,wBAAwB,OAAOxuF,EAAE6iM,yBAAyB,KAAK,KAAKjnM,OAAOoE,EAAE/H,SAASu2F,IAAI,YAAY5yF,OAAOoE,EAAE6iM,0BAA0B,YAAY7iM,EAAE0kM,QAAQ,gBAAgB1kM,EAAEmzG,SAAS,wBAAwBnzG,EAAEomM,oBAAoB,EAAC,QAAE,MAAMM,GAAG,CAAC1mM,EAAE85G,UAAU95G,EAAEykM,UAAU,IAAIzkM,EAAEmkH,WAAWxqH,SAAQ,IAAKqG,EAAEqkM,aAAY,IAAKrkM,EAAEykM,WAAU,WAAI,QAAE,MAAMkC,GAAG,EAAC,QAAE3mM,EAAEk/F,OAAO,QAAQ,CAAC6lB,SAAS/kH,EAAE+kH,WAAU,WAAY,MAAM,EAAC,QAAE,QAAQ,CAAClW,YAAY7uG,EAAE+lM,iBAAiBxE,aAAavhM,EAAEuhM,aAAa37G,SAAS,GAAG4pF,QAAQ5hK,EAAE,KAAKA,EAAE,GAAG,WAAW,OAAO5N,EAAE+sI,OAAO/sI,EAAE+sI,MAAMpxI,MAAMqE,EAAEgB,UAAU,IAAI,KAAK,EAAE4lM,IAAK,QAAM,QAAE,QAAO,GAAI5mM,EAAE85G,UAAU95G,EAAEykM,WAAU,WAAI,QAAE,KAAE,CAAC5tM,IAAI,GAAG,EAAC,QAAE4C,EAAE,CAAC0qH,WAAWnkH,EAAE6lM,gBAAgB,gBAAgB7lM,EAAEuiM,aAAad,SAAS,KAAKjyB,QAAQxvK,EAAE+sI,OAAO,CAAC/yF,SAAQ,SAAE,SAAUpsC,GAAG,IAAIjC,EAAEiC,EAAEu3G,OAAO,MAAM,EAAC,QAAEnlH,EAAEk/F,OAAO,MAAM,CAACimB,OAAOx5G,EAAEm5L,eAAeviM,OAAO,WAAW,OAAOvC,EAAE8lM,kBAAkB9lM,EAAEknM,OAAOv7L,EAAE,IAAG,WAAY,MAAM,EAAC,QAAE,OAAO,MAAK,QAAEA,EAAEwH,OAAO,IAAG,QAAE,MAAM,CAAC/E,IAAI,6sBAA6sB+3G,IAAI,aAAa5Y,MAAM,cAAciiE,SAAQ,SAAE,WAAY,OAAOxvK,EAAE8lM,kBAAkB9lM,EAAEknM,OAAOv7L,EAAG,GAAE,CAAC,UAAU,UAAU,KAAK,EAAEk7L,IAAK,IAAI,IAAG3zL,EAAE,GAAG,EAAE,CAAC,aAAa,gBAAgB,aAAY,QAAElT,EAAEk/F,OAAO,SAAS,CAACmmG,WAAWrlM,EAAEqlM,WAAWE,OAAOvlM,EAAEulM,SAAQ,WAAY,MAAM,EAAC,QAAE,OAAO,CAACh4F,OAAM,QAAE,CAAC,sBAAsB,CAACvsB,OAAOhhF,EAAEqlM,cAAc71B,QAAQ5hK,EAAE,KAAKA,EAAE,GAAG,WAAW,OAAO5N,EAAEulM,QAAQvlM,EAAEulM,OAAO5pM,MAAMqE,EAAEgB,UAAU,GAAG2hM,YAAY/0L,EAAE,KAAKA,EAAE,IAAG,SAAE,WAAa,GAAE,CAAC,UAAU,WAAW,KAAK,IAAK,KAAI,OAAM,WAAI,QAAE,KAAE,CAAC/W,IAAI,GAAG,CAACmJ,EAAEqkM,aAAY,WAAI,QAAE3qM,EAAE,CAAC7C,IAAI,EAAEkzF,IAAI,QAAQo6B,WAAWnkH,EAAEwlM,oBAAoB,sBAAsB53L,EAAE,KAAKA,EAAE,GAAG,SAASA,GAAG,OAAO5N,EAAEwlM,oBAAoB53L,CAAC,GAAGulG,SAASnzG,EAAEmzG,SAASouF,aAAavhM,EAAEuhM,aAAa1yF,YAAY7uG,EAAEqlM,WAAWrlM,EAAEskM,kBAAkBtkM,EAAE+lM,iBAAiB7D,QAAQliM,EAAEylM,oBAAoBtD,SAASniM,EAAE0lM,qBAAqBv2B,QAAQnvK,EAAE2lM,oBAAoBv2B,OAAOpvK,EAAE4lM,mBAAmBuB,SAASnnM,EAAEiiM,KAAKP,UAAU1hM,EAAE0hM,WAAW1hM,EAAEykM,UAAUzkM,EAAEqkM,WAAW5C,SAASzhM,EAAEyhM,SAASE,YAAY3hM,EAAE/H,SAASu2F,KAAK,KAAK,EAAE,CAAC,aAAa,WAAW,eAAe,cAAc,UAAU,WAAW,UAAU,SAAS,WAAW,YAAY,WAAW,kBAAiB,QAAE,QAAO,GAAIxuF,EAAE0kM,SAAQ,QAAE1kM,EAAEk/F,OAAO,UAAU,CAACroG,IAAI,IAAG,WAAY,MAAM,CAACiwM,GAAI,KAAG,QAAE9mM,EAAEk/F,OAAO,SAAS,CAACroG,IAAI,EAAEwuM,WAAWrlM,EAAEqlM,WAAWE,OAAOvlM,EAAEulM,SAAQ,WAAY,MAAM,EAAC,QAAE,OAAO,CAACh4F,OAAM,QAAE,CAAC,sBAAsB,CAACvsB,OAAOhhF,EAAEqlM,cAAc71B,QAAQ5hK,EAAE,KAAKA,EAAE,GAAG,WAAW,OAAO5N,EAAEulM,QAAQvlM,EAAEulM,OAAO5pM,MAAMqE,EAAEgB,UAAU,GAAG2hM,YAAY/0L,EAAE,KAAKA,EAAE,IAAG,SAAE,WAAa,GAAE,CAAC,UAAU,WAAW,KAAK,IAAK,KAAI,MAAM,KAAK5N,EAAE85G,UAAU95G,EAAEykM,UAAUzkM,EAAEqkM,aAAY,WAAI,QAAE,MAAM0C,GAAG,EAAC,SAAE,QAAErtM,EAAE,CAACqwF,IAAI,QAAQo6B,WAAWnkH,EAAEwlM,oBAAoB,sBAAsB53L,EAAE,KAAKA,EAAE,GAAG,SAASA,GAAG,OAAO5N,EAAEwlM,oBAAoB53L,CAAC,GAAGulG,SAASnzG,EAAEmzG,SAASouF,aAAavhM,EAAEuhM,aAAa1yF,YAAY7uG,EAAEqlM,WAAWrlM,EAAEskM,kBAAkBtkM,EAAE+lM,iBAAiB7D,QAAQliM,EAAEylM,oBAAoBtD,SAASniM,EAAE0lM,qBAAqBv2B,QAAQnvK,EAAE2lM,oBAAoBv2B,OAAOpvK,EAAE4lM,mBAAmBuB,SAASnnM,EAAEiiM,KAAKP,UAAU1hM,EAAE0hM,WAAW1hM,EAAEykM,UAAUzkM,EAAEqkM,WAAW5C,SAASzhM,EAAEyhM,SAASE,YAAY3hM,EAAE/H,SAASu2F,KAAK,KAAK,EAAE,CAAC,aAAa,WAAW,eAAe,cAAc,UAAU,WAAW,UAAU,SAAS,WAAW,YAAY,WAAW,gBAAgB,CAAC,CAAC,KAAExuF,EAAEqlM,cAAcrlM,EAAE0kM,SAAQ,QAAE1kM,EAAEk/F,OAAO,UAAU,CAACroG,IAAI,IAAG,WAAY,MAAM,CAACmwM,GAAI,KAAG,QAAE,QAAO,OAAO,QAAE,QAAO,IAAI,QAAEnpH,EAAE,CAACkM,IAAI,WAAWo6B,WAAWnkH,EAAE6lM,gBAAgB,sBAAsBj4L,EAAE,KAAKA,EAAE,GAAG,SAASA,GAAG,OAAO5N,EAAE6lM,gBAAgBj4L,CAAC,GAAGw5L,YAAYpnM,EAAE8lM,kBAAkBzC,aAAaz1L,EAAE,KAAKA,EAAE,GAAG,SAASA,EAAEjC,GAAG,OAAO3L,EAAE8jM,WAAWn4L,EAAEy3L,cAAc,GAAGzB,YAAY3hM,EAAE/H,SAASu2F,IAAIy9E,UAAUjsK,EAAEisK,UAAU42B,yBAAyB7iM,EAAE6iM,0BAA0B,CAAC7oJ,SAAQ,SAAE,SAAUpsC,GAAG,IAAIjC,EAAEiC,EAAEu3G,OAAO,MAAM,EAAC,QAAEnlH,EAAEk/F,OAAO,gBAAgB,CAACimB,OAAOx5G,EAAEm5L,iBAAgB,WAAY,MAAM,EAAC,QAAE,OAAO,MAAK,QAAEn5L,EAAEwH,OAAO,GAAI,IAAI,IAAGD,EAAE,GAAG,EAAE,CAAC,aAAa,cAAc,cAAc,YAAY,8BAA8B,GAAGuzL,GAAG,EAAE1C,GAAG1B,OAAO,e,yHCAxolD,SAASgF,IACZ,OAAOx5B,IAAYy5B,4BACvB,CACO,SAASz5B,IAEZ,MAA6B,qBAAdhrK,WAA+C,qBAAXe,OAC7CA,OACkB,qBAAX,EAAAqP,EACH,EAAAA,EACA,CAAC,CACf,CACO,MAAMs0L,EAAoC,oBAAV5pL,MCX1B6pL,EAAa,wBACbC,EAA2B,sBCDxC,IAAIC,EACAC,EACG,SAASC,IACZ,IAAIj7L,EACJ,YAAkBlW,IAAdixM,IAGkB,qBAAX9jM,QAA0BA,OAAOqgG,aACxCyjG,GAAY,EACZC,EAAO/jM,OAAOqgG,aAES,qBAAX,EAAAhxF,IAAwD,QAA5BtG,EAAK,EAAAsG,EAAO40L,kBAA+B,IAAPl7L,OAAgB,EAASA,EAAGs3F,cACxGyjG,GAAY,EACZC,EAAO,EAAA10L,EAAO40L,WAAW5jG,aAGzByjG,GAAY,GAXLA,CAcf,CACO,SAASllM,IACZ,OAAOolM,IAA2BD,EAAKnlM,MAAQP,KAAKO,KACxD,CCpBO,MAAMslM,EACT,WAAA3iM,CAAY4yD,EAAQm/B,GAChBn+F,KAAKqF,OAAS,KACdrF,KAAKgvM,YAAc,GACnBhvM,KAAKivM,QAAU,GACfjvM,KAAKg/D,OAASA,EACdh/D,KAAKm+F,KAAOA,EACZ,MAAM+wG,EAAkB,CAAC,EACzB,GAAIlwI,EAAOmwI,SACP,IAAK,MAAM1rM,KAAMu7D,EAAOmwI,SAAU,CAC9B,MAAMr+L,EAAOkuD,EAAOmwI,SAAS1rM,GAC7ByrM,EAAgBzrM,GAAMqN,EAAK8hB,YAC/B,CAEJ,MAAMw8K,EAAsB,mCAAmCpwI,EAAOv7D,KACtE,IAAI4rM,EAAkBtpM,OAAOkJ,OAAO,CAAC,EAAGigM,GACxC,IACI,MAAMz+G,EAAM53C,aAAajqC,QAAQwgM,GAC3Bh1M,EAAO0M,KAAKC,MAAM0pF,GACxB1qF,OAAOkJ,OAAOogM,EAAiBj1M,EACnC,CACA,MAAO6M,GAEP,CACAjH,KAAKsvM,UAAY,CACb,WAAAC,GACI,OAAOF,CACX,EACA,WAAAG,CAAYtzM,GACR,IACI28C,aAAahqC,QAAQugM,EAAqBtoM,KAAKI,UAAUhL,GAC7D,CACA,MAAO+K,GAEP,CACAooM,EAAkBnzM,CACtB,EACA,GAAAuN,GACI,OAAOA,GACX,GAEA00F,GACAA,EAAK/V,GAAGsmH,GAA0B,CAACe,EAAUvzM,KACrCuzM,IAAazvM,KAAKg/D,OAAOv7D,IACzBzD,KAAKsvM,UAAUE,YAAYtzM,EAC/B,IAGR8D,KAAK0vM,UAAY,IAAI9qL,MAAM,CAAC,EAAG,CAC3BpI,IAAK,CAACmzL,EAASjqM,IACP1F,KAAKqF,OACErF,KAAKqF,OAAO+iF,GAAG1iF,GAGf,IAAIsC,KACPhI,KAAKivM,QAAQ/tM,KAAK,CACd7E,OAAQqJ,EACRsC,QACF,IAKlBhI,KAAK4vM,cAAgB,IAAIhrL,MAAM,CAAC,EAAG,CAC/BpI,IAAK,CAACmzL,EAASjqM,IACP1F,KAAKqF,OACErF,KAAKqF,OAAOK,GAEL,OAATA,EACE1F,KAAK0vM,UAEP3pM,OAAOC,KAAKhG,KAAKsvM,WAAW76L,SAAS/O,GACnC,IAAIsC,KACPhI,KAAKgvM,YAAY9tM,KAAK,CAClB7E,OAAQqJ,EACRsC,OACAhO,QAAS,SAENgG,KAAKsvM,UAAU5pM,MAASsC,IAI5B,IAAIA,IACA,IAAIjO,SAAQC,IACfgG,KAAKgvM,YAAY9tM,KAAK,CAClB7E,OAAQqJ,EACRsC,OACAhO,WACF,KAM1B,CACA,mBAAM61M,CAAcxqM,GAChBrF,KAAKqF,OAASA,EACd,IAAK,MAAMyL,KAAQ9Q,KAAKivM,QACpBjvM,KAAKqF,OAAO+iF,GAAGt3E,EAAKzU,WAAWyU,EAAK9I,MAExC,IAAK,MAAM8I,KAAQ9Q,KAAKgvM,YACpBl+L,EAAK9W,cAAcgG,KAAKqF,OAAOyL,EAAKzU,WAAWyU,EAAK9I,MAE5D,ECnGG,SAAS8nM,EAAoBC,EAAkBC,GAClD,MAAMntL,EAAaktL,EACb1qM,EAASyvK,IACT32E,EAAOmwG,IACP2B,EAAczB,GAAoB3rL,EAAWqtL,iBACnD,IAAI/xG,IAAS94F,EAAO8qM,uCAA0CF,EAGzD,CACD,MAAM3/G,EAAQ2/G,EAAc,IAAIlB,EAASlsL,EAAYs7E,GAAQ,KACvDtjB,EAAOx1E,EAAO+qM,yBAA2B/qM,EAAO+qM,0BAA4B,GAClFv1H,EAAK35E,KAAK,CACN6uM,iBAAkBltL,EAClBmtL,UACA1/G,UAEAA,GACA0/G,EAAQ1/G,EAAMs/G,cACtB,MAZIzxG,EAAKpI,KAAK04G,EAAYsB,EAAkBC,EAahD;;;;;;ACjBA,IAAIK,EAAW,QAEf,SAASC,EAAUxyM,GAGjB,YAFa,IAARA,IAAiBA,EAAM,OAErB,QAAe,OAARA,EAAeA,EAAMuyM,EACrC,CAuDA,SAASE,EAAc3jM,EAAKlJ,GAC1BqC,OAAOC,KAAK4G,GAAKhP,SAAQ,SAAUE,GAAO,OAAO4F,EAAGkJ,EAAI9O,GAAMA,EAAM,GACtE,CAEA,SAAS6J,EAAUiF,GACjB,OAAe,OAARA,GAA+B,kBAARA,CAChC,CAEA,SAAS0iH,EAAWzxH,GAClB,OAAOA,GAA2B,oBAAbA,EAAI2C,IAC3B,CAMA,SAASgwM,EAAS9sM,EAAI8R,GACpB,OAAO,WACL,OAAO9R,EAAG8R,EACZ,CACF,CAEA,SAASi7L,EAAkB/sM,EAAIgtM,EAAMntM,GAMnC,OALImtM,EAAK7zM,QAAQ6G,GAAM,IACrBH,GAAWA,EAAQqgG,QACf8sG,EAAKpuM,QAAQoB,GACbgtM,EAAKxvM,KAAKwC,IAET,WACL,IAAIhD,EAAIgwM,EAAK7zM,QAAQ6G,GACjBhD,GAAK,GACPgwM,EAAKtvM,OAAOV,EAAG,EAEnB,CACF,CAEA,SAASiwM,EAAYliM,EAAOmiM,GAC1BniM,EAAMoiM,SAAW9qM,OAAO1G,OAAO,MAC/BoP,EAAMqiM,WAAa/qM,OAAO1G,OAAO,MACjCoP,EAAMsiM,gBAAkBhrM,OAAO1G,OAAO,MACtCoP,EAAMuiM,qBAAuBjrM,OAAO1G,OAAO,MAC3C,IAAI66C,EAAQzrC,EAAMyrC,MAElB+2J,EAAcxiM,EAAOyrC,EAAO,GAAIzrC,EAAMqjD,SAASt3B,MAAM,GAErD02K,EAAgBziM,EAAOyrC,EAAO02J,EAChC,CAEA,SAASM,EAAiBziM,EAAOyrC,EAAO02J,GACtC,IAAIO,EAAW1iM,EAAM2iM,OACjBC,EAAW5iM,EAAM6iM,OAGrB7iM,EAAM8iM,QAAU,CAAC,EAEjB9iM,EAAM+iM,uBAAyBzrM,OAAO1G,OAAO,MAC7C,IAAIoyM,EAAiBhjM,EAAMsiM,gBACvBW,EAAc,CAAC,EACfC,EAAgB,CAAC,EAIjB36L,GAAQ,SAAY,GAExBA,EAAMkxE,KAAI,WACRqoH,EAAakB,GAAgB,SAAU/tM,EAAI5F,GAIzC4zM,EAAY5zM,GAAO0yM,EAAQ9sM,EAAI+K,GAC/BkjM,EAAc7zM,IAAO,SAAS,WAAc,OAAO4zM,EAAY5zM,IAAQ,IACvEiI,OAAOuc,eAAe7T,EAAM8iM,QAASzzM,EAAK,CACxC0e,IAAK,WAAc,OAAOm1L,EAAc7zM,GAAK5B,KAAO,EACpD+lB,YAAY,GAEhB,GACF,IAEAxT,EAAM2iM,QAAS,QAAS,CACtBh3M,KAAM8/C,IAKRzrC,EAAM6iM,OAASt6L,EAGXvI,EAAMmjM,QACRC,EAAiBpjM,GAGf0iM,GACEP,GAGFniM,EAAMqjM,aAAY,WAChBX,EAAS/2M,KAAO,IAClB,IAKAi3M,GACFA,EAAS/oH,MAEb,CAEA,SAAS2oH,EAAexiM,EAAOsjM,EAAWlpM,EAAM3P,EAAQ03M,GACtD,IAAI/iB,GAAUhlL,EAAKjI,OACfoxM,EAAYvjM,EAAMqjD,SAASmgJ,aAAappM,GAW5C,GARI3P,EAAOg5M,aACLzjM,EAAMuiM,qBAAqBgB,GAG/BvjM,EAAMuiM,qBAAqBgB,GAAa94M,IAIrC20L,IAAW+iB,EAAK,CACnB,IAAIuB,EAAcC,EAAeL,EAAWlpM,EAAKrD,MAAM,GAAI,IACvD6sM,EAAaxpM,EAAKA,EAAKjI,OAAS,GACpC6N,EAAMqjM,aAAY,WAQhBK,EAAYE,GAAcn5M,EAAOghD,KACnC,GACF,CAEA,IAAIo4J,EAAQp5M,EAAO+F,QAAUszM,EAAiB9jM,EAAOujM,EAAWnpM,GAEhE3P,EAAOs5M,iBAAgB,SAAUC,EAAU30M,GACzC,IAAI40M,EAAiBV,EAAYl0M,EACjC60M,EAAiBlkM,EAAOikM,EAAgBD,EAAUH,EACpD,IAEAp5M,EAAO05M,eAAc,SAAUlwI,EAAQ5kE,GACrC,IAAIS,EAAOmkE,EAAOloC,KAAO18B,EAAMk0M,EAAYl0M,EACvC4yC,EAAUgyB,EAAOhyB,SAAWgyB,EAChCmwI,EAAepkM,EAAOlQ,EAAMmyC,EAAS4hK,EACvC,IAEAp5M,EAAO45M,eAAc,SAAUtgH,EAAQ10F,GACrC,IAAI40M,EAAiBV,EAAYl0M,EACjCi1M,EAAetkM,EAAOikM,EAAgBlgH,EAAQ8/G,EAChD,IAEAp5M,EAAO85M,cAAa,SAAU/yG,EAAOniG,GACnCmzM,EAAcxiM,EAAOsjM,EAAWlpM,EAAKhG,OAAO/E,GAAMmiG,EAAO2wG,EAC3D,GACF,CAMA,SAAS2B,EAAkB9jM,EAAOujM,EAAWnpM,GAC3C,IAAIoqM,EAA4B,KAAdjB,EAEdM,EAAQ,CACVhtK,SAAU2tK,EAAcxkM,EAAM62B,SAAW,SAAU4tK,EAAOC,EAAUl4L,GAClE,IAAIjT,EAAOorM,EAAiBF,EAAOC,EAAUl4L,GACzCtR,EAAU3B,EAAK2B,QACfpG,EAAUyE,EAAKzE,QACfhF,EAAOyJ,EAAKzJ,KAUhB,OARKgF,GAAYA,EAAQi3B,OACvBj8B,EAAOyzM,EAAYzzM,GAOdkQ,EAAM62B,SAAS/mC,EAAMoL,EAC9B,EAEA0pM,OAAQJ,EAAcxkM,EAAM4kM,OAAS,SAAUH,EAAOC,EAAUl4L,GAC9D,IAAIjT,EAAOorM,EAAiBF,EAAOC,EAAUl4L,GACzCtR,EAAU3B,EAAK2B,QACfpG,EAAUyE,EAAKzE,QACfhF,EAAOyJ,EAAKzJ,KAEXgF,GAAYA,EAAQi3B,OACvBj8B,EAAOyzM,EAAYzzM,GAOrBkQ,EAAM4kM,OAAO90M,EAAMoL,EAASpG,EAC9B,GAgBF,OAXAwC,OAAOsc,iBAAiBiwL,EAAO,CAC7Bf,QAAS,CACP/0L,IAAKy2L,EACD,WAAc,OAAOxkM,EAAM8iM,OAAS,EACpC,WAAc,OAAO+B,EAAiB7kM,EAAOujM,EAAY,GAE/D93J,MAAO,CACL19B,IAAK,WAAc,OAAO41L,EAAe3jM,EAAMyrC,MAAOrxC,EAAO,KAI1DypM,CACT,CAEA,SAASgB,EAAkB7kM,EAAOujM,GAChC,IAAKvjM,EAAM+iM,uBAAuBQ,GAAY,CAC5C,IAAIuB,EAAe,CAAC,EAChBC,EAAWxB,EAAUpxM,OACzBmF,OAAOC,KAAKyI,EAAM8iM,SAAS3zM,SAAQ,SAAUW,GAE3C,GAAIA,EAAKiH,MAAM,EAAGguM,KAAcxB,EAAhC,CAGA,IAAIyB,EAAYl1M,EAAKiH,MAAMguM,GAK3BztM,OAAOuc,eAAeixL,EAAcE,EAAW,CAC7Cj3L,IAAK,WAAc,OAAO/N,EAAM8iM,QAAQhzM,EAAO,EAC/C0jB,YAAY,GAVsC,CAYtD,IACAxT,EAAM+iM,uBAAuBQ,GAAauB,CAC5C,CAEA,OAAO9kM,EAAM+iM,uBAAuBQ,EACtC,CAEA,SAASW,EAAkBlkM,EAAOlQ,EAAMmyC,EAAS4hK,GAC/C,IAAIz0J,EAAQpvC,EAAMqiM,WAAWvyM,KAAUkQ,EAAMqiM,WAAWvyM,GAAQ,IAChEs/C,EAAM38C,MAAK,SAAiCyI,GAC1C+mC,EAAQtsC,KAAKqK,EAAO6jM,EAAMp4J,MAAOvwC,EACnC,GACF,CAEA,SAASkpM,EAAgBpkM,EAAOlQ,EAAMmyC,EAAS4hK,GAC7C,IAAIz0J,EAAQpvC,EAAMoiM,SAAStyM,KAAUkQ,EAAMoiM,SAAStyM,GAAQ,IAC5Ds/C,EAAM38C,MAAK,SAA+ByI,GACxC,IAAIgkC,EAAM+C,EAAQtsC,KAAKqK,EAAO,CAC5B62B,SAAUgtK,EAAMhtK,SAChB+tK,OAAQf,EAAMe,OACd9B,QAASe,EAAMf,QACfr3J,MAAOo4J,EAAMp4J,MACbw5J,YAAajlM,EAAM8iM,QACnBQ,UAAWtjM,EAAMyrC,OAChBvwC,GAIH,OAHK2lH,EAAU3hF,KACbA,EAAM5zC,QAAQC,QAAQ2zC,IAEpBl/B,EAAMklM,aACDhmK,EAAIhxB,OAAM,SAAUxgB,GAEzB,MADAsS,EAAMklM,aAAa59G,KAAK,aAAc55F,GAChCA,CACR,IAEOwxC,CAEX,GACF,CAEA,SAASolK,EAAgBtkM,EAAOlQ,EAAMq1M,EAAWtB,GAC3C7jM,EAAMsiM,gBAAgBxyM,KAM1BkQ,EAAMsiM,gBAAgBxyM,GAAQ,SAAwBkQ,GACpD,OAAOmlM,EACLtB,EAAMp4J,MACNo4J,EAAMf,QACN9iM,EAAMyrC,MACNzrC,EAAM8iM,QAEV,EACF,CAEA,SAASM,EAAkBpjM,IACzB,SAAM,WAAc,OAAOA,EAAM2iM,OAAOh3M,IAAM,IAAG,WAC3C,CAGN,GAAG,CAAE8hG,MAAM,EAAMC,MAAO,QAC1B,CAEA,SAASi2G,EAAgBl4J,EAAOrxC,GAC9B,OAAOA,EAAKwT,QAAO,SAAU69B,EAAOp8C,GAAO,OAAOo8C,EAAMp8C,EAAM,GAAGo8C,EACnE,CAEA,SAASk5J,EAAkB70M,EAAMoL,EAASpG,GAWxC,OAVIoE,EAASpJ,IAASA,EAAKA,OACzBgF,EAAUoG,EACVA,EAAUpL,EACVA,EAAOA,EAAKA,MAOP,CAAEA,KAAMA,EAAMoL,QAASA,EAASpG,QAASA,EAClD,CAEA,IAAIswM,EAAsB,gBACtBC,EAAqB,iBACrBC,EAAmB,eACnBC,EAAe,OAEfC,EAAW,EAEf,SAASC,EAAanpG,EAAKt8F,GACzBqhM,EACE,CACErsM,GAAI,iBACJsnG,IAAKA,EACL3wF,MAAO,OACP+5L,SAAU,+BACVC,KAAM,mDACNC,YAAa,OACbC,oBAAqB,CAACT,KAExB,SAAU50L,GACRA,EAAIs1L,iBAAiB,CACnB9wM,GAAIqwM,EACJ15L,MAAO,iBACPo6L,MAAOC,IAGTx1L,EAAIs1L,iBAAiB,CACnB9wM,GAAIswM,EACJ35L,MAAO,eACPo6L,MAAOC,IAGTx1L,EAAIy1L,aAAa,CACfjxM,GAAIuwM,EACJ55L,MAAO,OACPu6L,KAAM,UACNC,sBAAuB,qBAGzB31L,EAAImpE,GAAGysH,kBAAiB,SAAUlrM,GAChC,GAAIA,EAAQohG,MAAQA,GAAOphG,EAAQmrM,cAAgBd,EACjD,GAAIrqM,EAAQuX,OAAQ,CAClB,IAAI6D,EAAQ,GACZgwL,EAA6BhwL,EAAOtW,EAAMqjD,SAASt3B,KAAM7wB,EAAQuX,OAAQ,IACzEvX,EAAQqrM,UAAYjwL,CACtB,MACEpb,EAAQqrM,UAAY,CAClBC,EAA4BxmM,EAAMqjD,SAASt3B,KAAM,IAIzD,IAEAvb,EAAImpE,GAAG8sH,mBAAkB,SAAUvrM,GACjC,GAAIA,EAAQohG,MAAQA,GAAOphG,EAAQmrM,cAAgBd,EAAc,CAC/D,IAAImB,EAAaxrM,EAAQyrM,OACzB9B,EAAiB7kM,EAAO0mM,GACxBxrM,EAAQuwC,MAAQm7J,EACdC,EAAe7mM,EAAMqjD,SAAUqjJ,GAChB,SAAfA,EAAwB1mM,EAAM8iM,QAAU9iM,EAAM+iM,uBAC9C2D,EAEJ,CACF,IAEAl2L,EAAImpE,GAAGmtH,oBAAmB,SAAU5rM,GAClC,GAAIA,EAAQohG,MAAQA,GAAOphG,EAAQmrM,cAAgBd,EAAc,CAC/D,IAAImB,EAAaxrM,EAAQyrM,OACrBvsM,EAAOc,EAAQd,KACA,SAAfssM,IACFtsM,EAAOssM,EAAWhqM,MAAM,KAAK+V,OAAO1M,SAAS3R,OAAQgG,IAEvD4F,EAAMqjM,aAAY,WAChBnoM,EAAQ8T,IAAIhP,EAAM2iM,OAAOh3M,KAAMyO,EAAMc,EAAQuwC,MAAMh+C,MACrD,GACF,CACF,IAEAuS,EAAMhQ,WAAU,SAAUg0M,EAAUv4J,GAClC,IAAI9/C,EAAO,CAAC,EAERq4M,EAAS9oM,UACXvP,EAAKuP,QAAU8oM,EAAS9oM,SAG1BvP,EAAK8/C,MAAQA,EAEbj7B,EAAIu2L,wBACJv2L,EAAIw2L,kBAAkBzB,GACtB/0L,EAAIy2L,mBAAmB1B,GAEvB/0L,EAAI02L,iBAAiB,CACnBC,QAAS9B,EACT1uK,MAAO,CACLutC,KAAMzpE,KAAKO,MACXosM,MAAOpD,EAASl0M,KAChBnE,KAAMA,IAGZ,IAEAqU,EAAMqnM,gBAAgB,CACpB73I,OAAQ,SAAUyE,EAAQxoB,GACxB,IAAI9/C,EAAO,CAAC,EACRsoE,EAAO/4D,UACTvP,EAAKuP,QAAU+4D,EAAO/4D,SAExB+4D,EAAO82G,IAAMy6B,IACbvxI,EAAOqzI,MAAQ7sM,KAAKO,MACpBrP,EAAK8/C,MAAQA,EAEbj7B,EAAI02L,iBAAiB,CACnBC,QAAS7B,EACT3uK,MAAO,CACLutC,KAAMjQ,EAAOqzI,MACbF,MAAOnzI,EAAOnkE,KACdy3M,QAAStzI,EAAO82G,IAChBy8B,SAAU,QACV77M,KAAMA,IAGZ,EACA8jE,MAAO,SAAUwE,EAAQxoB,GACvB,IAAI9/C,EAAO,CAAC,EACR6nH,EAAW/4G,KAAKO,MAAQi5D,EAAOqzI,MACnC37M,EAAK6nH,SAAW,CACdi0F,QAAS,CACP33M,KAAM,WACNynH,QAAU/D,EAAW,KACrBovD,QAAS,kBACTn1K,MAAO+lH,IAGPv/C,EAAO/4D,UACTvP,EAAKuP,QAAU+4D,EAAO/4D,SAExBvP,EAAK8/C,MAAQA,EAEbj7B,EAAI02L,iBAAiB,CACnBC,QAAS7B,EACT3uK,MAAO,CACLutC,KAAMzpE,KAAKO,MACXosM,MAAOnzI,EAAOnkE,KACdy3M,QAAStzI,EAAO82G,IAChBy8B,SAAU,MACV77M,KAAMA,IAGZ,GAEJ,GAEJ,CAGA,IAAIq6M,EAAiB,QACjB0B,EAAa,QACbC,EAAc,SAEdC,EAAiB,CACnBj8L,MAAO,aACPk8L,UAAWF,EACXG,gBAAiBJ,GAMnB,SAASK,EAAqB3tM,GAC5B,OAAOA,GAAiB,SAATA,EAAkBA,EAAKsC,MAAM,KAAK3F,OAAO,GAAI,GAAG,GAAK,MACtE,CAMA,SAASyvM,EAA6B/7M,EAAQ2P,GAC5C,MAAO,CACLpF,GAAIoF,GAAQ,OAIZuR,MAAOo8L,EAAoB3tM,GAC3B6zD,KAAMxjE,EAAOg5M,WAAa,CAACmE,GAAkB,GAC7Cv8G,SAAU/zF,OAAOC,KAAK9M,EAAOu9M,WAAW5gM,KAAI,SAAUw8L,GAAc,OAAO4C,EACvE/7M,EAAOu9M,UAAUpE,GACjBxpM,EAAOwpM,EAAa,IACnB,IAGT,CAQA,SAAS0C,EAA8BlpM,EAAQ3S,EAAQgoB,EAAQrY,GACzDA,EAAK4L,SAASyM,IAChBrV,EAAO3K,KAAK,CACVuC,GAAIoF,GAAQ,OACZuR,MAAOvR,EAAK4yE,SAAS,KAAO5yE,EAAKrD,MAAM,EAAGqD,EAAKjI,OAAS,GAAKiI,GAAQ,OACrE6zD,KAAMxjE,EAAOg5M,WAAa,CAACmE,GAAkB,KAGjDtwM,OAAOC,KAAK9M,EAAOu9M,WAAW74M,SAAQ,SAAUy0M,GAC9C0C,EAA6BlpM,EAAQ3S,EAAOu9M,UAAUpE,GAAanxL,EAAQrY,EAAOwpM,EAAa,IACjG,GACF,CAMA,SAASgD,EAA8Bn8M,EAAQq4M,EAAS1oM,GACtD0oM,EAAmB,SAAT1oM,EAAkB0oM,EAAUA,EAAQ1oM,GAC9C,IAAI6tM,EAAc3wM,OAAOC,KAAKurM,GAC1BoF,EAAa,CACfz8J,MAAOn0C,OAAOC,KAAK9M,EAAOghD,OAAOrkC,KAAI,SAAU/X,GAAO,MAAO,CAC3DA,IAAKA,EACL84M,UAAU,EACV16M,MAAOhD,EAAOghD,MAAMp8C,GAClB,KAGN,GAAI44M,EAAY91M,OAAQ,CACtB,IAAIi2M,EAAOC,EAA2BvF,GACtCoF,EAAWpF,QAAUxrM,OAAOC,KAAK6wM,GAAMhhM,KAAI,SAAU/X,GAAO,MAAO,CACjEA,IAAKA,EAAI29E,SAAS,KAAO+6H,EAAoB14M,GAAOA,EACpD84M,UAAU,EACV16M,MAAO66M,GAAS,WAAc,OAAOF,EAAK/4M,EAAM,IAC9C,GACN,CAEA,OAAO64M,CACT,CAEA,SAASG,EAA4BvF,GACnC,IAAI1lM,EAAS,CAAC,EAwBd,OAvBA9F,OAAOC,KAAKurM,GAAS3zM,SAAQ,SAAUE,GACrC,IAAI+K,EAAO/K,EAAIqN,MAAM,KACrB,GAAItC,EAAKjI,OAAS,EAAG,CACnB,IAAIyE,EAASwG,EACTmrM,EAAUnuM,EAAK6R,MACnB7R,EAAKjL,SAAQ,SAAUsS,GAChB7K,EAAO6K,KACV7K,EAAO6K,GAAK,CACVgmM,QAAS,CACPh6M,MAAO,CAAC,EACR8pH,QAAS91G,EACTmhK,QAAS,SACT4lC,UAAU,KAIhB5xM,EAASA,EAAO6K,GAAGgmM,QAAQh6M,KAC7B,IACAmJ,EAAO2xM,GAAWD,GAAS,WAAc,OAAOxF,EAAQzzM,EAAM,GAChE,MACE+N,EAAO/N,GAAOi5M,GAAS,WAAc,OAAOxF,EAAQzzM,EAAM,GAE9D,IACO+N,CACT,CAEA,SAASypM,EAAgB4B,EAAWruM,GAClC,IAAIsuM,EAAQtuM,EAAKsC,MAAM,KAAK+V,QAAO,SAAUtO,GAAK,OAAOA,CAAG,IAC5D,OAAOukM,EAAM96L,QACX,SAAUnjB,EAAQm5M,EAAY3xM,GAC5B,IAAIu/F,EAAQ/mG,EAAOm5M,GACnB,IAAKpyG,EACH,MAAM,IAAIh8F,MAAO,mBAAsBouM,EAAa,eAAmBxpM,EAAO,MAEhF,OAAOnI,IAAMy2M,EAAMv2M,OAAS,EAAIq/F,EAAQA,EAAMw2G,SAChD,GACS,SAAT5tM,EAAkBquM,EAAYA,EAAU18K,KAAKi8K,UAEjD,CAEA,SAASM,EAAUl4K,GACjB,IACE,OAAOA,GACT,CAAE,MAAO53B,GACP,OAAOA,CACT,CACF,CAGA,IAAImwM,EAAS,SAAiBC,EAAW1qI,GACvC3sE,KAAK2sE,QAAUA,EAEf3sE,KAAKy2M,UAAY1wM,OAAO1G,OAAO,MAE/BW,KAAKs3M,WAAaD,EAClB,IAAIE,EAAWF,EAAUn9J,MAGzBl6C,KAAKk6C,OAA6B,oBAAbq9J,EAA0BA,IAAaA,IAAa,CAAC,CAC5E,EAEIC,EAAuB,CAAEtF,WAAY,CAAE3vL,cAAc,IAEzDi1L,EAAqBtF,WAAW11L,IAAM,WACpC,QAASxc,KAAKs3M,WAAWpF,UAC3B,EAEAkF,EAAOj4M,UAAUs4M,SAAW,SAAmB35M,EAAK5E,GAClD8G,KAAKy2M,UAAU34M,GAAO5E,CACxB,EAEAk+M,EAAOj4M,UAAU0hH,YAAc,SAAsB/iH,UAC5CkC,KAAKy2M,UAAU34M,EACxB,EAEAs5M,EAAOj4M,UAAUu4M,SAAW,SAAmB55M,GAC7C,OAAOkC,KAAKy2M,UAAU34M,EACxB,EAEAs5M,EAAOj4M,UAAUw4M,SAAW,SAAmB75M,GAC7C,OAAOA,KAAOkC,KAAKy2M,SACrB,EAEAW,EAAOj4M,UAAUmW,OAAS,SAAiB+hM,GACzCr3M,KAAKs3M,WAAWpF,WAAamF,EAAUnF,WACnCmF,EAAUO,UACZ53M,KAAKs3M,WAAWM,QAAUP,EAAUO,SAElCP,EAAUQ,YACZ73M,KAAKs3M,WAAWO,UAAYR,EAAUQ,WAEpCR,EAAU9F,UACZvxM,KAAKs3M,WAAW/F,QAAU8F,EAAU9F,QAExC,EAEA6F,EAAOj4M,UAAU6zM,aAAe,SAAuBtvM,GACrD6sM,EAAavwM,KAAKy2M,UAAW/yM,EAC/B,EAEA0zM,EAAOj4M,UAAU2zM,cAAgB,SAAwBpvM,GACnD1D,KAAKs3M,WAAW/F,SAClBhB,EAAavwM,KAAKs3M,WAAW/F,QAAS7tM,EAE1C,EAEA0zM,EAAOj4M,UAAUyzM,cAAgB,SAAwBlvM,GACnD1D,KAAKs3M,WAAWM,SAClBrH,EAAavwM,KAAKs3M,WAAWM,QAASl0M,EAE1C,EAEA0zM,EAAOj4M,UAAUqzM,gBAAkB,SAA0B9uM,GACvD1D,KAAKs3M,WAAWO,WAClBtH,EAAavwM,KAAKs3M,WAAWO,UAAWn0M,EAE5C,EAEAqC,OAAOsc,iBAAkB+0L,EAAOj4M,UAAWq4M,GAE3C,IAAIM,EAAmB,SAA2BC,GAEhD/3M,KAAKyS,SAAS,GAAIslM,GAAe,EACnC,EA6EA,SAASziM,GAAQzM,EAAMmvM,EAAcC,GASnC,GAHAD,EAAa1iM,OAAO2iM,GAGhBA,EAAUC,QACZ,IAAK,IAAIp6M,KAAOm6M,EAAUC,QAAS,CACjC,IAAKF,EAAaN,SAAS55M,GAOzB,cAEFwX,GACEzM,EAAKhG,OAAO/E,GACZk6M,EAAaN,SAAS55M,GACtBm6M,EAAUC,QAAQp6M,GAEtB,CAEJ,CAtGAg6M,EAAiB34M,UAAUqd,IAAM,SAAc3T,GAC7C,OAAOA,EAAKwT,QAAO,SAAUnjB,EAAQ4E,GACnC,OAAO5E,EAAOw+M,SAAS55M,EACzB,GAAGkC,KAAKw6B,KACV,EAEAs9K,EAAiB34M,UAAU8yM,aAAe,SAAuBppM,GAC/D,IAAI3P,EAAS8G,KAAKw6B,KAClB,OAAO3xB,EAAKwT,QAAO,SAAU21L,EAAWl0M,GAEtC,OADA5E,EAASA,EAAOw+M,SAAS55M,GAClBk0M,GAAa94M,EAAOg5M,WAAap0M,EAAM,IAAM,GACtD,GAAG,GACL,EAEAg6M,EAAiB34M,UAAUmW,OAAS,SAAmByiM,GACrDziM,GAAO,GAAItV,KAAKw6B,KAAMu9K,EACxB,EAEAD,EAAiB34M,UAAUsT,SAAW,SAAmB5J,EAAMwuM,EAAW1qI,GACtE,IAAIwrI,EAAWn4M,UACE,IAAZ2sE,IAAqBA,GAAU,GAMtC,IAAIsrI,EAAY,IAAIb,EAAOC,EAAW1qI,GACtC,GAAoB,IAAhB9jE,EAAKjI,OACPZ,KAAKw6B,KAAOy9K,MACP,CACL,IAAIp9K,EAAS76B,KAAKwc,IAAI3T,EAAKrD,MAAM,GAAI,IACrCq1B,EAAO48K,SAAS5uM,EAAKA,EAAKjI,OAAS,GAAIq3M,EACzC,CAGIZ,EAAUa,SACZ3H,EAAa8G,EAAUa,SAAS,SAAUE,EAAgBt6M,GACxDq6M,EAAS1lM,SAAS5J,EAAKhG,OAAO/E,GAAMs6M,EAAgBzrI,EACtD,GAEJ,EAEAmrI,EAAiB34M,UAAUk5M,WAAa,SAAqBxvM,GAC3D,IAAIgyB,EAAS76B,KAAKwc,IAAI3T,EAAKrD,MAAM,GAAI,IACjC1H,EAAM+K,EAAKA,EAAKjI,OAAS,GACzBq/F,EAAQplE,EAAO68K,SAAS55M,GAEvBmiG,GAUAA,EAAMtzB,SAIX9xC,EAAOgmF,YAAY/iH,EACrB,EAEAg6M,EAAiB34M,UAAUm5M,aAAe,SAAuBzvM,GAC/D,IAAIgyB,EAAS76B,KAAKwc,IAAI3T,EAAKrD,MAAM,GAAI,IACjC1H,EAAM+K,EAAKA,EAAKjI,OAAS,GAE7B,QAAIi6B,GACKA,EAAO88K,SAAS75M,EAI3B,EAwEA,SAASy6M,GAAah1M,GACpB,OAAO,IAAIi1M,GAAMj1M,EACnB,CAEA,IAAIi1M,GAAQ,SAAgBj1M,GAC1B,IAAI40M,EAAWn4M,UACE,IAAZuD,IAAqBA,EAAU,CAAC,GAOrC,IAAIk1M,EAAUl1M,EAAQk1M,aAA0B,IAAZA,IAAqBA,EAAU,IACnE,IAAI7G,EAASruM,EAAQquM,YAAwB,IAAXA,IAAoBA,GAAS,GAC/D,IAAI8G,EAAWn1M,EAAQm1M,SAGvB14M,KAAK24M,aAAc,EACnB34M,KAAK6wM,SAAW9qM,OAAO1G,OAAO,MAC9BW,KAAK44M,mBAAqB,GAC1B54M,KAAK8wM,WAAa/qM,OAAO1G,OAAO,MAChCW,KAAK+wM,gBAAkBhrM,OAAO1G,OAAO,MACrCW,KAAK8xD,SAAW,IAAIgmJ,EAAiBv0M,GACrCvD,KAAKgxM,qBAAuBjrM,OAAO1G,OAAO,MAC1CW,KAAK64M,aAAe,GACpB74M,KAAKwxM,uBAAyBzrM,OAAO1G,OAAO,MAK5CW,KAAKsxM,OAAS,KAEdtxM,KAAK84M,UAAYJ,EAGjB,IAAIjqM,EAAQzO,KACRgxF,EAAMhxF,KACNslC,EAAW0rD,EAAI1rD,SACf+tK,EAASriH,EAAIqiH,OACjBrzM,KAAKslC,SAAW,SAAwB/mC,EAAMoL,GAC5C,OAAO27B,EAASlhC,KAAKqK,EAAOlQ,EAAMoL,EACpC,EACA3J,KAAKqzM,OAAS,SAAsB90M,EAAMoL,EAASpG,GACjD,OAAO8vM,EAAOjvM,KAAKqK,EAAOlQ,EAAMoL,EAASpG,EAC3C,EAGAvD,KAAK4xM,OAASA,EAEd,IAAI13J,EAAQl6C,KAAK8xD,SAASt3B,KAAK0f,MAK/B+2J,EAAcjxM,KAAMk6C,EAAO,GAAIl6C,KAAK8xD,SAASt3B,MAI7C02K,EAAgBlxM,KAAMk6C,GAGtBu+J,EAAQ76M,SAAQ,SAAUohE,GAAU,OAAOA,EAAOm5I,EAAW,GAC/D,EAEIY,GAAqB,CAAE7+J,MAAO,CAAE33B,cAAc,IAElDi2L,GAAMr5M,UAAUgtG,QAAU,SAAkBpB,EAAKiuG,GAC/CjuG,EAAIhD,QAAQixG,GAAa3I,EAAUrwM,MACnC+qG,EAAIjxG,OAAOwtG,iBAAiB2xG,OAASj5M,KAErC,IAAIk5M,OAAiCx7M,IAAnBsC,KAAK84M,WACnB94M,KAAK84M,UAGLI,GACFhF,EAAYnpG,EAAK/qG,KAErB,EAEA+4M,GAAmB7+J,MAAM19B,IAAM,WAC7B,OAAOxc,KAAKoxM,OAAOh3M,IACrB,EAEA2+M,GAAmB7+J,MAAMz8B,IAAM,SAAUpV,GACnC,CAGN,EAEAmwM,GAAMr5M,UAAUk0M,OAAS,SAAiBH,EAAOC,EAAUl4L,GACvD,IAAIk9L,EAAWn4M,KAGbgxF,EAAMoiH,EAAiBF,EAAOC,EAAUl4L,GACtC1c,EAAOyyF,EAAIzyF,KACXoL,EAAUqnF,EAAIrnF,QAGhB8oM,GAFYzhH,EAAIztF,QAEL,CAAEhF,KAAMA,EAAMoL,QAASA,IAClCk0C,EAAQ79C,KAAK8wM,WAAWvyM,GACvBs/C,IAML79C,KAAK8xM,aAAY,WACfj0J,EAAMjgD,SAAQ,SAAyB8yC,GACrCA,EAAQ/mC,EACV,GACF,IAEA3J,KAAK64M,aACFrzM,QACA5H,SAAQ,SAAU8hJ,GAAO,OAAOA,EAAI+yD,EAAU0F,EAASj+J,MAAQ,IAWpE,EAEAs+J,GAAMr5M,UAAUmmC,SAAW,SAAmB4tK,EAAOC,GACjD,IAAIgF,EAAWn4M,KAGbgxF,EAAMoiH,EAAiBF,EAAOC,GAC5B50M,EAAOyyF,EAAIzyF,KACXoL,EAAUqnF,EAAIrnF,QAEhB+4D,EAAS,CAAEnkE,KAAMA,EAAMoL,QAASA,GAChCk0C,EAAQ79C,KAAK6wM,SAAStyM,GAC1B,GAAKs/C,EAAL,CAOA,IACE79C,KAAK44M,mBACFpzM,QACA0b,QAAO,SAAUw+H,GAAO,OAAOA,EAAIzhF,MAAQ,IAC3CrgE,SAAQ,SAAU8hJ,GAAO,OAAOA,EAAIzhF,OAAOyE,EAAQy1I,EAASj+J,MAAQ,GACzE,CAAE,MAAOjzC,GACH,CAIN,CAEA,IAAI4E,EAASgyC,EAAMj9C,OAAS,EACxB7G,QAAQ4F,IAAIk+C,EAAMhoC,KAAI,SAAU66B,GAAW,OAAOA,EAAQ/mC,EAAU,KACpEk0C,EAAM,GAAGl0C,GAEb,OAAO,IAAI5P,SAAQ,SAAUC,EAASC,GACpC4R,EAAOrL,MAAK,SAAUmtC,GACpB,IACEwqK,EAASS,mBACN13L,QAAO,SAAUw+H,GAAO,OAAOA,EAAIxhF,KAAO,IAC1CtgE,SAAQ,SAAU8hJ,GAAO,OAAOA,EAAIxhF,MAAMwE,EAAQy1I,EAASj+J,MAAQ,GACxE,CAAE,MAAOjzC,GACH,CAIN,CACAjN,EAAQ2zC,EACV,IAAG,SAAUzqC,GACX,IACEi1M,EAASS,mBACN13L,QAAO,SAAUw+H,GAAO,OAAOA,EAAIx8I,KAAO,IAC1CtF,SAAQ,SAAU8hJ,GAAO,OAAOA,EAAIx8I,MAAMw/D,EAAQy1I,EAASj+J,MAAOh3C,EAAQ,GAC/E,CAAE,MAAO+D,GACH,CAIN,CACAhN,EAAOiJ,EACT,GACF,GA5CA,CA6CF,EAEAs1M,GAAMr5M,UAAUV,UAAY,SAAoBiF,EAAIH,GAClD,OAAOktM,EAAiB/sM,EAAI1D,KAAK64M,aAAct1M,EACjD,EAEAi1M,GAAMr5M,UAAU22M,gBAAkB,SAA0BpyM,EAAIH,GAC9D,IAAImtM,EAAqB,oBAAPhtM,EAAoB,CAAEu6D,OAAQv6D,GAAOA,EACvD,OAAO+sM,EAAiBC,EAAM1wM,KAAK44M,mBAAoBr1M,EACzD,EAEAi1M,GAAMr5M,UAAU68F,MAAQ,SAAkBxJ,EAAQ3zD,EAAIt7B,GAClD,IAAI40M,EAAWn4M,KAKjB,OAAO,SAAM,WAAc,OAAOwyF,EAAO2lH,EAASj+J,MAAOi+J,EAAS5G,QAAU,GAAG1yK,EAAI94B,OAAOkJ,OAAO,CAAC,EAAG1L,GACvG,EAEAi1M,GAAMr5M,UAAU4wD,aAAe,SAAuB7V,GAClD,IAAIi+J,EAAWn4M,KAEjBA,KAAK8xM,aAAY,WACfqG,EAAS/G,OAAOh3M,KAAO8/C,CACzB,GACF,EAEAs+J,GAAMr5M,UAAUg6M,eAAiB,SAAyBtwM,EAAMwuM,EAAW9zM,QACtD,IAAZA,IAAqBA,EAAU,CAAC,GAEnB,kBAATsF,IAAqBA,EAAO,CAACA,IAOxC7I,KAAK8xD,SAASr/C,SAAS5J,EAAMwuM,GAC7BpG,EAAcjxM,KAAMA,KAAKk6C,MAAOrxC,EAAM7I,KAAK8xD,SAASt1C,IAAI3T,GAAOtF,EAAQ61M,eAEvElI,EAAgBlxM,KAAMA,KAAKk6C,MAC7B,EAEAs+J,GAAMr5M,UAAUk6M,iBAAmB,SAA2BxwM,GAC1D,IAAIsvM,EAAWn4M,KAEG,kBAAT6I,IAAqBA,EAAO,CAACA,IAMxC7I,KAAK8xD,SAASumJ,WAAWxvM,GACzB7I,KAAK8xM,aAAY,WACf,IAAIK,EAAcC,EAAe+F,EAASj+J,MAAOrxC,EAAKrD,MAAM,GAAI,WACzD2sM,EAAYtpM,EAAKA,EAAKjI,OAAS,GACxC,IACA+vM,EAAW3wM,KACb,EAEAw4M,GAAMr5M,UAAUm6M,UAAY,SAAoBzwM,GAO9C,MANoB,kBAATA,IAAqBA,EAAO,CAACA,IAMjC7I,KAAK8xD,SAASwmJ,aAAazvM,EACpC,EAEA2vM,GAAMr5M,UAAUo6M,UAAY,SAAoBC,GAC9Cx5M,KAAK8xD,SAASx8C,OAAOkkM,GACrB7I,EAAW3wM,MAAM,EACnB,EAEAw4M,GAAMr5M,UAAU2yM,YAAc,SAAsBpuM,GAClD,IAAI+1M,EAAaz5M,KAAK24M,YACtB34M,KAAK24M,aAAc,EACnBj1M,IACA1D,KAAK24M,YAAcc,CACrB,EAEA1zM,OAAOsc,iBAAkBm2L,GAAMr5M,UAAW45M,IAQ3BW,IAAmB,SAAU1H,EAAW2H,GACrD,IAAIhsK,EAAM,CAAC,EA0BX,OAtBAisK,GAAaD,GAAQ/7M,SAAQ,SAAUozF,GACrC,IAAIlzF,EAAMkzF,EAAIlzF,IACVD,EAAMmzF,EAAInzF,IAEd8vC,EAAI7vC,GAAO,WACT,IAAIo8C,EAAQl6C,KAAKi5M,OAAO/+J,MACpBq3J,EAAUvxM,KAAKi5M,OAAO1H,QAC1B,GAAIS,EAAW,CACb,IAAI94M,EAAS2gN,GAAqB75M,KAAKi5M,OAAQ,WAAYjH,GAC3D,IAAK94M,EACH,OAEFghD,EAAQhhD,EAAO+F,QAAQi7C,MACvBq3J,EAAUr4M,EAAO+F,QAAQsyM,OAC3B,CACA,MAAsB,oBAAR1zM,EACVA,EAAIuG,KAAKpE,KAAMk6C,EAAOq3J,GACtBr3J,EAAMr8C,EACZ,EAEA8vC,EAAI7vC,GAAKg8M,MAAO,CAClB,IACOnsK,CACT,IAQmB+rK,IAAmB,SAAU1H,EAAW6F,GACzD,IAAIlqK,EAAM,CAAC,EA0BX,OAtBAisK,GAAa/B,GAAWj6M,SAAQ,SAAUozF,GACxC,IAAIlzF,EAAMkzF,EAAIlzF,IACVD,EAAMmzF,EAAInzF,IAEd8vC,EAAI7vC,GAAO,WACT,IAAIkK,EAAO,GAAI0Z,EAAMzZ,UAAUrH,OAC/B,MAAQ8gB,IAAQ1Z,EAAM0Z,GAAQzZ,UAAWyZ,GAGzC,IAAI2xL,EAASrzM,KAAKi5M,OAAO5F,OACzB,GAAIrB,EAAW,CACb,IAAI94M,EAAS2gN,GAAqB75M,KAAKi5M,OAAQ,eAAgBjH,GAC/D,IAAK94M,EACH,OAEFm6M,EAASn6M,EAAO+F,QAAQo0M,MAC1B,CACA,MAAsB,oBAARx1M,EACVA,EAAI+E,MAAM5C,KAAM,CAACqzM,GAAQxwM,OAAOmF,IAChCqrM,EAAOzwM,MAAM5C,KAAKi5M,OAAQ,CAACp7M,GAAKgF,OAAOmF,GAC7C,CACF,IACO2lC,CACT,IAQiB+rK,IAAmB,SAAU1H,EAAWT,GACvD,IAAI5jK,EAAM,CAAC,EAuBX,OAnBAisK,GAAarI,GAAS3zM,SAAQ,SAAUozF,GACtC,IAAIlzF,EAAMkzF,EAAIlzF,IACVD,EAAMmzF,EAAInzF,IAGdA,EAAMm0M,EAAYn0M,EAClB8vC,EAAI7vC,GAAO,WACT,IAAIk0M,GAAc6H,GAAqB75M,KAAKi5M,OAAQ,aAAcjH,GAOlE,OAAOhyM,KAAKi5M,OAAO1H,QAAQ1zM,EAC7B,EAEA8vC,EAAI7vC,GAAKg8M,MAAO,CAClB,IACOnsK,CACT,IAQiB+rK,IAAmB,SAAU1H,EAAW4F,GACvD,IAAIjqK,EAAM,CAAC,EA0BX,OAtBAisK,GAAahC,GAASh6M,SAAQ,SAAUozF,GACtC,IAAIlzF,EAAMkzF,EAAIlzF,IACVD,EAAMmzF,EAAInzF,IAEd8vC,EAAI7vC,GAAO,WACT,IAAIkK,EAAO,GAAI0Z,EAAMzZ,UAAUrH,OAC/B,MAAQ8gB,IAAQ1Z,EAAM0Z,GAAQzZ,UAAWyZ,GAGzC,IAAI4jB,EAAWtlC,KAAKi5M,OAAO3zK,SAC3B,GAAI0sK,EAAW,CACb,IAAI94M,EAAS2gN,GAAqB75M,KAAKi5M,OAAQ,aAAcjH,GAC7D,IAAK94M,EACH,OAEFosC,EAAWpsC,EAAO+F,QAAQqmC,QAC5B,CACA,MAAsB,oBAARznC,EACVA,EAAI+E,MAAM5C,KAAM,CAACslC,GAAUziC,OAAOmF,IAClCs9B,EAAS1iC,MAAM5C,KAAKi5M,OAAQ,CAACp7M,GAAKgF,OAAOmF,GAC/C,CACF,IACO2lC,CACT,IAqBA,SAASisK,GAAc/jM,GACrB,OAAKkkM,GAAWlkM,GAGTlT,MAAM4C,QAAQsQ,GACjBA,EAAIA,KAAI,SAAU/X,GAAO,MAAO,CAAGA,IAAKA,EAAKD,IAAKC,EAAQ,IAC1DiI,OAAOC,KAAK6P,GAAKA,KAAI,SAAU/X,GAAO,MAAO,CAAGA,IAAKA,EAAKD,IAAKgY,EAAI/X,GAAS,IAJvE,EAKX,CAOA,SAASi8M,GAAYlkM,GACnB,OAAOlT,MAAM4C,QAAQsQ,IAAQlO,EAASkO,EACxC,CAOA,SAAS6jM,GAAoBh2M,GAC3B,OAAO,SAAUsuM,EAAWn8L,GAO1B,MANyB,kBAAdm8L,GACTn8L,EAAMm8L,EACNA,EAAY,IACwC,MAA3CA,EAAUpnM,OAAOonM,EAAUpxM,OAAS,KAC7CoxM,GAAa,KAERtuM,EAAGsuM,EAAWn8L,EACvB,CACF,CASA,SAASgkM,GAAsBprM,EAAOurM,EAAQhI,GAC5C,IAAI94M,EAASuV,EAAMuiM,qBAAqBgB,GAIxC,OAAO94M,CACT,C,wBCh2CAA,EAAOC,QAAU,EAAjB,iB,mCCOA,SAASspB,EAAgBvjB,EAAUwjB,GAAe,KAAMxjB,aAAoBwjB,GAAgB,MAAM,IAAItiB,UAAU,oCAAwC,CAExJ,SAASuiB,EAAkBtd,EAAQud,GAAS,IAAK,IAAIliB,EAAI,EAAGA,EAAIkiB,EAAMhiB,OAAQF,IAAK,CAAE,IAAImiB,EAAaD,EAAMliB,GAAImiB,EAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWN,cAAe,EAAU,UAAWM,IAAYA,EAAWL,UAAW,GAAMzc,OAAOuc,eAAejd,EAAQwd,EAAW/kB,IAAK+kB,EAAa,CAAE,CAE5T,SAASC,EAAaJ,EAAaK,EAAYC,GAAmJ,OAAhID,GAAYJ,EAAkBD,EAAYvjB,UAAW4jB,GAAiBC,GAAaL,EAAkBD,EAAaM,GAAqBN,CAAa,CANtNvpB,EAAQwmC,gBAAa,EASrB,IAAI4rH,EAAa,WACf,MAAyB,oBAAXz4I,MAChB,EAEIysB,EAAY,SAAU56B,GACxB,OAAO4mJ,KAAgB/2I,QAAQ1B,OAAOnO,GACxC,EAEIs1M,EAAY,SAAUt1M,GACxB,OAAO46B,EAAU56B,GAAQmO,OAAOnO,GAAQ,KAAOA,CACjD,EAEI4mJ,MAAiBhsH,EAAU,gBAC7BzsB,OAAOmgC,WAAangC,OAAO,eAG7B,IAAIonM,EAAiBD,EAAU,YAC3BE,EAAmBF,EAAU,cAC7BG,EAAgBH,EAAU,WAE9B,SAASI,EAAUztM,EAAK9O,GACtB,IAAI5B,EAAQ0Q,EAAI9O,GAChB,GAAa,MAAT5B,EAAJ,CACA,GAAqB,oBAAVA,EAAsB,MAAM,IAAIkE,UAAUlE,EAAQ,sBAC7D,OAAOA,CAF4B,CAGrC,CAEA,SAASo+M,EAAW1tM,GAClB,IAAIwkE,EAAOxkE,EAAIR,YAUf,YARa1O,IAAT0zE,IACFA,EAAOA,EAAKgpI,GAEC,OAAThpI,IACFA,OAAO1zE,SAIKA,IAAT0zE,EAAqBA,EAAOzxC,CACrC,CAEA,SAAS46K,EAAat7K,GACpB,OAAOA,aAAaU,CACtB,CAEA,SAAS66K,EAAgBvzM,GACnBuzM,EAAgBtoM,IAClBsoM,EAAgBtoM,IAAIjL,GAEpBnK,YAAW,WACT,MAAMmK,CACR,GAEJ,CAEA,SAASwzM,EAAQ/2M,GACf3J,QAAQC,UAAUwG,MAAK,WACrB,IACEkD,GACF,CAAE,MAAOuD,GACPuzM,EAAgBvzM,EAClB,CACF,GACF,CAEA,SAASyzM,EAAoBvnK,GAC3B,IAAImpD,EAAUnpD,EAAawnK,SAC3B,QAAgBj9M,IAAZ4+F,IACJnpD,EAAawnK,cAAWj9M,EAEnB4+F,GAIL,IACE,GAAuB,oBAAZA,EACTA,QACK,CACL,IAAI5hG,EAAc2/M,EAAU/9G,EAAS,eAEjC5hG,GACFA,EAAY0J,KAAKk4F,EAErB,CACF,CAAE,MAAOr1F,GACPuzM,EAAgBvzM,EAClB,CACF,CAEA,SAAS2zM,EAAkBznK,GACzBA,EAAapS,eAAYrjC,EACzBy1C,EAAa0nK,YAASn9M,EACtBy1C,EAAai+J,OAAS,QACxB,CAEA,SAAS0J,EAAkB3nK,GACzB,IAAIghD,EAAQhhD,EAAa0nK,OAEzB,GAAK1mH,EAAL,CAIAhhD,EAAa0nK,YAASn9M,EACtBy1C,EAAai+J,OAAS,QAEtB,IAAK,IAAI1wM,EAAI,EAAGA,EAAIyzF,EAAMvzF,SAAUF,EAElC,GADAq6M,EAAmB5nK,EAAcghD,EAAMzzF,GAAGnC,KAAM41F,EAAMzzF,GAAGxE,OAC7B,WAAxBi3C,EAAai+J,OAAqB,KAPxC,CASF,CAEA,SAAS2J,EAAmB5nK,EAAc50C,EAAMrC,GAC9Ci3C,EAAai+J,OAAS,UACtB,IAAI1wK,EAAWyS,EAAapS,UAE5B,IACE,IAAIluB,EAAIwnM,EAAU35K,EAAUniC,GAE5B,OAAQA,GACN,IAAK,OACCsU,GAAGA,EAAEzO,KAAKs8B,EAAUxkC,GACxB,MAEF,IAAK,QAEH,GADA0+M,EAAkBznK,IACdtgC,EAAgC,MAAM3W,EAAnC2W,EAAEzO,KAAKs8B,EAAUxkC,GACxB,MAEF,IAAK,WACH0+M,EAAkBznK,GACdtgC,GAAGA,EAAEzO,KAAKs8B,GACd,MAEN,CAAE,MAAOz5B,GACPuzM,EAAgBvzM,EAClB,CAE4B,WAAxBksC,EAAai+J,OAAqBsJ,EAAoBvnK,GAA+C,YAAxBA,EAAai+J,SAAsBj+J,EAAai+J,OAAS,QAC5I,CAEA,SAAS4J,EAAS7nK,EAAc50C,EAAMrC,GACpC,GAA4B,WAAxBi3C,EAAai+J,OAAjB,CAEA,GAA4B,cAAxBj+J,EAAai+J,OASjB,MAA4B,UAAxBj+J,EAAai+J,QACfj+J,EAAai+J,OAAS,YACtBj+J,EAAa0nK,OAAS,CAAC,CACrBt8M,KAAMA,EACNrC,MAAOA,SAETu+M,GAAQ,WACN,OAAOK,EAAkB3nK,EAC3B,UAIF4nK,EAAmB5nK,EAAc50C,EAAMrC,GApBrCi3C,EAAa0nK,OAAO35M,KAAK,CACvB3C,KAAMA,EACNrC,MAAOA,GALiC,CAwB9C,CAEA,IAAI0vL,EAEJ,WACE,SAASA,EAAalrJ,EAAUsuJ,GAC9BvsK,EAAgBziB,KAAM4rL,GAItB5rL,KAAK26M,cAAWj9M,EAChBsC,KAAK+gC,UAAYL,EACjB1gC,KAAK66M,YAASn9M,EACdsC,KAAKoxM,OAAS,eACd,IAAI1jK,EAAuB,IAAIutK,EAAqBj7M,MAEpD,IACEA,KAAK26M,SAAW3rB,EAAW5qL,UAAK1G,EAAWgwC,EAC7C,CAAE,MAAOzmC,GACPymC,EAAqBxqC,MAAM+D,EAC7B,CAEoB,iBAAhBjH,KAAKoxM,SAA2BpxM,KAAKoxM,OAAS,QACpD,CAiBA,OAfAtuL,EAAa8oK,EAAc,CAAC,CAC1B9tL,IAAK,cACL5B,MAAO,WACe,WAAhB8D,KAAKoxM,SACPwJ,EAAkB56M,MAClB06M,EAAoB16M,MAExB,GACC,CACDlC,IAAK,SACL0e,IAAK,WACH,MAAuB,WAAhBxc,KAAKoxM,MACd,KAGKxlB,CACT,CArCA,GAuCIqvB,EAEJ,WACE,SAASA,EAAqB9nK,GAC5B1wB,EAAgBziB,KAAMi7M,GAEtBj7M,KAAKk7M,cAAgB/nK,CACvB,CAwBA,OAtBArwB,EAAam4L,EAAsB,CAAC,CAClCn9M,IAAK,OACL5B,MAAO,SAAcA,GACnB8+M,EAASh7M,KAAKk7M,cAAe,OAAQh/M,EACvC,GACC,CACD4B,IAAK,QACL5B,MAAO,SAAeA,GACpB8+M,EAASh7M,KAAKk7M,cAAe,QAASh/M,EACxC,GACC,CACD4B,IAAK,WACL5B,MAAO,WACL8+M,EAASh7M,KAAKk7M,cAAe,WAC/B,GACC,CACDp9M,IAAK,SACL0e,IAAK,WACH,MAAqC,WAA9Bxc,KAAKk7M,cAAc9J,MAC5B,KAGK6J,CACT,CA9BA,GAgCIt7K,EAEJ,WACE,SAASA,EAAWqvJ,GAGlB,GAFAvsK,EAAgBziB,KAAM2/B,KAEhB3/B,gBAAgB2/B,GAAa,MAAM,IAAIv/B,UAAU,6CACvD,GAA0B,oBAAf4uL,EAA2B,MAAM,IAAI5uL,UAAU,6CAC1DJ,KAAKm7M,YAAcnsB,CACrB,CAkVA,OAhVAlsK,EAAa6c,EAAY,CAAC,CACxB7hC,IAAK,YACL5B,MAAO,SAAmBwkC,GASxB,MARwB,kBAAbA,GAAsC,OAAbA,IAClCA,EAAW,CACTxtB,KAAMwtB,EACNx9B,MAAO+E,UAAU,GACjBmhC,SAAUnhC,UAAU,KAIjB,IAAI2jL,EAAalrJ,EAAU1gC,KAAKm7M,YACzC,GACC,CACDr9M,IAAK,UACL5B,MAAO,SAAiBwH,GACtB,IAAI4M,EAAQtQ,KAEZ,OAAO,IAAIjG,SAAQ,SAAUC,EAASC,GACpC,GAAkB,oBAAPyJ,EAUX,IAAIyvC,EAAe7iC,EAAM7R,UAAU,CACjCyU,KAAM,SAAUhX,GACd,IACEwH,EAAGxH,EAAO1B,EACZ,CAAE,MAAOyM,GACPhN,EAAOgN,GACPksC,EAAaz4C,aACf,CACF,EACAwI,MAAOjJ,EACPmvC,SAAUpvC,SAnBVC,EAAO,IAAImG,UAAUsD,EAAK,uBAI5B,SAASlJ,IACP24C,EAAaz4C,cACbV,GACF,CAcF,GACF,GACC,CACD8D,IAAK,MACL5B,MAAO,SAAawH,GAClB,IAAI6wB,EAASv0B,KAEb,GAAkB,oBAAP0D,EAAmB,MAAM,IAAItD,UAAUsD,EAAK,sBACvD,IAAI0+I,EAAIk4D,EAAWt6M,MACnB,OAAO,IAAIoiJ,GAAE,SAAU1hH,GACrB,OAAOnM,EAAO91B,UAAU,CACtByU,KAAM,SAAUhX,GACd,IACEA,EAAQwH,EAAGxH,EACb,CAAE,MAAO+K,GACP,OAAOy5B,EAASx9B,MAAM+D,EACxB,CAEAy5B,EAASxtB,KAAKhX,EAChB,EACAgH,MAAO,SAAU+D,GACfy5B,EAASx9B,MAAM+D,EACjB,EACAmiC,SAAU,WACR1I,EAAS0I,UACX,GAEJ,GACF,GACC,CACDtrC,IAAK,SACL5B,MAAO,SAAgBwH,GACrB,IAAI+4H,EAASz8H,KAEb,GAAkB,oBAAP0D,EAAmB,MAAM,IAAItD,UAAUsD,EAAK,sBACvD,IAAI0+I,EAAIk4D,EAAWt6M,MACnB,OAAO,IAAIoiJ,GAAE,SAAU1hH,GACrB,OAAO+7F,EAAOh+H,UAAU,CACtByU,KAAM,SAAUhX,GACd,IACE,IAAKwH,EAAGxH,GAAQ,MAClB,CAAE,MAAO+K,GACP,OAAOy5B,EAASx9B,MAAM+D,EACxB,CAEAy5B,EAASxtB,KAAKhX,EAChB,EACAgH,MAAO,SAAU+D,GACfy5B,EAASx9B,MAAM+D,EACjB,EACAmiC,SAAU,WACR1I,EAAS0I,UACX,GAEJ,GACF,GACC,CACDtrC,IAAK,SACL5B,MAAO,SAAgBwH,GACrB,IAAIg6H,EAAS19H,KAEb,GAAkB,oBAAP0D,EAAmB,MAAM,IAAItD,UAAUsD,EAAK,sBACvD,IAAI0+I,EAAIk4D,EAAWt6M,MACfo7M,EAAUnzM,UAAUrH,OAAS,EAC7By6M,GAAW,EACXC,EAAOrzM,UAAU,GACjBqU,EAAMg/L,EACV,OAAO,IAAIl5D,GAAE,SAAU1hH,GACrB,OAAOg9F,EAAOj/H,UAAU,CACtByU,KAAM,SAAUhX,GACd,IAAIgxJ,GAASmuD,EAGb,GAFAA,GAAW,GAENnuD,GAASkuD,EACZ,IACE9+L,EAAM5Y,EAAG4Y,EAAKpgB,EAChB,CAAE,MAAO+K,GACP,OAAOy5B,EAASx9B,MAAM+D,EACxB,MAEAqV,EAAMpgB,CAEV,EACAgH,MAAO,SAAU+D,GACfy5B,EAASx9B,MAAM+D,EACjB,EACAmiC,SAAU,WACR,IAAKiyK,IAAaD,EAAS,OAAO16K,EAASx9B,MAAM,IAAI9C,UAAU,oCAC/DsgC,EAASxtB,KAAKoJ,GACdokB,EAAS0I,UACX,GAEJ,GACF,GACC,CACDtrC,IAAK,SACL5B,MAAO,WAGL,IAFA,IAAIgiI,EAASl+H,KAEJyoK,EAAOxgK,UAAUrH,OAAQ26M,EAAU,IAAI54M,MAAM8lK,GAAOx2E,EAAO,EAAGA,EAAOw2E,EAAMx2E,IAClFspH,EAAQtpH,GAAQhqF,UAAUgqF,GAG5B,IAAImwD,EAAIk4D,EAAWt6M,MACnB,OAAO,IAAIoiJ,GAAE,SAAU1hH,GACrB,IAAIyS,EACAhyC,EAAQ,EAEZ,SAASq6M,EAAUtoM,GACjBigC,EAAejgC,EAAKzU,UAAU,CAC5ByU,KAAM,SAAU7K,GACdq4B,EAASxtB,KAAK7K,EAChB,EACAnF,MAAO,SAAU+D,GACfy5B,EAASx9B,MAAM+D,EACjB,EACAmiC,SAAU,WACJjoC,IAAUo6M,EAAQ36M,QACpBuyC,OAAez1C,EACfgjC,EAAS0I,YAEToyK,EAAUp5D,EAAE7hH,KAAKg7K,EAAQp6M,MAE7B,GAEJ,CAGA,OADAq6M,EAAUt9E,GACH,WACD/qF,IACFA,EAAaz4C,cACby4C,OAAez1C,EAEnB,CACF,GACF,GACC,CACDI,IAAK,UACL5B,MAAO,SAAiBwH,GACtB,IAAImiI,EAAS7lI,KAEb,GAAkB,oBAAP0D,EAAmB,MAAM,IAAItD,UAAUsD,EAAK,sBACvD,IAAI0+I,EAAIk4D,EAAWt6M,MACnB,OAAO,IAAIoiJ,GAAE,SAAU1hH,GACrB,IAAIwS,EAAgB,GAEhBoyC,EAAQugD,EAAOpnI,UAAU,CAC3ByU,KAAM,SAAUhX,GACd,GAAIwH,EACF,IACExH,EAAQwH,EAAGxH,EACb,CAAE,MAAO+K,GACP,OAAOy5B,EAASx9B,MAAM+D,EACxB,CAGF,IAAIs+E,EAAQ68D,EAAE7hH,KAAKrkC,GAAOuC,UAAU,CAClCyU,KAAM,SAAUhX,GACdwkC,EAASxtB,KAAKhX,EAChB,EACAgH,MAAO,SAAU+D,GACfy5B,EAASx9B,MAAM+D,EACjB,EACAmiC,SAAU,WACR,IAAI1oC,EAAIwyC,EAAcr2C,QAAQ0oF,GAC1B7kF,GAAK,GAAGwyC,EAAc9xC,OAAOV,EAAG,GACpC+6M,GACF,IAEFvoK,EAAchyC,KAAKqkF,EACrB,EACAriF,MAAO,SAAU+D,GACfy5B,EAASx9B,MAAM+D,EACjB,EACAmiC,SAAU,WACRqyK,GACF,IAGF,SAASA,IACHn2H,EAAMnkD,QAAmC,IAAzB+R,EAActyC,QAAc8/B,EAAS0I,UAC3D,CAEA,OAAO,WACL8J,EAAct1C,SAAQ,SAAUkX,GAC9B,OAAOA,EAAEpa,aACX,IACA4qF,EAAM5qF,aACR,CACF,GACF,GACC,CACDoD,IAAKq8M,EACLj+M,MAAO,WACL,OAAO8D,IACT,IACE,CAAC,CACHlC,IAAK,OACL5B,MAAO,SAAc+iC,GACnB,IAAImjH,EAAoB,oBAATpiJ,KAAsBA,KAAO2/B,EAC5C,GAAS,MAALV,EAAW,MAAM,IAAI7+B,UAAU6+B,EAAI,qBACvC,IAAI5iC,EAASg+M,EAAUp7K,EAAGk7K,GAE1B,GAAI99M,EAAQ,CACV,IAAI42C,EAAa52C,EAAO+H,KAAK66B,GAC7B,GAAIl5B,OAAOktC,KAAgBA,EAAY,MAAM,IAAI7yC,UAAU6yC,EAAa,qBACxE,OAAIsnK,EAAatnK,IAAeA,EAAW7mC,cAAgBg2I,EAAUnvG,EAC9D,IAAImvG,GAAE,SAAU1hH,GACrB,OAAOuS,EAAWx0C,UAAUiiC,EAC9B,GACF,CAEA,GAAInB,EAAU,cACZljC,EAASg+M,EAAUp7K,EAAGi7K,GAElB79M,GACF,OAAO,IAAI+lJ,GAAE,SAAU1hH,GACrB+5K,GAAQ,WACN,IAAI/5K,EAASS,OAAb,CACA,IAAIu6K,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBl+M,EAErB,IACE,IAAK,IAAmD6lK,EAA/CC,EAAYnnK,EAAO+H,KAAK66B,GAAGnsB,OAAOC,cAAsB2oM,GAA6Bn4C,EAAQC,EAAUtwJ,QAAQ1Y,MAAOkhN,GAA4B,EAAM,CAC/J,IAAIG,EAAQt4C,EAAMrnK,MAElB,GADAwkC,EAASxtB,KAAK2oM,GACVn7K,EAASS,OAAQ,MACvB,CACF,CAAE,MAAOhlC,GACPw/M,GAAoB,EACpBC,EAAiBz/M,CACnB,CAAE,QACA,IACOu/M,GAAiD,MAApBl4C,EAAUniI,QAC1CmiI,EAAUniI,QAEd,CAAE,QACA,GAAIs6K,EACF,MAAMC,CAEV,CACF,CAEAl7K,EAAS0I,UA1BkB,CA2B7B,GACF,IAIJ,GAAIzmC,MAAM4C,QAAQ05B,GAChB,OAAO,IAAImjH,GAAE,SAAU1hH,GACrB+5K,GAAQ,WACN,IAAI/5K,EAASS,OAAb,CAEA,IAAK,IAAIzgC,EAAI,EAAGA,EAAIu+B,EAAEr+B,SAAUF,EAE9B,GADAggC,EAASxtB,KAAK+rB,EAAEv+B,IACZggC,EAASS,OAAQ,OAGvBT,EAAS0I,UAPkB,CAQ7B,GACF,IAGF,MAAM,IAAIhpC,UAAU6+B,EAAI,qBAC1B,GACC,CACDnhC,IAAK,KACL5B,MAAO,WACL,IAAK,IAAI4/M,EAAQ7zM,UAAUrH,OAAQmR,EAAQ,IAAIpP,MAAMm5M,GAAQpzC,EAAQ,EAAGA,EAAQozC,EAAOpzC,IACrF32J,EAAM22J,GAASzgK,UAAUygK,GAG3B,IAAItmB,EAAoB,oBAATpiJ,KAAsBA,KAAO2/B,EAC5C,OAAO,IAAIyiH,GAAE,SAAU1hH,GACrB+5K,GAAQ,WACN,IAAI/5K,EAASS,OAAb,CAEA,IAAK,IAAIzgC,EAAI,EAAGA,EAAIqR,EAAMnR,SAAUF,EAElC,GADAggC,EAASxtB,KAAKnB,EAAMrR,IAChBggC,EAASS,OAAQ,OAGvBT,EAAS0I,UAPkB,CAQ7B,GACF,GACF,GACC,CACDtrC,IAAKs8M,EACL59L,IAAK,WACH,OAAOxc,IACT,KAGK2/B,CACT,CA1VA,GA4VAxmC,EAAQwmC,WAAaA,EAEjB4rH,KACFxlJ,OAAOuc,eAAeqd,EAAY7sB,OAAO,cAAe,CACtD5W,MAAO,CACL6/M,OAAQ5B,EACRK,gBAAiBA,GAEnBj4L,cAAc,G,qCCrmBlB,IAAIy5L,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OAEtB/6D,EAAa9gJ,UAGjBlH,EAAOC,QAAU,SAAU+iN,GACzB,GAAIF,EAAWE,GAAW,OAAOA,EACjC,MAAM,IAAIh7D,EAAW+6D,EAAYC,GAAY,qBAC/C,C,qCCTA,IAAIF,EAAa,EAAQ,OAErBG,EAAUnwL,OACVk1H,EAAa9gJ,UAEjBlH,EAAOC,QAAU,SAAU+iN,GACzB,GAAuB,iBAAZA,GAAwBF,EAAWE,GAAW,OAAOA,EAChE,MAAM,IAAIh7D,EAAW,aAAei7D,EAAQD,GAAY,kBAC1D,C,qCCRA,IAAIE,EAAgB,EAAQ,MAExBl7D,EAAa9gJ,UAEjBlH,EAAOC,QAAU,SAAUupK,EAAI25C,GAC7B,GAAID,EAAcC,EAAW35C,GAAK,OAAOA,EACzC,MAAM,IAAIxhB,EAAW,uBACvB,C,qCCPA,IAAIv5I,EAAW,EAAQ,OAEnBw0M,EAAUnwL,OACVk1H,EAAa9gJ,UAGjBlH,EAAOC,QAAU,SAAU+iN,GACzB,GAAIv0M,EAASu0M,GAAW,OAAOA,EAC/B,MAAM,IAAIh7D,EAAWi7D,EAAQD,GAAY,oBAC3C,C,qCCTA,IAAII,EAAkB,EAAQ,OAC1BC,EAAkB,EAAQ,OAC1BC,EAAoB,EAAQ,OAG5BC,EAAe,SAAUC,GAC3B,OAAO,SAAUplC,EAAO78E,EAAIkiH,GAC1B,IAGIzgN,EAHA+0J,EAAIqrD,EAAgBhlC,GACpB12K,EAAS47M,EAAkBvrD,GAC3B9vJ,EAAQo7M,EAAgBI,EAAW/7M,GAIvC,GAAI87M,GAAejiH,IAAOA,GAAI,MAAO75F,EAASO,EAG5C,GAFAjF,EAAQ+0J,EAAE9vJ,KAENjF,IAAUA,EAAO,OAAO,OAEvB,KAAM0E,EAASO,EAAOA,IAC3B,IAAKu7M,GAAev7M,KAAS8vJ,IAAMA,EAAE9vJ,KAAWs5F,EAAI,OAAOiiH,GAAev7M,GAAS,EACnF,OAAQu7M,IAAgB,CAC5B,CACF,EAEAxjN,EAAOC,QAAU,CAGfsb,SAAUgoM,GAAa,GAGvB5/M,QAAS4/M,GAAa,G,qCC9BxB,IAAIG,EAAc,EAAQ,OACtBr3M,EAAU,EAAQ,OAElB27I,EAAa9gJ,UAEb4hB,EAA2Bjc,OAAOic,yBAGlC66L,EAAoCD,IAAgB,WAEtD,QAAal/M,IAATsC,KAAoB,OAAO,EAC/B,IAEE+F,OAAOuc,eAAe,GAAI,SAAU,CAAEE,UAAU,IAAS5hB,OAAS,CACpE,CAAE,MAAOsC,GACP,OAAOA,aAAiB9C,SAC1B,CACF,CATwD,GAWxDlH,EAAOC,QAAU0jN,EAAoC,SAAU5rD,EAAGrwJ,GAChE,GAAI2E,EAAQ0rJ,KAAOjvI,EAAyBivI,EAAG,UAAUzuI,SACvD,MAAM,IAAI0+H,EAAW,gCACrB,OAAO+P,EAAErwJ,OAASA,CACtB,EAAI,SAAUqwJ,EAAGrwJ,GACf,OAAOqwJ,EAAErwJ,OAASA,CACpB,C,qCCzBA,IAAIk8M,EAAW,EAAQ,OACnBC,EAAgB,EAAQ,MAG5B7jN,EAAOC,QAAU,SAAU4Z,EAAUrP,EAAIxH,EAAO8gN,GAC9C,IACE,OAAOA,EAAUt5M,EAAGo5M,EAAS5gN,GAAO,GAAIA,EAAM,IAAMwH,EAAGxH,EACzD,CAAE,MAAOgH,GACP65M,EAAchqM,EAAU,QAAS7P,EACnC,CACF,C,qCCVA,IAAI+5M,EAAc,EAAQ,OAEtBh9M,EAAWg9M,EAAY,CAAC,EAAEh9M,UAC1Bi9M,EAAcD,EAAY,GAAGz3M,OAEjCtM,EAAOC,QAAU,SAAUupK,GACzB,OAAOw6C,EAAYj9M,EAASyiK,GAAK,GAAI,EACvC,C,qCCPA,IAAIy6C,EAAwB,EAAQ,OAChCnB,EAAa,EAAQ,OACrBoB,EAAa,EAAQ,OACrBC,EAAkB,EAAQ,OAE1BC,EAAgBD,EAAgB,eAChCh0D,EAAUtjJ,OAGVw3M,EAAwE,cAApDH,EAAW,WAAc,OAAOn1M,SAAW,CAAhC,IAG/Bu1M,EAAS,SAAU96C,EAAI5kK,GACzB,IACE,OAAO4kK,EAAG5kK,EACZ,CAAE,MAAOoF,GAAqB,CAChC,EAGAhK,EAAOC,QAAUgkN,EAAwBC,EAAa,SAAU16C,GAC9D,IAAIzR,EAAGtkI,EAAK9gB,EACZ,YAAcnO,IAAPglK,EAAmB,YAAqB,OAAPA,EAAc,OAEO,iBAAjD/1I,EAAM6wL,EAAOvsD,EAAI5H,EAAQqZ,GAAK46C,IAA8B3wL,EAEpE4wL,EAAoBH,EAAWnsD,GAEF,YAA5BplJ,EAASuxM,EAAWnsD,KAAoB+qD,EAAW/qD,EAAEwsD,QAAU,YAAc5xM,CACpF,C,qCC5BA,IAAImjH,EAAS,EAAQ,OACjBrtG,EAAU,EAAQ,OAClB+7L,EAAiC,EAAQ,OACzCC,EAAuB,EAAQ,OAEnCzkN,EAAOC,QAAU,SAAUkM,EAAQhE,EAAQu8M,GAIzC,IAHA,IAAI53M,EAAO2b,EAAQtgB,GACfihB,EAAiBq7L,EAAqB3jM,EACtCgI,EAA2B07L,EAA+B1jM,EACrDtZ,EAAI,EAAGA,EAAIsF,EAAKpF,OAAQF,IAAK,CACpC,IAAI5C,EAAMkI,EAAKtF,GACVsuH,EAAO3pH,EAAQvH,IAAU8/M,GAAc5uF,EAAO4uF,EAAY9/M,IAC7DwkB,EAAejd,EAAQvH,EAAKkkB,EAAyB3gB,EAAQvD,GAEjE,CACF,C,qCCfA,IAAI+/M,EAAQ,EAAQ,OAEpB3kN,EAAOC,SAAW0kN,GAAM,WACtB,SAAS37D,IAAkB,CAG3B,OAFAA,EAAE/iJ,UAAUiN,YAAc,KAEnBrG,OAAOwG,eAAe,IAAI21I,KAASA,EAAE/iJ,SAC9C,G,iCCLAjG,EAAOC,QAAU,SAAU+C,EAAO1B,GAChC,MAAO,CAAE0B,MAAOA,EAAO1B,KAAMA,EAC/B,C,qCCJA,IAAIoiN,EAAc,EAAQ,OACtBe,EAAuB,EAAQ,OAC/BG,EAA2B,EAAQ,MAEvC5kN,EAAOC,QAAUyjN,EAAc,SAAUh7L,EAAQ9jB,EAAK5B,GACpD,OAAOyhN,EAAqB3jM,EAAE4H,EAAQ9jB,EAAKggN,EAAyB,EAAG5hN,GACzE,EAAI,SAAU0lB,EAAQ9jB,EAAK5B,GAEzB,OADA0lB,EAAO9jB,GAAO5B,EACP0lB,CACT,C,gCCTA1oB,EAAOC,QAAU,SAAU4kN,EAAQ7hN,GACjC,MAAO,CACL+lB,aAAuB,EAAT87L,GACdx7L,eAAyB,EAATw7L,GAChBv7L,WAAqB,EAATu7L,GACZ7hN,MAAOA,EAEX,C,qCCPA,IAAI8hN,EAAgB,EAAQ,OACxBL,EAAuB,EAAQ,OAC/BG,EAA2B,EAAQ,MAEvC5kN,EAAOC,QAAU,SAAUyoB,EAAQ9jB,EAAK5B,GACtC,IAAI+hN,EAAcD,EAAclgN,GAC5BmgN,KAAer8L,EAAQ+7L,EAAqB3jM,EAAE4H,EAAQq8L,EAAaH,EAAyB,EAAG5hN,IAC9F0lB,EAAOq8L,GAAe/hN,CAC7B,C,qCCRA,IAAIgiN,EAAc,EAAQ,OACtB57L,EAAiB,EAAQ,OAE7BppB,EAAOC,QAAU,SAAUkM,EAAQV,EAAMke,GAGvC,OAFIA,EAAWrG,KAAK0hM,EAAYr7L,EAAWrG,IAAK7X,EAAM,CAAE6tF,QAAQ,IAC5D3vE,EAAWpF,KAAKygM,EAAYr7L,EAAWpF,IAAK9Y,EAAM,CAAEouF,QAAQ,IACzDzwE,EAAetI,EAAE3U,EAAQV,EAAMke,EACxC,C,qCCPA,IAAIm5L,EAAa,EAAQ,OACrB2B,EAAuB,EAAQ,OAC/BO,EAAc,EAAQ,OACtBC,EAAuB,EAAQ,OAEnCjlN,EAAOC,QAAU,SAAU83J,EAAGnzJ,EAAK5B,EAAOqH,GACnCA,IAASA,EAAU,CAAC,GACzB,IAAI66M,EAAS76M,EAAQ0e,WACjBtd,OAAwBjH,IAAjB6F,EAAQoB,KAAqBpB,EAAQoB,KAAO7G,EAEvD,GADIk+M,EAAW9/M,IAAQgiN,EAAYhiN,EAAOyI,EAAMpB,GAC5CA,EAAQuqD,OACNswJ,EAAQntD,EAAEnzJ,GAAO5B,EAChBiiN,EAAqBrgN,EAAK5B,OAC1B,CACL,IACOqH,EAAQ86M,OACJptD,EAAEnzJ,KAAMsgN,GAAS,UADEntD,EAAEnzJ,EAEhC,CAAE,MAAOoF,GAAqB,CAC1Bk7M,EAAQntD,EAAEnzJ,GAAO5B,EAChByhN,EAAqB3jM,EAAEi3I,EAAGnzJ,EAAK,CAClC5B,MAAOA,EACP+lB,YAAY,EACZM,cAAehf,EAAQ+6M,gBACvB97L,UAAWjf,EAAQg7M,aAEvB,CAAE,OAAOttD,CACX,C,qCC1BA,IAAIutD,EAAgB,EAAQ,OAE5BtlN,EAAOC,QAAU,SAAUkM,EAAQgQ,EAAK9R,GACtC,IAAK,IAAIzF,KAAOuX,EAAKmpM,EAAcn5M,EAAQvH,EAAKuX,EAAIvX,GAAMyF,GAC1D,OAAO8B,CACT,C,qCCLA,IAAIyoD,EAAS,EAAQ,OAGjBxrC,EAAiBvc,OAAOuc,eAE5BppB,EAAOC,QAAU,SAAU2E,EAAK5B,GAC9B,IACEomB,EAAewrC,EAAQhwD,EAAK,CAAE5B,MAAOA,EAAOqmB,cAAc,EAAMC,UAAU,GAC5E,CAAE,MAAOtf,GACP4qD,EAAOhwD,GAAO5B,CAChB,CAAE,OAAOA,CACX,C,qCCXA,IAAI2hN,EAAQ,EAAQ,OAGpB3kN,EAAOC,SAAW0kN,GAAM,WAEtB,OAA+E,IAAxE93M,OAAOuc,eAAe,CAAC,EAAG,EAAG,CAAE9F,IAAK,WAAc,OAAO,CAAG,IAAK,EAC1E,G,iCCNA,IAAIiiM,EAAiC,iBAAZr1M,UAAwBA,SAASzJ,IAItD++M,EAAmC,oBAAfD,QAA8C/gN,IAAhB+gN,EAEtDvlN,EAAOC,QAAU,CACfwG,IAAK8+M,EACLC,WAAYA,E,oCCRd,IAAI5wJ,EAAS,EAAQ,OACjBnmD,EAAW,EAAQ,OAEnByB,EAAW0kD,EAAO1kD,SAElBu1M,EAASh3M,EAASyB,IAAazB,EAASyB,EAASa,eAErD/Q,EAAOC,QAAU,SAAUupK,GACzB,OAAOi8C,EAASv1M,EAASa,cAAcy4J,GAAM,CAAC,CAChD,C,iCCTA,IAAIxhB,EAAa9gJ,UACbw+M,EAAmB,iBAEvB1lN,EAAOC,QAAU,SAAUupK,GACzB,GAAIA,EAAKk8C,EAAkB,MAAM19D,EAAW,kCAC5C,OAAOwhB,CACT,C,iCCNAxpK,EAAOC,QAAU,CACf0lN,eAAgB,CAAE/pM,EAAG,iBAAkBxT,EAAG,EAAGuR,EAAG,GAChDisM,mBAAoB,CAAEhqM,EAAG,qBAAsBxT,EAAG,EAAGuR,EAAG,GACxDksM,sBAAuB,CAAEjqM,EAAG,wBAAyBxT,EAAG,EAAGuR,EAAG,GAC9DmsM,mBAAoB,CAAElqM,EAAG,qBAAsBxT,EAAG,EAAGuR,EAAG,GACxDosM,sBAAuB,CAAEnqM,EAAG,wBAAyBxT,EAAG,EAAGuR,EAAG,GAC9DqsM,mBAAoB,CAAEpqM,EAAG,sBAAuBxT,EAAG,EAAGuR,EAAG,GACzDssM,2BAA4B,CAAErqM,EAAG,8BAA+BxT,EAAG,EAAGuR,EAAG,GACzEusM,cAAe,CAAEtqM,EAAG,gBAAiBxT,EAAG,EAAGuR,EAAG,GAC9CwsM,kBAAmB,CAAEvqM,EAAG,oBAAqBxT,EAAG,EAAGuR,EAAG,GACtDysM,oBAAqB,CAAExqM,EAAG,sBAAuBxT,EAAG,GAAIuR,EAAG,GAC3D0sM,kBAAmB,CAAEzqM,EAAG,oBAAqBxT,EAAG,GAAIuR,EAAG,GACvD42I,YAAa,CAAE30I,EAAG,aAAcxT,EAAG,GAAIuR,EAAG,GAC1C2sM,yBAA0B,CAAE1qM,EAAG,2BAA4BxT,EAAG,GAAIuR,EAAG,GACrE4sM,eAAgB,CAAE3qM,EAAG,gBAAiBxT,EAAG,GAAIuR,EAAG,GAChD6sM,mBAAoB,CAAE5qM,EAAG,qBAAsBxT,EAAG,GAAIuR,EAAG,GACzD8sM,gBAAiB,CAAE7qM,EAAG,iBAAkBxT,EAAG,GAAIuR,EAAG,GAClD+sM,kBAAmB,CAAE9qM,EAAG,oBAAqBxT,EAAG,GAAIuR,EAAG,GACvDgtM,cAAe,CAAE/qM,EAAG,eAAgBxT,EAAG,GAAIuR,EAAG,GAC9Ci+C,aAAc,CAAEh8C,EAAG,cAAexT,EAAG,GAAIuR,EAAG,GAC5CitM,WAAY,CAAEhrM,EAAG,YAAaxT,EAAG,GAAIuR,EAAG,GACxCktM,iBAAkB,CAAEjrM,EAAG,mBAAoBxT,EAAG,GAAIuR,EAAG,GACrDmtM,mBAAoB,CAAElrM,EAAG,qBAAsBxT,EAAG,GAAIuR,EAAG,GACzDotM,aAAc,CAAEnrM,EAAG,cAAexT,EAAG,GAAIuR,EAAG,GAC5CqtM,qBAAsB,CAAEprM,EAAG,wBAAyBxT,EAAG,GAAIuR,EAAG,GAC9DstM,eAAgB,CAAErrM,EAAG,iBAAkBxT,EAAG,GAAIuR,EAAG,G,iCCzBnD3Z,EAAOC,QAA8B,oBAAb2Q,WAA4BkiB,OAAOliB,UAAUC,YAAc,E,qCCAnF,IAOIV,EAAOyC,EAPPgiD,EAAS,EAAQ,OACjB/jD,EAAY,EAAQ,OAEpBvD,EAAUsnD,EAAOtnD,QACjB45M,EAAOtyJ,EAAOsyJ,KACd/jI,EAAW71E,GAAWA,EAAQ61E,UAAY+jI,GAAQA,EAAKt0M,QACvDu0M,EAAKhkI,GAAYA,EAASgkI,GAG1BA,IACFh3M,EAAQg3M,EAAGl1M,MAAM,KAGjBW,EAAUzC,EAAM,GAAK,GAAKA,EAAM,GAAK,EAAI,IAAMA,EAAM,GAAKA,EAAM,MAK7DyC,GAAW/B,IACdV,EAAQU,EAAUV,MAAM,iBACnBA,GAASA,EAAM,IAAM,MACxBA,EAAQU,EAAUV,MAAM,iBACpBA,IAAOyC,GAAWzC,EAAM,MAIhCnQ,EAAOC,QAAU2S,C,iCCzBjB5S,EAAOC,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,U,qCCRF,IAAI8jN,EAAc,EAAQ,OAEtBxyD,EAASxmJ,MACTb,EAAU65M,EAAY,GAAG75M,SAEzBk9M,EAAO,SAAW9qM,GAAO,OAAOwW,OAAO,IAAIy+H,EAAOj1I,GAAKvQ,MAAS,CAAzD,CAA2D,UAElEs7M,EAA2B,uBAC3BC,EAAwBD,EAAyB72M,KAAK42M,GAE1DpnN,EAAOC,QAAU,SAAU8L,EAAOw7M,GAChC,GAAID,GAAyC,iBAATv7M,IAAsBwlJ,EAAOi2D,kBAC/D,MAAOD,IAAex7M,EAAQ7B,EAAQ6B,EAAOs7M,EAA0B,IACvE,OAAOt7M,CACX,C,qCCdA,IAAI6oD,EAAS,EAAQ,OACjB9rC,EAA2B,WAC3B2+L,EAA8B,EAAQ,OACtCnC,EAAgB,EAAQ,OACxBL,EAAuB,EAAQ,OAC/ByC,EAA4B,EAAQ,OACpCC,EAAW,EAAQ,OAiBvB3nN,EAAOC,QAAU,SAAUoK,EAASlC,GAClC,IAGIy/M,EAAQz7M,EAAQvH,EAAKijN,EAAgBC,EAAgBn+L,EAHrDo+L,EAAS19M,EAAQ8B,OACjB67M,EAAS39M,EAAQuqD,OACjBqzJ,EAAS59M,EAAQ69M,KASrB,GANE/7M,EADE67M,EACOpzJ,EACAqzJ,EACArzJ,EAAOmzJ,IAAW9C,EAAqB8C,EAAQ,CAAC,IAE/CnzJ,EAAOmzJ,IAAW,CAAC,GAAG9hN,UAE9BkG,EAAQ,IAAKvH,KAAOuD,EAAQ,CAQ9B,GAPA2/M,EAAiB3/M,EAAOvD,GACpByF,EAAQ89M,gBACVx+L,EAAab,EAAyB3c,EAAQvH,GAC9CijN,EAAiBl+L,GAAcA,EAAW3mB,OACrC6kN,EAAiB17M,EAAOvH,GAC/BgjN,EAASD,EAASK,EAASpjN,EAAMmjN,GAAUE,EAAS,IAAM,KAAOrjN,EAAKyF,EAAQ+9M,SAEzER,QAA6BpjN,IAAnBqjN,EAA8B,CAC3C,UAAWC,UAAyBD,EAAgB,SACpDH,EAA0BI,EAAgBD,EAC5C,EAEIx9M,EAAQohB,MAASo8L,GAAkBA,EAAep8L,OACpDg8L,EAA4BK,EAAgB,QAAQ,GAEtDxC,EAAcn5M,EAAQvH,EAAKkjN,EAAgBz9M,EAC7C,CACF,C,iCCrDArK,EAAOC,QAAU,SAAUymB,GACzB,IACE,QAASA,GACX,CAAE,MAAO1c,GACP,OAAO,CACT,CACF,C,qCCNA,IAAI+5M,EAAc,EAAQ,OACtBsE,EAAY,EAAQ,OACpBC,EAAc,EAAQ,OAEtB5iN,EAAOq+M,EAAYA,EAAYr+M,MAGnC1F,EAAOC,QAAU,SAAUuK,EAAI6iD,GAE7B,OADAg7J,EAAU79M,QACMhG,IAAT6oD,EAAqB7iD,EAAK89M,EAAc5iN,EAAK8E,EAAI6iD,GAAQ,WAC9D,OAAO7iD,EAAGd,MAAM2jD,EAAMt+C,UACxB,CACF,C,qCCZA,IAAI41M,EAAQ,EAAQ,OAEpB3kN,EAAOC,SAAW0kN,GAAM,WAEtB,IAAIn0M,EAAO,WAA4B,EAAE9K,OAEzC,MAAsB,mBAAR8K,GAAsBA,EAAKmD,eAAe,YAC1D,G,qCCPA,IAAI20M,EAAc,EAAQ,OAEtBp9M,EAAOsgB,SAASvlB,UAAUiF,KAE9BlL,EAAOC,QAAUqoN,EAAcp9M,EAAKxF,KAAKwF,GAAQ,WAC/C,OAAOA,EAAKxB,MAAMwB,EAAM6D,UAC1B,C,qCCNA,IAAI20M,EAAc,EAAQ,OACtB5tF,EAAS,EAAQ,OAEjByyF,EAAoB/8L,SAASvlB,UAE7BuiN,EAAgB9E,GAAe72M,OAAOic,yBAEtC28L,EAAS3vF,EAAOyyF,EAAmB,QAEnCE,EAAShD,GAA0D,cAAhD,WAAqC,EAAEh6M,KAC1Di9M,EAAejD,KAAY/B,GAAgBA,GAAe8E,EAAcD,EAAmB,QAAQl/L,cAEvGrpB,EAAOC,QAAU,CACfwlN,OAAQA,EACRgD,OAAQA,EACRC,aAAcA,E,qCCfhB,IAAI3E,EAAc,EAAQ,OACtBsE,EAAY,EAAQ,OAExBroN,EAAOC,QAAU,SAAUyoB,EAAQ9jB,EAAKzB,GACtC,IAEE,OAAO4gN,EAAYsE,EAAUx7M,OAAOic,yBAAyBJ,EAAQ9jB,GAAKzB,IAC5E,CAAE,MAAO6G,GAAqB,CAChC,C,qCCRA,IAAIk6M,EAAa,EAAQ,OACrBH,EAAc,EAAQ,OAE1B/jN,EAAOC,QAAU,SAAUuK,GAIzB,GAAuB,aAAnB05M,EAAW15M,GAAoB,OAAOu5M,EAAYv5M,EACxD,C,qCCRA,IAAI89M,EAAc,EAAQ,OAEtBC,EAAoB/8L,SAASvlB,UAC7BiF,EAAOq9M,EAAkBr9M,KACzBy9M,EAAsBL,GAAeC,EAAkB7iN,KAAKA,KAAKwF,EAAMA,GAE3ElL,EAAOC,QAAUqoN,EAAcK,EAAsB,SAAUn+M,GAC7D,OAAO,WACL,OAAOU,EAAKxB,MAAMc,EAAIuE,UACxB,CACF,C,qCCVA,IAAI6lD,EAAS,EAAQ,OACjBkuJ,EAAa,EAAQ,OAErB8F,EAAY,SAAU5F,GACxB,OAAOF,EAAWE,GAAYA,OAAWx+M,CAC3C,EAEAxE,EAAOC,QAAU,SAAU64M,EAAW31M,GACpC,OAAO4L,UAAUrH,OAAS,EAAIkhN,EAAUh0J,EAAOkkJ,IAAclkJ,EAAOkkJ,IAAclkJ,EAAOkkJ,GAAW31M,EACtG,C,gCCPAnD,EAAOC,QAAU,SAAUyT,GACzB,MAAO,CACLmG,SAAUnG,EACVsG,KAAMtG,EAAIsG,KACV1Y,MAAM,EAEV,C,qCCRA,IAAIunN,EAAU,EAAQ,OAClB1H,EAAY,EAAQ,OACpB2H,EAAoB,EAAQ,OAC5BC,EAAY,EAAQ,OACpB5E,EAAkB,EAAQ,OAE1B6E,EAAW7E,EAAgB,YAE/BnkN,EAAOC,QAAU,SAAUupK,GACzB,IAAKs/C,EAAkBt/C,GAAK,OAAO23C,EAAU33C,EAAIw/C,IAC5C7H,EAAU33C,EAAI,eACdu/C,EAAUF,EAAQr/C,GACzB,C,qCCZA,IAAIt+J,EAAO,EAAQ,OACfm9M,EAAY,EAAQ,OACpBzE,EAAW,EAAQ,OACnBb,EAAc,EAAQ,OACtBkG,EAAoB,EAAQ,OAE5BjhE,EAAa9gJ,UAEjBlH,EAAOC,QAAU,SAAU+iN,EAAUkG,GACnC,IAAIC,EAAiBp6M,UAAUrH,OAAS,EAAIuhN,EAAkBjG,GAAYkG,EAC1E,GAAIb,EAAUc,GAAiB,OAAOvF,EAAS14M,EAAKi+M,EAAgBnG,IACpE,MAAM,IAAIh7D,EAAW+6D,EAAYC,GAAY,mBAC/C,C,qCCZA,IAAIqF,EAAY,EAAQ,OACpBS,EAAoB,EAAQ,OAIhC9oN,EAAOC,QAAU,SAAUguM,EAAGxtL,GAC5B,IAAI2oM,EAAOnb,EAAExtL,GACb,OAAOqoM,EAAkBM,QAAQ5kN,EAAY6jN,EAAUe,EACzD,C,qCCRA,IAAIC,EAAQ,SAAU7/C,GACpB,OAAOA,GAAMA,EAAGn0J,OAASA,MAAQm0J,CACnC,EAGAxpK,EAAOC,QAELopN,EAA2B,iBAAd5xF,YAA0BA,aACvC4xF,EAAuB,iBAAV13M,QAAsBA,SAEnC03M,EAAqB,iBAARx+L,MAAoBA,OACjCw+L,EAAuB,iBAAV,EAAAroM,GAAsB,EAAAA,IACnCqoM,EAAqB,iBAARviN,MAAoBA,OAEjC,WAAe,OAAOA,IAAO,CAA7B,IAAoC0kB,SAAS,cAATA,E,qCCdtC,IAAIu4L,EAAc,EAAQ,OACtBuF,EAAW,EAAQ,OAEnB31M,EAAiBowM,EAAY,CAAC,EAAEpwM,gBAKpC3T,EAAOC,QAAU4M,OAAOipH,QAAU,SAAgB0zC,EAAI5kK,GACpD,OAAO+O,EAAe21M,EAAS9/C,GAAK5kK,EACtC,C,iCCVA5E,EAAOC,QAAU,CAAC,C,qCCAlB,IAAIspN,EAAa,EAAQ,OAEzBvpN,EAAOC,QAAUspN,EAAW,WAAY,kB,qCCFxC,IAAI7F,EAAc,EAAQ,OACtBiB,EAAQ,EAAQ,OAChB5zM,EAAgB,EAAQ,MAG5B/Q,EAAOC,SAAWyjN,IAAgBiB,GAAM,WAEtC,OAES,IAFF93M,OAAOuc,eAAerY,EAAc,OAAQ,IAAK,CACtDuS,IAAK,WAAc,OAAO,CAAG,IAC5BzP,CACL,G,qCCVA,IAAIkwM,EAAc,EAAQ,OACtBY,EAAQ,EAAQ,OAChBkE,EAAU,EAAQ,OAElB14D,EAAUtjJ,OACVoF,EAAQ8xM,EAAY,GAAG9xM,OAG3BjS,EAAOC,QAAU0kN,GAAM,WAGrB,OAAQx0D,EAAQ,KAAKp0I,qBAAqB,EAC5C,IAAK,SAAUytJ,GACb,MAAuB,WAAhBq/C,EAAQr/C,GAAmBv3J,EAAMu3J,EAAI,IAAMrZ,EAAQqZ,EAC5D,EAAIrZ,C,qCCdJ,IAAI2yD,EAAa,EAAQ,OACrBr0M,EAAW,EAAQ,OACnBqI,EAAiB,EAAQ,OAG7B9W,EAAOC,QAAU,SAAUm+K,EAAOorC,EAAOn+L,GACvC,IAAIZ,EAAWg/L,EAUf,OAPE3yM,GAEAgsM,EAAWr4L,EAAY++L,EAAMt2M,cAC7BuX,IAAcY,GACd5c,EAASg7M,EAAqBh/L,EAAUxkB,YACxCwjN,IAAuBp+L,EAAQplB,WAC/B6Q,EAAesnK,EAAOqrC,GACjBrrC,CACT,C,qCCjBA,IAAI2lC,EAAc,EAAQ,OACtBjB,EAAa,EAAQ,OACrBvtM,EAAQ,EAAQ,OAEhByhJ,EAAmB+sD,EAAYv4L,SAASzkB,UAGvC+7M,EAAWvtM,EAAMm0M,iBACpBn0M,EAAMm0M,cAAgB,SAAUlgD,GAC9B,OAAOxS,EAAiBwS,EAC1B,GAGFxpK,EAAOC,QAAUsV,EAAMm0M,a,qCCbvB,IAYInlM,EAAKjB,EAAKa,EAZVwlM,EAAkB,EAAQ,OAC1B/0J,EAAS,EAAQ,OACjBnmD,EAAW,EAAQ,OACnBg5M,EAA8B,EAAQ,OACtC3xF,EAAS,EAAQ,OACjB8zF,EAAS,EAAQ,OACjBC,EAAY,EAAQ,OACpBC,EAAa,EAAQ,OAErBC,EAA6B,6BAC7B7iN,EAAY0tD,EAAO1tD,UACnB8a,EAAU4yC,EAAO5yC,QAGjBgoM,EAAU,SAAUxgD,GACtB,OAAOrlJ,EAAIqlJ,GAAMlmJ,EAAIkmJ,GAAMjlJ,EAAIilJ,EAAI,CAAC,EACtC,EAEIygD,EAAY,SAAUC,GACxB,OAAO,SAAU1gD,GACf,IAAIxoH,EACJ,IAAKvyC,EAAS+6J,KAAQxoH,EAAQ19B,EAAIkmJ,IAAKnkK,OAAS6kN,EAC9C,MAAM,IAAIhjN,EAAU,0BAA4BgjN,EAAO,aACvD,OAAOlpK,CACX,CACF,EAEA,GAAI2oK,GAAmBC,EAAO5oK,MAAO,CACnC,IAAIzrC,EAAQq0M,EAAO5oK,QAAU4oK,EAAO5oK,MAAQ,IAAIh/B,GAEhDzM,EAAM+N,IAAM/N,EAAM+N,IAClB/N,EAAM4O,IAAM5O,EAAM4O,IAClB5O,EAAMgP,IAAMhP,EAAMgP,IAElBA,EAAM,SAAUilJ,EAAIp0F,GAClB,GAAI7/D,EAAM4O,IAAIqlJ,GAAK,MAAM,IAAItiK,EAAU6iN,GAGvC,OAFA30I,EAAS+0I,OAAS3gD,EAClBj0J,EAAMgP,IAAIilJ,EAAIp0F,GACPA,CACT,EACA9xD,EAAM,SAAUkmJ,GACd,OAAOj0J,EAAM+N,IAAIkmJ,IAAO,CAAC,CAC3B,EACArlJ,EAAM,SAAUqlJ,GACd,OAAOj0J,EAAM4O,IAAIqlJ,EACnB,CACF,KAAO,CACL,IAAI4gD,EAAQP,EAAU,SACtBC,EAAWM,IAAS,EACpB7lM,EAAM,SAAUilJ,EAAIp0F,GAClB,GAAI0gD,EAAO0zC,EAAI4gD,GAAQ,MAAM,IAAIljN,EAAU6iN,GAG3C,OAFA30I,EAAS+0I,OAAS3gD,EAClBi+C,EAA4Bj+C,EAAI4gD,EAAOh1I,GAChCA,CACT,EACA9xD,EAAM,SAAUkmJ,GACd,OAAO1zC,EAAO0zC,EAAI4gD,GAAS5gD,EAAG4gD,GAAS,CAAC,CAC1C,EACAjmM,EAAM,SAAUqlJ,GACd,OAAO1zC,EAAO0zC,EAAI4gD,EACpB,CACF,CAEApqN,EAAOC,QAAU,CACfskB,IAAKA,EACLjB,IAAKA,EACLa,IAAKA,EACL6lM,QAASA,EACTC,UAAWA,E,qCCpEb,IAAI9F,EAAkB,EAAQ,OAC1B4E,EAAY,EAAQ,OAEpBC,EAAW7E,EAAgB,YAC3BkG,EAAiB5gN,MAAMxD,UAG3BjG,EAAOC,QAAU,SAAUupK,GACzB,YAAchlK,IAAPglK,IAAqBu/C,EAAUt/M,QAAU+/J,GAAM6gD,EAAerB,KAAcx/C,EACrF,C,qCCTA,IAAIq/C,EAAU,EAAQ,OAKtB7oN,EAAOC,QAAUwJ,MAAM4C,SAAW,SAAiB22M,GACjD,MAA6B,UAAtB6F,EAAQ7F,EACjB,C,qCCPA,IAAIsH,EAAe,EAAQ,OAEvB/E,EAAc+E,EAAa7jN,IAI/BzG,EAAOC,QAAUqqN,EAAa9E,WAAa,SAAUxC,GACnD,MAA0B,mBAAZA,GAA0BA,IAAauC,CACvD,EAAI,SAAUvC,GACZ,MAA0B,mBAAZA,CAChB,C,qCCVA,IAAI2B,EAAQ,EAAQ,OAChB7B,EAAa,EAAQ,OAErByH,EAAc,kBAEd5C,EAAW,SAAU6C,EAASC,GAChC,IAAIznN,EAAQ9B,EAAK6iH,EAAUymG,IAC3B,OAAOxnN,IAAU0nN,GACb1nN,IAAU2nN,IACV7H,EAAW2H,GAAa9F,EAAM8F,KAC5BA,EACR,EAEI1mG,EAAY4jG,EAAS5jG,UAAY,SAAUr+D,GAC7C,OAAO5yB,OAAO4yB,GAAQx7C,QAAQqgN,EAAa,KAAK1lN,aAClD,EAEI3D,EAAOymN,EAASzmN,KAAO,CAAC,EACxBypN,EAAShD,EAASgD,OAAS,IAC3BD,EAAW/C,EAAS+C,SAAW,IAEnC1qN,EAAOC,QAAU0nN,C,iCCnBjB3nN,EAAOC,QAAU,SAAUupK,GACzB,OAAc,OAAPA,QAAsBhlK,IAAPglK,CACxB,C,qCCJA,IAAIs5C,EAAa,EAAQ,OACrBwH,EAAe,EAAQ,OAEvB/E,EAAc+E,EAAa7jN,IAE/BzG,EAAOC,QAAUqqN,EAAa9E,WAAa,SAAUh8C,GACnD,MAAoB,iBAANA,EAAwB,OAAPA,EAAcs5C,EAAWt5C,IAAOA,IAAO+7C,CACxE,EAAI,SAAU/7C,GACZ,MAAoB,iBAANA,EAAwB,OAAPA,EAAcs5C,EAAWt5C,EAC1D,C,iCCTAxpK,EAAOC,SAAU,C,qCCAjB,IAAIspN,EAAa,EAAQ,OACrBzG,EAAa,EAAQ,OACrBI,EAAgB,EAAQ,MACxB0H,EAAoB,EAAQ,MAE5Bz6D,EAAUtjJ,OAEd7M,EAAOC,QAAU2qN,EAAoB,SAAUphD,GAC7C,MAAoB,iBAANA,CAChB,EAAI,SAAUA,GACZ,IAAIqhD,EAAUtB,EAAW,UACzB,OAAOzG,EAAW+H,IAAY3H,EAAc2H,EAAQ5kN,UAAWkqJ,EAAQqZ,GACzE,C,qCCZA,IAAI9jK,EAAO,EAAQ,OACfwF,EAAO,EAAQ,OACf04M,EAAW,EAAQ,OACnBb,EAAc,EAAQ,OACtB+H,EAAwB,EAAQ,OAChCxH,EAAoB,EAAQ,OAC5BJ,EAAgB,EAAQ,MACxB6H,EAAc,EAAQ,OACtB9B,EAAoB,EAAQ,OAC5BpF,EAAgB,EAAQ,MAExB77D,EAAa9gJ,UAEb8jN,EAAS,SAAUC,EAASt4M,GAC9B7L,KAAKmkN,QAAUA,EACfnkN,KAAK6L,OAASA,CAChB,EAEIu4M,EAAkBF,EAAO/kN,UAE7BjG,EAAOC,QAAU,SAAUkrN,EAAUC,EAAiB/gN,GACpD,IAMIwP,EAAUwxM,EAAQpjN,EAAOP,EAAQiL,EAAQqH,EAAM4G,EAN/CysC,EAAOhjD,GAAWA,EAAQgjD,KAC1Bi+J,KAAgBjhN,IAAWA,EAAQihN,YACnCC,KAAelhN,IAAWA,EAAQkhN,WAClCC,KAAiBnhN,IAAWA,EAAQmhN,aACpCC,KAAiBphN,IAAWA,EAAQohN,aACpCjhN,EAAK9E,EAAK0lN,EAAiB/9J,GAG3B+hC,EAAO,SAAU/+D,GAEnB,OADIxW,GAAUgqM,EAAchqM,EAAU,SAAUwW,GACzC,IAAI26L,GAAO,EAAM36L,EAC1B,EAEIq7L,EAAS,SAAU1oN,GACrB,OAAIsoN,GACF1H,EAAS5gN,GACFyoN,EAAcjhN,EAAGxH,EAAM,GAAIA,EAAM,GAAIosF,GAAQ5kF,EAAGxH,EAAM,GAAIA,EAAM,KAChEyoN,EAAcjhN,EAAGxH,EAAOosF,GAAQ5kF,EAAGxH,EAC9C,EAEA,GAAIuoN,EACF1xM,EAAWsxM,EAAStxM,cACf,GAAI2xM,EACT3xM,EAAWsxM,MACN,CAEL,GADAE,EAASpC,EAAkBkC,IACtBE,EAAQ,MAAM,IAAIrjE,EAAW+6D,EAAYoI,GAAY,oBAE1D,GAAIL,EAAsBO,GAAS,CACjC,IAAKpjN,EAAQ,EAAGP,EAAS47M,EAAkB6H,GAAWzjN,EAASO,EAAOA,IAEpE,GADA0K,EAAS+4M,EAAOP,EAASljN,IACrB0K,GAAUuwM,EAAcgI,EAAiBv4M,GAAS,OAAOA,EAC7D,OAAO,IAAIq4M,GAAO,EACtB,CACAnxM,EAAWkxM,EAAYI,EAAUE,EACnC,CAEArxM,EAAOuxM,EAAYJ,EAASnxM,KAAOH,EAASG,KAC5C,QAAS4G,EAAO1V,EAAK8O,EAAMH,IAAWvY,KAAM,CAC1C,IACEqR,EAAS+4M,EAAO9qM,EAAK5d,MACvB,CAAE,MAAOgH,GACP65M,EAAchqM,EAAU,QAAS7P,EACnC,CACA,GAAqB,iBAAV2I,GAAsBA,GAAUuwM,EAAcgI,EAAiBv4M,GAAS,OAAOA,CAC5F,CAAE,OAAO,IAAIq4M,GAAO,EACtB,C,oCCnEA,IAAI9/M,EAAO,EAAQ,OACf04M,EAAW,EAAQ,OACnBzC,EAAY,EAAQ,OAExBnhN,EAAOC,QAAU,SAAU4Z,EAAUqX,EAAMluB,GACzC,IAAI2oN,EAAaC,EACjBhI,EAAS/pM,GACT,IAEE,GADA8xM,EAAcxK,EAAUtnM,EAAU,WAC7B8xM,EAAa,CAChB,GAAa,UAATz6L,EAAkB,MAAMluB,EAC5B,OAAOA,CACT,CACA2oN,EAAczgN,EAAKygN,EAAa9xM,EAClC,CAAE,MAAO7P,GACP4hN,GAAa,EACbD,EAAc3hN,CAChB,CACA,GAAa,UAATknB,EAAkB,MAAMluB,EAC5B,GAAI4oN,EAAY,MAAMD,EAEtB,OADA/H,EAAS+H,GACF3oN,CACT,C,qCCtBA,IAAIkI,EAAO,EAAQ,OACf/E,EAAS,EAAQ,MACjBshN,EAA8B,EAAQ,OACtCoE,EAAiB,EAAQ,OACzB1H,EAAkB,EAAQ,OAC1B2H,EAAsB,EAAQ,OAC9B3K,EAAY,EAAQ,OACpB4K,EAAoB,2BACpBC,EAAyB,EAAQ,OACjCnI,EAAgB,EAAQ,MAExBO,EAAgBD,EAAgB,eAChC8H,EAAkB,iBAClBC,EAA0B,uBAC1BC,EAAmBL,EAAoBvnM,IAEvC6nM,EAA+B,SAAUZ,GAC3C,IAAIa,EAAmBP,EAAoB7B,UAAUuB,EAAcU,EAA0BD,GAE7F,OAAOJ,EAAe1lN,EAAO4lN,GAAoB,CAC/C/xM,KAAM,WACJ,IAAIgnC,EAAQqrK,EAAiBvlN,MAI7B,GAAI0kN,EAAa,OAAOxqK,EAAMsrK,cAC9B,IACE,IAAI35M,EAASquC,EAAM1/C,UAAOkD,EAAYw8C,EAAMsrK,cAC5C,OAAON,EAAuBr5M,EAAQquC,EAAM1/C,KAC9C,CAAE,MAAO0I,GAEP,MADAg3C,EAAM1/C,MAAO,EACP0I,CACR,CACF,EACA,OAAU,WACR,IAAIg3C,EAAQqrK,EAAiBvlN,MACzB+S,EAAWmnC,EAAMnnC,SAErB,GADAmnC,EAAM1/C,MAAO,EACTkqN,EAAa,CACf,IAAIe,EAAepL,EAAUtnM,EAAU,UACvC,OAAO0yM,EAAerhN,EAAKqhN,EAAc1yM,GAAYmyM,OAAuBxnN,GAAW,EACzF,CACA,GAAIw8C,EAAMqrC,MAAO,IACfw3H,EAAc7iK,EAAMqrC,MAAMxyE,SAAU,SACtC,CAAE,MAAO7P,GACP,OAAO65M,EAAchqM,EAAU,QAAS7P,EAC1C,CAEA,OADA65M,EAAchqM,EAAU,UACjBmyM,OAAuBxnN,GAAW,EAC3C,GAEJ,EAEIgoN,EAAgCJ,GAA6B,GAC7DK,EAA0BL,GAA6B,GAE3D3E,EAA4BgF,EAAyBrI,EAAe,mBAEpEpkN,EAAOC,QAAU,SAAUqsN,EAAad,GACtC,IAAIkB,EAAgB,SAAkB/iL,EAAQqX,GACxCA,GACFA,EAAMnnC,SAAW8vB,EAAO9vB,SACxBmnC,EAAMhnC,KAAO2vB,EAAO3vB,MACfgnC,EAAQrX,EACfqX,EAAM37C,KAAOmmN,EAAcU,EAA0BD,EACrDjrK,EAAMsrK,YAAcA,EACpBtrK,EAAMs7I,QAAU,EAChBt7I,EAAM1/C,MAAO,EACb6qN,EAAiBrlN,KAAMk6C,EACzB,EAIA,OAFA0rK,EAAczmN,UAAYulN,EAAcgB,EAAgCC,EAEjEC,CACT,C,qCC1EA,IAAIxhN,EAAO,EAAQ,OACfm9M,EAAY,EAAQ,OACpBzE,EAAW,EAAQ,OACnB+I,EAAoB,EAAQ,MAC5BC,EAAsB,EAAQ,OAC9BC,EAA+B,EAAQ,OAEvCH,EAAgBE,GAAoB,WACtC,IAAI/yM,EAAW/S,KAAK+S,SAChBlH,EAASixM,EAAS14M,EAAKpE,KAAKkT,KAAMH,IAClCvY,EAAOwF,KAAKxF,OAASqR,EAAOrR,KAChC,IAAKA,EAAM,OAAOurN,EAA6BhzM,EAAU/S,KAAKgmN,OAAQ,CAACn6M,EAAO3P,MAAO8D,KAAKw1L,YAAY,EACxG,IAIAt8L,EAAOC,QAAU,SAAa6sN,GAG5B,OAFAlJ,EAAS98M,MACTuhN,EAAUyE,GACH,IAAIJ,EAAcC,EAAkB7lN,MAAO,CAChDgmN,OAAQA,GAEZ,C,qCCtBA,IAcIf,EAAmBgB,EAAmCC,EAdtDrI,EAAQ,EAAQ,OAChB7B,EAAa,EAAQ,OACrBr0M,EAAW,EAAQ,OACnBtI,EAAS,EAAQ,MACjBkN,EAAiB,EAAQ,OACzBiyM,EAAgB,EAAQ,OACxBnB,EAAkB,EAAQ,OAC1B8I,EAAU,EAAQ,OAElBjE,EAAW7E,EAAgB,YAC3B+I,GAAyB,EAOzB,GAAGpgN,OACLkgN,EAAgB,GAAGlgN,OAEb,SAAUkgN,GAEdD,EAAoC15M,EAAeA,EAAe25M,IAC9DD,IAAsClgN,OAAO5G,YAAW8lN,EAAoBgB,IAHlDG,GAAyB,GAO3D,IAAIC,GAA0B1+M,EAASs9M,IAAsBpH,GAAM,WACjE,IAAIn0M,EAAO,CAAC,EAEZ,OAAOu7M,EAAkB/C,GAAU99M,KAAKsF,KAAUA,CACpD,IAEI28M,EAAwBpB,EAAoB,CAAC,EACxCkB,IAASlB,EAAoB5lN,EAAO4lN,IAIxCjJ,EAAWiJ,EAAkB/C,KAChC1D,EAAcyG,EAAmB/C,GAAU,WACzC,OAAOliN,IACT,IAGF9G,EAAOC,QAAU,CACf8rN,kBAAmBA,EACnBmB,uBAAwBA,E,iCC9C1BltN,EAAOC,QAAU,CAAC,C,qCCAlB,IAAImtN,EAAW,EAAQ,OAIvBptN,EAAOC,QAAU,SAAUyT,GACzB,OAAO05M,EAAS15M,EAAIhM,OACtB,C,qCCNA,IAAIq8M,EAAc,EAAQ,OACtBY,EAAQ,EAAQ,OAChB7B,EAAa,EAAQ,OACrBhtF,EAAS,EAAQ,OACjB4tF,EAAc,EAAQ,OACtB2J,EAA6B,sBAC7B3D,EAAgB,EAAQ,OACxBoC,EAAsB,EAAQ,OAE9BwB,EAAuBxB,EAAoB9B,QAC3CqC,EAAmBP,EAAoBxoM,IACvC2/L,EAAUnwL,OAEV1J,EAAiBvc,OAAOuc,eACxB46L,EAAcD,EAAY,GAAGz3M,OAC7BpC,EAAU65M,EAAY,GAAG75M,SACzBoF,EAAOy0M,EAAY,GAAGz0M,MAEtBi+M,EAAsB7J,IAAgBiB,GAAM,WAC9C,OAAsF,IAA/Ev7L,GAAe,WAA0B,GAAG,SAAU,CAAEpmB,MAAO,IAAK0E,MAC7E,IAEI8lN,EAAW16L,OAAOA,QAAQ7gB,MAAM,UAEhC+yM,EAAchlN,EAAOC,QAAU,SAAU+C,EAAOyI,EAAMpB,GACf,YAArC25M,EAAYf,EAAQx3M,GAAO,EAAG,KAChCA,EAAO,IAAMvB,EAAQ+4M,EAAQx3M,GAAO,qBAAsB,MAAQ,KAEhEpB,GAAWA,EAAQivF,SAAQ7tF,EAAO,OAASA,GAC3CpB,GAAWA,EAAQwvF,SAAQpuF,EAAO,OAASA,KAC1CqqH,EAAO9yH,EAAO,SAAYqqN,GAA8BrqN,EAAMyI,OAASA,KACtEi4M,EAAat6L,EAAepmB,EAAO,OAAQ,CAAEA,MAAOyI,EAAM4d,cAAc,IACvErmB,EAAMyI,KAAOA,GAEhB8hN,GAAuBljN,GAAWyrH,EAAOzrH,EAAS,UAAYrH,EAAM0E,SAAW2C,EAAQojN,OACzFrkM,EAAepmB,EAAO,SAAU,CAAEA,MAAOqH,EAAQojN,QAEnD,IACMpjN,GAAWyrH,EAAOzrH,EAAS,gBAAkBA,EAAQ6I,YACnDwwM,GAAat6L,EAAepmB,EAAO,YAAa,CAAEsmB,UAAU,IAEvDtmB,EAAMiD,YAAWjD,EAAMiD,eAAYzB,EAChD,CAAE,MAAOwF,GAAqB,CAC9B,IAAIg3C,EAAQssK,EAAqBtqN,GAG/B,OAFG8yH,EAAO90E,EAAO,YACjBA,EAAM74C,OAASmH,EAAKk+M,EAAyB,iBAAR/hN,EAAmBA,EAAO,KACxDzI,CACX,EAIAwoB,SAASvlB,UAAUc,SAAWi+M,GAAY,WACxC,OAAOlC,EAAWh8M,OAASulN,EAAiBvlN,MAAMqB,QAAUuhN,EAAc5iN,KAC5E,GAAG,W,iCCrDH,IAAIkmE,EAAO33D,KAAK23D,KACZ13D,EAAQD,KAAKC,MAKjBtV,EAAOC,QAAUoV,KAAKq4M,OAAS,SAAe3nL,GAC5C,IAAIrsB,GAAKqsB,EACT,OAAQrsB,EAAI,EAAIpE,EAAQ03D,GAAMtzD,EAChC,C,qCCTA,IAAI3S,EAAW,EAAQ,KAEvB/G,EAAOC,QAAU,SAAU+iN,EAAU2K,GACnC,YAAoBnpN,IAAbw+M,EAAyBj0M,UAAUrH,OAAS,EAAI,GAAKimN,EAAW5mN,EAASi8M,EAClF,C,oCCHA,IAmDI4K,EAnDAhK,EAAW,EAAQ,OACnBiK,EAAyB,EAAQ,OACjCC,EAAc,EAAQ,OACtBhE,EAAa,EAAQ,OACrBiE,EAAO,EAAQ,OACfC,EAAwB,EAAQ,MAChCnE,EAAY,EAAQ,OAEpBoE,EAAK,IACLC,EAAK,IACLC,EAAY,YACZC,EAAS,SACTC,EAAWxE,EAAU,YAErByE,EAAmB,WAA0B,EAE7CC,EAAY,SAAUv6M,GACxB,OAAOk6M,EAAKE,EAASH,EAAKj6M,EAAUk6M,EAAK,IAAME,EAASH,CAC1D,EAGIO,EAA4B,SAAUZ,GACxCA,EAAgBn+M,MAAM8+M,EAAU,KAChCX,EAAgBt4K,QAChB,IAAIk1C,EAAOojI,EAAgBa,aAAa5hN,OAExC,OADA+gN,EAAkB,KACXpjI,CACT,EAGIkkI,EAA2B,WAE7B,IAEIC,EAFAC,EAASZ,EAAsB,UAC/BrqI,EAAK,OAASyqI,EAAS,IAU3B,OARAQ,EAAOrzG,MAAMuR,QAAU,OACvBihG,EAAKxlG,YAAYqmG,GAEjBA,EAAOzyM,IAAM2W,OAAO6wD,GACpBgrI,EAAiBC,EAAOC,cAAc3+M,SACtCy+M,EAAezrN,OACfyrN,EAAel/M,MAAM8+M,EAAU,sBAC/BI,EAAer5K,QACRq5K,EAAe3lE,CACxB,EAQI8lE,EAAkB,WACpB,IACElB,EAAkB,IAAImB,cAAc,WACtC,CAAE,MAAO/kN,GAAsB,CAC/B8kN,EAAqC,oBAAZ5+M,SACrBA,SAASN,QAAUg+M,EACjBY,EAA0BZ,GAC1Bc,IACFF,EAA0BZ,GAC9B,IAAIlmN,EAASomN,EAAYpmN,OACzB,MAAOA,WAAiBonN,EAAgBX,GAAWL,EAAYpmN,IAC/D,OAAOonN,GACT,EAEAhF,EAAWuE,IAAY,EAKvBruN,EAAOC,QAAU4M,OAAO1G,QAAU,SAAgB4xJ,EAAGi3D,GACnD,IAAIr8M,EAQJ,OAPU,OAANolJ,GACFu2D,EAAiBH,GAAavK,EAAS7rD,GACvCplJ,EAAS,IAAI27M,EACbA,EAAiBH,GAAa,KAE9Bx7M,EAAO07M,GAAYt2D,GACdplJ,EAASm8M,SACMtqN,IAAfwqN,EAA2Br8M,EAASk7M,EAAuB/sM,EAAEnO,EAAQq8M,EAC9E,C,qCClFA,IAAItL,EAAc,EAAQ,OACtBuL,EAA0B,EAAQ,OAClCxK,EAAuB,EAAQ,OAC/Bb,EAAW,EAAQ,OACnBR,EAAkB,EAAQ,OAC1B8L,EAAa,EAAQ,OAKzBjvN,EAAQ6gB,EAAI4iM,IAAgBuL,EAA0BpiN,OAAOsc,iBAAmB,SAA0B4uI,EAAGi3D,GAC3GpL,EAAS7rD,GACT,IAIInzJ,EAJA8kB,EAAQ05L,EAAgB4L,GACxBliN,EAAOoiN,EAAWF,GAClBtnN,EAASoF,EAAKpF,OACdO,EAAQ,EAEZ,MAAOP,EAASO,EAAOw8M,EAAqB3jM,EAAEi3I,EAAGnzJ,EAAMkI,EAAK7E,KAAUyhB,EAAM9kB,IAC5E,OAAOmzJ,CACT,C,qCCnBA,IAAI2rD,EAAc,EAAQ,OACtByL,EAAiB,EAAQ,OACzBF,EAA0B,EAAQ,OAClCrL,EAAW,EAAQ,OACnBkB,EAAgB,EAAQ,OAExB98D,EAAa9gJ,UAEbmpJ,EAAkBxjJ,OAAOuc,eAEzBgmM,EAA4BviN,OAAOic,yBACnCumM,EAAa,aACb3G,EAAe,eACf4G,EAAW,WAIfrvN,EAAQ6gB,EAAI4iM,EAAcuL,EAA0B,SAAwBl3D,EAAGt3I,EAAG8uM,GAIhF,GAHA3L,EAAS7rD,GACTt3I,EAAIqkM,EAAcrkM,GAClBmjM,EAAS2L,GACQ,oBAANx3D,GAA0B,cAANt3I,GAAqB,UAAW8uM,GAAcD,KAAYC,IAAeA,EAAWD,GAAW,CAC5H,IAAIvlL,EAAUqlL,EAA0Br3D,EAAGt3I,GACvCspB,GAAWA,EAAQulL,KACrBv3D,EAAEt3I,GAAK8uM,EAAWvsN,MAClBusN,EAAa,CACXlmM,aAAcq/L,KAAgB6G,EAAaA,EAAW7G,GAAgB3+K,EAAQ2+K,GAC9E3/L,WAAYsmM,KAAcE,EAAaA,EAAWF,GAActlL,EAAQslL,GACxE/lM,UAAU,GAGhB,CAAE,OAAO+mI,EAAgB0H,EAAGt3I,EAAG8uM,EACjC,EAAIl/D,EAAkB,SAAwB0H,EAAGt3I,EAAG8uM,GAIlD,GAHA3L,EAAS7rD,GACTt3I,EAAIqkM,EAAcrkM,GAClBmjM,EAAS2L,GACLJ,EAAgB,IAClB,OAAO9+D,EAAgB0H,EAAGt3I,EAAG8uM,EAC/B,CAAE,MAAOvlN,GAAqB,CAC9B,GAAI,QAASulN,GAAc,QAASA,EAAY,MAAM,IAAIvnE,EAAW,2BAErE,MADI,UAAWunE,IAAYx3D,EAAEt3I,GAAK8uM,EAAWvsN,OACtC+0J,CACT,C,qCC1CA,IAAI2rD,EAAc,EAAQ,OACtBx4M,EAAO,EAAQ,OACfskN,EAA6B,EAAQ,OACrC5K,EAA2B,EAAQ,MACnCxB,EAAkB,EAAQ,OAC1B0B,EAAgB,EAAQ,OACxBhvF,EAAS,EAAQ,OACjBq5F,EAAiB,EAAQ,OAGzBC,EAA4BviN,OAAOic,yBAIvC7oB,EAAQ6gB,EAAI4iM,EAAc0L,EAA4B,SAAkCr3D,EAAGt3I,GAGzF,GAFAs3I,EAAIqrD,EAAgBrrD,GACpBt3I,EAAIqkM,EAAcrkM,GACd0uM,EAAgB,IAClB,OAAOC,EAA0Br3D,EAAGt3I,EACtC,CAAE,MAAOzW,GAAqB,CAC9B,GAAI8rH,EAAOiiC,EAAGt3I,GAAI,OAAOmkM,GAA0B15M,EAAKskN,EAA2B1uM,EAAGi3I,EAAGt3I,GAAIs3I,EAAEt3I,GACjG,C,qCCrBA,IAAIgvM,EAAqB,EAAQ,OAC7B3B,EAAc,EAAQ,OAEtBhE,EAAagE,EAAYnkN,OAAO,SAAU,aAK9C1J,EAAQ6gB,EAAIjU,OAAO6lF,qBAAuB,SAA6BqlE,GACrE,OAAO03D,EAAmB13D,EAAG+xD,EAC/B,C,mCCTA7pN,EAAQ6gB,EAAIjU,OAAOiP,qB,qCCDnB,IAAIg6G,EAAS,EAAQ,OACjBgtF,EAAa,EAAQ,OACrBwG,EAAW,EAAQ,OACnBO,EAAY,EAAQ,OACpB6F,EAA2B,EAAQ,OAEnCrB,EAAWxE,EAAU,YACrB15D,EAAUtjJ,OACV8iN,EAAkBx/D,EAAQlqJ,UAK9BjG,EAAOC,QAAUyvN,EAA2Bv/D,EAAQ98I,eAAiB,SAAU0kJ,GAC7E,IAAIrvI,EAAS4gM,EAASvxD,GACtB,GAAIjiC,EAAOptG,EAAQ2lM,GAAW,OAAO3lM,EAAO2lM,GAC5C,IAAIn7M,EAAcwV,EAAOxV,YACzB,OAAI4vM,EAAW5vM,IAAgBwV,aAAkBxV,EACxCA,EAAYjN,UACZyiB,aAAkBynI,EAAUw/D,EAAkB,IACzD,C,oCCpBA,IAAI5L,EAAc,EAAQ,OAE1B/jN,EAAOC,QAAU8jN,EAAY,CAAC,EAAEb,c,qCCFhC,IAAIa,EAAc,EAAQ,OACtBjuF,EAAS,EAAQ,OACjBstF,EAAkB,EAAQ,OAC1Bz/M,EAAU,iBACVmmN,EAAa,EAAQ,OAErB9hN,EAAO+7M,EAAY,GAAG/7M,MAE1BhI,EAAOC,QAAU,SAAUyoB,EAAQu1L,GACjC,IAGIr5M,EAHAmzJ,EAAIqrD,EAAgB16L,GACpBlhB,EAAI,EACJmL,EAAS,GAEb,IAAK/N,KAAOmzJ,GAAIjiC,EAAOg0F,EAAYllN,IAAQkxH,EAAOiiC,EAAGnzJ,IAAQoD,EAAK2K,EAAQ/N,GAE1E,MAAOq5M,EAAMv2M,OAASF,EAAOsuH,EAAOiiC,EAAGnzJ,EAAMq5M,EAAMz2M,SAChD7D,EAAQgP,EAAQ/N,IAAQoD,EAAK2K,EAAQ/N,IAExC,OAAO+N,CACT,C,qCCnBA,IAAI88M,EAAqB,EAAQ,OAC7B3B,EAAc,EAAQ,OAK1B9tN,EAAOC,QAAU4M,OAAOC,MAAQ,SAAcirJ,GAC5C,OAAO03D,EAAmB13D,EAAG+1D,EAC/B,C,mCCRA,IAAI8B,EAAwB,CAAC,EAAE7zM,qBAE3B+M,EAA2Bjc,OAAOic,yBAGlC+mM,EAAc/mM,IAA6B8mM,EAAsB1kN,KAAK,CAAE,EAAG,GAAK,GAIpFjL,EAAQ6gB,EAAI+uM,EAAc,SAA8B5hB,GACtD,IAAItkL,EAAab,EAAyBhiB,KAAMmnM,GAChD,QAAStkL,GAAcA,EAAWZ,UACpC,EAAI6mM,C,qCCXJ,IAAIE,EAAsB,EAAQ,OAC9BlM,EAAW,EAAQ,OACnBmM,EAAqB,EAAQ,OAMjC/vN,EAAOC,QAAU4M,OAAOiK,iBAAmB,aAAe,CAAC,EAAI,WAC7D,IAEI+iF,EAFAm2H,GAAiB,EACjBx/M,EAAO,CAAC,EAEZ,IACEqpF,EAASi2H,EAAoBjjN,OAAO5G,UAAW,YAAa,OAC5D4zF,EAAOrpF,EAAM,IACbw/M,EAAiBx/M,aAAgB/G,KACnC,CAAE,MAAOO,GAAqB,CAC9B,OAAO,SAAwB+tJ,EAAGhjE,GAKhC,OAJA6uH,EAAS7rD,GACTg4D,EAAmBh7H,GACfi7H,EAAgBn2H,EAAOk+D,EAAGhjE,GACzBgjE,EAAEhhJ,UAAYg+E,EACZgjE,CACT,CACF,CAhB+D,QAgBzDvzJ,E,qCCzBN,IAAI0G,EAAO,EAAQ,OACf43M,EAAa,EAAQ,OACrBr0M,EAAW,EAAQ,OAEnBu5I,EAAa9gJ,UAIjBlH,EAAOC,QAAU,SAAUg/D,EAAOgxJ,GAChC,IAAIzlN,EAAI7F,EACR,GAAa,WAATsrN,GAAqBnN,EAAWt4M,EAAKy0D,EAAMl4D,YAAc0H,EAAS9J,EAAMuG,EAAKV,EAAIy0D,IAAS,OAAOt6D,EACrG,GAAIm+M,EAAWt4M,EAAKy0D,EAAMozE,WAAa5jI,EAAS9J,EAAMuG,EAAKV,EAAIy0D,IAAS,OAAOt6D,EAC/E,GAAa,WAATsrN,GAAqBnN,EAAWt4M,EAAKy0D,EAAMl4D,YAAc0H,EAAS9J,EAAMuG,EAAKV,EAAIy0D,IAAS,OAAOt6D,EACrG,MAAM,IAAIqjJ,EAAW,0CACvB,C,qCCdA,IAAIuhE,EAAa,EAAQ,OACrBxF,EAAc,EAAQ,OACtBmM,EAA4B,EAAQ,OACpCC,EAA8B,EAAQ,OACtCvM,EAAW,EAAQ,OAEnBj6M,EAASo6M,EAAY,GAAGp6M,QAG5B3J,EAAOC,QAAUspN,EAAW,UAAW,YAAc,SAAiB//C,GACpE,IAAI18J,EAAOojN,EAA0BpvM,EAAE8iM,EAASp6C,IAC5C1tJ,EAAwBq0M,EAA4BrvM,EACxD,OAAOhF,EAAwBnS,EAAOmD,EAAMgP,EAAsB0tJ,IAAO18J,CAC3E,C,qCCbA,IAAIg8M,EAAoB,EAAQ,OAE5B9gE,EAAa9gJ,UAIjBlH,EAAOC,QAAU,SAAUupK,GACzB,GAAIs/C,EAAkBt/C,GAAK,MAAM,IAAIxhB,EAAW,wBAA0BwhB,GAC1E,OAAOA,CACT,C,qCCTA,IAAIogD,EAAS,EAAQ,OACjBrtH,EAAM,EAAQ,OAEdzvF,EAAO88M,EAAO,QAElB5pN,EAAOC,QAAU,SAAU2E,GACzB,OAAOkI,EAAKlI,KAASkI,EAAKlI,GAAO23F,EAAI33F,GACvC,C,qCCPA,IAAIgwD,EAAS,EAAQ,OACjBqwJ,EAAuB,EAAQ,OAE/BmL,EAAS,qBACT76M,EAAQq/C,EAAOw7J,IAAWnL,EAAqBmL,EAAQ,CAAC,GAE5DpwN,EAAOC,QAAUsV,C,qCCNjB,IAAI03M,EAAU,EAAQ,OAClB13M,EAAQ,EAAQ,QAEnBvV,EAAOC,QAAU,SAAU2E,EAAK5B,GAC/B,OAAOuS,EAAM3Q,KAAS2Q,EAAM3Q,QAAiBJ,IAAVxB,EAAsBA,EAAQ,CAAC,EACpE,GAAG,WAAY,IAAIgF,KAAK,CACtB4K,QAAS,SACT22D,KAAM0jJ,EAAU,OAAS,SACzBoD,UAAW,4CACXC,QAAS,2DACTnoN,OAAQ,uC,oCCTV,IAAIooN,EAAa,EAAQ,OACrB5L,EAAQ,EAAQ,OAChB/vJ,EAAS,EAAQ,OAEjBquJ,EAAUruJ,EAAO9hC,OAGrB9yB,EAAOC,UAAY4M,OAAOiP,wBAA0B6oM,GAAM,WACxD,IAAI9B,EAASjpM,OAAO,oBAKpB,OAAQqpM,EAAQJ,MAAah2M,OAAOg2M,aAAmBjpM,UAEpDA,OAAO6R,MAAQ8kM,GAAcA,EAAa,EAC/C,G,qCCjBA,IAAIC,EAAsB,EAAQ,OAE9BroM,EAAM9S,KAAK8S,IACXoL,EAAMle,KAAKke,IAKfvzB,EAAOC,QAAU,SAAUgI,EAAOP,GAChC,IAAI+oN,EAAUD,EAAoBvoN,GAClC,OAAOwoN,EAAU,EAAItoM,EAAIsoM,EAAU/oN,EAAQ,GAAK6rB,EAAIk9L,EAAS/oN,EAC/D,C,qCCVA,IAAIgpN,EAAgB,EAAQ,OACxBC,EAAyB,EAAQ,OAErC3wN,EAAOC,QAAU,SAAUupK,GACzB,OAAOknD,EAAcC,EAAuBnnD,GAC9C,C,qCCNA,IAAIkkD,EAAQ,EAAQ,OAIpB1tN,EAAOC,QAAU,SAAU+iN,GACzB,IAAIr3M,GAAUq3M,EAEd,OAAOr3M,IAAWA,GAAqB,IAAXA,EAAe,EAAI+hN,EAAM/hN,EACvD,C,qCCRA,IAAI6kN,EAAsB,EAAQ,OAE9Bj9L,EAAMle,KAAKke,IAIfvzB,EAAOC,QAAU,SAAU+iN,GACzB,OAAOA,EAAW,EAAIzvL,EAAIi9L,EAAoBxN,GAAW,kBAAoB,CAC/E,C,qCCRA,IAAI2N,EAAyB,EAAQ,OAEjCxgE,EAAUtjJ,OAId7M,EAAOC,QAAU,SAAU+iN,GACzB,OAAO7yD,EAAQwgE,EAAuB3N,GACxC,C,qCCRA,IAAI93M,EAAO,EAAQ,OACfuD,EAAW,EAAQ,OACnB0nH,EAAW,EAAQ,OACnBgrF,EAAY,EAAQ,OACpByP,EAAsB,EAAQ,OAC9BzM,EAAkB,EAAQ,OAE1Bn8D,EAAa9gJ,UACb2pN,EAAe1M,EAAgB,eAInCnkN,EAAOC,QAAU,SAAUg/D,EAAOgxJ,GAChC,IAAKxhN,EAASwwD,IAAUk3D,EAASl3D,GAAQ,OAAOA,EAChD,IACItsD,EADAm+M,EAAe3P,EAAUliJ,EAAO4xJ,GAEpC,GAAIC,EAAc,CAGhB,QAFatsN,IAATyrN,IAAoBA,EAAO,WAC/Bt9M,EAASzH,EAAK4lN,EAAc7xJ,EAAOgxJ,IAC9BxhN,EAASkE,IAAWwjH,EAASxjH,GAAS,OAAOA,EAClD,MAAM,IAAIq1I,EAAW,0CACvB,CAEA,YADaxjJ,IAATyrN,IAAoBA,EAAO,UACxBW,EAAoB3xJ,EAAOgxJ,EACpC,C,qCCxBA,IAAI/jD,EAAc,EAAQ,OACtB/1C,EAAW,EAAQ,OAIvBn2H,EAAOC,QAAU,SAAU+iN,GACzB,IAAIp+M,EAAMsnK,EAAY82C,EAAU,UAChC,OAAO7sF,EAASvxH,GAAOA,EAAMA,EAAM,EACrC,C,qCCRA,IAAIu/M,EAAkB,EAAQ,OAE1BC,EAAgBD,EAAgB,eAChC3zM,EAAO,CAAC,EAEZA,EAAK4zM,GAAiB,IAEtBpkN,EAAOC,QAA2B,eAAjB6yB,OAAOtiB,E,mCCPxB,IAAIq4M,EAAU,EAAQ,OAElB5F,EAAUnwL,OAEd9yB,EAAOC,QAAU,SAAU+iN,GACzB,GAA0B,WAAtB6F,EAAQ7F,GAAwB,MAAM,IAAI97M,UAAU,6CACxD,OAAO+7M,EAAQD,EACjB,C,iCCPA,IAAIC,EAAUnwL,OAEd9yB,EAAOC,QAAU,SAAU+iN,GACzB,IACE,OAAOC,EAAQD,EACjB,CAAE,MAAOh5M,GACP,MAAO,QACT,CACF,C,qCCRA,IAAI+5M,EAAc,EAAQ,OAEtBx5M,EAAK,EACLwmN,EAAU17M,KAAKmwC,SACfz+C,EAAWg9M,EAAY,GAAIh9M,UAE/B/G,EAAOC,QAAU,SAAU2E,GACzB,MAAO,gBAAqBJ,IAARI,EAAoB,GAAKA,GAAO,KAAOmC,IAAWwD,EAAKwmN,EAAS,GACtF,C,oCCPA,IAAIC,EAAgB,EAAQ,MAE5BhxN,EAAOC,QAAU+wN,IACXp3M,OAAO6R,MACkB,iBAAnB7R,OAAOC,Q,qCCLnB,IAAI6pM,EAAc,EAAQ,OACtBiB,EAAQ,EAAQ,OAIpB3kN,EAAOC,QAAUyjN,GAAeiB,GAAM,WAEpC,OAGiB,KAHV93M,OAAOuc,gBAAe,WAA0B,GAAG,YAAa,CACrEpmB,MAAO,GACPsmB,UAAU,IACTrjB,SACL,G,qCCXA,IAAI2uD,EAAS,EAAQ,OACjBkuJ,EAAa,EAAQ,OAErB9gM,EAAU4yC,EAAO5yC,QAErBhiB,EAAOC,QAAU6iN,EAAW9gM,IAAY,cAAcxR,KAAKsiB,OAAO9Q,G,qCCLlE,IAAI4yC,EAAS,EAAQ,OACjBg1J,EAAS,EAAQ,OACjB9zF,EAAS,EAAQ,OACjBv5B,EAAM,EAAQ,OACdy0H,EAAgB,EAAQ,MACxBpG,EAAoB,EAAQ,MAE5BhxM,EAASg7C,EAAOh7C,OAChBq3M,EAAwBrH,EAAO,OAC/BsH,EAAwBtG,EAAoBhxM,EAAO,QAAUA,EAASA,GAAUA,EAAOu3M,eAAiB50H,EAE5Gv8F,EAAOC,QAAU,SAAUwL,GAKvB,OAJGqqH,EAAOm7F,EAAuBxlN,KACjCwlN,EAAsBxlN,GAAQulN,GAAiBl7F,EAAOl8G,EAAQnO,GAC1DmO,EAAOnO,GACPylN,EAAsB,UAAYzlN,IAC/BwlN,EAAsBxlN,EACjC,C,qCCjBA,IAAImhG,EAAI,EAAQ,OACZ08G,EAAW,EAAQ,OACnBhG,EAAoB,EAAQ,OAC5B8N,EAAiB,EAAQ,OACzBC,EAA2B,EAAQ,OACnC1M,EAAQ,EAAQ,OAEhB2M,EAAsB3M,GAAM,WAC9B,OAAoD,aAA7C,GAAG38M,KAAKkD,KAAK,CAAExD,OAAQ,YAAe,EAC/C,IAII6pN,EAAiC,WACnC,IAEE1kN,OAAOuc,eAAe,GAAI,SAAU,CAAEE,UAAU,IAASthB,MAC3D,CAAE,MAAOgC,GACP,OAAOA,aAAiB9C,SAC1B,CACF,EAEI0gN,EAAS0J,IAAwBC,IAIrC3kH,EAAE,CAAEzgG,OAAQ,QAAS4oF,OAAO,EAAM04H,MAAO,EAAGrF,OAAQR,GAAU,CAE5D5/M,KAAM,SAAc4P,GAClB,IAAImgJ,EAAIuxD,EAASxiN,MACb0hB,EAAM86L,EAAkBvrD,GACxBy5D,EAAWziN,UAAUrH,OACzB2pN,EAAyB7oM,EAAMgpM,GAC/B,IAAK,IAAIhqN,EAAI,EAAGA,EAAIgqN,EAAUhqN,IAC5BuwJ,EAAEvvI,GAAOzZ,UAAUvH,GACnBghB,IAGF,OADA4oM,EAAer5D,EAAGvvI,GACXA,CACT,G,qCCvCF,IAAIokF,EAAI,EAAQ,OACZh4C,EAAS,EAAQ,OACjB68J,EAAa,EAAQ,OACrB7N,EAAW,EAAQ,OACnBd,EAAa,EAAQ,OACrBzvM,EAAiB,EAAQ,OACzBq+M,EAAwB,EAAQ,OAChCC,EAAiB,EAAQ,OACzBhN,EAAQ,EAAQ,OAChB7uF,EAAS,EAAQ,OACjBquF,EAAkB,EAAQ,OAC1B4H,EAAoB,2BACpBrI,EAAc,EAAQ,OACtBuJ,EAAU,EAAQ,OAElB2E,EAAc,cACd5I,EAAW,WACX5E,EAAgBD,EAAgB,eAEhCn8D,EAAa9gJ,UACb2qN,EAAiBj9J,EAAOo0J,GAGxBpB,EAASqF,IACPnK,EAAW+O,IACZA,EAAe5rN,YAAc8lN,IAE5BpH,GAAM,WAAckN,EAAe,CAAC,EAAI,IAE1CC,EAAsB,WAExB,GADAL,EAAW3qN,KAAMilN,GACb14M,EAAevM,QAAUilN,EAAmB,MAAM,IAAI/jE,EAAW,qDACvE,EAEI+pE,EAAkC,SAAUntN,EAAK5B,GAC/C0gN,EACFgO,EAAsB3F,EAAmBnnN,EAAK,CAC5CykB,cAAc,EACd/F,IAAK,WACH,OAAOtgB,CACT,EACAuhB,IAAK,SAAUgmM,GAEb,GADA3G,EAAS98M,MACLA,OAASilN,EAAmB,MAAM,IAAI/jE,EAAW,oCACjDlyB,EAAOhvH,KAAMlC,GAAMkC,KAAKlC,GAAO2lN,EAC9BoH,EAAe7qN,KAAMlC,EAAK2lN,EACjC,IAEGwB,EAAkBnnN,GAAO5B,CAClC,EAEK8yH,EAAOi2F,EAAmB3H,IAAgB2N,EAAgC3N,EAAe4E,IAE1FpB,GAAW9xF,EAAOi2F,EAAmB6F,IAAgB7F,EAAkB6F,KAAiB/kN,QAC1FklN,EAAgCH,EAAaE,GAG/CA,EAAoB7rN,UAAY8lN,EAIhCn/G,EAAE,CAAEh4C,QAAQ,EAAM1hD,aAAa,EAAMk1M,OAAQR,GAAU,CACrDoK,SAAUF,G,qCC9DZ,IAAIllH,EAAI,EAAQ,OACZ1hG,EAAO,EAAQ,OACfm9M,EAAY,EAAQ,OACpBzE,EAAW,EAAQ,OACnB+I,EAAoB,EAAQ,MAC5BC,EAAsB,EAAQ,OAC9BC,EAA+B,EAAQ,OACvCI,EAAU,EAAQ,OAElBP,EAAgBE,GAAoB,WACtC,IAGIj6M,EAAQrR,EAAM0B,EAHd6W,EAAW/S,KAAK+S,SAChBo4M,EAAYnrN,KAAKmrN,UACjBj4M,EAAOlT,KAAKkT,KAEhB,MAAO,EAAM,CAGX,GAFArH,EAASixM,EAAS14M,EAAK8O,EAAMH,IAC7BvY,EAAOwF,KAAKxF,OAASqR,EAAOrR,KACxBA,EAAM,OAEV,GADA0B,EAAQ2P,EAAO3P,MACX6pN,EAA6BhzM,EAAUo4M,EAAW,CAACjvN,EAAO8D,KAAKw1L,YAAY,GAAO,OAAOt5L,CAC/F,CACF,IAIA4pG,EAAE,CAAEzgG,OAAQ,WAAY4oF,OAAO,EAAMm9H,MAAM,EAAM9J,OAAQ6E,GAAW,CAClEjlM,OAAQ,SAAgBiqM,GAGtB,OAFArO,EAAS98M,MACTuhN,EAAU4J,GACH,IAAIvF,EAAcC,EAAkB7lN,MAAO,CAChDmrN,UAAWA,GAEf,G,qCChCF,IAAIrlH,EAAI,EAAQ,OACZulH,EAAU,EAAQ,OAClB9J,EAAY,EAAQ,OACpBzE,EAAW,EAAQ,OACnB+I,EAAoB,EAAQ,MAIhC//G,EAAE,CAAEzgG,OAAQ,WAAY4oF,OAAO,EAAMm9H,MAAM,GAAQ,CACjDpsM,KAAM,SAAcmsM,GAClBrO,EAAS98M,MACTuhN,EAAU4J,GACV,IAAItoL,EAASgjL,EAAkB7lN,MAC3Bw1L,EAAU,EACd,OAAO61B,EAAQxoL,GAAQ,SAAU3mC,EAAOosF,GACtC,GAAI6iI,EAAUjvN,EAAOs5L,KAAY,OAAOltG,EAAKpsF,EAC/C,GAAG,CAAEuoN,WAAW,EAAME,aAAa,IAAQ94M,MAC7C,G,qCCjBF,IAAIi6F,EAAI,EAAQ,OACZjwF,EAAM,EAAQ,OACdswM,EAAU,EAAQ,OAItBrgH,EAAE,CAAEzgG,OAAQ,WAAY4oF,OAAO,EAAMm9H,MAAM,EAAM9J,OAAQ6E,GAAW,CAClEtwM,IAAKA,G,qCCPP,IAAIiwF,EAAI,EAAQ,OACZh4C,EAAS,EAAQ,OACjB20J,EAAa,EAAQ,OACrB3E,EAA2B,EAAQ,MACnCx7L,EAAiB,WACjB0sG,EAAS,EAAQ,OACjB27F,EAAa,EAAQ,OACrBW,EAAoB,EAAQ,OAC5BC,EAA0B,EAAQ,OAClCC,EAAwB,EAAQ,OAChCC,EAAkB,EAAQ,OAC1B7O,EAAc,EAAQ,OACtBuJ,EAAU,EAAQ,OAElBuF,EAAgB,eAChBznN,EAAQw+M,EAAW,SACnBkJ,EAAqBlJ,EAAWiJ,GAEhCE,EAAgB,WAClBjB,EAAW3qN,KAAM6rN,GACjB,IAAIC,EAAkB7jN,UAAUrH,OAC5Bb,EAAUwrN,EAAwBO,EAAkB,OAAIpuN,EAAYuK,UAAU,IAC9EtD,EAAO4mN,EAAwBO,EAAkB,OAAIpuN,EAAYuK,UAAU,GAAI,SAC/Es+C,EAAO,IAAIolK,EAAmB5rN,EAAS4E,GACvCzB,EAAQ,IAAIe,EAAMlE,GAItB,OAHAmD,EAAMyB,KAAO+mN,EACbppM,EAAeikC,EAAM,QAASu3J,EAAyB,EAAG2N,EAAgBvoN,EAAM+B,MAAO,KACvFqmN,EAAkB/kK,EAAMvmD,KAAM4rN,GACvBrlK,CACT,EAEIslK,EAAwBD,EAAczsN,UAAYwsN,EAAmBxsN,UAErE4sN,EAAkB,UAAW,IAAI9nN,EAAMynN,GACvCM,EAA0B,UAAW,IAAIL,EAAmB,EAAG,GAG/D9oM,EAAa8oM,GAAsB/O,GAAe72M,OAAOic,yBAAyB8rC,EAAQ49J,GAI1FO,IAAqBppM,KAAgBA,EAAWL,UAAYK,EAAWN,cAEvE2pM,EAAqBH,IAAoBE,IAAqBD,EAIlElmH,EAAE,CAAEh4C,QAAQ,EAAM1hD,aAAa,EAAMk1M,OAAQ6E,GAAW+F,GAAsB,CAC5EC,aAAcD,EAAqBN,EAAgBD,IAGrD,IAAIS,EAAyB3J,EAAWiJ,GACpCW,EAAkCD,EAAuBjtN,UAE7D,GAAIktN,EAAgCjgN,cAAgBggN,EAKlD,IAAK,IAAItuN,KAJJqoN,GACH7jM,EAAe+pM,EAAiC,cAAevO,EAAyB,EAAGsO,IAG7EZ,EAAuB,GAAIx8F,EAAOw8F,EAAuB1tN,GAAM,CAC7E,IAAIwuN,EAAWd,EAAsB1tN,GACjCyuN,EAAeD,EAASx3M,EACvBk6G,EAAOo9F,EAAwBG,IAClCjqM,EAAe8pM,EAAwBG,EAAczO,EAAyB,EAAGwO,EAAShrN,GAE9F,C,qCClEa,WAASsR,GAAG,MAAM,CAACjT,IAAIiT,EAAEA,GAAG,IAAIyR,IAAI+jE,GAAG,SAASvzE,EAAE5N,GAAG,IAAIvG,EAAEkS,EAAE4J,IAAI3H,GAAGnU,EAAEA,EAAEQ,KAAK+F,GAAG2L,EAAE6K,IAAI5I,EAAE,CAAC5N,GAAG,EAAEohF,IAAI,SAASxzE,EAAE5N,GAAG,IAAIvG,EAAEkS,EAAE4J,IAAI3H,GAAGnU,IAAIuG,EAAEvG,EAAEU,OAAOV,EAAE7D,QAAQoK,KAAK,EAAE,GAAG2L,EAAE6K,IAAI5I,EAAE,IAAI,EAAEkhF,KAAK,SAASlhF,EAAE5N,GAAG,IAAIvG,EAAEkS,EAAE4J,IAAI3H,GAAGnU,GAAGA,EAAE8E,QAAQqQ,KAAI,SAASjD,GAAGA,EAAE3L,EAAE,KAAIvG,EAAEkS,EAAE4J,IAAI,OAAO9b,EAAE8E,QAAQqQ,KAAI,SAASjD,GAAGA,EAAEiC,EAAE5N,EAAE,GAAE,EAAE,C;;;;;;ACSzT,MAAMktH,EAA8B,qBAAXtpH,OAkCzB,MAAM,EAAa,CAAClG,EAAM6nN,GAAY,IAAWA,EAA2B15M,OAAO4W,IAAI/kB,GAA1BmO,OAAOnO,GAC9D8nN,EAAyB,CAACnhD,EAAQxtK,EAAKuD,IAAWqrN,EAAsB,CAAE/rN,EAAG2qK,EAAQj0J,EAAGvZ,EAAKgX,EAAGzT,IAChGqrN,EAAyBrvK,GAASv2C,KAAKI,UAAUm2C,GAClDj6C,QAAQ,UAAW,WACnBA,QAAQ,UAAW,WACnBA,QAAQ,UAAW,WAClB6F,EAAYpL,GAAuB,kBAARA,GAAoByQ,SAASzQ,GACxDyK,EAAUzK,GAA8B,kBAAtBqxH,EAAarxH,GAC/BuxH,EAAYvxH,GAA8B,oBAAtBqxH,EAAarxH,GACjC8uN,EAAiB9uN,GAAQyH,EAAczH,IAAoC,IAA5BkI,OAAOC,KAAKnI,GAAK+C,OAChE,EAASmF,OAAOkJ,OACtB,IAAIwhH,EACJ,MAAMC,EAAgB,IAEVD,IACHA,EACyB,qBAAfE,WACDA,WACgB,qBAAT5sG,KACHA,KACkB,qBAAXlZ,OACHA,OACkB,qBAAXijD,OACHA,OACA,CAAC,GAE/B,SAAS8+J,EAAWC,GAChB,OAAOA,EACFzpN,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,SACvB,CACA,MAAM,EAAiB2C,OAAO5G,UAAU0N,eACxC,SAASmiH,EAAOpiH,EAAK9O,GACjB,OAAO,EAAesG,KAAKwI,EAAK9O,EACpC,CASA,MAAM,EAAU6E,MAAM4C,QAChB,EAAc1H,GAAuB,oBAARA,EAC7B,EAAYA,GAAuB,kBAARA,EAC3B,EAAaA,GAAuB,mBAARA,EAG5B,EAAYA,GAAgB,OAARA,GAA+B,kBAARA,EAE3CyxH,EAAazxH,GACR,EAASA,IAAQ,EAAWA,EAAI2C,OAAS,EAAW3C,EAAI8e,OAE7D4yG,EAAiBxpH,OAAO5G,UAAUc,SAClCivH,EAAgBhzH,GAAUqzH,EAAenrH,KAAKlI,GAC9CoJ,EAAiBzH,IACnB,IAAK,EAASA,GACV,OAAO,EACX,MAAMowF,EAAQloF,OAAOwG,eAAe1O,GACpC,OAAiB,OAAVowF,GAAkBA,EAAM7hF,cAAgBrG,MAAM,EAGnDosH,EAAmBt0H,GACP,MAAPA,EACD,GACA,EAAQA,IAASyH,EAAczH,IAAQA,EAAIoC,WAAasvH,EACpDzoH,KAAKI,UAAUrJ,EAAK,KAAM,GAC1BmuB,OAAOnuB,GAErB,SAAS2K,EAAKuJ,EAAOitB,EAAY,IAC7B,OAAOjtB,EAAMsK,QAAO,CAAC3P,EAAKoE,EAAM3P,IAAqB,IAAVA,EAAcuL,EAAMoE,EAAOpE,EAAMsyB,EAAYluB,GAAO,GACnG,CAkCA,SAASg8M,EAAY9oN,GACjB,IAAIi/B,EAAUj/B,EACd,MAAO,MAAQi/B,CACnB,CAEA,SAAS,EAAK6D,EAAK3qC,GACQ,qBAAZ+P,UACPA,QAAQC,KAAK,aAAe26B,GAExB3qC,GACA+P,QAAQC,KAAKhQ,EAAI8I,OAG7B,CAkDA,MAAM8nN,EAAwBlvN,IAAS,EAASA,IAAQ,EAAQA,GAEhE,SAASmvN,EAAS33M,EAAK43M,GAEnB,GAAIF,EAAqB13M,IAAQ03M,EAAqBE,GAClD,MAAM,IAAIhpN,MAAM,iBAEpB,IAAK,MAAMnG,KAAOuX,EACV25G,EAAO35G,EAAKvX,KACRivN,EAAqB13M,EAAIvX,KAASivN,EAAqBE,EAAInvN,IAI3DmvN,EAAInvN,GAAOuX,EAAIvX,GAIfkvN,EAAS33M,EAAIvX,GAAMmvN,EAAInvN,IAIvC,CClOA,SAASovN,EAAe9hN,EAAMuU,EAAQhL,GAClC,MAAO,CAAEvJ,OAAMuU,SAAQhL,SAC3B,CACA,SAASw4M,EAAeptM,EAAOkK,EAAK5oB,GAChC,MAAMskB,EAAM,CAAE5F,QAAOkK,OAIrB,OAHc,MAAV5oB,IACAskB,EAAItkB,OAASA,GAEVskB,CACX,CAMA,MAAM,EAAU,sBAEhB,SAAS,EAAO5lB,KAAYiI,GAOxB,OANoB,IAAhBA,EAAKpH,QAAgB,EAASoH,EAAK,MACnCA,EAAOA,EAAK,IAEXA,GAASA,EAAK6E,iBACf7E,EAAO,CAAC,GAELjI,EAAQqD,QAAQ,GAAS,CAACiG,EAAO+jN,IAC7BplN,EAAK6E,eAAeugN,GAAcplN,EAAKolN,GAAc,IAEpE,CACA,MAAM,EAASrnN,OAAOkJ,OAChB,EAAYpR,GAAuB,kBAARA,EAE3B,EAAYA,GAAgB,OAARA,GAA+B,kBAARA,EACjD,SAAS,EAAKkU,EAAOitB,EAAY,IAC7B,OAAOjtB,EAAMsK,QAAO,CAAC3P,EAAKoE,EAAM3P,IAAqB,IAAVA,EAAcuL,EAAMoE,EAAOpE,EAAMsyB,EAAYluB,GAAO,GACnG,CAEA,MAAMu8M,EAAoB,CAEtBC,eAAgB,EAChBC,6BAA8B,EAC9BC,yCAA0C,EAC1CC,wBAAyB,EACzBC,gCAAiC,EACjCC,yBAA0B,EAC1BC,2BAA4B,EAC5BC,kBAAmB,EACnBC,2BAA4B,EAC5BC,sBAAuB,GAEvBC,6BAA8B,GAC9BC,iCAAkC,GAClCC,4BAA6B,GAC7BC,4BAA6B,GAE7BC,4BAA6B,GAE7BC,6BAA8B,GAI9BC,iBAAkB,IAGhBC,EAAgB,CAElB,CAAClB,EAAkBC,gBAAiB,wBACpC,CAACD,EAAkBE,8BAA+B,sCAClD,CAACF,EAAkBG,0CAA2C,2CAC9D,CAACH,EAAkBI,yBAA0B,iCAC7C,CAACJ,EAAkBK,iCAAkC,uCACrD,CAACL,EAAkBM,0BAA2B,2BAC9C,CAACN,EAAkBO,4BAA6B,6BAChD,CAACP,EAAkBQ,mBAAoB,oBACvC,CAACR,EAAkBS,4BAA6B,+BAChD,CAACT,EAAkBU,uBAAwB,wBAE3C,CAACV,EAAkBW,8BAA+B,4BAClD,CAACX,EAAkBY,kCAAmC,mCACtD,CAACZ,EAAkBa,6BAA8B,8BACjD,CAACb,EAAkBc,6BAA8B,8CAEjD,CAACd,EAAkBe,6BAA8B,qCAEjD,CAACf,EAAkBgB,8BAA+B,uCAEtD,SAASG,EAAmBxqN,EAAM2hB,EAAKpiB,EAAU,CAAC,GAC9C,MAAM,OAAEuF,EAAM,SAAEy1J,EAAQ,KAAEv2J,GAASzE,EAC7BujC,EAAM,GAAQy3H,GAAYgwD,GAAevqN,IAAS,MAAQgE,GAAQ,IAElE9E,EAAQ,IAAIumJ,YAAYz9H,OAAO8a,IAMrC,OALA5jC,EAAMc,KAAOA,EACT2hB,IACAziB,EAAM4H,SAAW6a,GAErBziB,EAAM4F,OAASA,EACR5F,CACX,CAEA,SAASurN,EAAevrN,GACpB,MAAMA,CACV,CAEA,MAGMwrN,EAAU,IACVC,EAAU,KACVC,EAAU,KACVC,EAAU7iM,OAAO0D,aAAa,MAC9Bo/L,EAAU9iM,OAAO0D,aAAa,MACpC,SAASq/L,EAAcriN,GACnB,MAAMsiN,EAAOtiN,EACb,IAAIuiN,EAAS,EACTp/L,EAAQ,EACRq/L,EAAU,EACVC,EAAc,EAClB,MAAMC,EAAUjuN,GAAU6tN,EAAK7tN,KAAWwtN,GAAWK,EAAK7tN,EAAQ,KAAOytN,EACnES,EAAQluN,GAAU6tN,EAAK7tN,KAAWytN,EAClCU,EAAQnuN,GAAU6tN,EAAK7tN,KAAW2tN,EAClCS,EAAQpuN,GAAU6tN,EAAK7tN,KAAW0tN,EAClCW,EAAaruN,GAAUiuN,EAAOjuN,IAAUkuN,EAAKluN,IAAUmuN,EAAKnuN,IAAUouN,EAAKpuN,GAC3EA,EAAQ,IAAM8tN,EACd7jN,EAAO,IAAMykB,EACblQ,EAAS,IAAMuvM,EACfO,EAAa,IAAMN,EACnBvkN,EAAU+J,GAAWy6M,EAAOz6M,IAAW26M,EAAK36M,IAAW46M,EAAK56M,GAAUi6M,EAAUI,EAAKr6M,GACrF+6M,EAAc,IAAM9kN,EAAOqkN,GAC3BU,EAAc,IAAM/kN,EAAOqkN,EAASE,GAC1C,SAASj8M,IAWL,OAVAi8M,EAAc,EACVK,EAAUP,KACVp/L,IACAq/L,EAAU,GAEVE,EAAOH,IACPA,IAEJA,IACAC,IACOF,EAAKC,EAChB,CACA,SAAS19L,IAKL,OAJI69L,EAAOH,EAASE,IAChBA,IAEJA,IACOH,EAAKC,EAASE,EACzB,CACA,SAASxrE,IACLsrE,EAAS,EACTp/L,EAAQ,EACRq/L,EAAU,EACVC,EAAc,CAClB,CACA,SAASS,EAAUj7M,EAAS,GACxBw6M,EAAcx6M,CAClB,CACA,SAASk7M,IACL,MAAMxqN,EAAS4pN,EAASE,EAExB,MAAO9pN,IAAW4pN,EACd/7M,IAEJi8M,EAAc,CAClB,CACA,MAAO,CACHhuN,QACAiK,OACAuU,SACA8vM,aACA7kN,SACA8kN,cACAC,cACAz8M,OACAqe,OACAoyH,QACAisE,YACAC,aAER,CAEA,MAAMnlM,OAAMhtB,EACNoyN,EAAM,IACNC,EAAoB,IACpBC,EAAiB,YACvB,SAASC,GAAgB5uN,EAAQkC,EAAU,CAAC,GACxC,MAAMuH,GAAgC,IAArBvH,EAAQuH,SACnBolN,EAAQnB,EAAc1tN,GACtB8uN,EAAgB,IAAMD,EAAM/uN,QAC5BivN,EAAkB,IAAMlD,EAAegD,EAAM9kN,OAAQ8kN,EAAMvwM,SAAUuwM,EAAM/uN,SAC3EkvN,EAAWD,IACXE,EAAcH,IACdlkH,EAAW,CACbskH,YAAa,GACb57M,OAAQ27M,EACRE,SAAUH,EACVI,OAAQJ,EACRK,SAAU,GACVC,WAAYL,EACZM,aAAcP,EACdQ,WAAYR,EACZS,UAAW,EACXC,UAAU,EACV9/M,KAAM,IAEJhS,EAAU,IAAMgtG,GAChB,QAAE+kH,GAAYztN,EACpB,SAAS0tN,EAAUjtN,EAAM6hB,EAAKlR,KAAW3M,GACrC,MAAM4vF,EAAM34F,IAGZ,GAFA4mB,EAAIlG,QAAUhL,EACdkR,EAAIlR,QAAUA,EACVq8M,EAAS,CACT,MAAMrrM,EAAM7a,EAAWqiN,EAAev1H,EAAI44H,SAAU3qM,GAAO,KACrD1pB,EAAMqyN,EAAmBxqN,EAAM2hB,EAAK,CACtC7c,OAAQknN,EACRhoN,SAEJgpN,EAAQ70N,EACZ,CACJ,CACA,SAASqjI,EAASvgI,EAASV,EAAMrC,GAC7B+C,EAAQwxN,OAASL,IACjBnxN,EAAQsxN,YAAchyN,EACtB,MAAMgC,EAAQ,CAAEhC,QAOhB,OANIuM,IACAvK,EAAMolB,IAAMwnM,EAAeluN,EAAQuxN,SAAUvxN,EAAQwxN,SAE5C,MAATv0N,IACAqE,EAAMrE,MAAQA,GAEXqE,CACX,CACA,MAAM2wN,EAAejyN,GAAYugI,EAASvgI,EAAS,IACnD,SAASkyN,EAAIC,EAAMxoE,GACf,OAAIwoE,EAAK1B,gBAAkB9mE,GACvBwoE,EAAKl+M,OACE01I,IAGPqoE,EAAU5D,EAAkBC,eAAgB8C,IAAmB,EAAGxnE,GAC3D,GAEf,CACA,SAASyoE,EAAWD,GAChB,IAAInxI,EAAM,GACV,MAAOmxI,EAAKzB,gBAAkBjB,GAAW0C,EAAKzB,gBAAkBf,EAC5D3uI,GAAOmxI,EAAKzB,cACZyB,EAAK7/L,OAET,OAAO0uD,CACX,CACA,SAASqxI,EAAWF,GAChB,MAAMnxI,EAAMoxI,EAAWD,GAEvB,OADAA,EAAKvB,aACE5vI,CACX,CACA,SAASsxI,EAAkB3oE,GACvB,GAAIA,IAAOl+H,EACP,OAAO,EAEX,MAAM8mM,EAAK5oE,EAAGz7I,WAAW,GACzB,OAASqkN,GAAM,IAAMA,GAAM,KACtBA,GAAM,IAAMA,GAAM,IACZ,KAAPA,CAER,CACA,SAASC,EAAc7oE,GACnB,GAAIA,IAAOl+H,EACP,OAAO,EAEX,MAAM8mM,EAAK5oE,EAAGz7I,WAAW,GACzB,OAAOqkN,GAAM,IAAMA,GAAM,EAC7B,CACA,SAASE,EAAuBN,EAAMnyN,GAClC,MAAM,YAAEsxN,GAAgBtxN,EACxB,GAAoB,IAAhBsxN,EACA,OAAO,EAEXc,EAAWD,GACX,MAAMtjN,EAAMyjN,EAAkBH,EAAKzB,eAEnC,OADAyB,EAAKxB,YACE9hN,CACX,CACA,SAAS6jN,EAAsBP,EAAMnyN,GACjC,MAAM,YAAEsxN,GAAgBtxN,EACxB,GAAoB,IAAhBsxN,EACA,OAAO,EAEXc,EAAWD,GACX,MAAMxoE,EAA4B,MAAvBwoE,EAAKzB,cAAwByB,EAAK7/L,OAAS6/L,EAAKzB,cACrD7hN,EAAM2jN,EAAc7oE,GAE1B,OADAwoE,EAAKxB,YACE9hN,CACX,CACA,SAAS8jN,EAAeR,EAAMnyN,GAC1B,MAAM,YAAEsxN,GAAgBtxN,EACxB,GAAoB,IAAhBsxN,EACA,OAAO,EAEXc,EAAWD,GACX,MAAMtjN,EAAMsjN,EAAKzB,gBAAkBI,EAEnC,OADAqB,EAAKxB,YACE9hN,CACX,CACA,SAAS+jN,EAAiBT,EAAMnyN,GAC5B,MAAM,YAAEsxN,GAAgBtxN,EACxB,GAAoB,IAAhBsxN,EACA,OAAO,EAEXc,EAAWD,GACX,MAAMtjN,EAA6B,MAAvBsjN,EAAKzB,cAEjB,OADAyB,EAAKxB,YACE9hN,CACX,CACA,SAASgkN,EAAsBV,EAAMnyN,GACjC,MAAM,YAAEsxN,GAAgBtxN,EACxB,GAAoB,IAAhBsxN,EACA,OAAO,EAEXc,EAAWD,GACX,MAAMtjN,EAAMyjN,EAAkBH,EAAKzB,eAEnC,OADAyB,EAAKxB,YACE9hN,CACX,CACA,SAASikN,EAAuBX,EAAMnyN,GAClC,MAAM,YAAEsxN,GAAgBtxN,EACxB,GAAsB,IAAhBsxN,GACc,KAAhBA,EACA,OAAO,EAEXc,EAAWD,GACX,MAAMtjN,EAA6B,MAAvBsjN,EAAKzB,cAEjB,OADAyB,EAAKxB,YACE9hN,CACX,CACA,SAASkkN,EAAmBZ,EAAMnyN,GAC9B,MAAM,YAAEsxN,GAAgBtxN,EACxB,GAAoB,KAAhBsxN,EACA,OAAO,EAEX,MAAM7sN,EAAK,KACP,MAAMklJ,EAAKwoE,EAAKzB,cAChB,MAAW,MAAP/mE,EACO2oE,EAAkBH,EAAK7/L,UAElB,MAAPq3H,GACE,MAAPA,GACO,MAAPA,GACO,MAAPA,GACO,MAAPA,GACAA,IAAO8lE,IACN9lE,KAGIA,IAAOgmE,GACZwC,EAAK7/L,OACE7tB,KAIA6tN,EAAkB3oE,GAC7B,EAEE96I,EAAMpK,IAEZ,OADA0tN,EAAKxB,YACE9hN,CACX,CACA,SAASmkN,EAAcb,GACnBC,EAAWD,GACX,MAAMtjN,EAA6B,MAAvBsjN,EAAKzB,cAEjB,OADAyB,EAAKxB,YACE9hN,CACX,CACA,SAASokN,EAAkBd,GACvB,MAAMe,EAASd,EAAWD,GACpBtjN,EAA6B,MAAvBsjN,EAAKzB,eACG,MAAhByB,EAAK7/L,OAET,OADA6/L,EAAKxB,YACE,CACHwC,SAAUtkN,EACVukN,SAAUF,EAAOvxN,OAAS,EAElC,CACA,SAAS0xN,EAAYlB,EAAMztE,GAAQ,GAC/B,MAAMjgJ,EAAK,CAAC2uN,GAAW,EAAOhoM,EAAO,GAAIkoM,GAAe,KACpD,MAAM3pE,EAAKwoE,EAAKzB,cAChB,MAAW,MAAP/mE,EACgB,MAATv+H,GAA+CgoM,EAE1C,MAAPzpE,GAA4CA,EAGrC,MAAPA,GACLwoE,EAAK7/L,OACE7tB,EAAG2uN,EAAU,KAA6B,IAErC,MAAPzpE,IACW,MAATv+H,IAAwCkoM,MAEvCloM,IAASqkM,GAAWrkM,IAASukM,GAEhChmE,IAAO8lE,GACZ0C,EAAK7/L,OACE7tB,GAAG,EAAMgrN,EAAS6D,IAEpB3pE,IAAOgmE,IACZwC,EAAK7/L,OACE7tB,GAAG,EAAMkrN,EAAS2D,IAjBT,MAATloM,GAA8CgoM,CAqBzD,EAEEvkN,EAAMpK,IAEZ,OADAigJ,GAASytE,EAAKxB,YACP9hN,CACX,CACA,SAAS0kN,EAASpB,EAAM1tN,GACpB,MAAMklJ,EAAKwoE,EAAK1B,cAChB,OAAI9mE,IAAOl+H,EACAA,EAEPhnB,EAAGklJ,IACHwoE,EAAKl+M,OACE01I,GAEJ,IACX,CACA,SAAS6pE,EAAmBrB,GACxB,MAAMsB,EAAW9pE,IACb,MAAM4oE,EAAK5oE,EAAGz7I,WAAW,GACzB,OAASqkN,GAAM,IAAMA,GAAM,KACtBA,GAAM,IAAMA,GAAM,IAClBA,GAAM,IAAMA,GAAM,IACZ,KAAPA,GACO,KAAPA,CACH,EAEL,OAAOgB,EAASpB,EAAMsB,EAC1B,CACA,SAASC,EAAUvB,GACf,MAAMsB,EAAW9pE,IACb,MAAM4oE,EAAK5oE,EAAGz7I,WAAW,GACzB,OAAOqkN,GAAM,IAAMA,GAAM,EAAE,EAE/B,OAAOgB,EAASpB,EAAMsB,EAC1B,CACA,SAASE,EAAaxB,GAClB,MAAMsB,EAAW9pE,IACb,MAAM4oE,EAAK5oE,EAAGz7I,WAAW,GACzB,OAASqkN,GAAM,IAAMA,GAAM,IACtBA,GAAM,IAAMA,GAAM,IAClBA,GAAM,IAAMA,GAAM,GAAK,EAEhC,OAAOgB,EAASpB,EAAMsB,EAC1B,CACA,SAASG,EAAUzB,GACf,IAAIxoE,EAAK,GACL1hE,EAAM,GACV,MAAQ0hE,EAAK+pE,EAAUvB,GACnBlqI,GAAO0hE,EAEX,OAAO1hE,CACX,CACA,SAAS4rI,EAAW1B,GAChBE,EAAWF,GACX,MAAMxoE,EAAKwoE,EAAK1B,cAKhB,MAJW,MAAP9mE,GACAqoE,EAAU5D,EAAkBC,eAAgB8C,IAAmB,EAAGxnE,GAEtEwoE,EAAKl+M,OACE,GACX,CACA,SAAS6/M,EAAS3B,GACd,IAAInxI,EAAM,GACV,MAAO,EAAM,CACT,MAAM2oE,EAAKwoE,EAAK1B,cAChB,GAAW,MAAP9mE,GACO,MAAPA,GACO,MAAPA,GACO,MAAPA,IACCA,EACD,MAEC,GAAW,MAAPA,EAAoC,CACzC,IAAI0pE,EAAYlB,GAKZ,MAJAnxI,GAAO2oE,EACPwoE,EAAKl+M,MAKb,MACK,GAAI01I,IAAO8lE,GAAW9lE,IAAOgmE,EAC9B,GAAI0D,EAAYlB,GACZnxI,GAAO2oE,EACPwoE,EAAKl+M,WAEJ,IAAI++M,EAAcb,GACnB,MAGAnxI,GAAO2oE,EACPwoE,EAAKl+M,MACT,MAGA+sE,GAAO2oE,EACPwoE,EAAKl+M,MAEb,CACA,OAAO+sE,CACX,CACA,SAAS+yI,EAAoB5B,GACzBE,EAAWF,GACX,IAAIxoE,EAAK,GACLjkJ,EAAO,GACX,MAAQikJ,EAAK6pE,EAAmBrB,GAC5BzsN,GAAQikJ,EAKZ,OAHIwoE,EAAK1B,gBAAkBhlM,GACvBumM,EAAU5D,EAAkBO,2BAA4BwC,IAAmB,GAExEzrN,CACX,CACA,SAASsuN,EAAmB7B,GACxBE,EAAWF,GACX,IAAIl1N,EAAQ,GAWZ,MAV2B,MAAvBk1N,EAAK1B,eACL0B,EAAKl+M,OACLhX,GAAS,IAAI22N,EAAUzB,MAGvBl1N,GAAS22N,EAAUzB,GAEnBA,EAAK1B,gBAAkBhlM,GACvBumM,EAAU5D,EAAkBO,2BAA4BwC,IAAmB,GAExEl0N,CACX,CACA,SAASg3N,EAAY9B,GACjBE,EAAWF,GACXD,EAAIC,EAAM,KACV,IAAIxoE,EAAK,GACLuqE,EAAU,GACd,MAAMzvN,EAAMu7B,GAAMA,IAAM8wL,GAAqB9wL,IAAM2vL,EACnD,MAAQhmE,EAAK4pE,EAASpB,EAAM1tN,GAEpByvN,GADO,OAAPvqE,EACWwqE,EAAmBhC,GAGnBxoE,EAGnB,MAAM3lH,EAAUmuL,EAAK1B,cACrB,OAAIzsL,IAAY2rL,GAAW3rL,IAAYvY,GACnCumM,EAAU5D,EAAkBG,yCAA0C4C,IAAmB,GAErFntL,IAAY2rL,IACZwC,EAAKl+M,OACLi+M,EAAIC,EAAM,MAEP+B,IAEXhC,EAAIC,EAAM,KACH+B,EACX,CACA,SAASC,EAAmBhC,GACxB,MAAMxoE,EAAKwoE,EAAK1B,cAChB,OAAQ9mE,GACJ,IAAK,KACL,IAAK,IAED,OADAwoE,EAAKl+M,OACE,KAAK01I,IAChB,IAAK,IACD,OAAOyqE,EAA0BjC,EAAMxoE,EAAI,GAC/C,IAAK,IACD,OAAOyqE,EAA0BjC,EAAMxoE,EAAI,GAC/C,QAEI,OADAqoE,EAAU5D,EAAkBI,wBAAyB2C,IAAmB,EAAGxnE,GACpE,GAEnB,CACA,SAASyqE,EAA0BjC,EAAMkC,EAASC,GAC9CpC,EAAIC,EAAMkC,GACV,IAAIh2D,EAAW,GACf,IAAK,IAAI58J,EAAI,EAAGA,EAAI6yN,EAAQ7yN,IAAK,CAC7B,MAAMkoJ,EAAKgqE,EAAaxB,GACxB,IAAKxoE,EAAI,CACLqoE,EAAU5D,EAAkBK,gCAAiC0C,IAAmB,EAAG,KAAKkD,IAAUh2D,IAAW8zD,EAAK1B,iBAClH,KACJ,CACApyD,GAAY1U,CAChB,CACA,MAAO,KAAK0qE,IAAUh2D,GAC1B,CACA,SAASk2D,EAAsBpC,GAC3BE,EAAWF,GACX,IAAIxoE,EAAK,GACL6qE,EAAc,GAClB,MAAMf,EAAW9pE,GAAc,MAAPA,GACb,MAAPA,GACAA,IAAO8lE,GACP9lE,IAAOgmE,EACX,MAAQhmE,EAAK4pE,EAASpB,EAAMsB,GACxBe,GAAe7qE,EAEnB,OAAO6qE,CACX,CACA,SAASC,EAAmBtC,GACxB,IAAIxoE,EAAK,GACLjkJ,EAAO,GACX,MAAQikJ,EAAK6pE,EAAmBrB,GAC5BzsN,GAAQikJ,EAEZ,OAAOjkJ,CACX,CACA,SAASgvN,GAAgBvC,GACrB,MAAM1tN,EAAK,CAACkwN,GAAS,EAAO3zI,KACxB,MAAM2oE,EAAKwoE,EAAK1B,cAChB,MAAW,MAAP9mE,GACO,MAAPA,GACO,MAAPA,GACO,MAAPA,GACO,MAAPA,GACO,MAAPA,GACCA,EAGIA,IAAO8lE,EACLzuI,EAEF2oE,IAAOgmE,GAAWhmE,IAAOknE,GAC9B7vI,GAAO2oE,EACPwoE,EAAKl+M,OACExP,EAAGkwN,EAAQ3zI,KAGlBA,GAAO2oE,EACPwoE,EAAKl+M,OACExP,GAAG,EAAMu8E,IAbTA,CAcX,EAEJ,OAAOv8E,GAAG,EAAO,GACrB,CACA,SAASmwN,GAAWzC,GAChBE,EAAWF,GACX,MAAM0C,EAAS3C,EAAIC,EAAM,KAEzB,OADAE,EAAWF,GACJ0C,CACX,CAEA,SAASC,GAAuB3C,EAAMnyN,GAClC,IAAIsB,EAAQ,KACZ,MAAMqoJ,EAAKwoE,EAAK1B,cAChB,OAAQ9mE,GACJ,IAAK,IAQD,OAPI3pJ,EAAQ6xN,WAAa,GACrBG,EAAU5D,EAAkBS,2BAA4BsC,IAAmB,GAE/EgB,EAAKl+M,OACL3S,EAAQi/H,EAASvgI,EAAS,EAA8B,KACxDqyN,EAAWF,GACXnyN,EAAQ6xN,YACDvwN,EACX,IAAK,IAYD,OAXItB,EAAQ6xN,UAAY,GACI,IAAxB7xN,EAAQsxN,aACRU,EAAU5D,EAAkBQ,kBAAmBuC,IAAmB,GAEtEgB,EAAKl+M,OACL3S,EAAQi/H,EAASvgI,EAAS,EAA+B,KACzDA,EAAQ6xN,YACR7xN,EAAQ6xN,UAAY,GAAKQ,EAAWF,GAChCnyN,EAAQ8xN,UAAkC,IAAtB9xN,EAAQ6xN,YAC5B7xN,EAAQ8xN,UAAW,GAEhBxwN,EACX,IAAK,IAMD,OALItB,EAAQ6xN,UAAY,GACpBG,EAAU5D,EAAkBO,2BAA4BwC,IAAmB,GAE/E7vN,EAAQyzN,GAAkB5C,EAAMnyN,IAAYiyN,EAAYjyN,GACxDA,EAAQ6xN,UAAY,EACbvwN,EACX,QACI,IAAI0zN,GAAuB,EACvBC,GAAsB,EACtBC,GAAe,EACnB,GAAIlC,EAAcb,GAQd,OAPInyN,EAAQ6xN,UAAY,GACpBG,EAAU5D,EAAkBO,2BAA4BwC,IAAmB,GAE/E7vN,EAAQi/H,EAASvgI,EAAS,EAAyB40N,GAAWzC,IAE9DnyN,EAAQ6xN,UAAY,EACpB7xN,EAAQ8xN,UAAW,EACZxwN,EAEX,GAAItB,EAAQ6xN,UAAY,IACK,IAAxB7xN,EAAQsxN,aACmB,IAAxBtxN,EAAQsxN,aACgB,IAAxBtxN,EAAQsxN,aAGZ,OAFAU,EAAU5D,EAAkBO,2BAA4BwC,IAAmB,GAC3EnxN,EAAQ6xN,UAAY,EACbxhM,GAAU8hM,EAAMnyN,GAE3B,GAAKg1N,EAAuBvC,EAAuBN,EAAMnyN,GAGrD,OAFAsB,EAAQi/H,EAASvgI,EAAS,EAA0B+zN,EAAoB5B,IACxEE,EAAWF,GACJ7wN,EAEX,GAAK2zN,EAAsBvC,EAAsBP,EAAMnyN,GAGnD,OAFAsB,EAAQi/H,EAASvgI,EAAS,EAAyBg0N,EAAmB7B,IACtEE,EAAWF,GACJ7wN,EAEX,GAAK4zN,EAAevC,EAAeR,EAAMnyN,GAGrC,OAFAsB,EAAQi/H,EAASvgI,EAAS,EAA4Bi0N,EAAY9B,IAClEE,EAAWF,GACJ7wN,EAEX,IAAK0zN,IAAyBC,IAAwBC,EAKlD,OAHA5zN,EAAQi/H,EAASvgI,EAAS,GAAkCu0N,EAAsBpC,IAClFH,EAAU5D,EAAkBE,6BAA8B6C,IAAmB,EAAG7vN,EAAMrE,OACtFo1N,EAAWF,GACJ7wN,EAEX,MAER,OAAOA,CACX,CAEA,SAASyzN,GAAkB5C,EAAMnyN,GAC7B,MAAM,YAAEsxN,GAAgBtxN,EACxB,IAAIsB,EAAQ,KACZ,MAAMqoJ,EAAKwoE,EAAK1B,cAQhB,OAPqB,IAAhBa,GACe,IAAhBA,GACgB,KAAhBA,GACgB,KAAhBA,GACC3nE,IAAOgmE,GAAWhmE,IAAO8lE,GAC1BuC,EAAU5D,EAAkBU,sBAAuBqC,IAAmB,GAElExnE,GACJ,IAAK,IAID,OAHAwoE,EAAKl+M,OACL3S,EAAQi/H,EAASvgI,EAAS,EAAgC,KAC1DA,EAAQ8xN,UAAW,EACZxwN,EACX,IAAK,IAGD,OAFA+wN,EAAWF,GACXA,EAAKl+M,OACEssH,EAASvgI,EAAS,EAA8B,KAC3D,IAAK,IAGD,OAFAqyN,EAAWF,GACXA,EAAKl+M,OACEssH,EAASvgI,EAAS,GAAqC,KAClE,QACI,OAAIgzN,EAAcb,IACd7wN,EAAQi/H,EAASvgI,EAAS,EAAyB40N,GAAWzC,IAE9DnyN,EAAQ6xN,UAAY,EACpB7xN,EAAQ8xN,UAAW,EACZxwN,GAEPsxN,EAAiBT,EAAMnyN,IACvB8yN,EAAuBX,EAAMnyN,IAC7BqyN,EAAWF,GACJ4C,GAAkB5C,EAAMnyN,IAE/B6yN,EAAsBV,EAAMnyN,IAC5BqyN,EAAWF,GACJ5xF,EAASvgI,EAAS,GAAoCy0N,EAAmBtC,KAEhFY,EAAmBZ,EAAMnyN,IACzBqyN,EAAWF,GACA,MAAPxoE,EAEOmrE,GAAuB3C,EAAMnyN,IAAYsB,EAGzCi/H,EAASvgI,EAAS,GAA+B00N,GAAgBvC,MAG5D,IAAhBb,GACAU,EAAU5D,EAAkBU,sBAAuBqC,IAAmB,GAE1EnxN,EAAQ6xN,UAAY,EACpB7xN,EAAQ8xN,UAAW,EACZzhM,GAAU8hM,EAAMnyN,IAEnC,CAEA,SAASqwB,GAAU8hM,EAAMnyN,GACrB,IAAIsB,EAAQ,CAAEhC,KAAM,IACpB,GAAIU,EAAQ6xN,UAAY,EACpB,OAAOiD,GAAuB3C,EAAMnyN,IAAYiyN,EAAYjyN,GAEhE,GAAIA,EAAQ8xN,SACR,OAAOiD,GAAkB5C,EAAMnyN,IAAYiyN,EAAYjyN,GAE3D,MAAM2pJ,EAAKwoE,EAAK1B,cAChB,OAAQ9mE,GACJ,IAAK,IACD,OAAOmrE,GAAuB3C,EAAMnyN,IAAYiyN,EAAYjyN,GAChE,IAAK,IAGD,OAFAgyN,EAAU5D,EAAkBM,yBAA0ByC,IAAmB,GACzEgB,EAAKl+M,OACEssH,EAASvgI,EAAS,EAA+B,KAC5D,IAAK,IACD,OAAO+0N,GAAkB5C,EAAMnyN,IAAYiyN,EAAYjyN,GAC3D,QACI,GAAIgzN,EAAcb,GAKd,OAJA7wN,EAAQi/H,EAASvgI,EAAS,EAAyB40N,GAAWzC,IAE9DnyN,EAAQ6xN,UAAY,EACpB7xN,EAAQ8xN,UAAW,EACZxwN,EAEX,MAAM,SAAE6xN,EAAQ,SAAEC,GAAaH,EAAkBd,GACjD,GAAIgB,EACA,OAAOC,EACD7yF,EAASvgI,EAAS,EAAyB8zN,EAAS3B,IACpD5xF,EAASvgI,EAAS,EAA2B6zN,EAAW1B,IAElE,GAAIkB,EAAYlB,GACZ,OAAO5xF,EAASvgI,EAAS,EAAyB8zN,EAAS3B,IAE/D,MAER,OAAO7wN,CACX,CACA,SAAS6zN,KACL,MAAM,YAAE7D,EAAW,OAAE57M,EAAM,SAAE67M,EAAQ,OAAEC,GAAWxkH,EAOlD,OANAA,EAASykH,SAAWH,EACpBtkH,EAAS0kH,WAAah8M,EACtBs3F,EAAS2kH,aAAeJ,EACxBvkH,EAAS4kH,WAAaJ,EACtBxkH,EAASt3F,OAASw7M,IAClBlkH,EAASukH,SAAWJ,IAChBF,EAAMR,gBAAkBhlM,EACjB80G,EAASvzB,EAAU,IAEvB38E,GAAU4gM,EAAOjkH,EAC5B,CACA,MAAO,CACHmoH,aACAjE,gBACAC,kBACAnxN,UAER,CAEA,MAAMo1N,GAAiB,SAEjBC,GAAgB,wDACtB,SAASC,GAAmBlrN,EAAOmrN,EAAYC,GAC3C,OAAQprN,GACJ,IAAK,OACD,MAAO,KACX,IAAK,MACD,MAAO,IACX,QAAS,CACL,MAAM6yI,EAAYtiG,SAAS46K,GAAcC,EAAY,IACrD,OAAIv4E,GAAa,OAAUA,GAAa,MAC7BlwH,OAAO0oM,cAAcx4E,GAIzB,GACX,EAER,CACA,SAASy4E,GAAapxN,EAAU,CAAC,GAC7B,MAAMuH,GAAgC,IAArBvH,EAAQuH,UACnB,QAAEkmN,GAAYztN,EACpB,SAAS0tN,EAAU2D,EAAU5wN,EAAM+b,EAAOpL,KAAW3M,GACjD,MAAMiiB,EAAM2qM,EAASxE,kBAGrB,GAFAnmM,EAAItV,QAAUA,EACdsV,EAAItK,QAAUhL,EACVq8M,EAAS,CACT,MAAMrrM,EAAM7a,EAAWqiN,EAAeptM,EAAOkK,GAAO,KAC9C9tB,EAAMqyN,EAAmBxqN,EAAM2hB,EAAK,CACtC7c,OAAQurN,GACRrsN,SAEJgpN,EAAQ70N,EACZ,CACJ,CACA,SAAS04N,EAAUt2N,EAAMoW,EAAQgR,GAC7B,MAAMU,EAAO,CAAE9nB,QAMf,OALIuM,IACAub,EAAKtG,MAAQpL,EACb0R,EAAK4D,IAAMtV,EACX0R,EAAKV,IAAM,CAAE5F,MAAO4F,EAAKsE,IAAKtE,IAE3BU,CACX,CACA,SAASyuM,EAAQzuM,EAAM1R,EAAQkR,EAAKtnB,GAC5BA,IACA8nB,EAAK9nB,KAAOA,GAEZuM,IACAub,EAAK4D,IAAMtV,EACP0R,EAAKV,MACLU,EAAKV,IAAIsE,IAAMpE,GAG3B,CACA,SAASkvM,EAAUC,EAAW94N,GAC1B,MAAM+C,EAAU+1N,EAAU/1N,UACpBonB,EAAOwuM,EAAU,EAAwB51N,EAAQ0V,OAAQ1V,EAAQuxN,UAGvE,OAFAnqM,EAAKnqB,MAAQA,EACb44N,EAAQzuM,EAAM2uM,EAAU7E,gBAAiB6E,EAAU5E,mBAC5C/pM,CACX,CACA,SAAS4N,EAAU+gM,EAAW7zN,GAC1B,MAAMlC,EAAU+1N,EAAU/1N,WAClB0xN,WAAYh8M,EAAQi8M,aAAcjrM,GAAQ1mB,EAC5ConB,EAAOwuM,EAAU,EAAwBlgN,EAAQgR,GAIvD,OAHAU,EAAKllB,MAAQy4C,SAASz4C,EAAO,IAC7B6zN,EAAUZ,YACVU,EAAQzuM,EAAM2uM,EAAU7E,gBAAiB6E,EAAU5E,mBAC5C/pM,CACX,CACA,SAAS4uM,EAAWD,EAAWl3N,GAC3B,MAAMmB,EAAU+1N,EAAU/1N,WAClB0xN,WAAYh8M,EAAQi8M,aAAcjrM,GAAQ1mB,EAC5ConB,EAAOwuM,EAAU,EAAyBlgN,EAAQgR,GAIxD,OAHAU,EAAKvoB,IAAMA,EACXk3N,EAAUZ,YACVU,EAAQzuM,EAAM2uM,EAAU7E,gBAAiB6E,EAAU5E,mBAC5C/pM,CACX,CACA,SAAS6uM,EAAaF,EAAW94N,GAC7B,MAAM+C,EAAU+1N,EAAU/1N,WAClB0xN,WAAYh8M,EAAQi8M,aAAcjrM,GAAQ1mB,EAC5ConB,EAAOwuM,EAAU,EAA2BlgN,EAAQgR,GAI1D,OAHAU,EAAKnqB,MAAQA,EAAMkH,QAAQkxN,GAAeC,IAC1CS,EAAUZ,YACVU,EAAQzuM,EAAM2uM,EAAU7E,gBAAiB6E,EAAU5E,mBAC5C/pM,CACX,CACA,SAAS8uM,EAAoBH,GACzB,MAAMz0N,EAAQy0N,EAAUZ,YAClBn1N,EAAU+1N,EAAU/1N,WAClB0xN,WAAYh8M,EAAQi8M,aAAcjrM,GAAQ1mB,EAC5ConB,EAAOwuM,EAAU,EAAkClgN,EAAQgR,GACjE,OAAmB,KAAfplB,EAAMhC,MAEN0yN,EAAU+D,EAAW3H,EAAkBY,iCAAkChvN,EAAQ2xN,aAAc,GAC/FvqM,EAAKnqB,MAAQ,GACb44N,EAAQzuM,EAAM1R,EAAQgR,GACf,CACHyvM,iBAAkB70N,EAClB8lB,UAIW,MAAf9lB,EAAMrE,OACN+0N,EAAU+D,EAAW3H,EAAkBc,4BAA6BlvN,EAAQ2xN,aAAc,EAAGyE,GAAgB90N,IAEjH8lB,EAAKnqB,MAAQqE,EAAMrE,OAAS,GAC5B44N,EAAQzuM,EAAM2uM,EAAU7E,gBAAiB6E,EAAU5E,mBAC5C,CACH/pM,QAER,CACA,SAASivM,EAAeN,EAAW94N,GAC/B,MAAM+C,EAAU+1N,EAAU/1N,UACpBonB,EAAOwuM,EAAU,EAA6B51N,EAAQ0V,OAAQ1V,EAAQuxN,UAG5E,OAFAnqM,EAAKnqB,MAAQA,EACb44N,EAAQzuM,EAAM2uM,EAAU7E,gBAAiB6E,EAAU5E,mBAC5C/pM,CACX,CACA,SAASkvM,EAAYP,GACjB,MAAM/1N,EAAU+1N,EAAU/1N,UACpBu2N,EAAaX,EAAU,EAA0B51N,EAAQ0V,OAAQ1V,EAAQuxN,UAC/E,IAAIjwN,EAAQy0N,EAAUZ,YACtB,GAAmB,IAAf7zN,EAAMhC,KAAuC,CAC7C,MAAMyM,EAASmqN,EAAoBH,GACnCQ,EAAWC,SAAWzqN,EAAOqb,KAC7B9lB,EAAQyK,EAAOoqN,kBAAoBJ,EAAUZ,WACjD,CAUA,OARmB,KAAf7zN,EAAMhC,MACN0yN,EAAU+D,EAAW3H,EAAkBc,4BAA6BlvN,EAAQ2xN,aAAc,EAAGyE,GAAgB90N,IAEjHA,EAAQy0N,EAAUZ,YAEC,IAAf7zN,EAAMhC,OACNgC,EAAQy0N,EAAUZ,aAEd7zN,EAAMhC,MACV,KAAK,GACkB,MAAfgC,EAAMrE,OACN+0N,EAAU+D,EAAW3H,EAAkBc,4BAA6BlvN,EAAQ2xN,aAAc,EAAGyE,GAAgB90N,IAEjHi1N,EAAW13N,IAAMw3N,EAAeN,EAAWz0N,EAAMrE,OAAS,IAC1D,MACJ,KAAK,EACkB,MAAfqE,EAAMrE,OACN+0N,EAAU+D,EAAW3H,EAAkBc,4BAA6BlvN,EAAQ2xN,aAAc,EAAGyE,GAAgB90N,IAEjHi1N,EAAW13N,IAAMm3N,EAAWD,EAAWz0N,EAAMrE,OAAS,IACtD,MACJ,KAAK,EACkB,MAAfqE,EAAMrE,OACN+0N,EAAU+D,EAAW3H,EAAkBc,4BAA6BlvN,EAAQ2xN,aAAc,EAAGyE,GAAgB90N,IAEjHi1N,EAAW13N,IAAMm2B,EAAU+gM,EAAWz0N,EAAMrE,OAAS,IACrD,MACJ,KAAK,EACkB,MAAfqE,EAAMrE,OACN+0N,EAAU+D,EAAW3H,EAAkBc,4BAA6BlvN,EAAQ2xN,aAAc,EAAGyE,GAAgB90N,IAEjHi1N,EAAW13N,IAAMo3N,EAAaF,EAAWz0N,EAAMrE,OAAS,IACxD,MACJ,QAEI+0N,EAAU+D,EAAW3H,EAAkBa,4BAA6BjvN,EAAQ2xN,aAAc,GAC1F,MAAM8E,EAAcV,EAAU/1N,UACxB02N,EAAqBd,EAAU,EAA6Ba,EAAY/gN,OAAQ+gN,EAAYlF,UAKlG,OAJAmF,EAAmBz5N,MAAQ,GAC3B44N,EAAQa,EAAoBD,EAAY/gN,OAAQ+gN,EAAYlF,UAC5DgF,EAAW13N,IAAM63N,EACjBb,EAAQU,EAAYE,EAAY/gN,OAAQ+gN,EAAYlF,UAC7C,CACH4E,iBAAkB70N,EAClB8lB,KAAMmvM,GAIlB,OADAV,EAAQU,EAAYR,EAAU7E,gBAAiB6E,EAAU5E,mBAClD,CACH/pM,KAAMmvM,EAEd,CACA,SAASI,EAAaZ,GAClB,MAAM/1N,EAAU+1N,EAAU/1N,UACpB42N,EAAsC,IAAxB52N,EAAQsxN,YACtByE,EAAU7E,gBACVlxN,EAAQ0V,OACR67M,EAAmC,IAAxBvxN,EAAQsxN,YACnBtxN,EAAQwxN,OACRxxN,EAAQuxN,SACRnqM,EAAOwuM,EAAU,EAA2BgB,EAAarF,GAC/DnqM,EAAKtU,MAAQ,GACb,IAAIqiN,EAAY,KAChB,EAAG,CACC,MAAM7zN,EAAQ6zN,GAAaY,EAAUZ,YAErC,OADAA,EAAY,KACJ7zN,EAAMhC,MACV,KAAK,EACkB,MAAfgC,EAAMrE,OACN+0N,EAAU+D,EAAW3H,EAAkBc,4BAA6BlvN,EAAQ2xN,aAAc,EAAGyE,GAAgB90N,IAEjH8lB,EAAKtU,MAAM7Q,KAAK6zN,EAAUC,EAAWz0N,EAAMrE,OAAS,KACpD,MACJ,KAAK,EACkB,MAAfqE,EAAMrE,OACN+0N,EAAU+D,EAAW3H,EAAkBc,4BAA6BlvN,EAAQ2xN,aAAc,EAAGyE,GAAgB90N,IAEjH8lB,EAAKtU,MAAM7Q,KAAK+yB,EAAU+gM,EAAWz0N,EAAMrE,OAAS,KACpD,MACJ,KAAK,EACkB,MAAfqE,EAAMrE,OACN+0N,EAAU+D,EAAW3H,EAAkBc,4BAA6BlvN,EAAQ2xN,aAAc,EAAGyE,GAAgB90N,IAEjH8lB,EAAKtU,MAAM7Q,KAAK+zN,EAAWD,EAAWz0N,EAAMrE,OAAS,KACrD,MACJ,KAAK,EACkB,MAAfqE,EAAMrE,OACN+0N,EAAU+D,EAAW3H,EAAkBc,4BAA6BlvN,EAAQ2xN,aAAc,EAAGyE,GAAgB90N,IAEjH8lB,EAAKtU,MAAM7Q,KAAKg0N,EAAaF,EAAWz0N,EAAMrE,OAAS,KACvD,MACJ,KAAK,EACD,MAAM8O,EAASuqN,EAAYP,GAC3B3uM,EAAKtU,MAAM7Q,KAAK8J,EAAOqb,MACvB+tM,EAAYppN,EAAOoqN,kBAAoB,KACvC,MAEZ,OAAiC,KAAxBn2N,EAAQsxN,aACW,IAAxBtxN,EAAQsxN,aAEZ,MAAMuF,EAAoC,IAAxB72N,EAAQsxN,YACpBtxN,EAAQ0xN,WACRqE,EAAU7E,gBACVM,EAAiC,IAAxBxxN,EAAQsxN,YACjBtxN,EAAQ4xN,WACRmE,EAAU5E,kBAEhB,OADA0E,EAAQzuM,EAAMyvM,EAAWrF,GAClBpqM,CACX,CACA,SAAS0vM,EAAYf,EAAWrgN,EAAQgR,EAAKqwM,GACzC,MAAM/2N,EAAU+1N,EAAU/1N,UAC1B,IAAIg3N,EAA2C,IAAzBD,EAAQjkN,MAAMnR,OACpC,MAAMylB,EAAOwuM,EAAU,EAA0BlgN,EAAQgR,GACzDU,EAAK6vM,MAAQ,GACb7vM,EAAK6vM,MAAMh1N,KAAK80N,GAChB,EAAG,CACC,MAAMlvL,EAAM8uL,EAAaZ,GACpBiB,IACDA,EAAuC,IAArBnvL,EAAI/0B,MAAMnR,QAEhCylB,EAAK6vM,MAAMh1N,KAAK4lC,EACpB,OAAiC,KAAxB7nC,EAAQsxN,aAKjB,OAJI0F,GACAhF,EAAU+D,EAAW3H,EAAkBW,6BAA8BroM,EAAK,GAE9EmvM,EAAQzuM,EAAM2uM,EAAU7E,gBAAiB6E,EAAU5E,mBAC5C/pM,CACX,CACA,SAAS8vM,EAAcnB,GACnB,MAAM/1N,EAAU+1N,EAAU/1N,WACpB,OAAE0V,EAAM,SAAE67M,GAAavxN,EACvB+2N,EAAUJ,EAAaZ,GAC7B,OAA4B,KAAxB/1N,EAAQsxN,YACDyF,EAGAD,EAAYf,EAAWrgN,EAAQ67M,EAAUwF,EAExD,CACA,SAASjvN,EAAM1F,GACX,MAAM2zN,EAAY/E,GAAgB5uN,EAAQ,EAAO,CAAC,EAAGkC,IAC/CtE,EAAU+1N,EAAU/1N,UACpBonB,EAAOwuM,EAAU,EAA4B51N,EAAQ0V,OAAQ1V,EAAQuxN,UAa3E,OAZI1lN,GAAYub,EAAKV,MACjBU,EAAKV,IAAItkB,OAASA,GAEtBglB,EAAKlO,KAAOg+M,EAAcnB,GACtBzxN,EAAQ6yN,aACR/vM,EAAKg9C,SAAW9/D,EAAQ6yN,WAAW/0N,IAGX,KAAxBpC,EAAQsxN,aACRU,EAAU+D,EAAW3H,EAAkBc,4BAA6BlvN,EAAQ2xN,aAAc,EAAGvvN,EAAOpC,EAAQ0V,SAAW,IAE3HmgN,EAAQzuM,EAAM2uM,EAAU7E,gBAAiB6E,EAAU5E,mBAC5C/pM,CACX,CACA,MAAO,CAAEtf,QACb,CACA,SAASsuN,GAAgB90N,GACrB,GAAmB,KAAfA,EAAMhC,KACN,MAAO,MAEX,MAAMoG,GAAQpE,EAAMrE,OAAS,IAAIkH,QAAQ,UAAW,OACpD,OAAOuB,EAAK/D,OAAS,GAAK+D,EAAKa,MAAM,EAAG,GAAK,IAAMb,CACvD,CAEA,SAAS0xN,GAAkBn6L,EAAK34B,EAAU,CAAC,GAEvC,MAAM0oG,EAAW,CACb/vE,MACA0tJ,QAAS,IAAI3hJ,KAEXhpC,EAAU,IAAMgtG,EAChB+tG,EAAUr1M,IACZsnG,EAAS29E,QAAQ1hJ,IAAIvjC,GACdA,GAEX,MAAO,CAAE1F,UAAS+6M,SACtB,CACA,SAASsc,GAAcvxM,EAAOwxM,GAC1B,IAAK,IAAI71N,EAAI,EAAGA,EAAIqkB,EAAMnkB,OAAQF,IAC9B81N,GAAazxM,EAAMrkB,GAAI61N,EAE/B,CACA,SAASC,GAAanwM,EAAMkwM,GAExB,OAAQlwM,EAAK9nB,MACT,KAAK,EACD+3N,GAAcjwM,EAAK6vM,MAAOK,GAC1BA,EAAYvc,OAAO,UACnB,MACJ,KAAK,EACDsc,GAAcjwM,EAAKtU,MAAOwkN,GAC1B,MACJ,KAAK,EACD,MAAME,EAASpwM,EACfmwM,GAAaC,EAAO34N,IAAKy4N,GACzBA,EAAYvc,OAAO,UACnBuc,EAAYvc,OAAO,QACnB,MACJ,KAAK,EACDuc,EAAYvc,OAAO,eACnBuc,EAAYvc,OAAO,QACnB,MACJ,KAAK,EACDuc,EAAYvc,OAAO,eACnBuc,EAAYvc,OAAO,SACnB,MAGZ,CAEA,SAAStwF,GAAUxtF,EAAK34B,EAAU,CAAC,GAE/B,MAAMgzN,EAAcF,GAAkBn6L,GACtCq6L,EAAYvc,OAAO,aAEnB99K,EAAI/jB,MAAQq+M,GAAat6L,EAAI/jB,KAAMo+M,GAEnC,MAAMt3N,EAAUs3N,EAAYt3N,UAC5Bi9B,EAAI0tJ,QAAUjnL,MAAM49B,KAAKthC,EAAQ2qL,QACrC,CAEA,SAAS8sC,GAASx6L,GACd,MAAM/jB,EAAO+jB,EAAI/jB,KAOjB,OANkB,IAAdA,EAAK5Z,KACLo4N,GAAoBx+M,GAGpBA,EAAK+9M,MAAMt4N,SAAQ0D,GAAKq1N,GAAoBr1N,KAEzC46B,CACX,CACA,SAASy6L,GAAoB52N,GACzB,GAA6B,IAAzBA,EAAQgS,MAAMnR,OAAc,CAC5B,MAAMkQ,EAAO/Q,EAAQgS,MAAM,GACT,IAAdjB,EAAKvS,MAAiD,IAAduS,EAAKvS,OAC7CwB,EAAQ62N,OAAS9lN,EAAK5U,aACf4U,EAAK5U,MAEpB,KACK,CACD,MAAMm4B,EAAS,GACf,IAAK,IAAI3zB,EAAI,EAAGA,EAAIX,EAAQgS,MAAMnR,OAAQF,IAAK,CAC3C,MAAMoQ,EAAO/Q,EAAQgS,MAAMrR,GAC3B,GAAoB,IAAdoQ,EAAKvS,MAAiD,IAAduS,EAAKvS,KAC/C,MAEJ,GAAkB,MAAduS,EAAK5U,MACL,MAEJm4B,EAAOnzB,KAAK4P,EAAK5U,MACrB,CACA,GAAIm4B,EAAOzzB,SAAWb,EAAQgS,MAAMnR,OAAQ,CACxCb,EAAQ62N,OAAS,EAAKviM,GACtB,IAAK,IAAI3zB,EAAI,EAAGA,EAAIX,EAAQgS,MAAMnR,OAAQF,IAAK,CAC3C,MAAMoQ,EAAO/Q,EAAQgS,MAAMrR,GACT,IAAdoQ,EAAKvS,MAAiD,IAAduS,EAAKvS,aACtCuS,EAAK5U,KAEpB,CACJ,CACJ,CACJ,CAEA,MAAM26N,GAAiB,WAEvB,SAASC,GAAOzwM,GAEZ,OADAA,EAAKxR,EAAIwR,EAAK9nB,KACN8nB,EAAK9nB,MACT,KAAK,EACD,MAAMw4N,EAAW1wM,EACjBywM,GAAOC,EAAS5+M,MAChB4+M,EAAS/pN,EAAI+pN,EAAS5+M,YACf4+M,EAAS5+M,KAChB,MACJ,KAAK,EACD,MAAM27M,EAASztM,EACT6vM,EAAQpC,EAAOoC,MACrB,IAAK,IAAIx1N,EAAI,EAAGA,EAAIw1N,EAAMt1N,OAAQF,IAC9Bo2N,GAAOZ,EAAMx1N,IAEjBozN,EAAOxyN,EAAI40N,SACJpC,EAAOoC,MACd,MACJ,KAAK,EACD,MAAMn2N,EAAUsmB,EACVtU,EAAQhS,EAAQgS,MACtB,IAAK,IAAIrR,EAAI,EAAGA,EAAIqR,EAAMnR,OAAQF,IAC9Bo2N,GAAO/kN,EAAMrR,IAEjBX,EAAQW,EAAIqR,SACLhS,EAAQgS,MACXhS,EAAQ62N,SACR72N,EAAQ+U,EAAI/U,EAAQ62N,cACb72N,EAAQ62N,QAEnB,MACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAMI,EAAY3wM,EACd2wM,EAAU96N,QACV86N,EAAU3uN,EAAI2uN,EAAU96N,aACjB86N,EAAU96N,OAErB,MACJ,KAAK,EACD,MAAMu6N,EAASpwM,EACfywM,GAAOL,EAAO34N,KACd24N,EAAOp/M,EAAIo/M,EAAO34N,WACX24N,EAAO34N,IACV24N,EAAOhB,WACPqB,GAAOL,EAAOhB,UACdgB,EAAO5jN,EAAI4jN,EAAOhB,gBACXgB,EAAOhB,UAElB,MACJ,KAAK,EACD,MAAM56I,EAAOx0D,EACbw0D,EAAKn6E,EAAIm6E,EAAK15E,aACP05E,EAAK15E,MACZ,MACJ,KAAK,EACD,MAAM81N,EAAQ5wM,EACd4wM,EAAM5/M,EAAI4/M,EAAMn5N,WACTm5N,EAAMn5N,IACb,MACJ,QAEQ,MAAM0wN,EAAmBnB,EAAkBgB,6BAA8B,KAAM,CAC3EvlN,OAAQ+tN,GACR7uN,KAAM,CAACqe,EAAK9nB,eAIrB8nB,EAAK9nB,IAChB,CAGA,MAAM24N,GAAe,SACrB,SAASC,GAAoBj7L,EAAK34B,GAC9B,MAAM,UAAE6zN,EAAS,SAAE97I,EAAQ,cAAE+7I,EAAeC,WAAYC,GAAgBh0N,EAClEuH,GAAgC,IAArBvH,EAAQuH,SACnBmhG,EAAW,CACb3wB,WACAt3E,KAAM,GACN2b,OAAQ,EACRvU,KAAM,EACNuJ,OAAQ,EACRkB,SAAKnY,EACL25N,gBACAC,WAAYC,EACZC,YAAa,GAEb1sN,GAAYoxB,EAAIvW,MAChBsmF,EAAS5qG,OAAS66B,EAAIvW,IAAItkB,QAE9B,MAAMpC,EAAU,IAAMgtG,EACtB,SAAS/qG,EAAK8C,EAAMqiB,GAChB4lF,EAASjoG,MAAQA,CACrB,CACA,SAASyzN,EAAS7kN,EAAG8kN,GAAgB,GACjC,MAAMC,EAAiBD,EAAgBL,EAAgB,GACvDn2N,EAAKq2N,EAAcI,EAAiB,KAAKxuC,OAAOv2K,GAAK+kN,EACzD,CACA,SAASrpM,EAAOspM,GAAc,GAC1B,MAAMr6I,IAAU0uB,EAASurH,YACzBI,GAAeH,EAASl6I,EAC5B,CACA,SAASs6I,EAASD,GAAc,GAC5B,MAAMr6I,IAAU0uB,EAASurH,YACzBI,GAAeH,EAASl6I,EAC5B,CACA,SAASu6I,IACLL,EAASxrH,EAASurH,YACtB,CACA,MAAMxd,EAAUl8M,GAAQ,IAAIA,IACtBw5N,EAAa,IAAMrrH,EAASqrH,WAClC,MAAO,CACHr4N,UACAiC,OACAotB,SACAupM,WACAC,UACA9d,SACAsd,aAER,CACA,SAASS,GAAmBn+M,EAAWyM,GACnC,MAAM,OAAE2zL,GAAWpgM,EACnBA,EAAU1Y,KAAK,GAAG84M,EAAO,cACzBge,GAAap+M,EAAWyM,EAAKvoB,KACzBuoB,EAAKovM,UACL77M,EAAU1Y,KAAK,MACf82N,GAAap+M,EAAWyM,EAAKovM,UAC7B77M,EAAU1Y,KAAK,YAGf0Y,EAAU1Y,KAAK,sBAEnB0Y,EAAU1Y,KAAK,IACnB,CACA,SAAS+2N,GAAoBr+M,EAAWyM,GACpC,MAAM,OAAE2zL,EAAM,WAAEsd,GAAe19M,EAC/BA,EAAU1Y,KAAK,GAAG84M,EAAO,kBACzBpgM,EAAU0U,OAAOgpM,KACjB,MAAM12N,EAASylB,EAAKtU,MAAMnR,OAC1B,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAQF,IAAK,CAE7B,GADAs3N,GAAap+M,EAAWyM,EAAKtU,MAAMrR,IAC/BA,IAAME,EAAS,EACf,MAEJgZ,EAAU1Y,KAAK,KACnB,CACA0Y,EAAUi+M,SAASP,KACnB19M,EAAU1Y,KAAK,KACnB,CACA,SAASg3N,GAAmBt+M,EAAWyM,GACnC,MAAM,OAAE2zL,EAAM,WAAEsd,GAAe19M,EAC/B,GAAIyM,EAAK6vM,MAAMt1N,OAAS,EAAG,CACvBgZ,EAAU1Y,KAAK,GAAG84M,EAAO,eACzBpgM,EAAU0U,OAAOgpM,KACjB,MAAM12N,EAASylB,EAAK6vM,MAAMt1N,OAC1B,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAQF,IAAK,CAE7B,GADAs3N,GAAap+M,EAAWyM,EAAK6vM,MAAMx1N,IAC/BA,IAAME,EAAS,EACf,MAEJgZ,EAAU1Y,KAAK,KACnB,CACA0Y,EAAUi+M,SAASP,KACnB19M,EAAU1Y,KAAK,KACnB,CACJ,CACA,SAASi3N,GAAiBv+M,EAAWyM,GAC7BA,EAAKlO,KACL6/M,GAAap+M,EAAWyM,EAAKlO,MAG7ByB,EAAU1Y,KAAK,OAEvB,CACA,SAAS82N,GAAap+M,EAAWyM,GAC7B,MAAM,OAAE2zL,GAAWpgM,EACnB,OAAQyM,EAAK9nB,MACT,KAAK,EACD45N,GAAiBv+M,EAAWyM,GAC5B,MACJ,KAAK,EACD6xM,GAAmBt+M,EAAWyM,GAC9B,MACJ,KAAK,EACD4xM,GAAoBr+M,EAAWyM,GAC/B,MACJ,KAAK,EACD0xM,GAAmBn+M,EAAWyM,GAC9B,MACJ,KAAK,EACDzM,EAAU1Y,KAAK4F,KAAKI,UAAUmf,EAAKnqB,OAAQmqB,GAC3C,MACJ,KAAK,EACDzM,EAAU1Y,KAAK4F,KAAKI,UAAUmf,EAAKnqB,OAAQmqB,GAC3C,MACJ,KAAK,EACDzM,EAAU1Y,KAAK,GAAG84M,EAAO,kBAAkDA,EAAO,WAAoC3zL,EAAKllB,UAAWklB,GACtI,MACJ,KAAK,EACDzM,EAAU1Y,KAAK,GAAG84M,EAAO,kBAAkDA,EAAO,YAAsClzM,KAAKI,UAAUmf,EAAKvoB,SAAUuoB,GACtJ,MACJ,KAAK,EACDzM,EAAU1Y,KAAK4F,KAAKI,UAAUmf,EAAKnqB,OAAQmqB,GAC3C,MACJ,KAAK,EACDzM,EAAU1Y,KAAK4F,KAAKI,UAAUmf,EAAKnqB,OAAQmqB,GAC3C,MACJ,QAEQ,MAAMmoM,EAAmBnB,EAAkBe,4BAA6B,KAAM,CAC1EtlN,OAAQouN,GACRlvN,KAAM,CAACqe,EAAK9nB,QAIhC,CAEA,MAAM65N,GAAW,CAACl8L,EAAK34B,EAAU,CAAC,KAE9B,MAAMk/D,EAAO,EAASl/D,EAAQk/D,MAAQl/D,EAAQk/D,KAAO,SAC/C6Y,EAAW,EAAS/3E,EAAQ+3E,UAC5B/3E,EAAQ+3E,SACR,eACA87I,IAAc7zN,EAAQ6zN,UAEtBC,EAAyC,MAAzB9zN,EAAQ8zN,cACxB9zN,EAAQ8zN,cACC,UAAT50J,EACI,IACA,KACJ60J,EAAa/zN,EAAQ+zN,WAAa/zN,EAAQ+zN,WAAsB,UAAT70J,EACvDmnH,EAAU1tJ,EAAI0tJ,SAAW,GACzBhwK,EAAYu9M,GAAoBj7L,EAAK,CACvCumC,OACA6Y,WACA87I,YACAC,gBACAC,eAEJ19M,EAAU1Y,KAAc,WAATuhE,EAAoB,2BAA6B,cAChE7oD,EAAU0U,OAAOgpM,GACb1tC,EAAQhpL,OAAS,IACjBgZ,EAAU1Y,KAAK,WAAW,EAAK0oL,EAAQ/zK,KAAIf,GAAK,GAAGA,OAAOA,MAAM,iBAChE8E,EAAUk+M,WAEdl+M,EAAU1Y,KAAK,WACf82N,GAAap+M,EAAWsiB,GACxBtiB,EAAUi+M,SAASP,GACnB19M,EAAU1Y,KAAK,YACRg7B,EAAI0tJ,QACX,MAAM,KAAE5lL,EAAI,IAAE6R,GAAQ+D,EAAU3a,UAChC,MAAO,CACHi9B,MACAl4B,OACA6R,IAAKA,EAAMA,EAAInR,cAAWhH,EAC7B,EAGL,SAAS26N,GAAYh3N,EAAQkC,EAAU,CAAC,GACpC,MAAM+0N,EAAkB,EAAO,CAAC,EAAG/0N,GAC7Bg1N,IAAQD,EAAgBC,IACxBC,IAAiBF,EAAgBxB,OACjC2B,EAA6C,MAA5BH,EAAgB5B,UAA0B4B,EAAgB5B,SAE3E/vN,EAASguN,GAAa2D,GACtBp8L,EAAMv1B,EAAOI,MAAM1F,GACzB,OAAKk3N,GAQDE,GAAkB/B,GAASx6L,GAE3Bs8L,GAAgB1B,GAAO56L,GAEhB,CAAEA,MAAKl4B,KAAM,MAVpB0lH,GAAUxtF,EAAKo8L,GAERF,GAASl8L,EAAKo8L,GAU7B;;;;;;AC9/CA,SAAShoH,KACoC,mBAA9BooH,4BACPhoG,IAAgBgoG,2BAA4B,GAEL,mBAAhCC,8BACPjoG,IAAgBioG,6BAA8B,GAED,mBAAtCC,oCACPloG,IAAgBkoG,mCAAoC,EAE5D,CAEA,MAAMC,GAAoB,GAC1BA,GAAiB,GAA8B,CAC3C,CAAC,KAAoC,CAAC,GACtC,CAAC,KAAgC,CAAC,EAAyB,GAC3D,CAAC,KAAuC,CAAC,GACzC,CAAC,KAAsC,CAAC,IAE5CA,GAAiB,GAA0B,CACvC,CAAC,KAAoC,CAAC,GACtC,CAAC,KAA8B,CAAC,GAChC,CAAC,KAAuC,CAAC,GACzC,CAAC,KAAsC,CAAC,IAE5CA,GAAiB,GAA+B,CAC5C,CAAC,KAAoC,CAAC,GACtC,CAAC,KAAgC,CAAC,EAAyB,GAC3D,CAAC,KAA+B,CAAC,EAAyB,IAE9DA,GAAiB,GAA2B,CACxC,CAAC,KAAgC,CAAC,EAAyB,GAC3D,CAAC,KAA+B,CAAC,EAAyB,GAC1D,CAAC,KAAoC,CAAC,EAAwB,GAC9D,CAAC,KAA8B,CAAC,EAA6B,GAC7D,CAAC,KAAuC,CAAC,EAA4B,GACrE,CAAC,KAAsC,CAAC,EAA2B,IAEvEA,GAAiB,GAA8B,CAC3C,CAAC,KAAuC,CAAC,EAAgC,GACzE,CAAC,KAAwC,CAAC,EAAgC,GAC1E,CAAC,KAAuC,CACpC,EACA,GAEJ,CAAC,KAAwC,CAAC,EAAwB,GAClE,CAAC,KAAsC,EACvC,CAAC,KAA+B,CAAC,EAA4B,IAEjEA,GAAiB,GAAkC,CAC/C,CAAC,KAAuC,CAAC,EAA4B,GACrE,CAAC,KAAsC,EACvC,CAAC,KAA+B,CAAC,EAAgC,IAErEA,GAAiB,GAAkC,CAC/C,CAAC,KAAwC,CAAC,EAA4B,GACtE,CAAC,KAAsC,EACvC,CAAC,KAA+B,CAAC,EAAgC,IAKrE,MAAMC,GAAiB,kDACvB,SAASC,GAAUh6F,GACf,OAAO+5F,GAAepvN,KAAKq1H,EAC/B,CAIA,SAASi6F,GAAYtsN,GACjB,MAAMK,EAAIL,EAAIS,WAAW,GACnBH,EAAIN,EAAIS,WAAWT,EAAI9L,OAAS,GACtC,OAAOmM,IAAMC,GAAY,KAAND,GAAoB,KAANA,EAAiCL,EAAnBA,EAAIlH,MAAM,GAAI,EACjE,CAIA,SAASyzN,GAAgBrwE,GACrB,QAAWlrJ,IAAPkrJ,GAA2B,OAAPA,EACpB,MAAO,IAEX,MAAM5kJ,EAAO4kJ,EAAGz7I,WAAW,GAC3B,OAAQnJ,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACD,OAAO4kJ,EACX,KAAK,GACL,KAAK,GACL,KAAK,GACD,MAAO,IACX,KAAK,EACL,KAAK,GACL,KAAK,GACL,KAAK,IACL,KAAK,MACL,KAAK,KACL,KAAK,KACD,MAAO,IAEf,MAAO,GACX,CAMA,SAASswE,GAAcrwN,GACnB,MAAMswN,EAAUtwN,EAAK7B,OAErB,OAAuB,MAAnB6B,EAAK+B,OAAO,KAAc6kB,MAAMmqB,SAAS/wC,OAGtCkwN,GAAUI,GACXH,GAAYG,GACZ,IAAmCA,EAC7C,CAIA,SAASpyN,GAAM8B,GACX,MAAM7C,EAAO,GACb,IAGI1E,EACAxD,EACAs7N,EACA76N,EACAi7F,EACA92B,EACA22J,EATAl4N,GAAS,EACTshE,EAAO,EACP62J,EAAe,EAQnB,MAAM1hB,EAAU,GAuChB,SAAS2hB,IACL,MAAMC,EAAW3wN,EAAK1H,EAAQ,GAC9B,GAAc,IAATshE,GACY,MAAb+2J,GACU,IAAT/2J,GACgB,MAAb+2J,EAIJ,OAHAr4N,IACAi4N,EAAU,KAAOI,EACjB5hB,EAAQ,MACD,CAEf,CAjDAA,EAAQ,GAA0B,UAClBl6M,IAARI,EACAA,EAAMs7N,EAGNt7N,GAAOs7N,CACX,EAEJxhB,EAAQ,GAAwB,UAChBl6M,IAARI,IACAkI,EAAK9E,KAAKpD,GACVA,OAAMJ,EACV,EAEJk6M,EAAQ,GAAsC,KAC1CA,EAAQ,KACR0hB,GAAc,EAElB1hB,EAAQ,GAAiC,KACrC,GAAI0hB,EAAe,EACfA,IACA72J,EAAO,EACPm1I,EAAQ,SAEP,CAED,GADA0hB,EAAe,OACH57N,IAARI,EACA,OAAO,EAGX,GADAA,EAAMo7N,GAAcp7N,IACR,IAARA,EACA,OAAO,EAGP85M,EAAQ,IAEhB,GAcJ,MAAgB,OAATn1I,EAGH,GAFAthE,IACAG,EAAIuH,EAAK1H,GACC,OAANG,IAAci4N,IAAlB,CAOA,GAJAh7N,EAAO06N,GAAgB33N,GACvB+3N,EAAUR,GAAiBp2J,GAC3B+2B,EAAa6/H,EAAQ96N,IAAS86N,EAAQ,MAAiC,EAEpD,IAAf7/H,EACA,OAGJ,GADA/2B,EAAO+2B,EAAW,QACI97F,IAAlB87F,EAAW,KACX92B,EAASk1I,EAAQp+G,EAAW,IACxB92B,IACA02J,EAAU93N,GACO,IAAbohE,MACA,OAKZ,GAAa,IAATD,EACA,OAAOz8D,CApBX,CAuBR,CAEA,MAAMm9D,GAAQ,IAAI9+C,IAclB,SAASo1M,GAAoB7sN,EAAK/D,GAC9B,OAAO,EAAS+D,GAAOA,EAAI/D,GAAQ,IACvC,CAcA,SAAS6wN,GAAa9sN,EAAK/D,GAEvB,IAAK,EAAS+D,GACV,OAAO,KAGX,IAAIgjH,EAAMzsD,GAAM3mD,IAAI3T,GAQpB,GAPK+mH,IACDA,EAAM7oH,GAAM8B,GACR+mH,GACAzsD,GAAM1lD,IAAI5U,EAAM+mH,KAInBA,EACD,OAAO,KAGX,MAAMluG,EAAMkuG,EAAIhvH,OAChB,IAAI4nF,EAAO57E,EACPlM,EAAI,EACR,MAAOA,EAAIghB,EAAK,CACZ,MAAM7jB,EAAM2qF,EAAKonC,EAAIlvH,IACrB,QAAYhD,IAARG,EACA,OAAO,KAEX,GAAI,EAAW2qF,GACX,OAAO,KAEXA,EAAO3qF,EACP6C,GACJ,CACA,OAAO8nF,CACX,CAEA,MAAMmxI,GAAoBjtN,GAAQA,EAC5BktN,GAAmBhiI,GAAQ,GAC3BiiI,GAA4B,OAC5BC,GAAqBzlM,GAA6B,IAAlBA,EAAOzzB,OAAe,GAAK4H,EAAK6rB,GAChE0lM,GAAsB5nG,EAC5B,SAAS6nG,GAAcC,EAAQC,GAE3B,OADAD,EAAS1rN,KAAK+F,IAAI2lN,GACI,IAAlBC,EAEOD,EACDA,EAAS,EACL,EACA,EACJ,EAEHA,EAAS1rN,KAAKke,IAAIwtM,EAAQ,GAAK,CAC1C,CACA,SAASE,GAAe52N,GAEpB,MAAMpC,EAAQ8H,EAAS1F,EAAQ62N,aACzB72N,EAAQ62N,aACP,EAEP,OAAO72N,EAAQ0zN,QAAUhuN,EAAS1F,EAAQ0zN,MAAMoD,QAAUpxN,EAAS1F,EAAQ0zN,MAAMrkN,IAC3E3J,EAAS1F,EAAQ0zN,MAAMoD,OACnB92N,EAAQ0zN,MAAMoD,MACdpxN,EAAS1F,EAAQ0zN,MAAMrkN,GACnBrP,EAAQ0zN,MAAMrkN,EACdzR,EACRA,CACV,CACA,SAASm5N,GAAeF,EAAax3M,GAC5BA,EAAMy3M,QACPz3M,EAAMy3M,MAAQD,GAEbx3M,EAAMhQ,IACPgQ,EAAMhQ,EAAIwnN,EAElB,CACA,SAASG,GAAqBh3N,EAAU,CAAC,GACrC,MAAM+nK,EAAS/nK,EAAQ+nK,OACjB8uD,EAAcD,GAAe52N,GAC7Bi3N,EAAa,EAASj3N,EAAQk3N,cAChC,EAASnvD,IACT,EAAW/nK,EAAQk3N,YAAYnvD,IAC7B/nK,EAAQk3N,YAAYnvD,GACpB0uD,GACAU,EAAgB,EAASn3N,EAAQk3N,cACnC,EAASnvD,IACT,EAAW/nK,EAAQk3N,YAAYnvD,IAC7B0uD,QACAt8N,EACAo2N,EAAUv1D,GACLA,EAASi8D,EAAWJ,EAAa77D,EAAS39J,OAAQ85N,IAEvDC,EAAQp3N,EAAQs3E,MAAQ,GACxBA,EAAQ15E,GAAUw5N,EAAMx5N,GAExBy5N,EAASr3N,EAAQ0zN,OAAS,CAAC,EACjChuN,EAAS1F,EAAQ62N,cAAgBE,GAAeF,EAAaQ,GAC7D,MAAM3D,EAASn5N,GAAQ88N,EAAO98N,GAC9B,SAASiC,EAAQjC,GAEb,MAAMgpC,EAAM,EAAWvjC,EAAQg7J,UACzBh7J,EAAQg7J,SAASzgK,KACjB,EAASyF,EAAQg7J,WACbh7J,EAAQg7J,SAASzgK,GAE3B,OAAQgpC,IACFvjC,EAAQs3B,OACJt3B,EAAQs3B,OAAO96B,QAAQjC,GACvB87N,GAEd,CACA,MAAMiB,EAAal2N,GAASpB,EAAQs6F,UAC9Bt6F,EAAQs6F,UAAUl5F,GAClBg1N,GACA18G,EAAY33G,EAAc/B,EAAQu3N,YAAc,EAAWv3N,EAAQu3N,UAAU79G,WAC7E15G,EAAQu3N,UAAU79G,UAClB68G,GACAiB,EAAcz1N,EAAc/B,EAAQu3N,YACtC,EAAWv3N,EAAQu3N,UAAUC,aAC3Bx3N,EAAQu3N,UAAUC,YAClBhB,GACAx7N,EAAO+G,EAAc/B,EAAQu3N,YAAc,EAASv3N,EAAQu3N,UAAUv8N,MACtEgF,EAAQu3N,UAAUv8N,KAClBs7N,GACApD,EAAS,CAAC34N,KAAQkK,KACpB,MAAOgzN,EAAMC,GAAQjzN,EACrB,IAAIzJ,EAAO,OACPk3N,EAAW,GACK,IAAhBztN,EAAKpH,OACD,EAASo6N,IACTvF,EAAWuF,EAAKvF,UAAYA,EAC5Bl3N,EAAOy8N,EAAKz8N,MAAQA,GAEf,EAASy8N,KACdvF,EAAWuF,GAAQvF,GAGF,IAAhBztN,EAAKpH,SACN,EAASo6N,KACTvF,EAAWuF,GAAQvF,GAEnB,EAASwF,KACT18N,EAAO08N,GAAQ18N,IAGvB,MAAMuP,EAAM/N,EAAQjC,EAARiC,CAAa63F,GACnB9wD,EAEG,UAATvoC,GAAoB,EAAQuP,IAAQ2nN,EAC9B3nN,EAAI,GACJA,EACN,OAAO2nN,EAAWoF,EAAUpF,EAAVoF,CAAoB/zL,EAAKvoC,GAAQuoC,CAAG,EAEpD8wD,EAAM,CACR,CAAC,QAAkC/c,EACnC,CAAC,SAAoCo8I,EACrC,CAAC,UAAsCnD,EACvC,CAAC,UAAsC2C,EACvC,CAAC,WAAwC12N,EACzC,CAAC,QAAkCxB,EACnC,CAAC,eAAgDw8N,EACjD,CAAC,aAA4C99G,EAC7C,CAAC,UAAsC,EAAO,CAAC,EAAG09G,EAAOC,IAE7D,OAAOhjI,CACX,CAEA,IAAI8gH,GAAW,KACf,SAASwiB,GAAgB/8H,GACrBu6G,GAAWv6G,CACf,CAIA,SAASg9H,GAAiBC,EAAMtvN,EAASwhH,GAErCorF,IACIA,GAAS3iH,KAAK,YAAiD,CAC3DxmF,UAAWrG,KAAKO,MAChB2xN,OACAtvN,UACAwhH,QAEZ,CACA,MAAM+tG,GAAmCC,GAAmB,sBAC5D,SAASA,GAAmBn9H,GACxB,OAAQo9H,GAAa7iB,IAAYA,GAAS3iH,KAAKoI,EAAMo9H,EACzD,CAEA,MAAMC,GAAgB,CAClBC,cAAe,EACfC,sBAAuB,EACvBC,qBAAsB,EACtBC,0BAA2B,EAC3BC,mBAAoB,EACpBC,wBAAyB,EACzBC,qCAAsC,EACtCzN,iBAAkB,GAIjBkN,GAAcC,cACdD,GAAcE,sBACdF,GAAcG,qBACdH,GAAcI,0BACdJ,GAAcK,mBACdL,GAAcM,wBACdN,GAAcO,qCAMnB,MAAM/3N,GAAOqpN,EAAkBiB,iBACzB0N,GAAMlP,EAAY9oN,IAClBi4N,GAAiB,CACnBvlE,iBAAkB1yJ,GAClBk4N,sBAAuBF,KACvBG,0BAA2BH,KAC3BI,+BAAgCJ,KAChCK,iCAAkCL,KAClCM,kCAAmCN,KACnCO,wBAAyBP,KACzB1N,iBAAkB0N,MAEtB,SAASQ,GAAgBx4N,GACrB,OAAOwqN,EAAmBxqN,EAAM,UAA8EtG,EAClH,CAGKu+N,GAAevlE,iBACfulE,GAAeC,sBAEfD,GAAeE,0BACfF,GAAeG,+BACfH,GAAeI,iCACfJ,GAAeK,kCACfL,GAAeM,wBAIpB,SAASE,GAAUx9N,EAASsE,GACxB,OAAyB,MAAlBA,EAAQ+nK,OACToxD,GAAcn5N,EAAQ+nK,QACtBoxD,GAAcz9N,EAAQqsK,OAChC,CACA,IAAIqxD,GAEJ,SAASD,GAAcpxD,GACnB,GAAI,EAASA,GACT,OAAOA,EAGP,GAAI,EAAWA,GAAS,CACpB,GAAIA,EAAOsxD,cAAkC,MAAlBD,GACvB,OAAOA,GAEN,GAAgC,aAA5BrxD,EAAOl/J,YAAYzH,KAAqB,CAC7C,MAAM3K,EAAUsxK,IAChB,GAAIh8C,EAAUt1H,GACV,MAAMwiO,GAAgBP,GAAeI,kCAEzC,OAAQM,GAAiB3iO,CAC7B,CAEI,MAAMwiO,GAAgBP,GAAeK,kCAE7C,CAEI,MAAME,GAAgBP,GAAeM,wBAGjD,CAiBA,SAASM,GAAmBjlI,EAAKiN,EAAU9kF,GAGvC,MAAO,IAAI,IAAIkoB,IAAI,CACXloB,KACI,EAAQ8kF,GACNA,EACA,EAASA,GACL9+F,OAAOC,KAAK6+F,GACZ,EAASA,GACL,CAACA,GACD,CAAC9kF,KAE3B,CAiBA,SAAS+8M,GAAwBllI,EAAKiN,EAAU9kF,GAC5C,MAAMg9M,EAAc,EAASh9M,GAASA,EAAQi9M,GACxC/9N,EAAU24F,EACX34F,EAAQg+N,qBACTh+N,EAAQg+N,mBAAqB,IAAI54M,KAErC,IAAI3hB,EAAQzD,EAAQg+N,mBAAmBzgN,IAAIugN,GAC3C,IAAKr6N,EAAO,CACRA,EAAQ,GAER,IAAI0xB,EAAQ,CAACrU,GAEb,MAAO,EAAQqU,GACXA,EAAQ8oM,GAAmBx6N,EAAO0xB,EAAOywE,GAI7C,MAAMjrG,EAAW,EAAQirG,KAAcv/F,EAAcu/F,GAC/CA,EACAA,EAAS,WACLA,EAAS,WACT,KAEVzwE,EAAQ,EAASx6B,GAAY,CAACA,GAAYA,EACtC,EAAQw6B,IACR8oM,GAAmBx6N,EAAO0xB,GAAO,GAErCn1B,EAAQg+N,mBAAmBx/M,IAAIs/M,EAAar6N,EAChD,CACA,OAAOA,CACX,CACA,SAASw6N,GAAmBx6N,EAAO0xB,EAAO+oM,GACtC,IAAIC,GAAS,EACb,IAAK,IAAI18N,EAAI,EAAGA,EAAI0zB,EAAMxzB,QAAU,EAAUw8N,GAAS18N,IAAK,CACxD,MAAM4qK,EAASl3I,EAAM1zB,GACjB,EAAS4qK,KACT8xD,EAASC,GAAoB36N,EAAO0xB,EAAM1zB,GAAIy8N,GAEtD,CACA,OAAOC,CACX,CACA,SAASC,GAAoB36N,EAAO4oK,EAAQ6xD,GACxC,IAAIC,EACJ,MAAME,EAAShyD,EAAOngK,MAAM,KAC5B,EAAG,CACC,MAAM9F,EAASi4N,EAAO90N,KAAK,KAC3B40N,EAASG,GAAkB76N,EAAO2C,EAAQ83N,GAC1CG,EAAOl8N,QAAQ,EAAG,EACtB,OAASk8N,EAAO18N,SAAqB,IAAXw8N,GAC1B,OAAOA,CACX,CACA,SAASG,GAAkB76N,EAAO2C,EAAQ83N,GACtC,IAAIC,GAAS,EACb,IAAK16N,EAAM+R,SAASpP,KAChB+3N,GAAS,EACL/3N,GAAQ,CACR+3N,EAAuC,MAA9B/3N,EAAOA,EAAOzE,OAAS,GAChC,MAAM0qK,EAASjmK,EAAOjC,QAAQ,KAAM,IACpCV,EAAMxB,KAAKoqK,IACN,EAAQ6xD,IAAW73N,EAAc63N,KAClCA,EAAO7xD,KAGP8xD,EAASD,EAAO7xD,GAExB,CAEJ,OAAO8xD,CACX,CAOA,MAAM19N,GAAU,QACV89N,IAAgB,EAChBR,GAAiB,QACjBS,GAAwB,GACxBxtG,GAAcvjH,GAAQ,GAAGA,EAAI9B,OAAO,GAAG8yN,sBAAsBhxN,EAAIrB,OAAO,KAC9E,SAASsyN,KACL,MAAO,CACHC,MAAO,CAAC//N,EAAKU,IAEO,SAATA,GAAmB,EAASV,GAC7BA,EAAIvB,cACK,UAATiC,GAAoB,EAASV,IAAQ,gBAAiBA,EAClDA,EAAIi8F,SAASx9F,cACbuB,EAEdggO,MAAO,CAAChgO,EAAKU,IAEO,SAATA,GAAmB,EAASV,GAC7BA,EAAIE,cACK,UAATQ,GAAoB,EAASV,IAAQ,gBAAiBA,EAClDA,EAAIi8F,SAAS/7F,cACbF,EAEdoyH,WAAY,CAACpyH,EAAKU,IAEG,SAATA,GAAmB,EAASV,GAC9BoyH,GAAWpyH,GACF,UAATU,GAAoB,EAASV,IAAQ,gBAAiBA,EAClDoyH,GAAWpyH,EAAIi8F,UACfj8F,EAGtB,CACA,IAAIigO,GAIAC,GAWAC,GAdJ,SAASC,GAAwBC,GAC7BJ,GAAYI,CAChB,CASA,SAASC,GAAwBC,GAC7BL,GAAYK,CAChB,CASA,SAASC,GAAyBC,GAC9BN,GAAcM,CAClB,CAEA,IAAIC,GAAmB,KAEvB,MAAMC,GAAqBlxG,IACvBixG,GAAkBjxG,CAAI,EAGpBmxG,GAAoB,IAAMF,GAChC,IAAIG,GAAmB,KACvB,MAAMC,GAAsB1/N,IACxBy/N,GAAmBz/N,CAAO,EAExB2/N,GAAqB,IAAMF,GAEjC,IAAIG,GAAO,EACX,SAASC,GAAkBv7N,EAAU,CAAC,GAElC,MAAMw7N,EAAS,EAAWx7N,EAAQw7N,QAAUx7N,EAAQw7N,OAAS,EACvDjzN,EAAU,EAASvI,EAAQuI,SAAWvI,EAAQuI,QAAUpM,GACxD4rK,EAAS,EAAS/nK,EAAQ+nK,SAAW,EAAW/nK,EAAQ+nK,QACxD/nK,EAAQ+nK,OACR0xD,GACAgC,EAAU,EAAW1zD,GAAU0xD,GAAiB1xD,EAChD2zD,EAAiB,EAAQ17N,EAAQ07N,iBACnC35N,EAAc/B,EAAQ07N,iBACtB,EAAS17N,EAAQ07N,kBACU,IAA3B17N,EAAQ07N,eACN17N,EAAQ07N,eACRD,EACAzgE,EAAWj5J,EAAc/B,EAAQg7J,UACjCh7J,EAAQg7J,SACR,CAAE,CAACygE,GAAU,CAAC,GACdE,EAAkB55N,EAAc/B,EAAQ27N,iBACpC37N,EAAQ27N,gBACR,CAAE,CAACF,GAAU,CAAC,GAElBG,EAAgB75N,EAAc/B,EAAQ47N,eAClC57N,EAAQ47N,cACR,CAAE,CAACH,GAAU,CAAC,GAElBnhI,EAAY,EAAO,CAAC,EAAGt6F,EAAQs6F,WAAa,CAAC,EAAG8/H,MAChDlD,EAAcl3N,EAAQk3N,aAAe,CAAC,EACtC2E,EAAU,EAAW77N,EAAQ67N,SAAW77N,EAAQ67N,QAAU,KAC1DC,GAAc,EAAU97N,EAAQ87N,eAAgBjwG,EAAS7rH,EAAQ87N,cACjE97N,EAAQ87N,YAERC,GAAe,EAAU/7N,EAAQ+7N,gBAAiBlwG,EAAS7rH,EAAQ+7N,eACnE/7N,EAAQ+7N,aAERC,IAAmBh8N,EAAQg8N,eAC3BC,IAAgBj8N,EAAQi8N,YACxBC,EAAkB,EAAWl8N,EAAQk8N,iBACrCl8N,EAAQk8N,gBACR,KACA3E,EAAYx1N,EAAc/B,EAAQu3N,WAAav3N,EAAQu3N,UAAY,KACnE4E,GAAkB,EAAUn8N,EAAQm8N,kBACpCn8N,EAAQm8N,gBAERC,IAAoBp8N,EAAQo8N,gBAC5BC,EAAkB,EAAWr8N,EAAQq8N,iBACrCr8N,EAAQq8N,gBACR9B,GAON,MAAM+B,EAAkB,EAAWt8N,EAAQs8N,iBACrCt8N,EAAQs8N,gBACR9B,IAAatE,GACbqG,EAAmB,EAAWv8N,EAAQu8N,kBACtCv8N,EAAQu8N,iBACR9B,IAAenB,GACfkD,EAAkB,EAASx8N,EAAQw8N,iBACnCx8N,EAAQw8N,qBACRriO,EAEAsiO,EAAkBz8N,EAClB08N,EAAuB,EAASD,EAAgBC,sBAC5CD,EAAgBC,qBAChB,IAAI57M,IAER67M,EAAqB,EAASF,EAAgBE,oBAC1CF,EAAgBE,mBAChB,IAAI77M,IAER87M,EAAS,EAASH,EAAgBG,QAAUH,EAAgBG,OAAS,CAAC,EAC5EtB,KACA,MAAM5/N,EAAU,CACZ6M,UACAs0N,IAAKvB,GACLvzD,SACA2zD,iBACA1gE,WACA1gE,YACA48H,cACA2E,UACAC,cACAC,eACAC,iBACAC,cACAC,kBACA3E,YACA4E,kBACAC,kBACAC,kBACAC,kBACAC,mBACAC,kBACAhB,SACAoB,UAmBJ,OAhBIlhO,EAAQigO,gBAAkBA,EAC1BjgO,EAAQkgO,cAAgBA,EACxBlgO,EAAQghO,qBAAuBA,EAC/BhhO,EAAQihO,mBAAqBA,EAUcxH,2BAC3CyC,GAAiBl8N,EAAS6M,EAASq0N,GAEhClhO,CACX,CAUA,SAASohO,GAAcphO,EAASnB,EAAKwtK,EAAQ+zD,EAAa9gO,GACtD,MAAM,QAAE6gO,EAAO,OAAEL,GAAW9/N,EAa5B,GAAgB,OAAZmgO,EAAkB,CAClB,MAAMtxN,EAAMsxN,EAAQngO,EAASqsK,EAAQxtK,EAAKS,GAC1C,OAAO,EAASuP,GAAOA,EAAMhQ,CACjC,CAKI,OAAOA,CAEf,CAEA,SAASwiO,GAAqB1oI,EAAK0zE,EAAQzmE,GACvC,MAAM5lG,EAAU24F,EAChB34F,EAAQg+N,mBAAqB,IAAI54M,IACjCuzE,EAAIkoI,iBAAiBloI,EAAKiN,EAAUymE,EACxC,CAGA,SAAS,GAAOpvI,GACZ,MAAM4K,EAAO8wD,GAAQ2oI,GAAY3oI,EAAK17D,GACtC,OAAO4K,CACX,CACA,SAASy5L,GAAY3oI,EAAK17D,GACtB,MAAM/jB,EAAO+jB,EAAIlvB,GAAKkvB,EAAI/jB,KAC1B,GAA8B,KAAzBA,EAAKtD,GAAKsD,EAAK5Z,MAAoC,CACpD,MAAMu1N,EAAS37M,EACT+9M,EAAQpC,EAAOxyN,GAAKwyN,EAAOoC,MACjC,OAAOt+H,EAAIk8H,OAAOoC,EAAM75M,QAAO,CAACkiJ,EAAUj9J,IAAM,IACzCi9J,EACHiiE,GAAmB5oI,EAAKt2F,KACzB,IACP,CAEI,OAAOk/N,GAAmB5oI,EAAKz/E,EAEvC,CACA,SAASqoN,GAAmB5oI,EAAKvxE,GAC7B,MAAMo6M,EAAUp6M,EAAKvR,GAAKuR,EAAKuwM,OAC/B,GAAI6J,EACA,MAAoB,SAAb7oI,EAAIr5F,KACLkiO,EACA7oI,EAAIqlB,UAAU,CAACwjH,IAEpB,CACD,MAAMliE,GAAYl4I,EAAK3lB,GAAK2lB,EAAKtU,OAAOsK,QAAO,CAACqkN,EAAKp/N,IAAM,IAAIo/N,EAAKC,GAAkB/oI,EAAKt2F,KAAK,IAChG,OAAOs2F,EAAIqlB,UAAUshD,EACzB,CACJ,CACA,SAASoiE,GAAkB/oI,EAAKvxE,GAC5B,MAAM9nB,EAAO8nB,EAAKxR,GAAKwR,EAAK9nB,KAC5B,OAAQA,GACJ,KAAK,EACD,MAAM0S,EAAOoV,EACb,OAAQpV,EAAK5I,GAAK4I,EAAK/U,MAC3B,KAAK,EACD,MAAMi3N,EAAU9sM,EAChB,OAAQ8sM,EAAQ9qN,GAAK8qN,EAAQj3N,MACjC,KAAK,EACD,MAAM+6N,EAAQ5wM,EACd,OAAOuxE,EAAImjI,YAAYnjI,EAAIq/H,MAAMA,EAAM5/M,GAAK4/M,EAAMn5N,MACtD,KAAK,EACD,MAAM+8E,EAAOx0D,EACb,OAAOuxE,EAAImjI,YAAYnjI,EAAI/c,KAAe,MAAVA,EAAKn6E,EAAYm6E,EAAKn6E,EAAIm6E,EAAK15E,QACnE,KAAK,EACD,MAAMs1N,EAASpwM,EACTovM,EAAWgB,EAAO5jN,GAAK4jN,EAAOhB,SACpC,OAAO79H,EAAI6+H,OAAOkK,GAAkB/oI,EAAK6+H,EAAOp/M,GAAKo/M,EAAO34N,KAAM23N,EAAWkL,GAAkB/oI,EAAK69H,QAAY/3N,EAAWk6F,EAAIr5F,MACnI,KAAK,EACD,MAAMqiO,EAAYv6M,EAClB,OAAQu6M,EAAUv4N,GAAKu4N,EAAU1kO,MACrC,KAAK,EACD,MAAM2kO,EAAiBx6M,EACvB,OAAQw6M,EAAex4N,GAAKw4N,EAAe3kO,MAC/C,QACI,MAAM,IAAI+H,MAAM,+CAA+C1F,KAE3E,CAQA,MAAMuiO,GAAqB/gO,GAAYA,EACvC,IAAIghO,GAAeh7N,OAAO1G,OAAO,MAIjC,MAAM,GAAgBxB,GAAQ,EAASA,KACxB,IAAVA,EAAIgX,GAAwB,IAAbhX,EAAIU,QACnB,MAAOV,GAAO,SAAUA,GAC7B,SAAS,GAAYkC,EAASwD,EAAU,CAAC,GAErC,IAAIy9N,GAAc,EAClB,MAAMhQ,EAAUztN,EAAQytN,SAAWvC,EAMnC,OALAlrN,EAAQytN,QAAW70N,IACf6kO,GAAc,EACdhQ,EAAQ70N,EAAI,EAGT,IAAKk8N,GAAct4N,EAASwD,GAAUy9N,cACjD,CAEA,MAAMC,GAAoB,CAAClhO,EAASd,KAChC,IAAK,EAASc,GACV,MAAMy8N,GAAgBP,GAAeG,gCAEzC,EAE4B,EAAUn9N,EAAQygO,kBACpCzgO,EAAQygO,gBADd,MAKMtJ,EAAan3N,EAAQm3N,YAAc0K,GACnCz9J,EAAW+yJ,EAAWr2N,GACtB42F,EAASoqI,GAAa19J,GAC5B,GAAIszB,EACA,OAAOA,EAGX,MAAM,KAAE3yF,EAAI,YAAEg9N,GAAgB,GAAYjhO,EAASd,GAE7C6nC,EAAM,IAAIpiB,SAAS,UAAU1gB,IAAvB,GAEZ,OAAQg9N,EAEFl6L,EADCi6L,GAAa19J,GAAYv8B,CAEpC,GAEJ,SAASq4E,GAAQp/G,EAASd,GACtB,GAAM05N,8BAAgCC,mCAClC,EAAS74N,GAAU,EAEK,EAAUd,EAAQygO,kBACpCzgO,EAAQygO,gBADd,MAKMtJ,EAAan3N,EAAQm3N,YAAc0K,GACnCz9J,EAAW+yJ,EAAWr2N,GACtB42F,EAASoqI,GAAa19J,GAC5B,GAAIszB,EACA,OAAOA,EAGX,MAAM,IAAEz6D,EAAG,YAAE8kM,GAAgB,GAAYjhO,EAAS,IAC3Cd,EACH6L,UAAU,EACVytN,KAAK,IAGHzxL,EAAM,GAAO5K,GAEnB,OAAQ8kM,EAEFl6L,EADCi6L,GAAa19J,GAAYv8B,CAEpC,CACK,CACG,EAKJ,MAAMu8B,EAAWtjE,EAAQsjE,SACzB,GAAIA,EAAU,CACV,MAAMszB,EAASoqI,GAAa19J,GAC5B,OAAIszB,IAIIoqI,GAAa19J,GACjB,GAAOtjE,GACf,CAEI,OAAO,GAAOA,EAEtB,CACJ,CAEA,MAAMmhO,GAAwB,IAAM,GAC9BC,GAAqBtjO,GAAQ,EAAWA,GAE9C,SAASujO,GAAUniO,KAAY+I,GAC3B,MAAM,eAAEu3N,EAAc,gBAAEE,EAAe,YAAED,EAAW,gBAAEI,EAAe,eAAEX,EAAc,SAAE1gE,GAAat/J,GAC7FnB,EAAKyF,GAAW89N,MAAsBr5N,GACvCq3N,EAAc,EAAU97N,EAAQ87N,aAChC97N,EAAQ87N,YACRpgO,EAAQogO,YACRC,EAAe,EAAU/7N,EAAQ+7N,cACjC/7N,EAAQ+7N,aACRrgO,EAAQqgO,aACRK,EAAkB,EAAUp8N,EAAQo8N,iBACpCp8N,EAAQo8N,gBACR1gO,EAAQ0gO,gBACR2B,IAAoB/9N,EAAQ+9N,gBAE5BC,EAAkB,EAASh+N,EAAQ09C,UAAY,EAAU19C,EAAQ09C,SAChE,EAAU19C,EAAQ09C,SAEb2+K,EAA8B9hO,EAAZ,IAAMA,EAD1ByF,EAAQ09C,QAEZs+K,EACMK,EAA8B9hO,EAAZ,IAAMA,EAC1B,GACJ0jO,EAAmBjC,GAAsC,KAApBgC,EACrCj2D,EAASmxD,GAAUx9N,EAASsE,GAElCo8N,GAAmB8B,GAAal+N,GAGhC,IAAKm+N,EAAaC,EAAc5hO,GAAYuhO,EAEtC,CACExjO,EACAwtK,EACA/M,EAAS+M,IAAW,CAAC,GAJvBs2D,GAAqB3iO,EAASnB,EAAKwtK,EAAQ2zD,EAAgBK,EAAcD,GAW3EzpE,EAAS8rE,EAETG,EAAe/jO,EAWnB,GAVKwjO,GACC,EAAS1rE,IACP,GAAaA,IACburE,GAAkBvrE,IAClB4rE,IACA5rE,EAAS2rE,EACTM,EAAejsE,IAIlB0rE,MACE,EAAS1rE,IACR,GAAaA,IACburE,GAAkBvrE,MACjB,EAAS+rE,IACd,OAAOnC,EAAchC,GAAe1/N,EAWxC,IAAIgkO,GAAW,EACf,MAAM9Q,EAAU,KACZ8Q,GAAW,CAAI,EAGbh7L,EAAOq6L,GAAkBvrE,GAEzBA,EADAmsE,GAAqB9iO,EAASnB,EAAK6jO,EAAc/rE,EAAQisE,EAAc7Q,GAG7E,GAAI8Q,EACA,OAAOlsE,EAGX,MAAMosE,EAAaC,GAAyBhjO,EAAS0iO,EAAc5hO,EAASwD,GACtE2+N,EAAa3H,GAAqByH,GAClCG,EAAWC,GAAgBnjO,EAAS6nC,EAAKo7L,GAEzCp0N,EAAM2xN,EACNA,EAAgB0C,EAAUrkO,GAC1BqkO,EAEN,GAA+CzJ,0BAA2B,CAEtE,MAAM6C,EAAW,CACbhsN,UAAWrG,KAAKO,MAChB3L,IAAK,EAASA,GACRA,EACAqjO,GAAkBvrE,GACdA,EAAO93J,IACP,GACVwtK,OAAQq2D,IAAiBR,GAAkBvrE,GACrCA,EAAO0V,OACP,IACN1V,OAAQ,EAASA,GACXA,EACAurE,GAAkBvrE,GACdA,EAAOv0J,OACP,GACVtB,QAAS+N,GAEbytN,EAASjuG,KAAO,EAAO,CAAC,EAAGruH,EAAQkhO,OAAQ1B,MAAuB,CAAC,GACnEpD,GAAkBE,EACtB,CACA,OAAOztN,CACX,CACA,SAAS2zN,GAAal+N,GACd,EAAQA,EAAQs3E,MAChBt3E,EAAQs3E,KAAOt3E,EAAQs3E,KAAKhlE,KAAI/E,GAAQ,EAASA,GAAQ87M,EAAW97M,GAAQA,IAEvE,EAASvN,EAAQ0zN,QACtBlxN,OAAOC,KAAKzC,EAAQ0zN,OAAOr5N,SAAQE,IAC3B,EAASyF,EAAQ0zN,MAAMn5N,MACvByF,EAAQ0zN,MAAMn5N,GAAO8uN,EAAWrpN,EAAQ0zN,MAAMn5N,IAClD,GAGZ,CACA,SAAS8jO,GAAqB3iO,EAASnB,EAAKwtK,EAAQ2zD,EAAgBK,EAAcD,GAC9E,MAAM,SAAE9gE,EAAQ,OAAEwgE,EAAQc,gBAAiBnG,EAAY,iBAAEoG,GAAqB7gO,EACxEojO,EAAUvC,EAAiB7gO,EAASggO,EAAgB3zD,GAC1D,IACIq2D,EADA5hO,EAAU,CAAC,EAEX61J,EAAS,KACTr1H,EAAO+qI,EACPnhE,EAAK,KACT,MAAM5rG,EAAO,YACb,IAAK,IAAImC,EAAI,EAAGA,EAAI2hO,EAAQzhO,OAAQF,IAAK,CACrCihO,EAAex3H,EAAKk4H,EAAQ3hO,GAsB5BX,EACIw+J,EAASojE,IAAiB,CAAC,EAiC/B,GAtB8C,QAAzC/rE,EAAS8jE,EAAa35N,EAASjC,MAEhC83J,EAAS71J,EAAQjC,IAoBjB,EAAS83J,IAAW,GAAaA,IAAWurE,GAAkBvrE,GAC9D,MAEJ,MAAM0sE,EAAajC,GAAcphO,EACjCnB,EAAK6jO,EAActC,EAAa9gO,GAC5B+jO,IAAexkO,IACf83J,EAAS0sE,GAEb/hM,EAAO4pE,CACX,CACA,MAAO,CAACyrD,EAAQ+rE,EAAc5hO,EAClC,CACA,SAASgiO,GAAqB9iO,EAASnB,EAAK6jO,EAAc/rE,EAAQisE,EAAc7Q,GAC5E,MAAM,gBAAE4O,EAAe,gBAAEF,GAAoBzgO,EAC7C,GAAIkiO,GAAkBvrE,GAAS,CAC3B,MAAM9uH,EAAM8uH,EAGZ,OAFA9uH,EAAIwkI,OAASxkI,EAAIwkI,QAAUq2D,EAC3B76L,EAAIhpC,IAAMgpC,EAAIhpC,KAAOA,EACdgpC,CACX,CACA,GAAuB,MAAnB84L,EAAyB,CACzB,MAAM94L,EAAM,IAAO8uH,EAGnB,OAFA9uH,EAAIwkI,OAASq2D,EACb76L,EAAIhpC,IAAMA,EACHgpC,CACX,CAWA,MAAMA,EAAM84L,EAAgBhqE,EAAQ2sE,GAAkBtjO,EAAS0iO,EAAcE,EAAcjsE,EAAQ8pE,EAAiB1O,IAqBpH,OAHAlqL,EAAIwkI,OAASq2D,EACb76L,EAAIhpC,IAAMA,EACVgpC,EAAIzlC,OAASu0J,EACN9uH,CACX,CACA,SAASs7L,GAAgBnjO,EAAS6nC,EAAK07L,GAWnC,MAAML,EAAWr7L,EAAI07L,GAkBrB,OAAOL,CACX,CAEA,SAASd,MAAsBr5N,GAC3B,MAAOgzN,EAAMC,EAAMwH,GAAQz6N,EACrBzE,EAAU,CAAC,EACjB,IAAK,EAASy3N,KACT/xN,EAAS+xN,KACTmG,GAAkBnG,KAClB,GAAaA,GACd,MAAMwB,GAAgBP,GAAevlE,kBAGzC,MAAM54J,EAAMmL,EAAS+xN,GACfhvM,OAAOgvM,IACPmG,GAAkBnG,GACdA,GAuBV,OArBI/xN,EAASgyN,GACT13N,EAAQuwN,OAASmH,EAEZ,EAASA,GACd13N,EAAQ09C,QAAUg6K,EAEb31N,EAAc21N,KAAUtO,EAAcsO,GAC3C13N,EAAQ0zN,MAAQgE,EAEX,EAAQA,KACb13N,EAAQs3E,KAAOogJ,GAEfhyN,EAASw5N,GACTl/N,EAAQuwN,OAAS2O,EAEZ,EAASA,GACdl/N,EAAQ09C,QAAUwhL,EAEbn9N,EAAcm9N,IACnB,EAAOl/N,EAASk/N,GAEb,CAAC3kO,EAAKyF,EACjB,CACA,SAASg/N,GAAkBtjO,EAASqsK,EAAQxtK,EAAKuD,EAAQq+N,EAAiB1O,GACtE,MAAO,CACH1lD,SACAxtK,MACA4hO,kBACA1O,QAAU70N,IAqBF,MApBJ60N,GAAWA,EAAQ70N,GAoBTA,CACV,EAEJi6N,WAAa/0N,GAAWorN,EAAuBnhD,EAAQxtK,EAAKuD,GAEpE,CAWA,SAAS4gO,GAAyBhjO,EAASqsK,EAAQvrK,EAASwD,GACxD,MAAM,UAAEs6F,EAAS,YAAE48H,EAAaoF,gBAAiBnG,EAAY,eAAEuF,EAAc,aAAEK,EAAY,YAAED,EAAW,gBAAEU,GAAoB9gO,EACxHyjO,EAAkB5kO,IACpB,IAAID,EAAM67N,EAAa35N,EAASjC,GAEhC,GAAW,MAAPD,GAAekiO,EAAiB,CAChC,MAAO,CAAE,CAAEhgO,GAAW6hO,GAAqB7B,EAAiBjiO,EAAKwtK,EAAQ2zD,EAAgBK,EAAcD,GACvGxhO,EAAM67N,EAAa35N,EAASjC,EAChC,CACA,GAAI,EAASD,IAAQ,GAAaA,GAAM,CACpC,IAAIikO,GAAW,EACf,MAAM9Q,EAAU,KACZ8Q,GAAW,CAAI,EAEbh7L,EAAMi7L,GAAqB9iO,EAASnB,EAAKwtK,EAAQztK,EAAKC,EAAKkzN,GACjE,OAAQ8Q,EAEFZ,GADAp6L,CAEV,CACK,OAAIq6L,GAAkBtjO,GAChBA,EAIAqjO,EACX,EAEEc,EAAa,CACf12D,SACAztE,YACA48H,cACAl8D,SAAUmkE,GAcd,OAZIzjO,EAAQ67N,YACRkH,EAAWlH,UAAY77N,EAAQ67N,WAE/Bv3N,EAAQs3E,OACRmnJ,EAAWnnJ,KAAOt3E,EAAQs3E,MAE1Bt3E,EAAQ0zN,QACR+K,EAAW/K,MAAQ1zN,EAAQ0zN,OAE3BhuN,EAAS1F,EAAQuwN,UACjBkO,EAAW5H,YAAc72N,EAAQuwN,QAE9BkO,CACX,CAEA,MAAMW,GAA8B,qBAAT95C,KAEP85C,IAAsB95C,KAAK+5C,eAC7BD,IAAsB95C,KAAKg6C,aAI7C,SAASC,GAAS7jO,KAAY+I,GAC1B,MAAM,gBAAEk3N,EAAe,YAAEM,EAAW,eAAEP,EAAc,OAAEF,EAAM,iBAAEe,GAAqB7gO,GAC7E,qBAAEghO,GAAyBhhO,EAKjC,MAAOnB,EAAK5B,EAAOqH,EAASi/I,GAAaugF,MAAqB/6N,GACxDq3N,EAAc,EAAU97N,EAAQ87N,aAChC97N,EAAQ87N,YACRpgO,EAAQogO,YAIR1xE,GAHe,EAAUpqJ,EAAQ+7N,cACjC/7N,EAAQ+7N,aACRrgO,EAAQqgO,eACC/7N,EAAQoqJ,MACjB2d,EAASmxD,GAAUx9N,EAASsE,GAC5B8+N,EAAUvC,EAAiB7gO,EACjCggO,EAAgB3zD,GAChB,IAAK,EAASxtK,IAAgB,KAARA,EAClB,OAAO,IAAI+qL,KAAK+5C,eAAet3D,EAAQ9oB,GAAWoT,OAAO15J,GAG7D,IACIylO,EADAqB,EAAiB,CAAC,EAElBptE,EAAS,KACTr1H,EAAO+qI,EACPnhE,EAAK,KACT,MAAM5rG,EAAO,kBACb,IAAK,IAAImC,EAAI,EAAGA,EAAI2hO,EAAQzhO,OAAQF,IAAK,CA0BrC,GAzBAihO,EAAex3H,EAAKk4H,EAAQ3hO,GAsB5BsiO,EACI9D,EAAgByC,IAAiB,CAAC,EACtC/rE,EAASotE,EAAellO,GACpBwH,EAAcswJ,GACd,MACJyqE,GAAcphO,EAASnB,EAAK6jO,EAActC,EAAa9gO,GACvDgiC,EAAO4pE,CACX,CAEA,IAAK7kG,EAAcswJ,KAAY,EAAS+rE,GACpC,OAAOnC,EAAchC,GAAe1/N,EAExC,IAAI2F,EAAK,GAAGk+N,MAAiB7jO,IACxB6uN,EAAcnqE,KACf/+I,EAAK,GAAGA,MAAOqD,KAAKI,UAAUs7I,MAElC,IAAIu3C,EAAYkmC,EAAqBzjN,IAAI/Y,GAKzC,OAJKs2L,IACDA,EAAY,IAAIlR,KAAK+5C,eAAejB,EAAc,EAAO,CAAC,EAAG/rE,EAAQpT,IACrEy9E,EAAqBxiN,IAAIha,EAAIs2L,IAEzBpsC,EAAiCosC,EAAUkpC,cAAc/mO,GAAlD69L,EAAUnkC,OAAO15J,EACpC,CAEA,MAAMgnO,GAA+B,CACjC,gBACA,UACA,MACA,OACA,QACA,MACA,OACA,SACA,SACA,eACA,gBACA,SACA,WACA,YACA,YACA,WACA,YACA,kBACA,YACA,0BAGJ,SAASH,MAAqB/6N,GAC1B,MAAOgzN,EAAMC,EAAMwH,EAAMU,GAAQn7N,EAC3BzE,EAAU,CAAC,EACjB,IACIrH,EADAsmJ,EAAY,CAAC,EAEjB,GAAI,EAASw4E,GAAO,CAGhB,MAAMl4H,EAAUk4H,EAAK3xN,MAAM,kCAC3B,IAAKy5F,EACD,MAAM05H,GAAgBP,GAAeE,2BAIzC,MAAMiH,EAAWtgI,EAAQ,GACnBA,EAAQ,GAAG97F,OAAO6uE,WAAW,KACzB,GAAGitB,EAAQ,GAAG97F,SAAS87F,EAAQ,GAAG97F,SAClC,GAAG87F,EAAQ,GAAG97F,UAAU87F,EAAQ,GAAG97F,SACvC87F,EAAQ,GAAG97F,OACjB9K,EAAQ,IAAIgN,KAAKk6N,GACjB,IAEIlnO,EAAMqM,aACV,CACA,MAAOtB,GACH,MAAMu1N,GAAgBP,GAAeE,0BACzC,CACJ,MACK,GAAI7zN,EAAO0yN,GAAO,CACnB,GAAIvrM,MAAMurM,EAAK9sN,WACX,MAAMsuN,GAAgBP,GAAeC,uBAEzChgO,EAAQ8+N,CACZ,KACK,KAAI/xN,EAAS+xN,GAId,MAAMwB,GAAgBP,GAAevlE,kBAHrCx6J,EAAQ8+N,CAIZ,CAuBA,OAtBI,EAASC,GACT13N,EAAQzF,IAAMm9N,EAET31N,EAAc21N,IACnBl1N,OAAOC,KAAKi1N,GAAMr9N,SAAQE,IAClBolO,GAA6BzuN,SAAS3W,GACtC0kJ,EAAU1kJ,GAAOm9N,EAAKn9N,GAGtByF,EAAQzF,GAAOm9N,EAAKn9N,EACxB,IAGJ,EAAS2kO,GACTl/N,EAAQ+nK,OAASm3D,EAEZn9N,EAAcm9N,KACnBjgF,EAAYigF,GAEZn9N,EAAc69N,KACd3gF,EAAY2gF,GAET,CAAC5/N,EAAQzF,KAAO,GAAI5B,EAAOqH,EAASi/I,EAC/C,CAEA,SAAS6gF,GAAoBzrI,EAAK0zE,EAAQ1V,GACtC,MAAM32J,EAAU24F,EAChB,IAAK,MAAM95F,KAAO83J,EAAQ,CACtB,MAAMnyJ,EAAK,GAAG6nK,MAAWxtK,IACpBmB,EAAQghO,qBAAqB5iN,IAAI5Z,IAGtCxE,EAAQghO,qBAAqB/6L,OAAOzhC,EACxC,CACJ,CAGA,SAASoB,GAAO5F,KAAY+I,GACxB,MAAM,cAAEm3N,EAAa,YAAEK,EAAW,eAAEP,EAAc,OAAEF,EAAM,iBAAEe,GAAqB7gO,GAC3E,mBAAEihO,GAAuBjhO,EAK/B,MAAOnB,EAAK5B,EAAOqH,EAASi/I,GAAa8gF,MAAmBt7N,GACtDq3N,EAAc,EAAU97N,EAAQ87N,aAChC97N,EAAQ87N,YACRpgO,EAAQogO,YAIR1xE,GAHe,EAAUpqJ,EAAQ+7N,cACjC/7N,EAAQ+7N,aACRrgO,EAAQqgO,eACC/7N,EAAQoqJ,MACjB2d,EAASmxD,GAAUx9N,EAASsE,GAC5B8+N,EAAUvC,EAAiB7gO,EACjCggO,EAAgB3zD,GAChB,IAAK,EAASxtK,IAAgB,KAARA,EAClB,OAAO,IAAI+qL,KAAKg6C,aAAav3D,EAAQ9oB,GAAWoT,OAAO15J,GAG3D,IACIylO,EADA4B,EAAe,CAAC,EAEhB3tE,EAAS,KACTr1H,EAAO+qI,EACPnhE,EAAK,KACT,MAAM5rG,EAAO,gBACb,IAAK,IAAImC,EAAI,EAAGA,EAAI2hO,EAAQzhO,OAAQF,IAAK,CA0BrC,GAzBAihO,EAAex3H,EAAKk4H,EAAQ3hO,GAsB5B6iO,EACIpE,EAAcwC,IAAiB,CAAC,EACpC/rE,EAAS2tE,EAAazlO,GAClBwH,EAAcswJ,GACd,MACJyqE,GAAcphO,EAASnB,EAAK6jO,EAActC,EAAa9gO,GACvDgiC,EAAO4pE,CACX,CAEA,IAAK7kG,EAAcswJ,KAAY,EAAS+rE,GACpC,OAAOnC,EAAchC,GAAe1/N,EAExC,IAAI2F,EAAK,GAAGk+N,MAAiB7jO,IACxB6uN,EAAcnqE,KACf/+I,EAAK,GAAGA,MAAOqD,KAAKI,UAAUs7I,MAElC,IAAIu3C,EAAYmmC,EAAmB1jN,IAAI/Y,GAKvC,OAJKs2L,IACDA,EAAY,IAAIlR,KAAKg6C,aAAalB,EAAc,EAAO,CAAC,EAAG/rE,EAAQpT,IACnE09E,EAAmBziN,IAAIha,EAAIs2L,IAEvBpsC,EAAiCosC,EAAUkpC,cAAc/mO,GAAlD69L,EAAUnkC,OAAO15J,EACpC,CAEA,MAAMsnO,GAA6B,CAC/B,gBACA,QACA,WACA,kBACA,eACA,cACA,uBACA,wBACA,wBACA,2BACA,2BACA,iBACA,WACA,cACA,OACA,cACA,eACA,mBACA,oBACA,uBAGJ,SAASF,MAAmBt7N,GACxB,MAAOgzN,EAAMC,EAAMwH,EAAMU,GAAQn7N,EAC3BzE,EAAU,CAAC,EACjB,IAAIi/I,EAAY,CAAC,EACjB,IAAKv5I,EAAS+xN,GACV,MAAMwB,GAAgBP,GAAevlE,kBAEzC,MAAMx6J,EAAQ8+N,EAuBd,OAtBI,EAASC,GACT13N,EAAQzF,IAAMm9N,EAET31N,EAAc21N,IACnBl1N,OAAOC,KAAKi1N,GAAMr9N,SAAQE,IAClB0lO,GAA2B/uN,SAAS3W,GACpC0kJ,EAAU1kJ,GAAOm9N,EAAKn9N,GAGtByF,EAAQzF,GAAOm9N,EAAKn9N,EACxB,IAGJ,EAAS2kO,GACTl/N,EAAQ+nK,OAASm3D,EAEZn9N,EAAcm9N,KACnBjgF,EAAYigF,GAEZn9N,EAAc69N,KACd3gF,EAAY2gF,GAET,CAAC5/N,EAAQzF,KAAO,GAAI5B,EAAOqH,EAASi/I,EAC/C,CAEA,SAASihF,GAAkB7rI,EAAK0zE,EAAQ1V,GACpC,MAAM32J,EAAU24F,EAChB,IAAK,MAAM95F,KAAO83J,EAAQ,CACtB,MAAMnyJ,EAAK,GAAG6nK,MAAWxtK,IACpBmB,EAAQihO,mBAAmB7iN,IAAI5Z,IAGpCxE,EAAQihO,mBAAmBh7L,OAAOzhC,EACtC,CACJ,CAGI6sG,K;;;;;;ACtuDJ,MAAM,GAAU,QAKhB,SAAS,KACoC,mBAA9BozH,4BACPhzG,IAAgBgzG,2BAA4B,GAET,mBAA5BC,0BACPjzG,IAAgBizG,yBAA0B,GAEH,mBAAhChL,8BACPjoG,IAAgBioG,6BAA8B,GAED,mBAAtCC,oCACPloG,IAAgBkoG,mCAAoC,GAEf,mBAA9BF,4BACPhoG,IAAgBgoG,2BAA4B,EAEpD,CAEA,MAAMkL,GAASpI,GAAclN,iBACvBuV,GAAQ/W,EAAY8W,IACpBE,GAAgB,CAClBC,iBAAkBH,GAClBI,uBAAwBH,KACxBI,wBAAyBJ,KACzBK,iCAAkCL,KAClCM,+BAAgCN,KAChCO,iCAAkCP,KAClCQ,uBAAwBR,KACxBS,mBAAoBT,KACpBU,8BAA+BV,MAG9BC,GAAcC,iBACdD,GAAcE,uBACdF,GAAcG,wBACdH,GAAcI,iCACdJ,GAAcK,+BACdL,GAAcM,iCACdN,GAAcO,uBACdP,GAAcQ,mBACdR,GAAcS,8BAMnB,MAAM,GAAOtI,GAAe3N,iBACtB,GAAMxB,EAAY,IAClB0X,GAAiB,CAEnBC,uBAAwB,GAExB/tE,iBAAkB,KAElBguE,uBAAwB,KACxBC,cAAe,KACfC,6BAA8B,KAE9BC,eAAgB,KAChBC,cAAe,KAEfC,iCAAkC,KAClCC,2BAA4B,KAE5BC,iBAAkB,KAElBC,+BAAgC,KAEhCC,0BAA2B,KAE3BC,6CAA8C,KAE9CC,oCAAqC,KAErC/W,iBAAkB,MAEtB,SAASgX,GAAgBthO,KAASgE,GAC9B,OAAOwmN,EAAmBxqN,EAAM,UAAoFtG,EACxH,CAEK8mO,GAAeC,uBACfD,GAAe9tE,iBACf8tE,GAAeE,uBACfF,GAAeG,cACfH,GAAeS,iBACfT,GAAeI,6BACfJ,GAAeK,eACfL,GAAeM,cACfN,GAAeO,iCACfP,GAAeQ,2BACfR,GAAeU,+BACfV,GAAeW,0BACfX,GAAeY,6CACfZ,GAAea,oCAdpB,MAiBME,GACS,EAAW,oBACpBC,GAAqC,EAAW,mBAChDC,GAAmC,EAAW,iBAG9CC,GAAuB,EAAW,oBACxC,EAAW,iBACX,MAAMC,GACS,EAAW,sBACpBC,GAA+B,EAAW,aAOhD,SAASC,GAAej5N,GAEpB,IAAK,EAASA,GACV,OAAOA,EAEX,IAAK,MAAM9O,KAAO8O,EAEd,GAAKoiH,EAAOpiH,EAAK9O,GAIjB,GAAKA,EAAI2W,SAAS,KAOb,CAED,MAAMqxN,EAAUhoO,EAAIqN,MAAM,KACpBskI,EAAYq2F,EAAQllO,OAAS,EACnC,IAAImlO,EAAan5N,EACbo5N,GAAiB,EACrB,IAAK,IAAItlO,EAAI,EAAGA,EAAI+uI,EAAW/uI,IAAK,CAIhC,GAHMolO,EAAQplO,KAAMqlO,IAChBA,EAAWD,EAAQplO,IAAM,CAAC,IAEzB,EAASqlO,EAAWD,EAAQplO,KAAM,CAKnCslO,GAAiB,EACjB,KACJ,CACAD,EAAaA,EAAWD,EAAQplO,GACpC,CAEKslO,IACDD,EAAWD,EAAQr2F,IAAc7iI,EAAI9O,UAC9B8O,EAAI9O,IAGX,EAASioO,EAAWD,EAAQr2F,MAC5Bo2F,GAAeE,EAAWD,EAAQr2F,IAE1C,MAlCQ,EAAS7iI,EAAI9O,KACb+nO,GAAej5N,EAAI9O,IAmC/B,OAAO8O,CACX,CACA,SAASq5N,GAAkB36D,EAAQ/nK,GAC/B,MAAM,SAAEg7J,EAAQ,OAAE2nE,EAAM,gBAAErG,EAAe,SAAEsG,GAAa5iO,EAElDuK,EAAOxI,EAAci5J,GACrBA,EACA,EAAQ2nE,GACJ,CAAC,EACD,CAAE,CAAC56D,GAAS,CAAC,GAoBvB,GAlBI,EAAQ46D,IACRA,EAAOtoO,SAAQ+gB,IACX,GAAI,WAAYA,GAAU,aAAcA,EAAQ,CAC5C,MAAM,OAAE2sJ,EAAM,SAAEyrD,GAAap4M,EACzB2sJ,GACAx9J,EAAIw9J,GAAUx9J,EAAIw9J,IAAW,CAAC,EAC9B0hD,EAAS+J,EAAUjpN,EAAIw9J,KAGvB0hD,EAAS+J,EAAUjpN,EAE3B,MAEI,EAAS6Q,IAAWquM,EAASlmN,KAAKC,MAAM4X,GAAS7Q,EACrD,IAIe,MAAnB+xN,GAA2BsG,EAC3B,IAAK,MAAMroO,KAAOgQ,EACVkhH,EAAOlhH,EAAKhQ,IACZ+nO,GAAe/3N,EAAIhQ,IAI/B,OAAOgQ,CACX,CAEA,SAASs4N,GAAoBlnO,GACzB,OAAOA,EAASX,IACpB,CACA,SAAS8nO,GAAoBC,EAAI/iO,EAASgjO,GAEtC,IAAIhoE,EAAW,EAASh7J,EAAQg7J,UAAYh7J,EAAQg7J,SAAW,CAAC,EAC5D,iBAAkBgoE,IAClBhoE,EAAW0nE,GAAkBK,EAAGh7D,OAAOpvK,MAAO,CAC1CqiK,WACA2nE,OAAQK,EAAiBC,gBAIjC,MAAMnE,EAAUt8N,OAAOC,KAAKu4J,GAQxB,GAPA8jE,EAAQzhO,QACRyhO,EAAQzkO,SAAQ0tK,IACZg7D,EAAGG,mBAAmBn7D,EAAQ/M,EAAS+M,GAAQ,IAK/C,EAAS/nK,EAAQ27N,iBAAkB,CACnC,MAAMmD,EAAUt8N,OAAOC,KAAKzC,EAAQ27N,iBAChCmD,EAAQzhO,QACRyhO,EAAQzkO,SAAQ0tK,IACZg7D,EAAGI,oBAAoBp7D,EAAQ/nK,EAAQ27N,gBAAgB5zD,GAAQ,GAG3E,CAEA,GAAI,EAAS/nK,EAAQ47N,eAAgB,CACjC,MAAMkD,EAAUt8N,OAAOC,KAAKzC,EAAQ47N,eAChCkD,EAAQzhO,QACRyhO,EAAQzkO,SAAQ0tK,IACZg7D,EAAGK,kBAAkBr7D,EAAQ/nK,EAAQ47N,cAAc7zD,GAAQ,GAGvE,CAER,CACA,SAAStqD,GAAeljH,GACpB,OAAO,SAAY,MAAM,KAAMA,EAAK,EAExC,CAKA,MAAM8oO,GAAgB,mBAChBC,GAAoB,IAAM,GAC1BC,GAAoB,KAAM,EAChC,IAAIC,GAAa,EACjB,SAASC,GAAyB5H,GAC9B,MAAO,CAAExnI,EAAK0zE,EAAQxtK,EAAKS,IAChB6gO,EAAQ9zD,EAAQxtK,GAAK,iBAAwBJ,EAAWa,EAEvE,CAGA,MAAM0oO,GAAc,KAChB,MAAM/nO,GAAW,WACjB,IAAIouH,EAAO,KACX,OAAOpuH,IAAaouH,EAAO84G,GAAoBlnO,GAAU0nO,KACnD,CAAE,CAACA,IAAgBt5G,GACnB,IAAI,EAQd,SAAS45G,GAAe3jO,EAAU,CAAC,EAAG4jO,GAClC,MAAM,OAAEC,EAAM,mBAAEC,GAAuB9jO,EACjC+jO,OAAuB5pO,IAAX0pO,EACZjB,EAAW5iO,EAAQ4iO,SACzB,IAAIoB,GAAiB,EAAUhkO,EAAQikO,gBACjCjkO,EAAQikO,cAEd,MAAMxI,GAAU,SAEhBoI,GAAUG,EACJH,EAAO97D,OAAOpvK,MACd,EAASqH,EAAQ+nK,QACb/nK,EAAQ+nK,OACR0xD,IACJyK,GAAkB,SAExBL,GAAUG,EACJH,EAAOnI,eAAe/iO,MACtB,EAASqH,EAAQ07N,iBACf,EAAQ17N,EAAQ07N,iBAChB35N,EAAc/B,EAAQ07N,kBACK,IAA3B17N,EAAQ07N,eACN17N,EAAQ07N,eACRD,EAAQ9iO,OACZwrO,GAAY,SAAIzB,GAAkBjH,EAAQ9iO,MAAOqH,IAEjDokO,GAAmB,SAAIriO,EAAc/B,EAAQ27N,iBACzC37N,EAAQ27N,gBACR,CAAE,CAACF,EAAQ9iO,OAAQ,CAAC,IAGxB0rO,GAAiB,SAAItiO,EAAc/B,EAAQ47N,eACvC57N,EAAQ47N,cACR,CAAE,CAACH,EAAQ9iO,OAAQ,CAAC,IAI9B,IAAI2rO,EAAeT,EACbA,EAAO/H,aACP,EAAU97N,EAAQ87N,eAAgBjwG,EAAS7rH,EAAQ87N,cAC/C97N,EAAQ87N,YAGdyI,EAAgBV,EACdA,EAAO9H,cACP,EAAU/7N,EAAQ+7N,gBAAiBlwG,EAAS7rH,EAAQ+7N,eAChD/7N,EAAQ+7N,aAGdyI,EAAgBX,EACdA,EAAOY,cACP,EAAUzkO,EAAQykO,eACdzkO,EAAQykO,aAGdC,IAAoB1kO,EAAQg8N,eAE5B2I,EAAW,EAAW3kO,EAAQ67N,SAAW77N,EAAQ67N,QAAU,KAC3D+I,EAAkB,EAAW5kO,EAAQ67N,SACnC4H,GAAyBzjO,EAAQ67N,SACjC,KAEFgJ,EAAmB,EAAW7kO,EAAQk8N,iBACpCl8N,EAAQk8N,gBACR,KAEF4I,EAAmBjB,EACjBA,EAAO1H,iBACP,EAAUn8N,EAAQm8N,kBACdn8N,EAAQm8N,gBAEd4I,IAAqB/kO,EAAQo8N,gBAGjC,MAAM4I,EAAanB,EACbA,EAAOvpI,UACPv4F,EAAc/B,EAAQs6F,WAClBt6F,EAAQs6F,UACR,CAAC,EAEX,IAGIoO,EAHAu8H,EAAejlO,EAAQk3N,aAAgB2M,GAAUA,EAAO3M,YAI5D,MAAMgO,EAAiB,KACnBnB,GAAa3I,GAAmB,MAChC,MAAMqD,EAAa,CACfl2N,QAAS,GACTw/J,OAAQ0zD,EAAQ9iO,MAChB+iO,eAAgBwI,EAAgBvrO,MAChCqiK,SAAUmpE,EAAUxrO,MACpB2hG,UAAW0qI,EACX9N,YAAa+N,EACbpJ,QAA6B,OAApB+I,OAA2BzqO,EAAYyqO,EAChD9I,YAAawI,EACbvI,aAAcwI,EACdvI,eAAgB0I,EAChBzI,aAAa,EACbC,gBAAsC,OAArB2I,OAA4B1qO,EAAY0qO,EACzD1I,gBAAiB2I,EACjB1I,gBAAiB2I,EACjBzI,gBAAiBt8N,EAAQs8N,gBACzBD,gBAAiBr8N,EAAQq8N,gBACzBO,OAAQ,CAAEuI,UAAW,QAGrB1G,EAAW9C,gBAAkByI,EAAiBzrO,MAC9C8lO,EAAW7C,cAAgByI,EAAe1rO,MAC1C8lO,EAAW/B,qBAAuB36N,EAAc2mG,GAC1CA,EAASg0H,0BACTviO,EACNskO,EAAW9B,mBAAqB56N,EAAc2mG,GACxCA,EAASi0H,wBACTxiO,EAOV,MAAMk6F,EAAMknI,GAAkBkD,GAE9B,OADAsF,GAAa3I,GAAmB/mI,GACzBA,CAAG,EAKd,SAAS+wI,IACL,MAAO,CACC3J,EAAQ9iO,MACRurO,EAAgBvrO,MAChBwrO,EAAUxrO,MACVyrO,EAAiBzrO,MACjB0rO,EAAe1rO,MAG3B,CAZA+vG,EAAWw8H,IACXnI,GAAqBr0H,EAAU+yH,EAAQ9iO,MAAOurO,EAAgBvrO,OAa9D,MAAMovK,GAAS,SAAS,CACpB9uJ,IAAK,IAAMwiN,EAAQ9iO,MACnBuhB,IAAK5f,IACDmhO,EAAQ9iO,MAAQ2B,EAChBouG,EAASq/D,OAAS0zD,EAAQ9iO,KAAK,IAIjC+iO,GAAiB,SAAS,CAC5BziN,IAAK,IAAMirN,EAAgBvrO,MAC3BuhB,IAAK5f,IACD4pO,EAAgBvrO,MAAQ2B,EACxBouG,EAASgzH,eAAiBwI,EAAgBvrO,MAC1CokO,GAAqBr0H,EAAU+yH,EAAQ9iO,MAAO2B,EAAI,IAIpD0gK,GAAW,UAAS,IAAMmpE,EAAUxrO,QAEpCgjO,GAAiC,UAAS,IAAMyI,EAAiBzrO,QAEjEijO,GAA+B,UAAS,IAAMyI,EAAe1rO,QAEnE,SAAS0sO,IACL,OAAO,EAAWR,GAAoBA,EAAmB,IAC7D,CAEA,SAASS,EAA0Bn4L,GAC/B03L,EAAmB13L,EACnBu7D,EAASwzH,gBAAkB/uL,CAC/B,CAEA,SAASo4L,IACL,OAAOZ,CACX,CAEA,SAASa,EAAkBr4L,GACP,OAAZA,IACAy3L,EAAkBnB,GAAyBt2L,IAE/Cw3L,EAAWx3L,EACXu7D,EAASmzH,QAAU+I,CACvB,CAKA,MAAMa,EAAe,CAACtlO,EAAIulO,EAAgBC,EAAUC,EAAiBC,EAAcC,KAG/E,IAAIv7N,EAFJ66N,IAGA,IACmDjQ,2BAC3C8F,GAAkByI,MAEjBK,IACDr7H,EAAS8zH,gBAAkBqH,EACrBxI,UACAlhO,GAEVoQ,EAAMpK,EAAGuoG,EACb,CACA,QACmDysH,2BAC3C8F,GAAkB,MAEjB8I,IACDr7H,EAAS8zH,qBAAkBriO,EAEnC,CACA,GAAkB,qBAAbwrO,GACDjgO,EAAS6E,IACTA,IAAQ0vN,IACM,qBAAb0L,IAAoCp7N,EACvC,CACE,MAAOhQ,EAAKm9N,GAAQgO,IA0BpB,OAAO7B,GAAUW,EACXoB,EAAgB/B,GAChBgC,EAAatrO,EACvB,CACK,GAAIurO,EAAiBv7N,GACtB,OAAOA,EAIP,MAAMw3N,GAAgBd,GAAeC,uBACzC,EAGJ,SAAS5vN,KAAK7M,GACV,OAAOghO,GAAa/pO,GAAW2kB,QAAQhhB,MAAMw+N,GAAW,KAAM,CAACniO,KAAY+I,MAAQ,IAAMq5N,MAAsBr5N,IAAO,aAAawyB,GAAQ5W,QAAQhhB,MAAM43B,EAAK3lB,EAAG2lB,EAAM,IAAIxyB,MAAQlK,GAAOA,IAAKD,GAAO,EAASA,IACnN,CAEA,SAAS2wJ,KAAMxmJ,GACX,MAAOgzN,EAAMC,EAAMwH,GAAQz6N,EAC3B,GAAIy6N,IAAS,EAASA,GAClB,MAAM6C,GAAgBd,GAAe9tE,kBAEzC,OAAO7hJ,EAAMmmN,EAAMC,EAAM,EAAO,CAAEqG,iBAAiB,GAAQmB,GAAQ,CAAC,GACxE,CAEA,SAAS1yN,KAAK/H,GACV,OAAOghO,GAAa/pO,GAAW2kB,QAAQhhB,MAAMkgO,GAAU,KAAM,CAAC7jO,KAAY+I,MAAQ,IAAM+6N,MAAqB/6N,IAAO,mBAAmBwyB,GAAQ5W,QAAQhhB,MAAM43B,EAAKzqB,EAAGyqB,EAAM,IAAIxyB,MAAQ,IAAMy1N,KAAuB5/N,GAAO,EAASA,IACxO,CAEA,SAAS+U,KAAK5K,GACV,OAAOghO,GAAa/pO,GAAW2kB,QAAQhhB,MAAMiC,GAAQ,KAAM,CAAC5F,KAAY+I,MAAQ,IAAMs7N,MAAmBt7N,IAAO,iBAAiBwyB,GAAQ5W,QAAQhhB,MAAM43B,EAAK5nB,EAAG4nB,EAAM,IAAIxyB,MAAQ,IAAMy1N,KAAuB5/N,GAAO,EAASA,IAClO,CAEA,SAASo/G,EAAU5oF,GACf,OAAOA,EAAOxe,KAAIhY,GAAO,EAASA,IAAQoL,EAASpL,IAAQ,EAAUA,GAC/DmjH,GAAeh1F,OAAOnuB,IACtBA,GACV,CACA,MAAMk9N,EAAel9N,GAAQA,EACvBi9N,GAAY,CACd79G,YACA89G,cACAx8N,KAAM,SAGV,SAAS+qO,MAAkBthO,GACvB,OAAOghO,GAAa/pO,IAChB,IAAI6O,EACJ,MAAMm+F,EAAWhtG,EACjB,IACIgtG,EAAS6uH,UAAYA,GACrBhtN,EAAM8V,QAAQhhB,MAAMw+N,GAAW,KAAM,CAACn1H,KAAajkG,GACvD,CACA,QACIikG,EAAS6uH,UAAY,IACzB,CACA,OAAOhtN,CAAG,IACX,IAAMuzN,MAAsBr5N,IAAO,aAEtCwyB,GAAQA,EAAK+qM,OAAyBv9N,KAAOlK,GAAO,CAACkjH,GAAeljH,MAAOD,GAAO,EAAQA,IAC9F,CAEA,SAAS0rO,MAAevhO,GACpB,OAAOghO,GAAa/pO,GAAW2kB,QAAQhhB,MAAMiC,GAAQ,KAAM,CAAC5F,KAAY+I,MAAQ,IAAMs7N,MAAmBt7N,IAAO,iBAEhHwyB,GAAQA,EAAKirM,OAAsBz9N,IAAO6+N,IAAmBhpO,GAAO,EAASA,IAAQ,EAAQA,IACjG,CAEA,SAAS2rO,MAAiBxhO,GACtB,OAAOghO,GAAa/pO,GAAW2kB,QAAQhhB,MAAMkgO,GAAU,KAAM,CAAC7jO,KAAY+I,MAAQ,IAAM+6N,MAAqB/6N,IAAO,mBAEpHwyB,GAAQA,EAAKgrM,OAAwBx9N,IAAO6+N,IAAmBhpO,GAAO,EAASA,IAAQ,EAAQA,IACnG,CACA,SAAS4rO,GAAeC,GACpBlB,EAAekB,EACfz9H,EAASwuH,YAAc+N,CAC3B,CAEA,SAASx4J,GAAGlyE,EAAKwtK,GACb,OAAO09D,GAAa,KAChB,IAAKlrO,EACD,OAAO,EAEX,MAAM6jO,EAAe,EAASr2D,GAAUA,EAAS0zD,EAAQ9iO,MACnD6D,EAAU4pO,GAAiBhI,GAC3B13H,EAAWgC,EAAS4zH,gBAAgB9/N,EAASjC,GACnD,OAAQ,GAAamsG,IACjBk3H,GAAkBl3H,IAClB,EAASA,EAAU,IACxB,IAAM,CAACnsG,IAAM,oBAAoB08B,GACzB5W,QAAQhhB,MAAM43B,EAAKw1C,GAAIx1C,EAAM,CAAC18B,EAAKwtK,KAC3Cw7D,IAAmBjpO,GAAO,EAAUA,IAC3C,CACA,SAAS+rO,GAAgB9rO,GACrB,IAAIygK,EAAW,KACf,MAAM8jE,EAAUvF,GAAwB7wH,EAAUw7H,EAAgBvrO,MAAO8iO,EAAQ9iO,OACjF,IAAK,IAAIwE,EAAI,EAAGA,EAAI2hO,EAAQzhO,OAAQF,IAAK,CACrC,MAAMmpO,EAAuBnC,EAAUxrO,MAAMmmO,EAAQ3hO,KAAO,CAAC,EACvDopO,EAAe79H,EAAS4zH,gBAAgBgK,EAAsB/rO,GACpE,GAAoB,MAAhBgsO,EAAsB,CACtBvrE,EAAWurE,EACX,KACJ,CACJ,CACA,OAAOvrE,CACX,CAEA,SAASwrE,GAAGjsO,GACR,MAAMygK,EAAWqrE,GAAgB9rO,GAEjC,OAAmB,MAAZygK,EACDA,EACA6oE,GACIA,EAAO2C,GAAGjsO,IACV,CAAC,CACf,CAEA,SAAS6rO,GAAiBr+D,GACtB,OAAQo8D,EAAUxrO,MAAMovK,IAAW,CAAC,CACxC,CAEA,SAAS0+D,GAAiB1+D,EAAQvrK,GAC9B,GAAIomO,EAAU,CACV,MAAM8D,EAAW,CAAE,CAAC3+D,GAASvrK,GAC7B,IAAK,MAAMjC,KAAOmsO,EACVj7G,EAAOi7G,EAAUnsO,IACjB+nO,GAAeoE,EAASnsO,IAGhCiC,EAAUkqO,EAAS3+D,EACvB,CACAo8D,EAAUxrO,MAAMovK,GAAUvrK,EAC1BksG,EAASsyD,SAAWmpE,EAAUxrO,KAClC,CAEA,SAASuqO,GAAmBn7D,EAAQvrK,GAChC2nO,EAAUxrO,MAAMovK,GAAUo8D,EAAUxrO,MAAMovK,IAAW,CAAC,EACtD,MAAM2+D,EAAW,CAAE,CAAC3+D,GAASvrK,GAC7B,IAAK,MAAMjC,KAAOmsO,EACVj7G,EAAOi7G,EAAUnsO,IACjB+nO,GAAeoE,EAASnsO,IAGhCiC,EAAUkqO,EAAS3+D,GACnB0hD,EAASjtN,EAAS2nO,EAAUxrO,MAAMovK,IAClCr/D,EAASsyD,SAAWmpE,EAAUxrO,KAClC,CAEA,SAASguO,GAAkB5+D,GACvB,OAAOq8D,EAAiBzrO,MAAMovK,IAAW,CAAC,CAC9C,CAEA,SAAS6+D,GAAkB7+D,EAAQ1V,GAC/B+xE,EAAiBzrO,MAAMovK,GAAU1V,EACjC3pD,EAASizH,gBAAkByI,EAAiBzrO,MAC5CmnO,GAAoBp3H,EAAUq/D,EAAQ1V,EAC1C,CAEA,SAAS8wE,GAAoBp7D,EAAQ1V,GACjC+xE,EAAiBzrO,MAAMovK,GAAU,EAAOq8D,EAAiBzrO,MAAMovK,IAAW,CAAC,EAAG1V,GAC9E3pD,EAASizH,gBAAkByI,EAAiBzrO,MAC5CmnO,GAAoBp3H,EAAUq/D,EAAQ1V,EAC1C,CAEA,SAASw0E,GAAgB9+D,GACrB,OAAOs8D,EAAe1rO,MAAMovK,IAAW,CAAC,CAC5C,CAEA,SAAS++D,GAAgB/+D,EAAQ1V,GAC7BgyE,EAAe1rO,MAAMovK,GAAU1V,EAC/B3pD,EAASkzH,cAAgByI,EAAe1rO,MACxCunO,GAAkBx3H,EAAUq/D,EAAQ1V,EACxC,CAEA,SAAS+wE,GAAkBr7D,EAAQ1V,GAC/BgyE,EAAe1rO,MAAMovK,GAAU,EAAOs8D,EAAe1rO,MAAMovK,IAAW,CAAC,EAAG1V,GAC1E3pD,EAASkzH,cAAgByI,EAAe1rO,MACxCunO,GAAkBx3H,EAAUq/D,EAAQ1V,EACxC,CAEAmxE,KAEIK,GAAUjzG,KACV,SAAMizG,EAAO97D,QAASztK,IACd0pO,IACAvI,EAAQ9iO,MAAQ2B,EAChBouG,EAASq/D,OAASztK,EAClByiO,GAAqBr0H,EAAU+yH,EAAQ9iO,MAAOurO,EAAgBvrO,OAClE,KAEJ,SAAMkrO,EAAOnI,gBAAiBphO,IACtB0pO,IACAE,EAAgBvrO,MAAQ2B,EACxBouG,EAASgzH,eAAiBphO,EAC1ByiO,GAAqBr0H,EAAU+yH,EAAQ9iO,MAAOurO,EAAgBvrO,OAClE,KAIR,MAAMouO,GAAW,CACb7mO,GAAIsjO,GACJz7D,SACA2zD,iBACA,iBAAIuI,GACA,OAAOD,CACX,EACA,iBAAIC,CAAc3pO,GACd0pO,EAAiB1pO,EACbA,GAAOupO,IACPpI,EAAQ9iO,MAAQkrO,EAAO97D,OAAOpvK,MAC9BurO,EAAgBvrO,MAAQkrO,EAAOnI,eAAe/iO,MAC9CokO,GAAqBr0H,EAAU+yH,EAAQ9iO,MAAOurO,EAAgBvrO,OAEtE,EACA,oBAAIquO,GACA,OAAOxkO,OAAOC,KAAK0hO,EAAUxrO,OAAO+V,MACxC,EACAssJ,WACA,aAAI1gE,GACA,OAAO0qI,CACX,EACA,eAAI9N,GACA,OAAO+N,GAAgB,CAAC,CAC5B,EACA,YAAIgC,GACA,OAAOlD,CACX,EACA,eAAIjI,GACA,OAAOwI,CACX,EACA,eAAIxI,CAAYxhO,GACZgqO,EAAehqO,EACfouG,EAASozH,YAAcwI,CAC3B,EACA,gBAAIvI,GACA,OAAOwI,CACX,EACA,gBAAIxI,CAAazhO,GACbiqO,EAAgBjqO,EAChBouG,EAASqzH,aAAewI,CAC5B,EACA,gBAAIE,GACA,OAAOD,CACX,EACA,gBAAIC,CAAanqO,GACbkqO,EAAgBlqO,CACpB,EACA,kBAAI0hO,GACA,OAAO0I,CACX,EACA,kBAAI1I,CAAe1hO,GACfoqO,EAAkBpqO,EAClBouG,EAASszH,eAAiB0I,CAC9B,EACA,mBAAIvI,GACA,OAAO2I,CACX,EACA,mBAAI3I,CAAgB7hO,GAChBwqO,EAAmBxqO,EACnBouG,EAASyzH,gBAAkB7hO,CAC/B,EACA,mBAAI8hO,GACA,OAAO2I,CACX,EACA,mBAAI3I,CAAgB9hO,GAChByqO,EAAmBzqO,EACnBouG,EAAS0zH,gBAAkB9hO,CAC/B,EACAgX,IACA80N,oBACAK,oBACAvD,sBACAmC,4BACAC,4BACAC,oBACAC,oBACA,CAACrD,IAAuB+D,IA8B5B,OA3BIa,GAASpL,gBAAkBA,EAC3BoL,GAASnL,cAAgBA,EACzBmL,GAAS97E,GAAKA,EACd87E,GAASt6J,GAAKA,GACds6J,GAASP,GAAKA,GACdO,GAASv6N,EAAIA,EACbu6N,GAAS13N,EAAIA,EACb03N,GAASJ,kBAAoBA,GAC7BI,GAASH,kBAAoBA,GAC7BG,GAAS5D,oBAAsBA,GAC/B4D,GAASF,gBAAkBA,GAC3BE,GAASD,gBAAkBA,GAC3BC,GAAS3D,kBAAoBA,GAC7B2D,GAAS3E,IAA0B0B,EACnCiD,GAAS/E,IAAwB+D,GACjCgB,GAAS9E,IAAuBgE,GAChCc,GAAS7E,IAAqB8D,GAW3Be,EACX,CASA,SAASG,GAAuBlnO,GAC5B,MAAM+nK,EAAS,EAAS/nK,EAAQ+nK,QAAU/nK,EAAQ+nK,OAAS0xD,GACrDiC,EAAiB,EAAS17N,EAAQ07N,iBACpC,EAAQ17N,EAAQ07N,iBAChB35N,EAAc/B,EAAQ07N,kBACK,IAA3B17N,EAAQ07N,eACN17N,EAAQ07N,eACR3zD,EACA8zD,EAAU,EAAW77N,EAAQ67N,SAAW77N,EAAQ67N,aAAU1hO,EAC1D2hO,GAAc,EAAU97N,EAAQmnO,yBAClCt7G,EAAS7rH,EAAQmnO,yBACdnnO,EAAQmnO,sBAETpL,GAAe,EAAU/7N,EAAQonO,sBACnCv7G,EAAS7rH,EAAQonO,sBACdpnO,EAAQonO,mBAET3C,GAAe,EAAUzkO,EAAQykO,eACjCzkO,EAAQykO,aAERzI,IAAmBh8N,EAAQqnO,uBAC3B/sI,EAAYv4F,EAAc/B,EAAQs6F,WAAat6F,EAAQs6F,UAAY,CAAC,EACpEgtI,EAAqBtnO,EAAQsnO,mBAC7BpL,EAAkB,EAAWl8N,EAAQk8N,iBACrCl8N,EAAQk8N,qBACR/hO,EACAgiO,GAAkB,EAASn8N,EAAQunO,oBACL,QAA9BvnO,EAAQunO,kBAERnL,IAAoBp8N,EAAQwnO,oBAC5BvD,GAAgB,EAAUjkO,EAAQg2K,OAAQh2K,EAAQg2K,KAOxD,IAAIhb,EAAWh7J,EAAQg7J,SACvB,GAAIj5J,EAAc/B,EAAQynO,gBAAiB,CACvC,MAAMA,EAAiBznO,EAAQynO,eACzB3I,EAAUt8N,OAAOC,KAAKglO,GAC5BzsE,EAAW8jE,EAAQhmN,QAAO,CAACkiJ,EAAU+M,KACjC,MAAMvrK,EAAUw+J,EAAS+M,KAAY/M,EAAS+M,GAAU,CAAC,GAEzD,OADA,EAAOvrK,EAASirO,EAAe1/D,IACxB/M,CAAQ,GACfA,GAAY,CAAC,EACrB,CACA,MAAM,OAAE2nE,EAAM,OAAEkB,EAAM,mBAAEC,GAAuB9jO,EACzC27N,EAAkB37N,EAAQ27N,gBAC1BC,EAAgB57N,EAAQ47N,cACxBgH,EAAW5iO,EAAQ4iO,SACzB,MAAO,CACH76D,SACA2zD,iBACA1gE,WACA4nE,WACAjH,kBACAC,gBACAC,UACAC,cACAC,eACA0I,eACAzI,iBACA1hI,YACA48H,YAAaoQ,EACbpL,kBACAC,kBACAC,kBACAE,gBAAiBt8N,EAAQs8N,gBACzB2H,gBACAtB,SACAkB,SACAC,qBAER,CAOA,SAAS4D,GAAc1nO,EAAU,CAAC,EAAG4jO,GACjC,CACI,MAAMmD,EAAWpD,GAAeuD,GAAuBlnO,KACjD,WAAE2nO,GAAe3nO,EAEjB4nO,EAAU,CAEZ1nO,GAAI6mO,EAAS7mO,GAEb,UAAI6nK,GACA,OAAOg/D,EAASh/D,OAAOpvK,KAC3B,EACA,UAAIovK,CAAOztK,GACPysO,EAASh/D,OAAOpvK,MAAQ2B,CAC5B,EAEA,kBAAIohO,GACA,OAAOqL,EAASrL,eAAe/iO,KACnC,EACA,kBAAI+iO,CAAephO,GACfysO,EAASrL,eAAe/iO,MAAQ2B,CACpC,EAEA,YAAI0gK,GACA,OAAO+rE,EAAS/rE,SAASriK,KAC7B,EAEA,mBAAIgjO,GACA,OAAOoL,EAASpL,gBAAgBhjO,KACpC,EAEA,iBAAIijO,GACA,OAAOmL,EAASnL,cAAcjjO,KAClC,EAEA,oBAAIquO,GACA,OAAOD,EAASC,gBACpB,EAEA,aAAIxwC,GAGA,MAAO,CACH,WAAAghC,GACI,MAAO,EACX,EAER,EACA,aAAIhhC,CAAUl8L,GAEd,EAEA,WAAIuhO,GACA,OAAOkL,EAASxB,mBACpB,EACA,WAAI1J,CAAQ1uL,GACR45L,EAASvB,kBAAkBr4L,EAC/B,EAEA,yBAAIg6L,GACA,OAAO,EAAUJ,EAASjL,cACnBiL,EAASjL,YACViL,EAASjL,WACnB,EACA,yBAAIqL,CAAsB7sO,GACtBysO,EAASjL,YAAc,EAAUxhO,IAAQA,EAAMA,CACnD,EAEA,sBAAI8sO,GACA,OAAO,EAAUL,EAAShL,eACnBgL,EAAShL,aACVgL,EAAShL,YACnB,EACA,sBAAIqL,CAAmB9sO,GACnBysO,EAAShL,aAAe,EAAUzhO,IAAQA,EAAMA,CACpD,EAEA,aAAIggG,GACA,OAAOysI,EAASzsI,SACpB,EAEA,0BAAI+sI,GACA,OAAON,EAAS/K,cACpB,EACA,0BAAIqL,CAAuB/sO,GACvBysO,EAAS/K,eAAiB1hO,CAC9B,EAEA,mBAAI4hO,GACA,OAAO6K,EAAS1B,2BACpB,EACA,mBAAInJ,CAAgB/uL,GAChB45L,EAASzB,0BAA0Bn4L,EACvC,EAEA,QAAI6oI,GACA,OAAO+wD,EAAS9C,aACpB,EACA,QAAIjuD,CAAK17K,GACLysO,EAAS9C,cAAgB3pO,CAC7B,EAEA,qBAAIitO,GACA,OAAOR,EAAS5K,gBAAkB,OAAS,KAC/C,EACA,qBAAIoL,CAAkBjtO,GAClBysO,EAAS5K,gBAA0B,QAAR7hO,CAC/B,EAEA,uBAAIktO,GACA,OAAOT,EAAS3K,eACpB,EACA,uBAAIoL,CAAoBltO,GACpBysO,EAAS3K,gBAAkB9hO,CAC/B,EAEA,4BAAIutO,GAGA,OAAO,CACX,EACA,4BAAIA,CAAyBvtO,GAG7B,EAEA,sBAAIgtO,GACA,OAAOP,EAAS7P,aAAe,CAAC,CACpC,EAEA4Q,WAAYf,EAEZ,CAAAz1N,IAAK7M,GACD,MAAOgzN,EAAMC,EAAMwH,GAAQz6N,EACrBzE,EAAU,CAAC,EACjB,IAAIs3E,EAAO,KACPo8I,EAAQ,KACZ,IAAK,EAAS+D,GACV,MAAMsK,GAAgBd,GAAe9tE,kBAEzC,MAAM54J,EAAMk9N,EAiBZ,OAhBI,EAASC,GACT13N,EAAQ+nK,OAAS2vD,EAEZ,EAAQA,GACbpgJ,EAAOogJ,EAEF31N,EAAc21N,KACnBhE,EAAQgE,GAER,EAAQwH,GACR5nJ,EAAO4nJ,EAEFn9N,EAAcm9N,KACnBxL,EAAQwL,GAGL7+M,QAAQhhB,MAAM0nO,EAASz1N,EAAGy1N,EAAU,CACvCxsO,EACC+8E,GAAQo8I,GAAS,CAAC,EACnB1zN,GAER,EACA,EAAAirJ,IAAMxmJ,GACF,OAAO4b,QAAQhhB,MAAM0nO,EAAS97E,GAAI87E,EAAU,IAAItiO,GACpD,EAEA,EAAAsjO,IAAMtjO,GACF,MAAOgzN,EAAMC,EAAMwH,GAAQz6N,EACrBzE,EAAU,CAAEuwN,OAAQ,GAC1B,IAAIj5I,EAAO,KACPo8I,EAAQ,KACZ,IAAK,EAAS+D,GACV,MAAMsK,GAAgBd,GAAe9tE,kBAEzC,MAAM54J,EAAMk9N,EAuBZ,OAtBI,EAASC,GACT13N,EAAQ+nK,OAAS2vD,EAEZhyN,EAASgyN,GACd13N,EAAQuwN,OAASmH,EAEZ,EAAQA,GACbpgJ,EAAOogJ,EAEF31N,EAAc21N,KACnBhE,EAAQgE,GAER,EAASwH,GACTl/N,EAAQ+nK,OAASm3D,EAEZ,EAAQA,GACb5nJ,EAAO4nJ,EAEFn9N,EAAcm9N,KACnBxL,EAAQwL,GAGL7+M,QAAQhhB,MAAM0nO,EAASz1N,EAAGy1N,EAAU,CACvCxsO,EACC+8E,GAAQo8I,GAAS,CAAC,EACnB1zN,GAER,EAEA,EAAAysE,CAAGlyE,EAAKwtK,GACJ,OAAOg/D,EAASt6J,GAAGlyE,EAAKwtK,EAC5B,EAEA,EAAAy+D,CAAGjsO,GACC,OAAOwsO,EAASP,GAAGjsO,EACvB,EAEA,gBAAA6rO,CAAiBr+D,GACb,OAAOg/D,EAASX,iBAAiBr+D,EACrC,EAEA,gBAAA0+D,CAAiB1+D,EAAQvrK,GACrBuqO,EAASN,iBAAiB1+D,EAAQvrK,EACtC,EAEA,kBAAA0mO,CAAmBn7D,EAAQvrK,GACvBuqO,EAAS7D,mBAAmBn7D,EAAQvrK,EACxC,EAEA,CAAAgQ,IAAK/H,GACD,OAAO4b,QAAQhhB,MAAM0nO,EAASv6N,EAAGu6N,EAAU,IAAItiO,GACnD,EAEA,iBAAAkiO,CAAkB5+D,GACd,OAAOg/D,EAASJ,kBAAkB5+D,EACtC,EAEA,iBAAA6+D,CAAkB7+D,EAAQ1V,GACtB00E,EAASH,kBAAkB7+D,EAAQ1V,EACvC,EAEA,mBAAA8wE,CAAoBp7D,EAAQ1V,GACxB00E,EAAS5D,oBAAoBp7D,EAAQ1V,EACzC,EAEA,CAAAhjJ,IAAK5K,GACD,OAAO4b,QAAQhhB,MAAM0nO,EAAS13N,EAAG03N,EAAU,IAAItiO,GACnD,EAEA,eAAAoiO,CAAgB9+D,GACZ,OAAOg/D,EAASF,gBAAgB9+D,EACpC,EAEA,eAAA++D,CAAgB/+D,EAAQ1V,GACpB00E,EAASD,gBAAgB/+D,EAAQ1V,EACrC,EAEA,iBAAA+wE,CAAkBr7D,EAAQ1V,GACtB00E,EAAS3D,kBAAkBr7D,EAAQ1V,EACvC,EAGA,cAAA21E,CAAetR,EAAQC,GAGnB,OAAQ,CACZ,GAcJ,OAZAiR,EAAQD,WAAaA,EAYdC,CACX,CACJ,CAGA,MAAMK,GAAkB,CACpB7+M,IAAK,CACDpuB,KAAM,CAACytB,OAAQjmB,SAEnBulK,OAAQ,CACJ/sK,KAAMytB,QAEVhV,MAAO,CACHzY,KAAMytB,OAENvqB,UAAY5D,GAAyC,WAARA,GAA4B,WAARA,EACjEojD,QAAS,UAEbm6K,KAAM,CACF78N,KAAMwH,SAId,SAAS0lO,IAET,MAAEnzI,GACFtyF,GACI,GAAoB,IAAhBA,EAAKpF,QAA4B,YAAZoF,EAAK,GAAkB,CAE5C,MAAM8H,EAAMwqF,EAAMr3C,QAAUq3C,EAAMr3C,UAAY,GAE9C,OAAOnzC,EAAIuO,QAAO,CAACsoF,EAAM1hE,IACd,IACA0hE,KAEC1hE,EAAQ1kC,OAAS,MAAW0kC,EAAQ62D,SAAW,CAAC72D,KAGzD,GACP,CAGI,OAAOj9B,EAAKqW,QAAO,CAAC7G,EAAK1X,KACrB,MAAM6mG,EAAOrM,EAAMx6F,GAInB,OAHI6mG,IACAnvF,EAAI1X,GAAO6mG,KAERnvF,CAAG,GACX,CAAC,EAEZ,CAEA,SAASk2N,GAAmB/+M,GACxB,OAAO,KACX,CAEA,MAAMg/M,IAAgC,SAAgB,CAElDhnO,KAAM,SACNie,MAAO,EAAO,CACVgpN,QAAS,CACLrtO,KAAMytB,OACNy8K,UAAU,GAEdqrB,OAAQ,CACJv1N,KAAM,CAAC6P,OAAQ4d,QAEfvqB,UAAY5D,GAAQoL,EAASpL,KAAS4xB,MAAM5xB,KAEjD2tO,IAGH,KAAA3rI,CAAMj9E,EAAO3jB,GACT,MAAM,MAAEq5F,EAAK,MAAE3sC,GAAU1sD,EAEnBm8N,EAAOx4M,EAAMw4M,MACfyQ,GAAQ,CACJC,SAAUlpN,EAAM5L,MAChB+0N,gBAAgB,IAExB,MAAO,KACH,MAAM/lO,EAAOD,OAAOC,KAAKsyF,GAAOp3E,QAAOpjB,GAAe,MAARA,IACxCyF,EAAU,CAAC,EACbqf,EAAM0oJ,SACN/nK,EAAQ+nK,OAAS1oJ,EAAM0oJ,aAEN5tK,IAAjBklB,EAAMkxM,SACNvwN,EAAQuwN,OAAS,EAASlxM,EAAMkxM,SAAWlxM,EAAMkxM,OAASlxM,EAAMkxM,QAEpE,MAAMt+M,EAAMi2N,GAAkBxsO,EAAS+G,GAEjC8zF,EAAWshI,EAAKmK,IAAsB3iN,EAAMgpN,QAASp2N,EAAKjS,GAC1DyoO,EAAgB,EAAO,CAAC,EAAGrgL,GAC3Bh/B,EAAM,EAAS/J,EAAM+J,MAAQ,EAAS/J,EAAM+J,KAC5C/J,EAAM+J,IACN++M,KACN,OAAO,KAAA/nO,GAAEgpB,EAAKq/M,EAAelyI,EAAS,CAE9C,IAuDEmyI,GAAcN,GAGpB,SAASnmI,GAAQngG,GACb,OAAO,EAAQA,KAAY,EAASA,EAAO,GAC/C,CACA,SAAS6mO,GAAgBtpN,EAAO3jB,EAASktO,EAAUC,GAC/C,MAAM,MAAE9zI,EAAK,MAAE3sC,GAAU1sD,EACzB,MAAO,KACH,MAAMsE,EAAU,CAAEoqJ,MAAM,GACxB,IAAInL,EAAY,CAAC,EACb5/H,EAAM0oJ,SACN/nK,EAAQ+nK,OAAS1oJ,EAAM0oJ,QAEvB,EAAS1oJ,EAAMgzI,QACfryJ,EAAQzF,IAAM8kB,EAAMgzI,OAEf,EAAShzI,EAAMgzI,UAEhB,EAAShzI,EAAMgzI,OAAO93J,OAEtByF,EAAQzF,IAAM8kB,EAAMgzI,OAAO93J,KAG/B0kJ,EAAYz8I,OAAOC,KAAK4c,EAAMgzI,QAAQv5I,QAAO,CAAC9Y,EAASmC,IAC5CymO,EAAS13N,SAAS/O,GACnB,EAAO,CAAC,EAAGnC,EAAS,CAAE,CAACmC,GAAOkd,EAAMgzI,OAAOlwJ,KAC3CnC,GACP,CAAC,IAER,MAAM6E,EAAQgkO,EAAkBxpN,EAAM1mB,MAAOqH,EAASi/I,GACtD,IAAI1oD,EAAW,CAACv2F,EAAQzF,KACpB,EAAQsK,GACR0xF,EAAW1xF,EAAMyN,KAAI,CAAC83I,EAAMxsJ,KACxB,MAAMwjG,EAAOrM,EAAMq1D,EAAKpvJ,MAClB8nB,EAAOs+E,EACPA,EAAK,CAAE,CAACgpD,EAAKpvJ,MAAOovJ,EAAKzxJ,MAAOiF,QAAOiH,UACvC,CAACulJ,EAAKzxJ,OAIZ,OAHIspG,GAAQn/E,KACRA,EAAK,GAAGvoB,IAAM,GAAG6vJ,EAAKpvJ,QAAQ4C,KAE3BklB,CAAI,IAGV,EAASje,KACd0xF,EAAW,CAAC1xF,IAEhB,MAAM4jO,EAAgB,EAAO,CAAC,EAAGrgL,GAC3Bh/B,EAAM,EAAS/J,EAAM+J,MAAQ,EAAS/J,EAAM+J,KAC5C/J,EAAM+J,IACN++M,KACN,OAAO,KAAA/nO,GAAEgpB,EAAKq/M,EAAelyI,EAAS,CAE9C,CAEA,MAAMuyI,IAAiC,SAAgB,CAEnD1nO,KAAM,SACNie,MAAO,EAAO,CACV1mB,MAAO,CACHqC,KAAM6P,OACNq6L,UAAU,GAEd7yC,OAAQ,CACJr3J,KAAM,CAACytB,OAAQjmB,UAEpBylO,IAGH,KAAA3rI,CAAMj9E,EAAO3jB,GACT,MAAMm8N,EAAOx4M,EAAMw4M,MACfyQ,GAAQ,CACJC,SAAU,SACVC,gBAAgB,IAExB,OAAOG,GAAgBtpN,EAAO3jB,EAASukO,IAA4B,IAAIx7N,IAEvEozN,EAAKqK,OAAsBz9N,IAC/B,IAuBE66N,GAAewJ,GAGfC,IAAoC,SAAgB,CAEtD3nO,KAAM,SACNie,MAAO,EAAO,CACV1mB,MAAO,CACHqC,KAAM,CAAC6P,OAAQlF,MACfu/L,UAAU,GAEd7yC,OAAQ,CACJr3J,KAAM,CAACytB,OAAQjmB,UAEpBylO,IAGH,KAAA3rI,CAAMj9E,EAAO3jB,GACT,MAAMm8N,EAAOx4M,EAAMw4M,MACfyQ,GAAQ,CACJC,SAAU,SACVC,gBAAgB,IAExB,OAAOG,GAAgBtpN,EAAO3jB,EAASikO,IAA8B,IAAIl7N,IAEzEozN,EAAKoK,OAAwBx9N,IACjC,IAmBEukO,GAAiBD,GAGvB,SAASE,GAAcpR,EAAMl8N,GACzB,MAAMutO,EAAerR,EACrB,GAAkB,gBAAdA,EAAK34J,KACL,OAAQgqK,EAAaC,cAAcxtO,IAAak8N,EAAKttK,OAEpD,CACD,MAAMq9K,EAAUsB,EAAaC,cAAcxtO,GAC3C,OAAkB,MAAXisO,EACDA,EAAQE,WACRjQ,EAAKttK,OAAOu9K,UACtB,CACJ,CACA,SAASsB,GAAYvR,GACjB,MAAMr3E,EAAY7lD,IACd,MAAM,SAAEh/F,EAAQ,UAAE2+F,EAAS,MAAE3hG,GAAUgiG,EAEvC,IAAKh/F,IAAaA,EAAS4mG,EACvB,MAAMw/H,GAAgBd,GAAeS,kBAEzC,MAAMqF,EAAWkC,GAAcpR,EAAMl8N,EAAS4mG,GAI9C,MAAM8mI,EAAcC,GAAW3wO,GAC/B,MAAO,CACH0nB,QAAQhhB,MAAM0nO,EAASz1N,EAAGy1N,EAAU,IAAIwC,GAAWF,KACnDtC,EACH,EAEC73N,EAAW,CAACgoF,EAAIyD,KAClB,MAAOgjB,EAAaopH,GAAYvmF,EAAS7lD,GACrCi2B,GAAainG,EAAKttK,SAAWw8K,IAE7B7vI,EAAGsyI,eAAgB,SAAMzC,EAASh/D,QAAQ,KACtCptE,EAAQh/F,UAAYg/F,EAAQh/F,SAASynG,cAAc,KAG3DlM,EAAG4wI,WAAaf,EAChB7vI,EAAGymB,YAAcA,CAAW,EAE1Bm3F,EAAc59G,IACZ05B,GAAa15B,EAAGsyI,gBAChBtyI,EAAGsyI,gBACHtyI,EAAGsyI,mBAAgBrvO,SACZ+8F,EAAGsyI,eAEVtyI,EAAG4wI,aACH5wI,EAAG4wI,gBAAa3tO,SACT+8F,EAAG4wI,WACd,EAEE/1N,EAAS,CAACmlF,GAAMv+F,YAClB,GAAIu+F,EAAG4wI,WAAY,CACf,MAAMf,EAAW7vI,EAAG4wI,WACduB,EAAcC,GAAW3wO,GAC/Bu+F,EAAGymB,YAAct9F,QAAQhhB,MAAM0nO,EAASz1N,EAAGy1N,EAAU,IAC9CwC,GAAWF,IAEtB,GAEEI,EAAe9uI,IACjB,MAAOgjB,GAAe6iC,EAAS7lD,GAC/B,MAAO,CAAEgjB,cAAa,EAE1B,MAAO,CACH/Y,QAAS11F,EACTk2F,UAAW0vG,EACXhwG,aAAc/yF,EACd03N,cAER,CACA,SAASH,GAAW3wO,GAChB,GAAI,EAASA,GACT,MAAO,CAAE2M,KAAM3M,GAEd,GAAIoJ,EAAcpJ,GAAQ,CAC3B,KAAM,SAAUA,GACZ,MAAMopO,GAAgBd,GAAeK,eAAgB,QAEzD,OAAO3oO,CACX,CAEI,MAAMopO,GAAgBd,GAAeM,cAE7C,CACA,SAASgI,GAAW5wO,GAChB,MAAM,KAAE2M,EAAI,OAAEyiK,EAAM,KAAEtjK,EAAI,OAAEiyN,EAAM,OAAEnG,GAAW53N,EACzCqH,EAAU,CAAC,EACX0zN,EAAQjvN,GAAQ,CAAC,EAUvB,OATI,EAASsjK,KACT/nK,EAAQ+nK,OAASA,GAEjBriK,EAASgxN,KACT12N,EAAQuwN,OAASmG,GAEjBhxN,EAAS6qN,KACTvwN,EAAQuwN,OAASA,GAEd,CAACjrN,EAAMouN,EAAO1zN,EACzB,CAEA,SAASX,GAAMmoG,EAAKqwH,KAAS73N,GACzB,MAAM0pO,EAAgB3nO,EAAc/B,EAAQ,IACtCA,EAAQ,GACR,CAAC,EACD2pO,IAAyBD,EAAcC,qBACvCC,GAAgB,EAAUF,EAAcE,gBACxCF,EAAcE,cAOhBA,IACA,CAAED,EAA0C,OAAnBjB,GAAYtnO,KAAe,SAAS/G,SAAQ+G,GAAQomG,EAAIr1F,UAAU/Q,EAAMsnO,MACjG,CAACpJ,GAAal+N,KAAM,SAAS/G,SAAQ+G,GAAQomG,EAAIr1F,UAAU/Q,EAAMk+N,MACjE,CAAC0J,GAAe5nO,KAAM,SAAS/G,SAAQ+G,GAAQomG,EAAIr1F,UAAU/Q,EAAM4nO,OAInExhI,EAAIsB,UAAU,IAAKsgI,GAAYvR,GAEvC,CAqYA,SAASgS,GAAYC,EAAS/C,EAAUlP,GACpC,MAAO,CACH,YAAA1zH,GACI,MAAMxoG,GAAW,WAEjB,IAAKA,EACD,MAAMomO,GAAgBd,GAAeS,kBAEzC,MAAM1hO,EAAUvD,KAAKymG,SACrB,GAAIljG,EAAQ63N,KAAM,CACd,MAAMkS,EAAc/pO,EAAQ63N,KAK5B,GAJI73N,EAAQ2iO,SACRoH,EAAYpH,OAAS3iO,EAAQ2iO,QAEjCoH,EAAYlG,OAASkD,EACjBtqO,OAASA,KAAKumG,MAEdvmG,KAAKutO,MAAQC,GAAcH,EAASC,OAEnC,CACDA,EAAYjG,oBAAqB,EACjCiG,EAAYpC,WAAa9P,EAAKqS,gBAE9BztO,KAAKutO,MAAQtC,GAAcqC,GAE3B,MAAMI,EAAW1tO,KAAKutO,MAClBG,EAASxC,aACTwC,EAASC,WAAaD,EAASxC,WAAWlrO,KAAKutO,OAEvD,CACJ,MACK,GAAIhqO,EAAQ2iO,OACb,GAAIlmO,OAASA,KAAKumG,MAEdvmG,KAAKutO,MAAQC,GAAcH,EAAS9pO,OAEnC,CAEDvD,KAAKutO,MAAQtC,GAAc,CACvB/E,OAAQ3iO,EAAQ2iO,OAChBmB,oBAAoB,EACpB6D,WAAY9P,EAAKqS,gBACjBrG,OAAQkD,IAGZ,MAAMoD,EAAW1tO,KAAKutO,MAClBG,EAASxC,aACTwC,EAASC,WAAaD,EAASxC,WAAWlrO,KAAKutO,OAEvD,MAIAvtO,KAAKutO,MAAQF,EAEb9pO,EAAQijO,cACRH,GAAoBiE,EAAU/mO,EAASA,GAG3CvD,KAAK4tO,GAAK,IAAI5lO,IAAShI,KAAKutO,MAAM14N,KAAK7M,GACvChI,KAAK6tO,IAAM,IAAI7lO,IAAShI,KAAKutO,MAAM/+E,MAAMxmJ,GACzChI,KAAK8tO,IAAM,IAAI9lO,IAAShI,KAAKutO,MAAMjC,MAAMtjO,GACzChI,KAAK+tO,IAAM,CAACjwO,EAAKwtK,IAAWtrK,KAAKutO,MAAMv9J,GAAGlyE,EAAKwtK,GAC/CtrK,KAAKguO,GAAK,IAAIhmO,IAAShI,KAAKutO,MAAMx9N,KAAK/H,GACvChI,KAAKiuO,GAAK,IAAIjmO,IAAShI,KAAKutO,MAAM36N,KAAK5K,GACvChI,KAAKkuO,IAAOpwO,GAAQkC,KAAKutO,MAAMxD,GAAGjsO,GAClCs9N,EAAK+S,cAAcjvO,EAAUc,KAAKutO,MACtC,EACA,OAAAzvI,GAEQ,CAWR,EACA,SAAA6K,GACI,MAAMzpG,GAAW,WAEjB,IAAKA,EACD,MAAMomO,GAAgBd,GAAeS,kBAEzC,MAAMyI,EAAW1tO,KAAKutO,aAefvtO,KAAK4tO,UACL5tO,KAAK6tO,WACL7tO,KAAK8tO,WACL9tO,KAAK+tO,WACL/tO,KAAKguO,UACLhuO,KAAKiuO,UACLjuO,KAAKkuO,IACRR,EAASC,aACTD,EAASC,oBACFD,EAASC,kBACTD,EAASxC,YAEpB9P,EAAKgT,iBAAiBlvO,UACfc,KAAKutO,KAChB,EAER,CACA,SAASC,GAActzN,EAAG3W,GACtB2W,EAAEoxJ,OAAS/nK,EAAQ+nK,QAAUpxJ,EAAEoxJ,OAC/BpxJ,EAAE+kN,eAAiB17N,EAAQ07N,gBAAkB/kN,EAAE+kN,eAC/C/kN,EAAEklN,QAAU77N,EAAQ67N,SAAWllN,EAAEklN,QACjCllN,EAAEwwN,sBACEnnO,EAAQmnO,uBAAyBxwN,EAAEywN,mBACvCzwN,EAAEywN,mBAAqBpnO,EAAQonO,oBAAsBzwN,EAAEywN,mBACvDzwN,EAAE0wN,uBACErnO,EAAQqnO,wBAA0B1wN,EAAE0wN,uBACxC1wN,EAAEulN,gBAAkBl8N,EAAQk8N,iBAAmBvlN,EAAEulN,gBACjDvlN,EAAE4wN,kBAAoBvnO,EAAQunO,mBAAqB5wN,EAAE4wN,kBACrD5wN,EAAE6wN,oBAAsBxnO,EAAQwnO,qBAAuB7wN,EAAE6wN,oBACzD7wN,EAAEq/J,KAAOh2K,EAAQg2K,MAAQr/J,EAAEq/J,KAC3Br/J,EAAEmxN,WAAW3F,IAAsBniO,EAAQsnO,oBAAsB3wN,EAAE2wN,oBACnE,MAAMtsE,EAAW0nE,GAAkB/rN,EAAEoxJ,OAAQ,CACzC/M,SAAUh7J,EAAQg7J,SAClB2nE,OAAQ3iO,EAAQ2iO,SASpB,OAPAngO,OAAOC,KAAKu4J,GAAU3gK,SAAQ0tK,GAAUpxJ,EAAEusN,mBAAmBn7D,EAAQ/M,EAAS+M,MAC1E/nK,EAAQ27N,iBACRn5N,OAAOC,KAAKzC,EAAQ27N,iBAAiBthO,SAAQ0tK,GAAUpxJ,EAAEwsN,oBAAoBp7D,EAAQ/nK,EAAQ27N,gBAAgB5zD,MAE7G/nK,EAAQ47N,eACRp5N,OAAOC,KAAKzC,EAAQ47N,eAAevhO,SAAQ0tK,GAAUpxJ,EAAEysN,kBAAkBr7D,EAAQ/nK,EAAQ47N,cAAc7zD,MAEpGpxJ,CACX,CAWA,MAAMm0N,GACS,EAAW,mBAE1B,SAASC,GAAW/qO,EAAU,CAAC,EAAG4jO,GAE9B,MAAMoH,EAAe5K,yBAA2B,EAAUpgO,EAAQirO,QACxDjrO,EAAQirO,OACR7K,wBAEJ8K,GAAoB,EAAUlrO,EAAQmrO,kBACtCnrO,EAAQmrO,gBAGRC,GAAqBhL,0BAA2B4K,KAC1ChrO,EAAQqrO,iBAEdC,EAAc,IAAIxqN,KACjByqN,EAAaC,GAAYC,GAAazrO,EAASgrO,GAChDxyB,EAAwB,EAAkE,IAMhG,SAAS2wB,EAAch3N,GACnB,OAAOm5N,EAAYryN,IAAI9G,IAAc,IACzC,CACA,SAASy4N,EAAcz4N,EAAWxW,GAC9B2vO,EAAYpxN,IAAI/H,EAAWxW,EAC/B,CACA,SAASkvO,EAAiB14N,GACtBm5N,EAAY3pM,OAAOxvB,EACvB,CACA,CACI,MAAM0lN,EAAO,CAET,QAAI34J,GACA,OAAOkhK,yBAA2B4K,EAC5B,SACA,aACV,EAEA,oBAAIK,GACA,OAAOD,CACX,EAEA,aAAMxiI,CAAQpB,KAAQxnG,GASlB,GAHAwnG,EAAIkkI,oBAAsBlzB,EAC1BhxG,EAAIhD,QAAQgD,EAAIkkI,oBAAqB7T,GAEjC91N,EAAc/B,EAAQ,IAAK,CAC3B,MAAM0I,EAAO1I,EAAQ,GACrB63N,EAAK8T,iBACDjjO,EAAKijO,iBACT9T,EAAKqS,gBACDxhO,EAAKwhO,eACb,CAEA,IAAI0B,EAAuB,MACtBZ,GAAgBE,IACjBU,EAAuBC,GAAmBrkI,EAAKqwH,EAAKttK,SAGpD41K,2BACA9gO,GAAMmoG,EAAKqwH,KAAS73N,GAGpBogO,yBAA2B4K,GAC3BxjI,EAAIqB,MAAMghI,GAAY2B,EAAUA,EAAS1D,WAAYjQ,IAGzD,MAAMiU,EAAatkI,EAAI4B,QACvB5B,EAAI4B,QAAU,KACVwiI,GAAwBA,IACxB/T,EAAKkU,UACLD,GAAY,CAoBpB,EAEA,UAAIvhL,GACA,OAAOihL,CACX,EACA,OAAAO,GACIR,EAAYxmJ,MAChB,EAEAumJ,cAEAnC,gBAEAyB,gBAEAC,oBAEJ,OAAOhT,CACX,CACJ,CAEA,SAASyQ,GAAQtoO,EAAU,CAAC,GACxB,MAAMrE,GAAW,WACjB,GAAgB,MAAZA,EACA,MAAMomO,GAAgBd,GAAeE,wBAEzC,IAAKxlO,EAAS6lG,MACiB,MAA3B7lG,EAAS40F,WAAWiX,MACnB7rG,EAAS40F,WAAWiX,IAAIkkI,oBACzB,MAAM3J,GAAgBd,GAAeG,eAEzC,MAAMvJ,EAAOmU,GAAgBrwO,GACvBonO,EAAKkJ,GAAkBpU,GACvBmL,EAAmBH,GAAoBlnO,GACvC8X,EAAQy4N,GAASlsO,EAASgjO,GAChC,GAAI5C,yBAEkB,WAAdvI,EAAK34J,OAAsBl/D,EAAQwoO,eAAgB,CACnD,IAAK3Q,EAAKwT,iBACN,MAAMtJ,GAAgBd,GAAeI,8BAEzC,OAAO8K,GAAiBxwO,EAAU8X,EAAOsvN,EAAI/iO,EACjD,CAEJ,GAAc,WAAVyT,EAEA,OADAqvN,GAAoBC,EAAI/iO,EAASgjO,GAC1BD,EAEX,GAAc,WAAVtvN,EAAoB,CAEpB,IAAIszN,EAAWqF,GAAYvU,EAAMl8N,EAAUqE,EAAQwoO,gBAOnD,OANgB,MAAZzB,IAIAA,EAAWhE,GAERgE,CACX,CACA,MAAMmC,EAAerR,EACrB,IAAIkP,EAAWmC,EAAaC,cAAcxtO,GAC1C,GAAgB,MAAZorO,EAAkB,CAClB,MAAMsF,EAAkB,EAAO,CAAC,EAAGrsO,GAC/B,WAAYgjO,IACZqJ,EAAgB1J,OAASK,EAAiBL,QAE1CI,IACAsJ,EAAgBxI,OAASd,GAE7BgE,EAAWpD,GAAe0I,GACtBnD,EAAayC,mBACb5E,EAAS1E,IACL6G,EAAayC,iBAAiB5E,IAEtCuF,GAAepD,EAAcvtO,EAAUorO,GACvCmC,EAAa0B,cAAcjvO,EAAUorO,EACzC,CACA,OAAOA,CACX,CA0BA,SAAS0E,GAAazrO,EAASusO,EAAY3I,GAEvC,MAAMnwN,GAAQ,WACd,CACI,MAAMpK,EAAM+2N,yBAA2BmM,EACjC94N,EAAMkxE,KAAI,IAAM+iJ,GAAc1nO,KAC9ByT,EAAMkxE,KAAI,IAAMg/I,GAAe3jO,KACrC,GAAW,MAAPqJ,EACA,MAAM04N,GAAgBd,GAAeS,kBAEzC,MAAO,CAACjuN,EAAOpK,EACnB,CACJ,CACA,SAAS2iO,GAAgBrwO,GACrB,CACI,MAAMk8N,GAAO,SAAQl8N,EAAS6lG,KAExBspI,GADAnvO,EAAS40F,WAAWiX,IAAIkkI,qBAG9B,IAAK7T,EACD,MAAMkK,GAAiBpmO,EAAS6lG,KAE1By/H,GAAeQ,2BADfR,GAAeS,kBAGzB,OAAO7J,CACX,CACJ,CAEA,SAASqU,GAASlsO,EAASgjO,GAEvB,OAAO5Z,EAAcppN,GACd,WAAYgjO,EACT,QACA,SACHhjO,EAAQuoO,SAELvoO,EAAQuoO,SADR,OAEd,CACA,SAAS0D,GAAkBpU,GAEvB,MAAqB,gBAAdA,EAAK34J,KACF24J,EAAKttK,OACLstK,EAAKttK,OAAOu9K,UAE1B,CACA,SAASsE,GAAYvU,EAAM/1N,EAAQ0qO,GAAe,GAC9C,IAAIzF,EAAW,KACf,MAAM9vM,EAAOn1B,EAAOm1B,KACpB,IAAIyI,EAAU+sM,GAA2B3qO,EAAQ0qO,GACjD,MAAkB,MAAX9sM,EAAiB,CACpB,MAAMwpM,EAAerR,EACrB,GAAkB,gBAAdA,EAAK34J,KACL6nK,EAAWmC,EAAaC,cAAczpM,QAGtC,GAAI0gM,wBAAyB,CACzB,MAAMwH,EAAUsB,EAAaC,cAAczpM,GAC5B,MAAXkoM,IACAb,EAAWa,EACNE,WACD0E,GACAzF,IACCA,EAAS3E,MAEV2E,EAAW,MAGvB,CAEJ,GAAgB,MAAZA,EACA,MAEJ,GAAI9vM,IAASyI,EACT,MAEJA,EAAUA,EAAQpI,MACtB,CACA,OAAOyvM,CACX,CACA,SAAS0F,GAA2B3qO,EAAQ0qO,GAAe,GACvD,OAAc,MAAV1qO,EACO,KAIC0qO,GAEF1qO,EAAOkuF,MAAMqE,KADbvyF,EAAOw1B,MAGrB,CACA,SAASg1M,GAAezU,EAAM/1N,EAAQilO,IAG9B,UAAU,KAEF,CAEkB,GAQvBjlO,IACH,UAAY,KAER,MAAM4qO,EAAY3F,EAUlBlP,EAAKgT,iBAAiB/oO,GAEtB,MAAMiqO,EAAUW,EAAUrK,IACtB0J,IACAA,WACOW,EAAUrK,IACrB,GACDvgO,EAEX,CACA,SAASqqO,GAAiBxwO,EAAU8X,EAAOwjB,EAAMj3B,EAAU,CAAC,GAExD,MAAM2sO,EAAyB,UAAVl5N,EACfi5N,GAAY,SAAW,MAC7B,GAAIC,GACAhxO,EAASoxF,QACPpxF,EAASoxF,MAAMmW,SAAS20H,OAAQl8N,EAASoxF,MAAMmW,SAASy/H,OAC1D,MAAMZ,GAAgBd,GAAeY,8CAEzC,MAAMmC,EAAiB,EAAUhkO,EAAQikO,eACnCjkO,EAAQikO,eACP,EAASjkO,EAAQ+nK,QAClB0zD,GAAU,UAEfkR,GAAgB3I,EACX/sM,EAAK8wI,OAAOpvK,MACZ,EAASqH,EAAQ+nK,QACb/nK,EAAQ+nK,OACR0xD,IACJyK,GAAkB,UAEvByI,GAAgB3I,EACX/sM,EAAKykM,eAAe/iO,MACpB,EAASqH,EAAQ07N,iBACf,EAAQ17N,EAAQ07N,iBAChB35N,EAAc/B,EAAQ07N,kBACK,IAA3B17N,EAAQ07N,eACN17N,EAAQ07N,eACRD,EAAQ9iO,OACZwrO,GAAY,SAAIzB,GAAkBjH,EAAQ9iO,MAAOqH,IAEjDokO,GAAmB,SAAIriO,EAAc/B,EAAQ27N,iBAC7C37N,EAAQ27N,gBACR,CAAE,CAACF,EAAQ9iO,OAAQ,CAAC,IAEpB0rO,GAAiB,SAAItiO,EAAc/B,EAAQ47N,eAC3C57N,EAAQ47N,cACR,CAAE,CAACH,EAAQ9iO,OAAQ,CAAC,IAEpB2rO,EAAeqI,EACf11M,EAAK6kM,aACL,EAAU97N,EAAQ87N,eAAgBjwG,EAAS7rH,EAAQ87N,cAC/C97N,EAAQ87N,YAGZyI,EAAgBoI,EAChB11M,EAAK8kM,cACL,EAAU/7N,EAAQ+7N,gBAAiBlwG,EAAS7rH,EAAQ+7N,eAChD/7N,EAAQ+7N,aAGZyI,EAAgBmI,EAChB11M,EAAKwtM,cACL,EAAUzkO,EAAQykO,eACdzkO,EAAQykO,aAGZC,IAAoB1kO,EAAQg8N,eAE5B2I,EAAW,EAAW3kO,EAAQ67N,SAAW77N,EAAQ67N,QAAU,KAE3DgJ,EAAmB,EAAW7kO,EAAQk8N,iBACtCl8N,EAAQk8N,gBACR,KAEA4I,EAAmB6H,EACnB11M,EAAKklM,iBACL,EAAUn8N,EAAQm8N,kBACdn8N,EAAQm8N,gBAEZ4I,IAAqB/kO,EAAQo8N,gBAE7B4I,EAAa2H,EACb11M,EAAKqjE,UACLv4F,EAAc/B,EAAQs6F,WAClBt6F,EAAQs6F,UACR,CAAC,EAEL2qI,EAAejlO,EAAQk3N,aAAgByV,GAAgB11M,EAAKigM,YAElE,SAASkO,IACL,MAAO,CACH3J,EAAQ9iO,MACRurO,EAAgBvrO,MAChBwrO,EAAUxrO,MACVyrO,EAAiBzrO,MACjB0rO,EAAe1rO,MAEvB,CAEA,MAAMovK,GAAS,SAAS,CACpB9uJ,IAAK,IACMyzN,EAAU/zO,MAAQ+zO,EAAU/zO,MAAMovK,OAAOpvK,MAAQ8iO,EAAQ9iO,MAEpEuhB,IAAK5f,IACGoyO,EAAU/zO,QACV+zO,EAAU/zO,MAAMovK,OAAOpvK,MAAQ2B,GAEnCmhO,EAAQ9iO,MAAQ2B,CAAG,IAIrBohO,GAAiB,SAAS,CAC5BziN,IAAK,IACMyzN,EAAU/zO,MACX+zO,EAAU/zO,MAAM+iO,eAAe/iO,MAC/BurO,EAAgBvrO,MAE1BuhB,IAAK5f,IACGoyO,EAAU/zO,QACV+zO,EAAU/zO,MAAM+iO,eAAe/iO,MAAQ2B,GAE3C4pO,EAAgBvrO,MAAQ2B,CAAG,IAI7B0gK,GAAW,UAAS,IAClB0xE,EAAU/zO,MAEH+zO,EAAU/zO,MAAMqiK,SAASriK,MAIzBwrO,EAAUxrO,QAGnBgjO,GAAkB,UAAS,IAAMyI,EAAiBzrO,QAClDijO,GAAgB,UAAS,IAAMyI,EAAe1rO,QACpD,SAAS0sO,IACL,OAAOqH,EAAU/zO,MACX+zO,EAAU/zO,MAAM0sO,4BAChBR,CACV,CACA,SAASS,EAA0Bn4L,GAC3Bu/L,EAAU/zO,OACV+zO,EAAU/zO,MAAM2sO,0BAA0Bn4L,EAElD,CACA,SAASo4L,IACL,OAAOmH,EAAU/zO,MAAQ+zO,EAAU/zO,MAAM4sO,oBAAsBZ,CACnE,CACA,SAASa,EAAkBr4L,GACnBu/L,EAAU/zO,OACV+zO,EAAU/zO,MAAM6sO,kBAAkBr4L,EAE1C,CACA,SAASy/L,EAAazsO,GAElB,OADAilO,IACOjlO,GACX,CACA,SAASmR,KAAK7M,GACV,OAAOioO,EAAU/zO,MACXi0O,GAAa,IAAMvsN,QAAQhhB,MAAMqtO,EAAU/zO,MAAM2Y,EAAG,KAAM,IAAI7M,MAC9DmoO,GAAa,IAAM,IAC7B,CACA,SAAS3hF,KAAMxmJ,GACX,OAAOioO,EAAU/zO,MACX0nB,QAAQhhB,MAAMqtO,EAAU/zO,MAAMsyJ,GAAI,KAAM,IAAIxmJ,IAC5C,EACV,CACA,SAAS+H,KAAK/H,GACV,OAAOioO,EAAU/zO,MACXi0O,GAAa,IAAMvsN,QAAQhhB,MAAMqtO,EAAU/zO,MAAM6T,EAAG,KAAM,IAAI/H,MAC9DmoO,GAAa,IAAM,IAC7B,CACA,SAASv9N,KAAK5K,GACV,OAAOioO,EAAU/zO,MACXi0O,GAAa,IAAMvsN,QAAQhhB,MAAMqtO,EAAU/zO,MAAM0W,EAAG,KAAM,IAAI5K,MAC9DmoO,GAAa,IAAM,IAC7B,CACA,SAASpG,EAAGjsO,GACR,OAAOmyO,EAAU/zO,MAAQ+zO,EAAU/zO,MAAM6tO,GAAGjsO,GAAO,CAAC,CACxD,CACA,SAASkyE,EAAGlyE,EAAKwtK,GACb,QAAO2kE,EAAU/zO,OAAQ+zO,EAAU/zO,MAAM8zE,GAAGlyE,EAAKwtK,EACrD,CACA,SAASq+D,EAAiBr+D,GACtB,OAAO2kE,EAAU/zO,MAAQ+zO,EAAU/zO,MAAMytO,iBAAiBr+D,GAAU,CAAC,CACzE,CACA,SAAS0+D,EAAiB1+D,EAAQvrK,GAC1BkwO,EAAU/zO,QACV+zO,EAAU/zO,MAAM8tO,iBAAiB1+D,EAAQvrK,GACzC2nO,EAAUxrO,MAAMovK,GAAUvrK,EAElC,CACA,SAAS0mO,EAAmBn7D,EAAQvrK,GAC5BkwO,EAAU/zO,OACV+zO,EAAU/zO,MAAMuqO,mBAAmBn7D,EAAQvrK,EAEnD,CACA,SAASmqO,EAAkB5+D,GACvB,OAAO2kE,EAAU/zO,MAAQ+zO,EAAU/zO,MAAMguO,kBAAkB5+D,GAAU,CAAC,CAC1E,CACA,SAAS6+D,EAAkB7+D,EAAQ1V,GAC3Bq6E,EAAU/zO,QACV+zO,EAAU/zO,MAAMiuO,kBAAkB7+D,EAAQ1V,GAC1C+xE,EAAiBzrO,MAAMovK,GAAU1V,EAEzC,CACA,SAAS8wE,EAAoBp7D,EAAQ1V,GAC7Bq6E,EAAU/zO,OACV+zO,EAAU/zO,MAAMwqO,oBAAoBp7D,EAAQ1V,EAEpD,CACA,SAASw0E,EAAgB9+D,GACrB,OAAO2kE,EAAU/zO,MAAQ+zO,EAAU/zO,MAAMkuO,gBAAgB9+D,GAAU,CAAC,CACxE,CACA,SAAS++D,EAAgB/+D,EAAQ1V,GACzBq6E,EAAU/zO,QACV+zO,EAAU/zO,MAAMmuO,gBAAgB/+D,EAAQ1V,GACxCgyE,EAAe1rO,MAAMovK,GAAU1V,EAEvC,CACA,SAAS+wE,EAAkBr7D,EAAQ1V,GAC3Bq6E,EAAU/zO,OACV+zO,EAAU/zO,MAAMyqO,kBAAkBr7D,EAAQ1V,EAElD,CACA,MAAMp0C,GAAU,CACZ,MAAI/9G,GACA,OAAOwsO,EAAU/zO,MAAQ+zO,EAAU/zO,MAAMuH,IAAM,CACnD,EACA6nK,SACA2zD,iBACA1gE,WACA2gE,kBACAC,gBACA,iBAAIqI,GACA,OAAOyI,EAAU/zO,MAAQ+zO,EAAU/zO,MAAMsrO,cAAgBD,CAC7D,EACA,iBAAIC,CAAc3pO,GACVoyO,EAAU/zO,QACV+zO,EAAU/zO,MAAMsrO,cAAgB3pO,EAExC,EACA,oBAAI0sO,GACA,OAAO0F,EAAU/zO,MACX+zO,EAAU/zO,MAAMquO,iBAChBxkO,OAAOC,KAAK0hO,EAAUxrO,MAChC,EACA,aAAI2hG,GACA,OAAQoyI,EAAU/zO,MAAQ+zO,EAAU/zO,MAAM2hG,UAAY0qI,CAC1D,EACA,eAAI9N,GACA,OAAQwV,EAAU/zO,MAAQ+zO,EAAU/zO,MAAMu+N,YAAc+N,CAC5D,EACA,YAAIgC,GACA,QAAOyF,EAAU/zO,OAAQ+zO,EAAU/zO,MAAMsuO,QAC7C,EACA,eAAInL,GACA,OAAO4Q,EAAU/zO,MAAQ+zO,EAAU/zO,MAAMmjO,YAAcwI,CAC3D,EACA,eAAIxI,CAAYxhO,GACRoyO,EAAU/zO,QACV+zO,EAAU/zO,MAAMmjO,YAAcxhO,EAEtC,EACA,gBAAIyhO,GACA,OAAO2Q,EAAU/zO,MAAQ+zO,EAAU/zO,MAAMojO,aAAewI,CAC5D,EACA,gBAAIxI,CAAazhO,GACToyO,EAAU/zO,QACV+zO,EAAU/zO,MAAMmjO,YAAcxhO,EAEtC,EACA,gBAAImqO,GACA,OAAOiI,EAAU/zO,MAAQ+zO,EAAU/zO,MAAM8rO,aAAeD,CAC5D,EACA,gBAAIC,CAAanqO,GACToyO,EAAU/zO,QACV+zO,EAAU/zO,MAAM8rO,aAAenqO,EAEvC,EACA,kBAAI0hO,GACA,OAAO0Q,EAAU/zO,MAAQ+zO,EAAU/zO,MAAMqjO,eAAiB0I,CAC9D,EACA,kBAAI1I,CAAe1hO,GACXoyO,EAAU/zO,QACV+zO,EAAU/zO,MAAMqjO,eAAiB1hO,EAEzC,EACA,mBAAI6hO,GACA,OAAOuQ,EAAU/zO,MACX+zO,EAAU/zO,MAAMwjO,gBAChB2I,CACV,EACA,mBAAI3I,CAAgB7hO,GACZoyO,EAAU/zO,QACV+zO,EAAU/zO,MAAMwjO,gBAAkB7hO,EAE1C,EACA,mBAAI8hO,GACA,OAAOsQ,EAAU/zO,MACX+zO,EAAU/zO,MAAMyjO,gBAChB2I,CACV,EACA,mBAAI3I,CAAgB9hO,GACZoyO,EAAU/zO,QACV+zO,EAAU/zO,MAAMyjO,gBAAkB9hO,EAE1C,EACAgX,IACA+zN,4BACAC,4BACAC,oBACAC,oBACAv6E,KACAz+I,IACA6C,IACAm3N,KACA/5J,KACA25J,mBACAK,mBACAvD,qBACAyD,oBACAC,oBACAzD,sBACA0D,kBACAC,kBACA1D,qBAEJ,SAASptD,GAAK+wD,GACVA,EAASh/D,OAAOpvK,MAAQ8iO,EAAQ9iO,MAChCouO,EAASrL,eAAe/iO,MAAQurO,EAAgBvrO,MAChD6J,OAAOC,KAAK0hO,EAAUxrO,OAAO0B,SAAQ0tK,IACjCg/D,EAAS7D,mBAAmBn7D,EAAQo8D,EAAUxrO,MAAMovK,GAAQ,IAEhEvlK,OAAOC,KAAK2hO,EAAiBzrO,OAAO0B,SAAQ0tK,IACxCg/D,EAAS5D,oBAAoBp7D,EAAQq8D,EAAiBzrO,MAAMovK,GAAQ,IAExEvlK,OAAOC,KAAK4hO,EAAe1rO,OAAO0B,SAAQ0tK,IACtCg/D,EAAS3D,kBAAkBr7D,EAAQs8D,EAAe1rO,MAAMovK,GAAQ,IAEpEg/D,EAAS3K,gBAAkB2I,EAC3BgC,EAAS/K,eAAiB0I,EAC1BqC,EAAStC,aAAeD,EACxBuC,EAAShL,aAAewI,EACxBwC,EAASjL,YAAcwI,EACvByC,EAAS5K,gBAAkB2I,CAC/B,CAmBA,OAlBA,UAAc,KACV,GAAsB,MAAlBnpO,EAASoxF,OAAyC,MAAxBpxF,EAASoxF,MAAMi9I,MACzC,MAAMjI,GAAgBd,GAAea,qCAGzC,MAAMiF,EAAY2F,EAAU/zO,MAAQgD,EAASoxF,MAAMi9I,MAC9ClC,WACS,WAAVr0N,GACAgoN,EAAQ9iO,MAAQouO,EAASh/D,OAAOpvK,MAChCurO,EAAgBvrO,MAAQouO,EAASrL,eAAe/iO,MAChDwrO,EAAUxrO,MAAQouO,EAAS/rE,SAASriK,MACpCyrO,EAAiBzrO,MAAQouO,EAASpL,gBAAgBhjO,MAClD0rO,EAAe1rO,MAAQouO,EAASnL,cAAcjjO,OAEzCg0O,GACL32D,GAAK+wD,EACT,IAEG9oH,EACX,CACA,MAAM4uH,GAAoB,CACtB,SACA,iBACA,oBAEEC,GAAsB,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,MAExD,SAASjB,GAAmBrkI,EAAKu/H,GAC7B,MAAMlP,EAAOr1N,OAAO1G,OAAO,MAC3B+wO,GAAkBxyO,SAAQ8H,IACtB,MAAMsG,EAAOjG,OAAOic,yBAAyBsoN,EAAU5kO,GACvD,IAAKsG,EACD,MAAMs5N,GAAgBd,GAAeS,kBAEzC,MAAM3oM,GAAO,SAAMtwB,EAAK9P,OAClB,CACE,GAAAsgB,GACI,OAAOxQ,EAAK9P,MAAMA,KACtB,EAEA,GAAAuhB,CAAI5f,GACAmO,EAAK9P,MAAMA,MAAQ2B,CACvB,GAEF,CACE,GAAA2e,GACI,OAAOxQ,EAAKwQ,KAAOxQ,EAAKwQ,KAC5B,GAERzW,OAAOuc,eAAe84M,EAAM11N,EAAM42B,EAAK,IAE3CyuE,EAAIjxG,OAAOwtG,iBAAiBimI,MAAQnS,EACpCiV,GAAoBzyO,SAAQvB,IACxB,MAAM2P,EAAOjG,OAAOic,yBAAyBsoN,EAAUjuO,GACvD,IAAK2P,IAASA,EAAK9P,MACf,MAAMopO,GAAgBd,GAAeS,kBAEzCl/N,OAAOuc,eAAeyoF,EAAIjxG,OAAOwtG,iBAAkB,IAAIjrG,IAAU2P,EAAK,IAE1E,MAAMsjO,EAAU,YAELvkI,EAAIjxG,OAAOwtG,iBAAiBimI,MACnC8C,GAAoBzyO,SAAQvB,WAEjB0uG,EAAIjxG,OAAOwtG,iBAAiB,IAAIjrG,IAAS,GAClD,EAEN,OAAOizO,CACX,CAiBA,GAdI,KAGA3W,4BACAsF,GAAwB9+G,IAGxB8+G,GAAwBgD,IAG5B9C,GAAwBzE,IAExB2E,GAAyBvB,IAEsBpE,0BAA2B,CACtE,MAAMrzN,EAASqrH,IACfrrH,EAAOirO,aAAc,EACrBpV,GAAgB71N,EAAOkrO,iCAC3B,C;;;;;;ACp3FA,MAAM53L,EAA8B,qBAAX9tC,OAEzB,SAAS2lO,EAAW5jO,GAChB,OAAOA,EAAIikI,YAA0C,WAA5BjkI,EAAIkG,OAAOyM,YACxC,CACA,MAAMtQ,EAASlJ,OAAOkJ,OACtB,SAASwhO,EAAc/sO,EAAInH,GACvB,MAAMm0O,EAAY,CAAC,EACnB,IAAK,MAAM5yO,KAAOvB,EAAQ,CACtB,MAAML,EAAQK,EAAOuB,GACrB4yO,EAAU5yO,GAAOyH,EAAQrJ,GACnBA,EAAM2Z,IAAInS,GACVA,EAAGxH,EACb,CACA,OAAOw0O,CACX,CACA,MAAMnjD,EAAO,OAKPhoL,EAAU5C,MAAM4C,QAQtB,MAAMorO,EAAoB,MACpBC,EAAuB/nO,GAASA,EAAKzF,QAAQutO,EAAmB,IAUtE,SAASE,EAASC,EAAYhmO,EAAUimO,EAAkB,KACtD,IAAIloO,EAAM+M,EAAQ,CAAC,EAAG45H,EAAe,GAAIhlI,EAAO,GAGhD,MAAMwmO,EAAUlmO,EAASjO,QAAQ,KACjC,IAAIo0O,EAAYnmO,EAASjO,QAAQ,KAkBjC,OAhBIm0O,EAAUC,GAAaD,GAAW,IAClCC,GAAa,GAEbA,GAAa,IACbpoO,EAAOiC,EAAStF,MAAM,EAAGyrO,GACzBzhG,EAAe1kI,EAAStF,MAAMyrO,EAAY,EAAGD,GAAW,EAAIA,EAAUlmO,EAASlK,QAC/EgV,EAAQk7N,EAAWthG,IAEnBwhG,GAAW,IACXnoO,EAAOA,GAAQiC,EAAStF,MAAM,EAAGwrO,GAEjCxmO,EAAOM,EAAStF,MAAMwrO,EAASlmO,EAASlK,SAG5CiI,EAAOqoO,EAA4B,MAARroO,EAAeA,EAAOiC,EAAUimO,GAEpD,CACHx1O,SAAUsN,GAAQ2mI,GAAgB,KAAOA,EAAehlI,EACxD3B,OACA+M,QACApL,OAER,CAOA,SAAS2mO,EAAaC,EAAgBtmO,GAClC,MAAM8K,EAAQ9K,EAAS8K,MAAQw7N,EAAetmO,EAAS8K,OAAS,GAChE,OAAO9K,EAASjC,MAAQ+M,GAAS,KAAOA,GAAS9K,EAASN,MAAQ,GACtE,CAOA,SAAS6mO,EAAU1mO,EAAUi/F,GAEzB,OAAKA,GAASj/F,EAAS5M,cAAc83E,WAAW+zB,EAAK7rG,eAE9C4M,EAASnF,MAAMokG,EAAKhpG,SAAW,IAD3B+J,CAEf,CAUA,SAAS2mO,EAAoBF,EAAgBrkO,EAAGC,GAC5C,MAAMukO,EAAaxkO,EAAEwJ,QAAQ3V,OAAS,EAChC4wO,EAAaxkO,EAAEuJ,QAAQ3V,OAAS,EACtC,OAAQ2wO,GAAc,GAClBA,IAAeC,GACfC,EAAkB1kO,EAAEwJ,QAAQg7N,GAAavkO,EAAEuJ,QAAQi7N,KACnDE,EAA0B3kO,EAAExQ,OAAQyQ,EAAEzQ,SACtC60O,EAAerkO,EAAE6I,SAAWw7N,EAAepkO,EAAE4I,QAC7C7I,EAAEvC,OAASwC,EAAExC,IACrB,CAQA,SAASinO,EAAkB1kO,EAAGC,GAI1B,OAAQD,EAAE4kO,SAAW5kO,MAAQC,EAAE2kO,SAAW3kO,EAC9C,CACA,SAAS0kO,EAA0B3kO,EAAGC,GAClC,GAAIjH,OAAOC,KAAK+G,GAAGnM,SAAWmF,OAAOC,KAAKgH,GAAGpM,OACzC,OAAO,EACX,IAAK,MAAM9C,KAAOiP,EACd,IAAK6kO,EAA+B7kO,EAAEjP,GAAMkP,EAAElP,IAC1C,OAAO,EAEf,OAAO,CACX,CACA,SAAS8zO,EAA+B7kO,EAAGC,GACvC,OAAOzH,EAAQwH,GACT8kO,EAAkB9kO,EAAGC,GACrBzH,EAAQyH,GACJ6kO,EAAkB7kO,EAAGD,GACrBA,IAAMC,CACpB,CAQA,SAAS6kO,EAAkB9kO,EAAGC,GAC1B,OAAOzH,EAAQyH,GACTD,EAAEnM,SAAWoM,EAAEpM,QAAUmM,EAAEouC,OAAM,CAACj/C,EAAOwE,IAAMxE,IAAU8Q,EAAEtM,KAC9C,IAAbqM,EAAEnM,QAAgBmM,EAAE,KAAOC,CACrC,CAOA,SAASkkO,EAAoB/mI,EAAI5pE,GAC7B,GAAI4pE,EAAGt0B,WAAW,KACd,OAAOs0B,EAKX,IAAKA,EACD,OAAO5pE,EACX,MAAMuxM,EAAevxM,EAAKp1B,MAAM,KAC1B4mO,EAAa5nI,EAAGh/F,MAAM,KACtB6mO,EAAgBD,EAAWA,EAAWnxO,OAAS,GAG/B,OAAlBoxO,GAA4C,MAAlBA,GAC1BD,EAAW7wO,KAAK,IAEpB,IACI+wO,EACAh5C,EAFAx5K,EAAWqyN,EAAalxO,OAAS,EAGrC,IAAKqxO,EAAa,EAAGA,EAAaF,EAAWnxO,OAAQqxO,IAGjD,GAFAh5C,EAAU84C,EAAWE,GAEL,MAAZh5C,EAAJ,CAGA,GAAgB,OAAZA,EAQA,MANIx5K,EAAW,GACXA,GALI,CAYhB,OAAQqyN,EAAatsO,MAAM,EAAGia,GAAUjX,KAAK,KACzC,IACAupO,EAEKvsO,MAAMysO,GAAcA,IAAeF,EAAWnxO,OAAS,EAAI,IAC3D4H,KAAK,IAClB,CAEA,IAAI0pO,EAKAC,GAJJ,SAAWD,GACPA,EAAe,OAAS,MACxBA,EAAe,QAAU,MAC5B,EAHD,CAGGA,IAAmBA,EAAiB,CAAC,IAExC,SAAWC,GACPA,EAAoB,QAAU,OAC9BA,EAAoB,WAAa,UACjCA,EAAoB,WAAa,EACpC,CAJD,CAIGA,IAAwBA,EAAsB,CAAC,IAYlD,SAASC,EAAcxoI,GACnB,IAAKA,EACD,GAAIjxD,EAAW,CAEX,MAAM05L,EAASjpO,SAASuxG,cAAc,QACtC/Q,EAAQyoI,GAAUA,EAAO9qH,aAAa,SAAY,IAElD3d,EAAOA,EAAKxmG,QAAQ,kBAAmB,GAC3C,MAEIwmG,EAAO,IAUf,MAJgB,MAAZA,EAAK,IAA0B,MAAZA,EAAK,KACxBA,EAAO,IAAMA,GAGVgnI,EAAoBhnI,EAC/B,CAEA,MAAM0oI,EAAiB,UACvB,SAASC,EAAW3oI,EAAM9+F,GACtB,OAAO8+F,EAAKxmG,QAAQkvO,EAAgB,KAAOxnO,CAC/C,CAEA,SAAS0nO,EAAmB/3I,EAAI9lF,GAC5B,MAAM89N,EAAUrpO,SAASgzK,gBAAgBryD,wBACnC2oH,EAASj4I,EAAGsvB,wBAClB,MAAO,CACH4oH,SAAUh+N,EAAOg+N,SACjBhuM,KAAM+tM,EAAO/tM,KAAO8tM,EAAQ9tM,MAAQhwB,EAAOgwB,MAAQ,GACnD0lF,IAAKqoH,EAAOroH,IAAMooH,EAAQpoH,KAAO11G,EAAO01G,KAAO,GAEvD,CACA,MAAMuoH,EAAwB,KAAM,CAChCjuM,KAAM95B,OAAO0xK,YACblyD,IAAKx/G,OAAOwxK,cAEhB,SAASw2D,EAAiBpzN,GACtB,IAAIqzN,EACJ,GAAI,OAAQrzN,EAAU,CAClB,MAAMszN,EAAatzN,EAASg7E,GACtBu4I,EAAqC,kBAAfD,GAA2BA,EAAWl9J,WAAW,KAsBzE,EAiBJ,MAAM4kB,EAA2B,kBAAfs4I,EACZC,EACI5pO,SAASwoK,eAAemhE,EAAWvtO,MAAM,IACzC4D,SAASuxG,cAAco4H,GAC3BA,EACN,IAAKt4I,EAGD,OAEJq4I,EAAkBN,EAAmB/3I,EAAIh7E,EAC7C,MAEIqzN,EAAkBrzN,EAElB,mBAAoBrW,SAASgzK,gBAAgB3nE,MAC7C5pG,OAAOooO,SAASH,GAEhBjoO,OAAOooO,SAAiC,MAAxBH,EAAgBnuM,KAAemuM,EAAgBnuM,KAAO95B,OAAO0xK,YAAoC,MAAvBu2D,EAAgBzoH,IAAcyoH,EAAgBzoH,IAAMx/G,OAAOwxK,YAE7J,CACA,SAAS62D,EAAarqO,EAAMgtL,GACxB,MAAMp2K,EAAWqwC,QAAQ5V,MAAQ4V,QAAQ5V,MAAMz6B,SAAWo2K,GAAS,EACnE,OAAOp2K,EAAW5W,CACtB,CACA,MAAMsqO,EAAkB,IAAI9uN,IAC5B,SAAS+uN,EAAmBt1O,EAAKu1O,GAC7BF,EAAgB11N,IAAI3f,EAAKu1O,EAC7B,CACA,SAASC,EAAuBx1O,GAC5B,MAAMukL,EAAS8wD,EAAgB32N,IAAI1e,GAGnC,OADAq1O,EAAgBjuM,OAAOpnC,GAChBukL,CACX,CAiBA,IAAIkxD,EAAqB,IAAMzoO,SAAST,SAAW,KAAOS,SAASR,KAMnE,SAASkpO,EAAsB5pI,EAAM9+F,GACjC,MAAM,SAAEH,EAAQ,OAAEJ,EAAM,KAAEC,GAASM,EAE7BkmO,EAAUpnI,EAAK/sG,QAAQ,KAC7B,GAAIm0O,GAAW,EAAG,CACd,IAAIyC,EAAWjpO,EAAKiK,SAASm1F,EAAKpkG,MAAMwrO,IAClCpnI,EAAKpkG,MAAMwrO,GAASpwO,OACpB,EACF8yO,EAAelpO,EAAKhF,MAAMiuO,GAI9B,MAFwB,MAApBC,EAAa,KACbA,EAAe,IAAMA,GAClBrC,EAAUqC,EAAc,GACnC,CACA,MAAM7qO,EAAOwoO,EAAU1mO,EAAUi/F,GACjC,OAAO/gG,EAAO0B,EAASC,CAC3B,CACA,SAASmpO,EAAoB/pI,EAAMgqI,EAAc7C,EAAiB3tO,GAC9D,IAAIq2E,EAAY,GACZo6J,EAAY,GAGZC,EAAa,KACjB,MAAMC,EAAkB,EAAG75L,YACvB,MAAMiwD,EAAKqpI,EAAsB5pI,EAAM9+F,UACjCy1B,EAAOwwM,EAAgB70O,MACvB83O,EAAYJ,EAAa13O,MAC/B,IAAI25L,EAAQ,EACZ,GAAI37I,EAAO,CAIP,GAHA62L,EAAgB70O,MAAQiuG,EACxBypI,EAAa13O,MAAQg+C,EAEjB45L,GAAcA,IAAevzM,EAE7B,YADAuzM,EAAa,MAGjBj+C,EAAQm+C,EAAY95L,EAAMz6B,SAAWu0N,EAAUv0N,SAAW,CAC9D,MAEIrc,EAAQ+mG,GAOZ1wB,EAAU77E,SAAQqD,IACdA,EAAS8vO,EAAgB70O,MAAOqkC,EAAM,CAClCs1J,QACAt3L,KAAM2zO,EAAex3N,IACrB4pL,UAAWzO,EACLA,EAAQ,EACJs8C,EAAoB8B,QACpB9B,EAAoB+B,KACxB/B,EAAoBgC,SAC5B,GACJ,EAEN,SAASC,IACLN,EAAa/C,EAAgB70O,KACjC,CACA,SAAS6lD,EAAOz2C,GAEZmuE,EAAUv4E,KAAKoK,GACf,MAAMmhL,EAAW,KACb,MAAMtrL,EAAQs4E,EAAU58E,QAAQyO,GAC5BnK,GAAS,GACTs4E,EAAUr4E,OAAOD,EAAO,EAAE,EAGlC,OADA0yO,EAAU3yO,KAAKurL,GACRA,CACX,CACA,SAAS4nD,IACL,MAAM,QAAEvkL,GAAYjlD,OACfilD,EAAQ5V,OAEb4V,EAAQC,aAAa9gD,EAAO,CAAC,EAAG6gD,EAAQ5V,MAAO,CAAEmoI,OAAQuwD,MAA4B,GACzF,CACA,SAAS7yK,IACL,IAAK,MAAM0sH,KAAYonD,EACnBpnD,IACJonD,EAAY,GACZhpO,OAAOjQ,oBAAoB,WAAYm5O,GACvClpO,OAAOjQ,oBAAoB,eAAgBy5O,EAC/C,CAQA,OANAxpO,OAAO1M,iBAAiB,WAAY41O,GAGpClpO,OAAO1M,iBAAiB,eAAgBk2O,EAAsB,CAC1D/wC,SAAS,IAEN,CACH8wC,iBACAryL,SACAge,UAER,CAIA,SAASu0K,EAAWJ,EAAMjxM,EAASgxM,EAASM,GAAW,EAAOC,GAAgB,GAC1E,MAAO,CACHN,OACAjxM,UACAgxM,UACAM,WACA90N,SAAU5U,OAAOilD,QAAQlvD,OACzByhL,OAAQmyD,EAAgB5B,IAA0B,KAE1D,CACA,SAAS6B,EAA0B7qI,GAC/B,MAAM,QAAE95C,EAAO,SAAEhlD,GAAaD,OAExBkmO,EAAkB,CACpB70O,MAAOs3O,EAAsB5pI,EAAM9+F,IAEjC8oO,EAAe,CAAE13O,MAAO4zD,EAAQ5V,OAetC,SAASw6L,EAAevqI,EAAIjwD,EAAO92C,GAU/B,MAAMuxO,EAAY/qI,EAAK/sG,QAAQ,KACzBpB,EAAMk5O,GAAa,GAClB7pO,EAASR,MAAQlB,SAASuxG,cAAc,QACrC/Q,EACAA,EAAKpkG,MAAMmvO,IAAcxqI,EAC7BopI,IAAuB3pI,EAAOO,EACpC,IAGIr6C,EAAQ1sD,EAAU,eAAiB,aAAa82C,EAAO,GAAIz+C,GAC3Dm4O,EAAa13O,MAAQg+C,CACzB,CACA,MAAO/9C,GAKC+P,QAAQhJ,MAAM/G,GAGlB2O,EAAS1H,EAAU,UAAY,UAAU3H,EAC7C,CACJ,CACA,SAAS2H,EAAQ+mG,EAAI/vG,GACjB,MAAM8/C,EAAQjrC,EAAO,CAAC,EAAG6gD,EAAQ5V,MAAOo6L,EAAWV,EAAa13O,MAAMg4O,KAEtE/pI,EAAIypI,EAAa13O,MAAM+3O,SAAS,GAAO75O,EAAM,CAAEqlB,SAAUm0N,EAAa13O,MAAMujB,WAC5Ei1N,EAAevqI,EAAIjwD,GAAO,GAC1B62L,EAAgB70O,MAAQiuG,CAC5B,CACA,SAASjpG,EAAKipG,EAAI/vG,GAGd,MAAMw6O,EAAe3lO,EAAO,CAAC,EAI7B2kO,EAAa13O,MAAO4zD,EAAQ5V,MAAO,CAC/B+5L,QAAS9pI,EACTk4E,OAAQuwD,MAOZ8B,EAAeE,EAAa3xM,QAAS2xM,GAAc,GACnD,MAAM16L,EAAQjrC,EAAO,CAAC,EAAGqlO,EAAWvD,EAAgB70O,MAAOiuG,EAAI,MAAO,CAAE1qF,SAAUm1N,EAAan1N,SAAW,GAAKrlB,GAC/Gs6O,EAAevqI,EAAIjwD,GAAO,GAC1B62L,EAAgB70O,MAAQiuG,CAC5B,CACA,OA1EKypI,EAAa13O,OACdw4O,EAAe3D,EAAgB70O,MAAO,CAClCg4O,KAAM,KACNjxM,QAAS8tM,EAAgB70O,MACzB+3O,QAAS,KAETx0N,SAAUqwC,EAAQlvD,OAAS,EAC3B2zO,UAAU,EAGVlyD,OAAQ,OACT,GA+DA,CACHv3K,SAAUimO,EACV72L,MAAO05L,EACP1yO,OACAkC,UAER,CAMA,SAASyxO,EAAiBjrI,GACtBA,EAAOwoI,EAAcxoI,GACrB,MAAMkrI,EAAoBL,EAA0B7qI,GAC9CmrI,EAAmBpB,EAAoB/pI,EAAMkrI,EAAkB56L,MAAO46L,EAAkBhqO,SAAUgqO,EAAkB1xO,SAC1H,SAAS4xO,EAAGn/C,EAAOo/C,GAAmB,GAC7BA,GACDF,EAAiBX,iBACrBtkL,QAAQklL,GAAGn/C,EACf,CACA,MAAMq/C,EAAgBjmO,EAAO,CAEzBnE,SAAU,GACV8+F,OACAorI,KACAzC,WAAYA,EAAW3zO,KAAK,KAAMgrG,IACnCkrI,EAAmBC,GAStB,OARAhvO,OAAOuc,eAAe4yN,EAAe,WAAY,CAC7CjzN,YAAY,EACZzF,IAAK,IAAMs4N,EAAkBhqO,SAAS5O,QAE1C6J,OAAOuc,eAAe4yN,EAAe,QAAS,CAC1CjzN,YAAY,EACZzF,IAAK,IAAMs4N,EAAkB56L,MAAMh+C,QAEhCg5O,CACX,CAyHA,SAASC,EAAgBC,GACrB,MAAwB,kBAAVA,GAAuBA,GAA0B,kBAAVA,CACzD,CACA,SAASC,EAAY1wO,GACjB,MAAuB,kBAATA,GAAqC,kBAATA,CAC9C,CAiBA,MAAM2wO,EAA4B,CAC9BzsO,KAAM,IACNlE,UAAMjH,EACNnB,OAAQ,CAAC,EACTqZ,MAAO,CAAC,EACRpL,KAAM,GACNjP,SAAU,IACVgb,QAAS,GACT+2G,KAAM,CAAC,EACPioH,oBAAgB73O,GAGd83O,EAA0B1iO,OAAwE,IAKxG,IAAI2iO,GACJ,SAAWA,GAKPA,EAAsBA,EAAsB,WAAa,GAAK,UAK9DA,EAAsBA,EAAsB,aAAe,GAAK,YAKhEA,EAAsBA,EAAsB,cAAgB,IAAM,YACrE,EAhBD,CAgBGA,IAA0BA,EAAwB,CAAC,IAqBtD,SAASC,EAAkBn3O,EAAMhC,GASzB,OAAO0S,EAAO,IAAIhL,MAAS,CACvB1F,OACA,CAACi3O,IAA0B,GAC5Bj5O,EAEX,CACA,SAASo5O,EAAoBzyO,EAAO3E,GAChC,OAAQ2E,aAAiBe,OACrBuxO,KAA2BtyO,IAClB,MAAR3E,MAAmB2E,EAAM3E,KAAOA,GACzC,CAgBA,MAAMq3O,EAAqB,SACrBC,EAA2B,CAC7BC,WAAW,EACXlkC,QAAQ,EACR7xL,OAAO,EACPkK,KAAK,GAGH8rN,EAAiB,sBAQvB,SAASC,EAAex4I,EAAUkF,GAC9B,MAAMn/F,EAAU0L,EAAO,CAAC,EAAG4mO,EAA0BnzI,GAE/CuzI,EAAQ,GAEd,IAAIn8J,EAAUv2E,EAAQwc,MAAQ,IAAM,GAEpC,MAAM/Z,EAAO,GACb,IAAK,MAAMizL,KAAWz7F,EAAU,CAE5B,MAAM04I,EAAgBj9C,EAAQr4L,OAAS,GAAK,CAAC,IAEzC2C,EAAQquM,SAAW3Y,EAAQr4L,SAC3Bk5E,GAAW,KACf,IAAK,IAAIq8J,EAAa,EAAGA,EAAal9C,EAAQr4L,OAAQu1O,IAAc,CAChE,MAAM51O,EAAQ04L,EAAQk9C,GAEtB,IAAIC,EAAkB,IACjB7yO,EAAQuyO,UAAY,IAA0C,GACnE,GAAmB,IAAfv1O,EAAMhC,KAED43O,IACDr8J,GAAW,KACfA,GAAWv5E,EAAMrE,MAAMkH,QAAQ2yO,EAAgB,QAC/CK,GAAmB,QAElB,GAAmB,IAAf71O,EAAMhC,KAAkC,CAC7C,MAAM,MAAErC,EAAK,WAAE46B,EAAU,SAAEu/M,EAAQ,OAAEC,GAAW/1O,EAChDyF,EAAK9E,KAAK,CACNyD,KAAMzI,EACN46B,aACAu/M,aAEJ,MAAMj1C,EAAKk1C,GAAkBV,EAE7B,GAAIx0C,IAAOw0C,EAAoB,CAC3BQ,GAAmB,GAEnB,IACI,IAAI9sO,OAAO,IAAI83L,KACnB,CACA,MAAOjlM,GACH,MAAM,IAAI8H,MAAM,oCAAoC/H,OAAWklM,OAC3DjlM,EAAI4D,QACZ,CACJ,CAEA,IAAIw2O,EAAaz/M,EAAa,OAAOsqK,YAAaA,QAAW,IAAIA,KAE5D+0C,IACDI,EAGIF,GAAYp9C,EAAQr4L,OAAS,EACvB,OAAO21O,KACP,IAAMA,GAChBF,IACAE,GAAc,KAClBz8J,GAAWy8J,EACXH,GAAmB,GACfC,IACAD,IAAoB,GACpBt/M,IACAs/M,IAAoB,IACb,OAAPh1C,IACAg1C,IAAoB,GAC5B,CACAF,EAAch1O,KAAKk1O,EACvB,CAGAH,EAAM/0O,KAAKg1O,EACf,CAEA,GAAI3yO,EAAQquM,QAAUruM,EAAQ0mB,IAAK,CAC/B,MAAMvpB,EAAIu1O,EAAMr1O,OAAS,EACzBq1O,EAAMv1O,GAAGu1O,EAAMv1O,GAAGE,OAAS,IAAM,iBACrC,CAEK2C,EAAQquM,SACT93H,GAAW,MACXv2E,EAAQ0mB,IACR6vD,GAAW,IAENv2E,EAAQquM,SACb93H,GAAW,WACf,MAAMsnH,EAAK,IAAI93L,OAAOwwE,EAASv2E,EAAQuyO,UAAY,GAAK,KACxD,SAAS/uO,EAAM8B,GACX,MAAMQ,EAAQR,EAAKQ,MAAM+3L,GACnB7kM,EAAS,CAAC,EAChB,IAAK8M,EACD,OAAO,KACX,IAAK,IAAI3I,EAAI,EAAGA,EAAI2I,EAAMzI,OAAQF,IAAK,CACnC,MAAMxE,EAAQmN,EAAM3I,IAAM,GACpB5C,EAAMkI,EAAKtF,EAAI,GACrBnE,EAAOuB,EAAI6G,MAAQzI,GAAS4B,EAAIg5B,WAAa56B,EAAMiP,MAAM,KAAOjP,CACpE,CACA,OAAOK,CACX,CACA,SAAS2K,EAAU3K,GACf,IAAIsM,EAAO,GAEP2tO,GAAuB,EAC3B,IAAK,MAAMv9C,KAAWz7F,EAAU,CACvBg5I,GAAyB3tO,EAAK4yE,SAAS,OACxC5yE,GAAQ,KACZ2tO,GAAuB,EACvB,IAAK,MAAMj2O,KAAS04L,EAChB,GAAmB,IAAf14L,EAAMhC,KACNsK,GAAQtI,EAAMrE,WAEb,GAAmB,IAAfqE,EAAMhC,KAAkC,CAC7C,MAAM,MAAErC,EAAK,WAAE46B,EAAU,SAAEu/M,GAAa91O,EAClC03D,EAAQ/7D,KAASK,EAASA,EAAOL,GAAS,GAChD,GAAIqJ,EAAQ0yD,KAAWnhC,EACnB,MAAM,IAAI7yB,MAAM,mBAAmB/H,8DAEvC,MAAM+U,EAAO1L,EAAQ0yD,GACfA,EAAMzvD,KAAK,KACXyvD,EACN,IAAKhnD,EAAM,CACP,IAAIolO,EAYA,MAAM,IAAIpyO,MAAM,2BAA2B/H,MAVvC+8L,EAAQr4L,OAAS,IAEbiI,EAAK4yE,SAAS,KACd5yE,EAAOA,EAAKrD,MAAM,GAAI,GAGtBgxO,GAAuB,EAKvC,CACA3tO,GAAQoI,CACZ,CAER,CAEA,OAAOpI,GAAQ,GACnB,CACA,MAAO,CACHu4L,KACA60C,QACAjwO,OACAe,QACAG,YAER,CAUA,SAASuvO,EAAkB1pO,EAAGC,GAC1B,IAAItM,EAAI,EACR,MAAOA,EAAIqM,EAAEnM,QAAUF,EAAIsM,EAAEpM,OAAQ,CACjC,MAAMk1F,EAAO9oF,EAAEtM,GAAKqM,EAAErM,GAEtB,GAAIo1F,EACA,OAAOA,EACXp1F,GACJ,CAGA,OAAIqM,EAAEnM,OAASoM,EAAEpM,OACO,IAAbmM,EAAEnM,QAAyB,KAATmM,EAAE,IACpB,EACD,EAEDA,EAAEnM,OAASoM,EAAEpM,OACE,IAAboM,EAAEpM,QAAyB,KAAToM,EAAE,GACrB,GACC,EAEJ,CACX,CAQA,SAAS0pO,EAAuB3pO,EAAGC,GAC/B,IAAItM,EAAI,EACR,MAAMi2O,EAAS5pO,EAAEkpO,MACXW,EAAS5pO,EAAEipO,MACjB,MAAOv1O,EAAIi2O,EAAO/1O,QAAUF,EAAIk2O,EAAOh2O,OAAQ,CAC3C,MAAM2xD,EAAOkkL,EAAkBE,EAAOj2O,GAAIk2O,EAAOl2O,IAEjD,GAAI6xD,EACA,OAAOA,EACX7xD,GACJ,CACA,GAAgD,IAA5C6N,KAAK+F,IAAIsiO,EAAOh2O,OAAS+1O,EAAO/1O,QAAe,CAC/C,GAAIi2O,EAAoBF,GACpB,OAAO,EACX,GAAIE,EAAoBD,GACpB,OAAQ,CAChB,CAEA,OAAOA,EAAOh2O,OAAS+1O,EAAO/1O,MAOlC,CAOA,SAASi2O,EAAoBZ,GACzB,MAAMztJ,EAAOytJ,EAAMA,EAAMr1O,OAAS,GAClC,OAAOq1O,EAAMr1O,OAAS,GAAK4nF,EAAKA,EAAK5nF,OAAS,GAAK,CACvD,CAEA,MAAMk2O,GAAa,CACfv4O,KAAM,EACNrC,MAAO,IAEL66O,GAAiB,eAIvB,SAASC,GAAanuO,GAClB,IAAKA,EACD,MAAO,CAAC,IACZ,GAAa,MAATA,EACA,MAAO,CAAC,CAACiuO,KACb,IAAKjuO,EAAKgtE,WAAW,KACjB,MAAM,IAAI5xE,MAEJ,iBAAiB4E,MAG3B,SAASouO,EAAMl3O,GACX,MAAM,IAAIkE,MAAM,QAAQi2C,OAAWzyC,OAAY1H,IACnD,CACA,IAAIm6C,EAAQ,EACRg9L,EAAgBh9L,EACpB,MAAMojL,EAAS,GAGf,IAAIrkC,EACJ,SAASk+C,IACDl+C,GACAqkC,EAAOp8N,KAAK+3L,GAChBA,EAAU,EACd,CAEA,IAEIz/I,EAFA94C,EAAI,EAIJ+G,EAAS,GAET2vO,EAAW,GACf,SAASC,IACA5vO,IAES,IAAVyyC,EACA++I,EAAQ/3L,KAAK,CACT3C,KAAM,EACNrC,MAAOuL,IAGI,IAAVyyC,GACK,IAAVA,GACU,IAAVA,GACI++I,EAAQr4L,OAAS,IAAe,MAAT44C,GAAyB,MAATA,IACvCy9L,EAAM,uBAAuBxvO,iDACjCwxL,EAAQ/3L,KAAK,CACT3C,KAAM,EACNrC,MAAOuL,EACP6uO,OAAQc,EACRtgN,WAAqB,MAAT0iB,GAAyB,MAATA,EAC5B68L,SAAmB,MAAT78L,GAAyB,MAATA,KAI9By9L,EAAM,mCAEVxvO,EAAS,GACb,CACA,SAAS6vO,IACL7vO,GAAU+xC,CACd,CACA,MAAO94C,EAAImI,EAAKjI,OAEZ,GADA44C,EAAO3wC,EAAKnI,KACC,OAAT84C,GAA2B,IAAVU,EAKrB,OAAQA,GACJ,KAAK,EACY,MAATV,GACI/xC,GACA4vO,IAEJF,KAEc,MAAT39L,GACL69L,IACAn9L,EAAQ,GAGRo9L,IAEJ,MACJ,KAAK,EACDA,IACAp9L,EAAQg9L,EACR,MACJ,KAAK,EACY,MAAT19L,EACAU,EAAQ,EAEH68L,GAAertO,KAAK8vC,GACzB89L,KAGAD,IACAn9L,EAAQ,EAEK,MAATV,GAAyB,MAATA,GAAyB,MAATA,GAChC94C,KAER,MACJ,KAAK,EAMY,MAAT84C,EAEqC,MAAjC49L,EAASA,EAASx2O,OAAS,GAC3Bw2O,EAAWA,EAAS5xO,MAAM,GAAI,GAAKg0C,EAEnCU,EAAQ,EAGZk9L,GAAY59L,EAEhB,MACJ,KAAK,EAED69L,IACAn9L,EAAQ,EAEK,MAATV,GAAyB,MAATA,GAAyB,MAATA,GAChC94C,IACJ02O,EAAW,GACX,MACJ,QACIH,EAAM,iBACN,WAnEJC,EAAgBh9L,EAChBA,EAAQ,EA0EhB,OALc,IAAVA,GACA+8L,EAAM,uCAAuCxvO,MACjD4vO,IACAF,IAEO7Z,CACX,CAEA,SAASia,GAAyB10M,EAAQhI,EAAQt3B,GAC9C,MAAMoD,EAASqvO,EAAegB,GAAan0M,EAAOh6B,MAAOtF,GAUzD,MAAMi0O,EAAUvoO,EAAOtI,EAAQ,CAC3Bk8B,SACAhI,SAEAi/D,SAAU,GACV3mE,MAAO,KASX,OAPI0H,IAIK28M,EAAQ30M,OAAO8uM,WAAa92M,EAAOgI,OAAO8uM,SAC3C92M,EAAOi/D,SAAS54F,KAAKs2O,GAEtBA,CACX,CASA,SAASC,GAAoBC,EAAQC,GAEjC,MAAMC,EAAW,GACXC,EAAa,IAAIxzN,IAEvB,SAASyzN,EAAiBnzO,GACtB,OAAOkzO,EAAWr7N,IAAI7X,EAC1B,CACA,SAASozO,EAASl1M,EAAQhI,EAAQm9M,GAE9B,MAAMC,GAAaD,EACbE,EAAuBC,GAAqBt1M,GAKlDq1M,EAAqBvG,QAAUqG,GAAkBA,EAAen1M,OAChE,MAAMt/B,EAAU2mG,GAAaytI,EAAe90M,GAEtCu1M,EAAoB,CACtBF,GAEJ,GAAI,UAAWr1M,EAAQ,CACnB,MAAMw1M,EAAkC,kBAAjBx1M,EAAO1P,MAAqB,CAAC0P,EAAO1P,OAAS0P,EAAO1P,MAC3E,IAAK,MAAMA,KAASklN,EAChBD,EAAkBl3O,KAAK+N,EAAO,CAAC,EAAGipO,EAAsB,CAGpDjvI,WAAY+uI,EACNA,EAAen1M,OAAOomE,WACtBivI,EAAqBjvI,WAC3BpgG,KAAMsqB,EAENw+M,QAASqG,EACHA,EAAen1M,OACfq1M,IAKlB,CACA,IAAIV,EACAc,EACJ,IAAK,MAAMC,KAAoBH,EAAmB,CAC9C,MAAM,KAAEvvO,GAAS0vO,EAIjB,GAAI19M,GAAsB,MAAZhyB,EAAK,GAAY,CAC3B,MAAM2vO,EAAa39M,EAAOgI,OAAOh6B,KAC3B4vO,EAAwD,MAAtCD,EAAWA,EAAW53O,OAAS,GAAa,GAAK,IACzE23O,EAAiB1vO,KACbgyB,EAAOgI,OAAOh6B,MAAQA,GAAQ4vO,EAAkB5vO,EACxD,CA2BA,GArBA2uO,EAAUD,GAAyBgB,EAAkB19M,EAAQt3B,GAKzDy0O,EACAA,EAAe7kN,MAAMjyB,KAAKs2O,IAO1Bc,EAAkBA,GAAmBd,EACjCc,IAAoBd,GACpBc,EAAgBnlN,MAAMjyB,KAAKs2O,GAG3BS,GAAap1M,EAAOl+B,OAAS+zO,GAAclB,IAC3CmB,EAAY91M,EAAOl+B,OAEvBuzO,EAAqBp+I,SAAU,CAC/B,MAAMA,EAAWo+I,EAAqBp+I,SACtC,IAAK,IAAIp5F,EAAI,EAAGA,EAAIo5F,EAASl5F,OAAQF,IACjCq3O,EAASj+I,EAASp5F,GAAI82O,EAASQ,GAAkBA,EAAel+I,SAASp5F,GAEjF,CAGAs3O,EAAiBA,GAAkBR,GAO9BA,EAAQ30M,OAAOomE,YAChBljG,OAAOC,KAAKwxO,EAAQ30M,OAAOomE,YAAYroG,QACvC42O,EAAQ30M,OAAOl+B,MACf6yO,EAAQ30M,OAAO+1M,WACfC,EAAcrB,EAEtB,CACA,OAAOc,EACD,KAEEK,EAAYL,EAAgB,EAE9B/qD,CACV,CACA,SAASorD,EAAYG,GACjB,GAAIzD,EAAYyD,GAAa,CACzB,MAAMtB,EAAUK,EAAWr7N,IAAIs8N,GAC3BtB,IACAK,EAAW3yM,OAAO4zM,GAClBlB,EAASx2O,OAAOw2O,EAAS/6O,QAAQ26O,GAAU,GAC3CA,EAAQ19I,SAASl8F,QAAQ+6O,GACzBnB,EAAQrkN,MAAMv1B,QAAQ+6O,GAE9B,KACK,CACD,MAAMx3O,EAAQy2O,EAAS/6O,QAAQi8O,GAC3B33O,GAAS,IACTy2O,EAASx2O,OAAOD,EAAO,GACnB23O,EAAWj2M,OAAOl+B,MAClBkzO,EAAW3yM,OAAO4zM,EAAWj2M,OAAOl+B,MACxCm0O,EAAWh/I,SAASl8F,QAAQ+6O,GAC5BG,EAAW3lN,MAAMv1B,QAAQ+6O,GAEjC,CACJ,CACA,SAASI,IACL,OAAOnB,CACX,CACA,SAASiB,EAAcrB,GACnB,IAAI92O,EAAI,EACR,MAAOA,EAAIk3O,EAASh3O,QAChB81O,EAAuBc,EAASI,EAASl3O,KAAO,IAG/C82O,EAAQ30M,OAAOh6B,OAAS+uO,EAASl3O,GAAGmiC,OAAOh6B,OACvCmwO,GAAgBxB,EAASI,EAASl3O,KACvCA,IACJk3O,EAASx2O,OAAOV,EAAG,EAAG82O,GAElBA,EAAQ30M,OAAOl+B,OAAS+zO,GAAclB,IACtCK,EAAWp6N,IAAI+5N,EAAQ30M,OAAOl+B,KAAM6yO,EAC5C,CACA,SAASx9O,EAAQ8Q,EAAUimO,GACvB,IAAIyG,EAEA3uO,EACAlE,EAFApI,EAAS,CAAC,EAGd,GAAI,SAAUuO,GAAYA,EAASnG,KAAM,CAErC,GADA6yO,EAAUK,EAAWr7N,IAAI1R,EAASnG,OAC7B6yO,EACD,MAAM9B,EAAkB,EAAsC,CAC1D5qO,aAGJ,EAMJnG,EAAO6yO,EAAQ30M,OAAOl+B,KACtBpI,EAAS0S,EAETgqO,GAAmBlI,EAAgBx0O,OAGnCi7O,EAAQxxO,KAAKkb,QAAO7J,IAAMA,EAAEg/N,WAAUxgO,KAAIwB,GAAKA,EAAE1S,QAGjDmG,EAASvO,QACL08O,GAAmBnuO,EAASvO,OAAQi7O,EAAQxxO,KAAK6P,KAAIwB,GAAKA,EAAE1S,SAEhEkE,EAAO2uO,EAAQtwO,UAAU3K,EAC7B,MACK,GAAI,SAAUuO,EAGfjC,EAAOiC,EAASjC,KAIhB2uO,EAAUI,EAAS54N,MAAKnM,GAAKA,EAAEuuL,GAAG13L,KAAKb,KAEnC2uO,IAEAj7O,EAASi7O,EAAQzwO,MAAM8B,GACvBlE,EAAO6yO,EAAQ30M,OAAOl+B,UAIzB,CAKD,GAHA6yO,EAAUzG,EAAgBpsO,KACpBkzO,EAAWr7N,IAAIu0N,EAAgBpsO,MAC/BizO,EAAS54N,MAAKnM,GAAKA,EAAEuuL,GAAG13L,KAAKqnO,EAAgBloO,SAC9C2uO,EACD,MAAM9B,EAAkB,EAAsC,CAC1D5qO,WACAimO,oBAERpsO,EAAO6yO,EAAQ30M,OAAOl+B,KAGtBpI,EAAS0S,EAAO,CAAC,EAAG8hO,EAAgBx0O,OAAQuO,EAASvO,QACrDsM,EAAO2uO,EAAQtwO,UAAU3K,EAC7B,CACA,MAAMga,EAAU,GAChB,IAAI2iO,EAAgB1B,EACpB,MAAO0B,EAEH3iO,EAAQjU,QAAQ42O,EAAcr2M,QAC9Bq2M,EAAgBA,EAAcr+M,OAElC,MAAO,CACHl2B,OACAkE,OACAtM,SACAga,UACA+2G,KAAM6rH,GAAgB5iO,GAE9B,CAGA,OAhOAohO,EAAgBztI,GAAa,CAAE0nG,QAAQ,EAAO3nL,KAAK,EAAM6rN,WAAW,GAAS6B,GA+N7ED,EAAO95O,SAAQw3O,GAAS2C,EAAS3C,KAC1B,CAAE2C,WAAU/9O,UAAS2+O,cAAaI,YAAWjB,mBACxD,CACA,SAASmB,GAAmB18O,EAAQyJ,GAChC,MAAM0qO,EAAY,CAAC,EACnB,IAAK,MAAM5yO,KAAOkI,EACVlI,KAAOvB,IACPm0O,EAAU5yO,GAAOvB,EAAOuB,IAEhC,OAAO4yO,CACX,CAOA,SAASyH,GAAqBt1M,GAC1B,MAAO,CACHh6B,KAAMg6B,EAAOh6B,KACb+vO,SAAU/1M,EAAO+1M,SACjBj0O,KAAMk+B,EAAOl+B,KACb2oH,KAAMzqF,EAAOyqF,MAAQ,CAAC,EACtBqkH,aAASj0O,EACTikG,YAAa9+D,EAAO8+D,YACpB/+E,MAAOw2N,GAAqBv2M,GAC5Bi3D,SAAUj3D,EAAOi3D,UAAY,GAC7Bu/I,UAAW,CAAC,EACZC,YAAa,IAAIrxM,IACjBsxM,aAAc,IAAItxM,IAClBuxM,eAAgB,CAAC,EACjBvwI,WAAY,eAAgBpmE,EACtBA,EAAOomE,YAAc,KACrBpmE,EAAOntB,WAAa,CAAEurC,QAASpe,EAAOntB,WAEpD,CAMA,SAAS0jO,GAAqBv2M,GAC1B,MAAM42M,EAAc,CAAC,EAEf72N,EAAQigB,EAAOjgB,QAAS,EAC9B,GAAI,cAAeigB,EACf42M,EAAYx4L,QAAUr+B,OAKtB,IAAK,MAAMje,KAAQk+B,EAAOomE,WACtBwwI,EAAY90O,GAAyB,kBAAVie,EAAqBA,EAAMje,GAAQie,EAEtE,OAAO62N,CACX,CAKA,SAASf,GAAc71M,GACnB,MAAOA,EAAQ,CACX,GAAIA,EAAOA,OAAO8uM,QACd,OAAO,EACX9uM,EAASA,EAAOhI,MACpB,CACA,OAAO,CACX,CAMA,SAASs+M,GAAgB5iO,GACrB,OAAOA,EAAQ8F,QAAO,CAACixG,EAAMzqF,IAAW5zB,EAAOq+G,EAAMzqF,EAAOyqF,OAAO,CAAC,EACxE,CACA,SAASpjB,GAAatwG,EAAU8/O,GAC5B,MAAMn2O,EAAU,CAAC,EACjB,IAAK,MAAMzF,KAAOlE,EACd2J,EAAQzF,GAAOA,KAAO47O,EAAiBA,EAAe57O,GAAOlE,EAASkE,GAE1E,OAAOyF,CACX,CA0CA,SAASy1O,GAAgBn2M,EAAQhI,GAC7B,OAAOA,EAAOi/D,SAAS16D,MAAK6gE,GAASA,IAAUp9D,GAAUm2M,GAAgBn2M,EAAQo9D,IACrF,CAmBA,MAAM05I,GAAU,KACVC,GAAe,KACfC,GAAW,MACXC,GAAW,KACXC,GAAQ,MACRC,GAAU,MAeVC,GAAsB,OACtBC,GAAuB,OACvBC,GAAe,OACfC,GAAkB,OAClBC,GAAoB,OACpBC,GAAc,OACdC,GAAqB,OACrBC,GAAe,OASrB,SAASC,GAAaxpO,GAClB,OAAOg7I,UAAU,GAAKh7I,GACjB7N,QAAQk3O,GAAa,KACrBl3O,QAAQ62O,GAAqB,KAC7B72O,QAAQ82O,GAAsB,IACvC,CAOA,SAASQ,GAAWzpO,GAChB,OAAOwpO,GAAaxpO,GACf7N,QAAQi3O,GAAmB,KAC3Bj3O,QAAQm3O,GAAoB,KAC5Bn3O,QAAQ+2O,GAAc,IAC/B,CAQA,SAASQ,GAAiB1pO,GACtB,OAAQwpO,GAAaxpO,GAEhB7N,QAAQ42O,GAAS,OACjB52O,QAAQo3O,GAAc,KACtBp3O,QAAQu2O,GAAS,OACjBv2O,QAAQw2O,GAAc,OACtBx2O,QAAQg3O,GAAiB,KACzBh3O,QAAQi3O,GAAmB,KAC3Bj3O,QAAQm3O,GAAoB,KAC5Bn3O,QAAQ+2O,GAAc,IAC/B,CAMA,SAASS,GAAe3pO,GACpB,OAAO0pO,GAAiB1pO,GAAM7N,QAAQ02O,GAAU,MACpD,CAOA,SAASe,GAAW5pO,GAChB,OAAOwpO,GAAaxpO,GAAM7N,QAAQu2O,GAAS,OAAOv2O,QAAQ22O,GAAO,MACrE,CAUA,SAASe,GAAY7pO,GACjB,OAAe,MAARA,EAAe,GAAK4pO,GAAW5pO,GAAM7N,QAAQy2O,GAAU,MAClE,CAQA,SAAS3zJ,GAAOj1E,GACZ,IACI,OAAO1H,mBAAmB,GAAK0H,EACnC,CACA,MAAO9U,GAEP,CACA,MAAO,GAAK8U,CAChB,CAWA,SAAS6/N,GAAWvmO,GAChB,MAAMqL,EAAQ,CAAC,EAGf,GAAe,KAAXrL,GAA4B,MAAXA,EACjB,OAAOqL,EACX,MAAMmlO,EAA6B,MAAdxwO,EAAO,GACtBywO,GAAgBD,EAAexwO,EAAO/E,MAAM,GAAK+E,GAAQY,MAAM,KACrE,IAAK,IAAIzK,EAAI,EAAGA,EAAIs6O,EAAap6O,SAAUF,EAAG,CAE1C,MAAMu6O,EAAcD,EAAat6O,GAAG0C,QAAQ42O,GAAS,KAE/CkB,EAAQD,EAAYp+O,QAAQ,KAC5BiB,EAAMooF,GAAOg1J,EAAQ,EAAID,EAAcA,EAAYz1O,MAAM,EAAG01O,IAC5Dh/O,EAAQg/O,EAAQ,EAAI,KAAOh1J,GAAO+0J,EAAYz1O,MAAM01O,EAAQ,IAClE,GAAIp9O,KAAO8X,EAAO,CAEd,IAAI2gL,EAAe3gL,EAAM9X,GACpByH,EAAQgxL,KACTA,EAAe3gL,EAAM9X,GAAO,CAACy4L,IAEjCA,EAAar1L,KAAKhF,EACtB,MAEI0Z,EAAM9X,GAAO5B,CAErB,CACA,OAAO0Z,CACX,CAUA,SAASw7N,GAAex7N,GACpB,IAAIrL,EAAS,GACb,IAAK,IAAIzM,KAAO8X,EAAO,CACnB,MAAM1Z,EAAQ0Z,EAAM9X,GAEpB,GADAA,EAAM88O,GAAe98O,GACR,MAAT5B,EAAe,MAEDwB,IAAVxB,IACAqO,IAAWA,EAAO3J,OAAS,IAAM,IAAM9C,GAE3C,QACJ,CAEA,MAAMu2B,EAAS9uB,EAAQrJ,GACjBA,EAAM2Z,KAAIxN,GAAKA,GAAKsyO,GAAiBtyO,KACrC,CAACnM,GAASy+O,GAAiBz+O,IACjCm4B,EAAOz2B,SAAQ1B,SAGGwB,IAAVxB,IAEAqO,IAAWA,EAAO3J,OAAS,IAAM,IAAM9C,EAC1B,MAAT5B,IACAqO,GAAU,IAAMrO,GACxB,GAER,CACA,OAAOqO,CACX,CASA,SAAS4wO,GAAevlO,GACpB,MAAMwlO,EAAkB,CAAC,EACzB,IAAK,MAAMt9O,KAAO8X,EAAO,CACrB,MAAM1Z,EAAQ0Z,EAAM9X,QACNJ,IAAVxB,IACAk/O,EAAgBt9O,GAAOyH,EAAQrJ,GACzBA,EAAM2Z,KAAIxN,GAAW,MAALA,EAAY,KAAO,GAAKA,IAC/B,MAATnM,EACIA,EACA,GAAKA,EAEvB,CACA,OAAOk/O,CACX,CASA,MAAMC,GAAkBvoO,OAAkF,IAOpGwoO,GAAexoO,OAAuE,IAOtFyoO,GAAYzoO,OAA4D,IAOxE0oO,GAAmB1oO,OAAoE,IAOvF2oO,GAAwB3oO,OAA0E,IAKxG,SAAS4oO,KACL,IAAIr4O,EAAW,GACf,SAAS6kC,EAAIwI,GAET,OADArtC,EAASnC,KAAKwvC,GACP,KACH,MAAMhwC,EAAI2C,EAASxG,QAAQ6zC,GACvBhwC,GAAK,GACL2C,EAASjC,OAAOV,EAAG,EAAE,CAEjC,CACA,SAASijJ,IACLtgJ,EAAW,EACf,CACA,MAAO,CACH6kC,MACA2yC,KAAM,IAAMx3E,EAASmC,QACrBm+I,QAER,CAyDA,SAASg4F,GAAiB/tH,EAAOzjB,EAAI5pE,EAAMsC,EAAQl+B,GAE/C,MAAMi3O,EAAqB/4M,IAEtBA,EAAO22M,eAAe70O,GAAQk+B,EAAO22M,eAAe70O,IAAS,IAClE,MAAO,IAAM,IAAI5K,SAAQ,CAACC,EAASC,KAC/B,MAAMiZ,EAAQ6jK,KACI,IAAVA,EACA98K,EAAOy7O,EAAkB,EAAuC,CAC5Dn1M,OACA4pE,QAGC4sE,aAAiB9yK,MACtBhK,EAAO88K,GAEFo+D,EAAgBp+D,GACrB98K,EAAOy7O,EAAkB,EAA8C,CACnEn1M,KAAM4pE,EACNA,GAAI4sE,MAIJ6kE,GAEA/4M,EAAO22M,eAAe70O,KAAUi3O,GACf,oBAAV7kE,GACP6kE,EAAmB16O,KAAK61K,GAE5B/8K,IACJ,EAGE6hP,EAAcjuH,EAAMxpH,KAAKy+B,GAAUA,EAAOw2M,UAAU10O,GAAOwlG,EAAI5pE,EAAsFrtB,GAC3J,IAAI4oO,EAAY/hP,QAAQC,QAAQ6hP,GAC5BjuH,EAAMhtH,OAAS,IACfk7O,EAAYA,EAAUt7O,KAAK0S,IAsB/B4oO,EAAUn/N,OAAMxgB,GAAOlC,EAAOkC,IAAK,GAE3C,CAYA,SAAS4/O,GAAwBxlO,EAASylO,EAAW7xI,EAAI5pE,GACrD,MAAM07M,EAAS,GACf,IAAK,MAAMp5M,KAAUtsB,EAAS,CACtB,EAIJ,IAAK,MAAM5R,KAAQk+B,EAAOomE,WAAY,CAClC,IAAIizI,EAAer5M,EAAOomE,WAAWtkG,GAiCrC,GAAkB,qBAAdq3O,GAAqCn5M,EAAOw2M,UAAU10O,GAE1D,GAAIw3O,GAAiBD,GAAe,CAEhC,MAAM34O,EAAU24O,EAAa9+H,WAAa8+H,EACpCtuH,EAAQrqH,EAAQy4O,GACtBpuH,GAASquH,EAAO/6O,KAAKy6O,GAAiB/tH,EAAOzjB,EAAI5pE,EAAMsC,EAAQl+B,GACnE,KACK,CAED,IAAIy3O,EAAmBF,IACnB,EAIJD,EAAO/6O,MAAK,IAAMk7O,EAAiB57O,MAAKypG,IACpC,IAAKA,EACD,OAAOlwG,QAAQE,OAAO,IAAIgK,MAAM,+BAA+BU,UAAak+B,EAAOh6B,UACvF,MAAMwzO,EAAoB7L,EAAWvmI,GAC/BA,EAAShpD,QACTgpD,EAGNpnE,EAAOomE,WAAWtkG,GAAQ03O,EAE1B,MAAM94O,EAAU84O,EAAkBj/H,WAAai/H,EACzCzuH,EAAQrqH,EAAQy4O,GACtB,OAAOpuH,GAAS+tH,GAAiB/tH,EAAOzjB,EAAI5pE,EAAMsC,EAAQl+B,EAA1Cg3O,EAAiD,KAEzE,CACJ,CACJ,CACA,OAAOM,CACX,CAOA,SAASE,GAAiBzmO,GACtB,MAA6B,kBAAdA,GACX,gBAAiBA,GACjB,UAAWA,GACX,cAAeA,CACvB,CAgCA,SAAS4mO,GAAQ15N,GACb,MAAM25N,GAAS,QAAOhB,IAChBiB,GAAe,QAAOhB,IACtBpG,GAAQ,SAAS,IAAMmH,EAAOviP,SAAQ,QAAM4oB,EAAMunF,OAClDsyI,GAAoB,SAAS,KAC/B,MAAM,QAAElmO,GAAY6+N,EAAMl5O,OACpB,OAAE0E,GAAW2V,EACbmmO,EAAenmO,EAAQ3V,EAAS,GAChC+7O,EAAiBH,EAAajmO,QACpC,IAAKmmO,IAAiBC,EAAe/7O,OACjC,OAAQ,EACZ,MAAMO,EAAQw7O,EAAe79K,UAAU2yK,EAAkB7yO,KAAK,KAAM89O,IACpE,GAAIv7O,GAAS,EACT,OAAOA,EAEX,MAAMy7O,EAAmBC,GAAgBtmO,EAAQ3V,EAAS,IAC1D,OAEAA,EAAS,GAILi8O,GAAgBH,KAAkBE,GAElCD,EAAeA,EAAe/7O,OAAS,GAAGiI,OAAS+zO,EACjDD,EAAe79K,UAAU2yK,EAAkB7yO,KAAK,KAAM2X,EAAQ3V,EAAS,KACvEO,CAAM,IAEV27O,GAAW,SAAS,IAAML,EAAkBvgP,OAAS,GACvD6gP,GAAeP,EAAajgP,OAAQ64O,EAAMl5O,MAAMK,UAC9CygP,GAAgB,SAAS,IAAMP,EAAkBvgP,OAAS,GAC5DugP,EAAkBvgP,QAAUsgP,EAAajmO,QAAQ3V,OAAS,GAC1D8wO,EAA0B8K,EAAajgP,OAAQ64O,EAAMl5O,MAAMK,UAC/D,SAAS0gP,EAASh2O,EAAI,CAAC,GACnB,OAAIi2O,GAAWj2O,GACJs1O,GAAO,QAAM35N,EAAMxf,SAAW,UAAY,SAAQ,QAAMwf,EAAMunF,KAEnExtF,MAAM4wK,GAELxzL,QAAQC,SACnB,CAwBA,MAAO,CACHo7O,QACAjrO,MAAM,SAAS,IAAMirO,EAAMl5O,MAAMiO,OACjC2yO,WACAE,gBACAC,WAER,CACA,MAAME,IAA+B,QAAgB,CACjDx4O,KAAM,aACNy4O,aAAc,CAAEC,KAAM,GACtBz6N,MAAO,CACHunF,GAAI,CACA5rG,KAAM,CAACytB,OAAQjmB,QACf0iM,UAAU,GAEdrlM,QAASoR,QACT8oO,YAAatxN,OAEbuxN,iBAAkBvxN,OAClBrN,OAAQnK,QACRgpO,iBAAkB,CACdj/O,KAAMytB,OACNi1B,QAAS,SAGjBq7L,WACA,KAAAz8I,CAAMj9E,GAAO,MAAE01E,IACX,MAAM4sF,GAAO,QAASo3D,GAAQ15N,KACxB,QAAErf,IAAY,QAAOg4O,IACrBkC,GAAU,SAAS,KAAM,CAC3B,CAACC,GAAa96N,EAAM06N,YAAa/5O,EAAQo6O,gBAAiB,uBAAwBz4D,EAAK43D,SAMvF,CAACY,GAAa96N,EAAM26N,iBAAkBh6O,EAAQq6O,qBAAsB,6BAA8B14D,EAAK83D,kBAE3G,MAAO,KACH,MAAMljJ,EAAWxB,EAAMr3C,SAAWq3C,EAAMr3C,QAAQikI,GAChD,OAAOtiK,EAAMjE,OACPm7E,GACA,IAAAn2F,GAAE,IAAK,CACL,eAAgBuhL,EAAK83D,cACfp6N,EAAM46N,iBACN,KACNrzO,KAAM+6K,EAAK/6K,KAGXssK,QAASyO,EAAK+3D,SACdzoI,MAAOipI,EAAQvhP,OAChB49F,EAAS,CAExB,IAOE+jJ,GAAaV,GACnB,SAASD,GAAWj2O,GAEhB,KAAIA,EAAEsmH,SAAWtmH,EAAEomH,QAAUpmH,EAAEimH,SAAWjmH,EAAEkmH,YAGxClmH,EAAE62O,wBAGWpgP,IAAbuJ,EAAEumH,QAAqC,IAAbvmH,EAAEumH,QAAhC,CAIA,GAAIvmH,EAAE+lH,eAAiB/lH,EAAE+lH,cAAczF,aAAc,CAEjD,MAAMliH,EAAS4B,EAAE+lH,cAAczF,aAAa,UAC5C,GAAI,cAAc79G,KAAKrE,GACnB,MACR,CAIA,OAFI4B,EAAE8lH,gBACF9lH,EAAE8lH,kBACC,CAZG,CAad,CACA,SAASgwH,GAAez3J,EAAOC,GAC3B,IAAK,MAAMznF,KAAOynF,EAAO,CACrB,MAAMw4J,EAAax4J,EAAMznF,GACnBkgP,EAAa14J,EAAMxnF,GACzB,GAA0B,kBAAfigP,GACP,GAAIA,IAAeC,EACf,OAAO,OAGX,IAAKz4O,EAAQy4O,IACTA,EAAWp9O,SAAWm9O,EAAWn9O,QACjCm9O,EAAW3+M,MAAK,CAACljC,EAAOwE,IAAMxE,IAAU8hP,EAAWt9O,KACnD,OAAO,CAEnB,CACA,OAAO,CACX,CAKA,SAASm8O,GAAgBh6M,GACrB,OAAOA,EAAUA,EAAO8uM,QAAU9uM,EAAO8uM,QAAQ9oO,KAAOg6B,EAAOh6B,KAAQ,EAC3E,CAOA,MAAM60O,GAAe,CAACO,EAAWC,EAAaC,IAA8B,MAAbF,EACzDA,EACe,MAAfC,EACIA,EACAC,EAEJC,IAA+B,QAAgB,CACjDz5O,KAAM,aAEN+zF,cAAc,EACd91E,MAAO,CACHje,KAAM,CACFpG,KAAMytB,OACNi1B,QAAS,WAEbm0L,MAAOrvO,QAIXq3O,aAAc,CAAEC,KAAM,GACtB,KAAAx9I,CAAMj9E,GAAO,MAAE+oC,EAAK,MAAE2sC,IAElB,MAAM+lJ,GAAgB,QAAO5C,IACvB6C,GAAiB,SAAS,IAAM17N,EAAMwyN,OAASiJ,EAAcniP,QAC7DqiP,GAAgB,QAAOjD,GAAc,GAGrCnpF,GAAQ,SAAS,KACnB,IAAIqsF,GAAe,QAAMD,GACzB,MAAM,QAAEhoO,GAAY+nO,EAAepiP,MACnC,IAAIuiP,EACJ,OAAQA,EAAeloO,EAAQioO,MAC1BC,EAAax1I,WACdu1I,IAEJ,OAAOA,CAAY,IAEjBE,GAAkB,SAAS,IAAMJ,EAAepiP,MAAMqa,QAAQ47I,EAAMj2J,UAC1E,QAAQo/O,IAAc,SAAS,IAAMnpF,EAAMj2J,MAAQ,MACnD,QAAQm/O,GAAiBqD,IACzB,QAAQjD,GAAuB6C,GAC/B,MAAMK,GAAU,UAiChB,OA9BA,SAAM,IAAM,CAACA,EAAQziP,MAAOwiP,EAAgBxiP,MAAO0mB,EAAMje,QAAO,EAAEzF,EAAUirG,EAAIxlG,IAAQi6O,EAAar+M,EAAMs+M,MAEnG10I,IAGAA,EAAGkvI,UAAU10O,GAAQzF,EAOjBqhC,GAAQA,IAAS4pE,GAAMjrG,GAAYA,IAAa0/O,IAC3Cz0I,EAAGmvI,YAAYnoO,OAChBg5F,EAAGmvI,YAAc/4M,EAAK+4M,aAErBnvI,EAAGovI,aAAapoO,OACjBg5F,EAAGovI,aAAeh5M,EAAKg5M,iBAK/Br6O,IACAirG,GAGE5pE,GAASkxM,EAAkBtnI,EAAI5pE,IAAUq+M,IAC1Cz0I,EAAGqvI,eAAe70O,IAAS,IAAI/G,SAAQ0N,GAAYA,EAASpM,IACjE,GACD,CAAEi9F,MAAO,SACL,KACH,MAAMi5I,EAAQkJ,EAAepiP,MAGvB4iP,EAAcl8N,EAAMje,KACpB85O,EAAeC,EAAgBxiP,MAC/B6iP,EAAgBN,GAAgBA,EAAax1I,WAAW61I,GAC9D,IAAKC,EACD,OAAO/vI,GAAc1W,EAAMr3C,QAAS,CAAEk3C,UAAW4mJ,EAAe3J,UAGpE,MAAM4J,EAAmBP,EAAa77N,MAAMk8N,GACtCG,EAAaD,GACQ,IAArBA,EACI5J,EAAM74O,OACsB,oBAArByiP,EACHA,EAAiB5J,GACjB4J,EACR,KACAhmI,EAAmBzlB,IAEjBA,EAAM79E,UAAUugF,cAChBwoJ,EAAapF,UAAUyF,GAAe,KAC1C,EAEEppO,GAAY,IAAA/R,GAAEo7O,EAAe9vO,EAAO,CAAC,EAAGgwO,EAAYtzL,EAAO,CAC7DqtD,mBACAhoB,IAAK2tJ,KAoBT,OAGA3vI,GAAc1W,EAAMr3C,QAAS,CAAEk3C,UAAWziF,EAAW0/N,WACjD1/N,CAAU,CAEtB,IAEJ,SAASs5F,GAAcrK,EAAMvqG,GACzB,IAAKuqG,EACD,OAAO,KACX,MAAMu6I,EAAcv6I,EAAKvqG,GACzB,OAA8B,IAAvB8kP,EAAYt+O,OAAes+O,EAAY,GAAKA,CACvD,CAMA,MAAMC,GAAaf,GA0dnB,SAASgB,GAAa77O,GAClB,MAAMi0O,EAAUC,GAAoBl0O,EAAQm0O,OAAQn0O,GAC9C87O,EAAe97O,EAAQutO,YAAcA,GACrCwO,EAAmB/7O,EAAQ6tO,gBAAkBA,GAC7C8D,EAAgB3xO,EAAQusD,QAI9B,MAAMyvL,EAAe7D,KACf8D,EAAsB9D,KACtB+D,EAAc/D,KACdc,GAAe,QAAWlH,GAChC,IAAIoK,EAAkBpK,EAElB38L,GAAap1C,EAAQo8O,gBAAkB,sBAAuB7vL,UAC9DA,QAAQ8vL,kBAAoB,UAEhC,MAAMC,EAAkBpP,EAAc7xO,KAAK,MAAMkhP,GAAc,GAAKA,IAC9DC,EAAetP,EAAc7xO,KAAK,KAAMk8O,IACxCkF,EAENvP,EAAc7xO,KAAK,KAAMsnF,IACzB,SAAS6xJ,EAASkI,EAAe7K,GAC7B,IAAIv6M,EACAgI,EAQJ,OAPIwyM,EAAY4K,IACZplN,EAAS28M,EAAQM,iBAAiBmI,GAClCp9M,EAASuyM,GAGTvyM,EAASo9M,EAENzI,EAAQO,SAASl1M,EAAQhI,EACpC,CACA,SAAS89M,EAAYh0O,GACjB,MAAMu7O,EAAgB1I,EAAQM,iBAAiBnzO,GAC3Cu7O,GACA1I,EAAQmB,YAAYuH,EAK5B,CACA,SAASnH,IACL,OAAOvB,EAAQuB,YAAYljO,KAAIsqO,GAAgBA,EAAat9M,QAChE,CACA,SAASu9M,EAASz7O,GACd,QAAS6yO,EAAQM,iBAAiBnzO,EACtC,CACA,SAAS3K,EAAQqmP,EAAatP,GAI1B,GADAA,EAAkB9hO,EAAO,CAAC,EAAG8hO,GAAmByL,EAAatgP,OAClC,kBAAhBmkP,EAA0B,CACjC,MAAMC,EAAqBzP,EAASwO,EAAcgB,EAAatP,EAAgBloO,MACzE41O,EAAejH,EAAQx9O,QAAQ,CAAE6O,KAAMy3O,EAAmBz3O,MAAQkoO,GAClE5mO,EAAO+qO,EAAc3C,WAAW+N,EAAmB/kP,UASzD,OAAO0T,EAAOqxO,EAAoB7B,EAAc,CAC5CliP,OAAQyjP,EAAavB,EAAaliP,QAClCiO,KAAM07E,GAAOo6J,EAAmB91O,MAChC+qO,oBAAgB73O,EAChByM,QAER,CACA,IAAIo2O,EAEJ,GAAI,SAAUF,EAQVE,EAAkBtxO,EAAO,CAAC,EAAGoxO,EAAa,CACtCx3O,KAAMgoO,EAASwO,EAAcgB,EAAYx3O,KAAMkoO,EAAgBloO,MAAMA,WAGxE,CAED,MAAM23O,EAAevxO,EAAO,CAAC,EAAGoxO,EAAY9jP,QAC5C,IAAK,MAAMuB,KAAO0iP,EACW,MAArBA,EAAa1iP,WACN0iP,EAAa1iP,GAI5ByiP,EAAkBtxO,EAAO,CAAC,EAAGoxO,EAAa,CACtC9jP,OAAQwjP,EAAaS,KAIzBzP,EAAgBx0O,OAASwjP,EAAahP,EAAgBx0O,OAC1D,CACA,MAAMkiP,EAAejH,EAAQx9O,QAAQumP,EAAiBxP,GAChDvmO,EAAO61O,EAAY71O,MAAQ,GAMjCi0O,EAAaliP,OAASsjP,EAAgBG,EAAavB,EAAaliP,SAChE,MAAMhB,EAAW41O,EAAamO,EAAkBrwO,EAAO,CAAC,EAAGoxO,EAAa,CACpE71O,KAAMkwO,GAAWlwO,GACjB3B,KAAM41O,EAAa51O,QAEjBsB,EAAO+qO,EAAc3C,WAAWh3O,GAStC,OAAO0T,EAAO,CACV1T,WAGAiP,OACAoL,MAMA0pO,IAAqBlO,GACf+J,GAAekF,EAAYzqO,OAC1ByqO,EAAYzqO,OAAS,CAAC,GAC9B6oO,EAAc,CACblJ,oBAAgB73O,EAChByM,QAER,CACA,SAASs2O,EAAiBt2I,GACtB,MAAqB,kBAAPA,EACR0mI,EAASwO,EAAcl1I,EAAIqyI,EAAatgP,MAAM2M,MAC9CoG,EAAO,CAAC,EAAGk7F,EACrB,CACA,SAASu2I,EAAwBv2I,EAAI5pE,GACjC,GAAIm/M,IAAoBv1I,EACpB,OAAOurI,EAAkB,EAAyC,CAC9Dn1M,OACA4pE,MAGZ,CACA,SAASjpG,EAAKipG,GACV,OAAOw2I,EAAiBx2I,EAC5B,CACA,SAAS/mG,EAAQ+mG,GACb,OAAOjpG,EAAK+N,EAAOwxO,EAAiBt2I,GAAK,CAAE/mG,SAAS,IACxD,CACA,SAASw9O,EAAqBz2I,GAC1B,MAAM02I,EAAc12I,EAAG5zF,QAAQ4zF,EAAG5zF,QAAQ3V,OAAS,GACnD,GAAIigP,GAAeA,EAAYjI,SAAU,CACrC,MAAM,SAAEA,GAAaiI,EACrB,IAAIC,EAAwC,oBAAblI,EAA0BA,EAASzuI,GAAMyuI,EAiBxE,MAhBiC,kBAAtBkI,IACPA,EACIA,EAAkBrsO,SAAS,MAAQqsO,EAAkBrsO,SAAS,KACvDqsO,EAAoBL,EAAiBK,GAEpC,CAAEj4O,KAAMi4O,GAGpBA,EAAkBvkP,OAAS,CAAC,GAQzB0S,EAAO,CACV2G,MAAOu0F,EAAGv0F,MACVpL,KAAM2/F,EAAG3/F,KAETjO,OAAQ,SAAUukP,EAAoB,CAAC,EAAI32I,EAAG5tG,QAC/CukP,EACP,CACJ,CACA,SAASH,EAAiBx2I,EAAIorI,GAC1B,MAAMwL,EAAkBrB,EAAkB1lP,EAAQmwG,GAC5C5pE,EAAOi8M,EAAatgP,MACpB9B,EAAO+vG,EAAGjwD,MACV8mM,EAAQ72I,EAAG62I,MAEX59O,GAAyB,IAAf+mG,EAAG/mG,QACb69O,EAAiBL,EAAqBG,GAC5C,GAAIE,EACA,OAAON,EAAiB1xO,EAAOwxO,EAAiBQ,GAAiB,CAC7D/mM,MAAiC,kBAAnB+mM,EACRhyO,EAAO,CAAC,EAAG7U,EAAM6mP,EAAe/mM,OAChC9/C,EACN4mP,QACA59O,YAGJmyO,GAAkBwL,GAEtB,MAAMG,EAAaH,EAEnB,IAAII,EAYJ,OAbAD,EAAW3L,eAAiBA,GAEvByL,GAAS1P,EAAoBgO,EAAkB/+M,EAAMwgN,KACtDI,EAAUzL,EAAkB,GAA2C,CAAEvrI,GAAI+2I,EAAY3gN,SAEzF6gN,GAAa7gN,EAAMA,GAGnB,GAGA,KAEI4gN,EAAUpnP,QAAQC,QAAQmnP,GAAWlE,EAASiE,EAAY3gN,IAC7D5jB,OAAOzZ,GAAUyyO,EAAoBzyO,GAElCyyO,EAAoBzyO,EAAO,GACrBA,EACAm+O,GAAYn+O,GAElBo+O,GAAap+O,EAAOg+O,EAAY3gN,KACnC//B,MAAM2gP,IACP,GAAIA,GACA,GAAIxL,EAAoBwL,EAAS,GAc7B,OAAOR,EAEP1xO,EAAO,CAEH7L,WACDq9O,EAAiBU,EAAQh3I,IAAK,CAC7BjwD,MAA6B,kBAAfinM,EAAQh3I,GAChBl7F,EAAO,CAAC,EAAG7U,EAAM+mP,EAAQh3I,GAAGjwD,OAC5B9/C,EACN4mP,UAGJzL,GAAkB2L,QAKtBC,EAAUI,EAAmBL,EAAY3gN,GAAM,EAAMn9B,EAAShJ,GAGlE,OADAonP,EAAiBN,EAAY3gN,EAAM4gN,GAC5BA,CAAO,GAEtB,CAMA,SAASM,EAAiCt3I,EAAI5pE,GAC1C,MAAMr9B,EAAQw9O,EAAwBv2I,EAAI5pE,GAC1C,OAAOr9B,EAAQnJ,QAAQE,OAAOiJ,GAASnJ,QAAQC,SACnD,CACA,SAAS4yG,EAAelpG,GACpB,MAAMqnG,EAAM22I,GAAcrtN,SAASnhB,OAAOhX,MAE1C,OAAO6uG,GAAqC,oBAAvBA,EAAI6B,eACnB7B,EAAI6B,eAAelpG,GACnBA,GACV,CAEA,SAASu5O,EAAS9yI,EAAI5pE,GAClB,IAAI07M,EACJ,MAAO0F,EAAgBC,EAAiBC,GAAmBC,GAAuB33I,EAAI5pE,GAEtF07M,EAASF,GAAwB4F,EAAenrO,UAAW,mBAAoB2zF,EAAI5pE,GAEnF,IAAK,MAAMsC,KAAU8+M,EACjB9+M,EAAOy2M,YAAY17O,SAAQgwH,IACvBquH,EAAO/6O,KAAKy6O,GAAiB/tH,EAAOzjB,EAAI5pE,GAAM,IAGtD,MAAMwhN,EAA0BN,EAAiC7iP,KAAK,KAAMurG,EAAI5pE,GAGhF,OAFA07M,EAAO/6O,KAAK6gP,GAEJC,GAAc/F,GACjBz7O,MAAK,KAENy7O,EAAS,GACT,IAAK,MAAMruH,KAAS2xH,EAAa1kK,OAC7BohK,EAAO/6O,KAAKy6O,GAAiB/tH,EAAOzjB,EAAI5pE,IAG5C,OADA07M,EAAO/6O,KAAK6gP,GACLC,GAAc/F,EAAO,IAE3Bz7O,MAAK,KAENy7O,EAASF,GAAwB6F,EAAiB,oBAAqBz3I,EAAI5pE,GAC3E,IAAK,MAAMsC,KAAU++M,EACjB/+M,EAAO02M,aAAa37O,SAAQgwH,IACxBquH,EAAO/6O,KAAKy6O,GAAiB/tH,EAAOzjB,EAAI5pE,GAAM,IAKtD,OAFA07M,EAAO/6O,KAAK6gP,GAELC,GAAc/F,EAAO,IAE3Bz7O,MAAK,KAENy7O,EAAS,GACT,IAAK,MAAMp5M,KAAUg/M,EAEjB,GAAIh/M,EAAO8+D,YACP,GAAIp8F,EAAQs9B,EAAO8+D,aACf,IAAK,MAAMA,KAAe9+D,EAAO8+D,YAC7Bs6I,EAAO/6O,KAAKy6O,GAAiBh6I,EAAawI,EAAI5pE,SAGlD07M,EAAO/6O,KAAKy6O,GAAiB94M,EAAO8+D,YAAawI,EAAI5pE,IAMjE,OAFA07M,EAAO/6O,KAAK6gP,GAELC,GAAc/F,EAAO,IAE3Bz7O,MAAK,KAGN2pG,EAAG5zF,QAAQ3Y,SAAQilC,GAAWA,EAAO22M,eAAiB,CAAC,IAEvDyC,EAASF,GAAwB8F,EAAiB,mBAAoB13I,EAAI5pE,GAC1E07M,EAAO/6O,KAAK6gP,GAELC,GAAc/F,MAEpBz7O,MAAK,KAENy7O,EAAS,GACT,IAAK,MAAMruH,KAAS4xH,EAAoB3kK,OACpCohK,EAAO/6O,KAAKy6O,GAAiB/tH,EAAOzjB,EAAI5pE,IAG5C,OADA07M,EAAO/6O,KAAK6gP,GACLC,GAAc/F,EAAO,IAG3Bt/N,OAAMxgB,GAAOw5O,EAAoBx5O,EAAK,GACrCA,EACApC,QAAQE,OAAOkC,IACzB,CACA,SAASqlP,EAAiBr3I,EAAI5pE,EAAM4gN,GAGhC1B,EACK5kK,OACAj9E,SAAQgwH,GAAShhB,GAAe,IAAMghB,EAAMzjB,EAAI5pE,EAAM4gN,MAC/D,CAMA,SAASI,EAAmBL,EAAY3gN,EAAM0hN,EAAQ7+O,EAAShJ,GAE3D,MAAM8I,EAAQw9O,EAAwBQ,EAAY3gN,GAClD,GAAIr9B,EACA,OAAOA,EAEX,MAAMg/O,EAAoB3hN,IAAS+0M,EAC7Bp7L,EAASvB,EAAiBmX,QAAQ5V,MAAb,CAAC,EAGxB+nM,IAGI7+O,GAAW8+O,EACXhN,EAAc9xO,QAAQ89O,EAAW3lP,SAAU0T,EAAO,CAC9CozK,OAAQ6/D,GAAqBhoM,GAASA,EAAMmoI,QAC7CjoL,IAEH86O,EAAch0O,KAAKggP,EAAW3lP,SAAUnB,IAGhDoiP,EAAatgP,MAAQglP,EACrBE,GAAaF,EAAY3gN,EAAM0hN,EAAQC,GACvCb,IACJ,CACA,IAAIc,EAEJ,SAASC,IAEDD,IAEJA,EAAwBjN,EAAcnzL,QAAO,CAACooD,EAAIk4I,EAAOxzL,KACrD,IAAK0tL,GAAO+F,UACR,OAEJ,MAAMpB,EAAalnP,EAAQmwG,GAIrB82I,EAAiBL,EAAqBM,GAC5C,GAAID,EAEA,YADAN,EAAiB1xO,EAAOgyO,EAAgB,CAAE79O,SAAS,IAAS89O,GAAYvkO,MAAM4wK,GAGlFmyD,EAAkBwB,EAClB,MAAM3gN,EAAOi8M,EAAatgP,MAEtBy8C,GACAy6L,EAAmBF,EAAa3yM,EAAKhlC,SAAUszD,EAAKgnI,OAAQ+8C,KAEhEqK,EAASiE,EAAY3gN,GAChB5jB,OAAOzZ,GACJyyO,EAAoBzyO,EAAO,IACpBA,EAEPyyO,EAAoBzyO,EAAO,IAU3By9O,EAAiBz9O,EAAMinG,GAAI+2I,GAGtB1gP,MAAK2gP,IAIFxL,EAAoBwL,EAAS,MAE5BtyL,EAAKgnI,OACNhnI,EAAKtwD,OAAS2zO,EAAex3N,KAC7Bw6N,EAAcF,IAAI,GAAG,EACzB,IAECr4N,MAAM4wK,GAEJxzL,QAAQE,WAGf40D,EAAKgnI,OACLq/C,EAAcF,IAAInmL,EAAKgnI,OAAO,GAG3ByrD,GAAap+O,EAAOg+O,EAAY3gN,MAEtC//B,MAAM2gP,IACPA,EACIA,GACII,EAEAL,EAAY3gN,GAAM,GAEtB4gN,IACItyL,EAAKgnI,QAGJ8/C,EAAoBwL,EAAS,GAC9BjM,EAAcF,IAAInmL,EAAKgnI,OAAO,GAEzBhnI,EAAKtwD,OAAS2zO,EAAex3N,KAClCi7N,EAAoBwL,EAAS,KAG7BjM,EAAcF,IAAI,GAAG,IAG7BwM,EAAiBN,EAAY3gN,EAAM4gN,EAAQ,IAG1CxkO,MAAM4wK,EAAK,IAExB,CAEA,IAEIg1D,EAFAC,EAAgB9G,KAChB+G,EAAiB/G,KAUrB,SAAS4F,GAAap+O,EAAOinG,EAAI5pE,GAC7B8gN,GAAYn+O,GACZ,MAAM23E,EAAO4nK,EAAe5nK,OAW5B,OAVIA,EAAKj6E,OACLi6E,EAAKj9E,SAAQ8yC,GAAWA,EAAQxtC,EAAOinG,EAAI5pE,KAM3Cr0B,QAAQhJ,MAAMA,GAGXnJ,QAAQE,OAAOiJ,EAC1B,CACA,SAASw/O,KACL,OAAIH,GAAS/F,EAAatgP,QAAUo5O,EACzBv7O,QAAQC,UACZ,IAAID,SAAQ,CAACC,EAASC,KACzBuoP,EAAct6M,IAAI,CAACluC,EAASC,GAAQ,GAE5C,CACA,SAASonP,GAAYllP,GAUjB,OATKomP,IAEDA,GAASpmP,EACTimP,IACAI,EACK3nK,OACAj9E,SAAQ,EAAE5D,EAASC,KAAakC,EAAMlC,EAAOkC,GAAOnC,MACzDwoP,EAAc7+F,SAEXxnJ,CACX,CAEA,SAASilP,GAAaj3I,EAAI5pE,EAAM0hN,EAAQC,GACpC,MAAM,eAAEvC,GAAmBp8O,EAC3B,IAAKo1C,IAAcgnM,EACf,OAAO5lP,QAAQC,UACnB,MAAMq5O,GAAmB4O,GAAU3O,EAAuBJ,EAAa/oI,EAAG5uG,SAAU,MAC9E2mP,IAAsBD,IACpBnyL,QAAQ5V,OACR4V,QAAQ5V,MAAMmoI,QAClB,KACJ,OAAO,UACF7hL,MAAK,IAAMm/O,EAAex1I,EAAI5pE,EAAM8yM,KACpC7yO,MAAKif,GAAYA,GAAYozN,EAAiBpzN,KAC9C9C,OAAMxgB,GAAOmlP,GAAanlP,EAAKguG,EAAI5pE,IAC5C,CACA,MAAMy0M,GAAMn/C,GAAUq/C,EAAcF,GAAGn/C,GACvC,IAAI8sD,GACJ,MAAMjB,GAAgB,IAAIz5M,IACpBs0M,GAAS,CACXC,eACA8F,WAAW,EACXvK,WACAY,cACAyH,WACArH,YACA/+O,UACAuJ,UACArC,OACAkC,UACA4xO,MACAd,KAAM,IAAMc,IAAI,GAChBf,QAAS,IAAMe,GAAG,GAClB4N,WAAYrD,EAAar3M,IACzB26M,cAAerD,EAAoBt3M,IACnC46M,UAAWrD,EAAYv3M,IACvB8oL,QAASyxB,EAAev6M,IACxBw6M,WACA,OAAAv2I,CAAQpB,GACJ,MAAMwxI,EAASv8O,KACf+qG,EAAIr1F,UAAU,aAAcmoO,IAC5B9yI,EAAIr1F,UAAU,aAAcypO,IAC5Bp0I,EAAIjxG,OAAOwtG,iBAAiBy7I,QAAUxG,EACtCx2O,OAAOuc,eAAeyoF,EAAIjxG,OAAOwtG,iBAAkB,SAAU,CACzDrlF,YAAY,EACZzF,IAAK,KAAM,QAAMggO,KAKjB7jM,IAGCgqM,IACDnG,EAAatgP,QAAUo5O,IAEvBqN,IAAU,EACVzhP,EAAKg0O,EAAcpqO,UAAU6R,OAAMxgB,IAC3B,CACA,KAGZ,MAAM6mP,EAAgB,CAAC,EACvB,IAAK,MAAMllP,KAAOw3O,EACdvvO,OAAOuc,eAAe0gO,EAAellP,EAAK,CACtC0e,IAAK,IAAMggO,EAAatgP,MAAM4B,GAC9BmkB,YAAY,IAGpB8oF,EAAIhD,QAAQwzI,GAAWgB,GACvBxxI,EAAIhD,QAAQyzI,IAAkB,QAAgBwH,IAC9Cj4I,EAAIhD,QAAQ0zI,GAAuBe,GACnC,MAAMnN,EAAatkI,EAAI4B,QACvB+0I,GAAcx5M,IAAI6iE,GAClBA,EAAI4B,QAAU,WACV+0I,GAAcx8M,OAAO6lE,GAEjB22I,GAAcvwO,KAAO,IAErBuuO,EAAkBpK,EAClB6M,GAAyBA,IACzBA,EAAwB,KACxB3F,EAAatgP,MAAQo5O,EACrBqN,IAAU,EACVJ,GAAQ,GAEZlT,GACJ,CAKJ,GAGJ,SAAS2S,GAAc/F,GACnB,OAAOA,EAAO5/N,QAAO,CAAC/b,EAASstH,IAAUttH,EAAQE,MAAK,IAAMosG,EAAeghB,MAAS7zH,QAAQC,UAChG,CACA,OAAOuiP,EACX,CACA,SAASuF,GAAuB33I,EAAI5pE,GAChC,MAAMohN,EAAiB,GACjBC,EAAkB,GAClBC,EAAkB,GAClBngO,EAAMnT,KAAK8S,IAAIkf,EAAKhqB,QAAQ3V,OAAQupG,EAAG5zF,QAAQ3V,QACrD,IAAK,IAAIF,EAAI,EAAGA,EAAIghB,EAAKhhB,IAAK,CAC1B,MAAMuiP,EAAa1iN,EAAKhqB,QAAQ7V,GAC5BuiP,IACI94I,EAAG5zF,QAAQyI,MAAK6jB,GAAU4uM,EAAkB5uM,EAAQogN,KACpDrB,EAAgB1gP,KAAK+hP,GAErBtB,EAAezgP,KAAK+hP,IAE5B,MAAMC,EAAW/4I,EAAG5zF,QAAQ7V,GACxBwiP,IAEK3iN,EAAKhqB,QAAQyI,MAAK6jB,GAAU4uM,EAAkB5uM,EAAQqgN,MACvDrB,EAAgB3gP,KAAKgiP,GAGjC,CACA,MAAO,CAACvB,EAAgBC,EAAiBC,EAC7C,CAMA,SAASsB,KACL,OAAO,QAAO5H,GAClB,CAKA,SAAS6H,KACL,OAAO,QAAO5H,GAClB,C","sources":["webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/adapters/xhr.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/axios.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/cancel/Cancel.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/cancel/CancelToken.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/cancel/isCancel.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/Axios.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/InterceptorManager.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/buildFullPath.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/createError.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/dispatchRequest.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/enhanceError.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/mergeConfig.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/settle.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/transformData.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/defaults.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/env/data.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/bind.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/buildURL.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/combineURLs.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/cookies.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/isAxiosError.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/parseHeaders.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/spread.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/validator.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/utils.js","webpack://cabinetv2/./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheUtils.js","webpack://cabinetv2/./node_modules/@aws-amplify/cache/lib-esm/StorageCache.js","webpack://cabinetv2/./node_modules/@aws-amplify/cache/lib-esm/BrowserStorageCache.js","webpack://cabinetv2/./node_modules/@aws-amplify/cache/lib-esm/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Util/DateUtils.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Signer.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/lib-esm/RestClient.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-rest/lib-esm/RestAPI.js","webpack://cabinetv2/./node_modules/graphql/jsutils/isObjectLike.mjs","webpack://cabinetv2/./node_modules/graphql/polyfills/symbols.mjs","webpack://cabinetv2/./node_modules/graphql/language/location.mjs","webpack://cabinetv2/./node_modules/graphql/language/printLocation.mjs","webpack://cabinetv2/./node_modules/graphql/error/GraphQLError.mjs","webpack://cabinetv2/./node_modules/graphql/error/syntaxError.mjs","webpack://cabinetv2/./node_modules/graphql/language/kinds.mjs","webpack://cabinetv2/./node_modules/graphql/jsutils/invariant.mjs","webpack://cabinetv2/./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","webpack://cabinetv2/./node_modules/graphql/jsutils/defineInspect.mjs","webpack://cabinetv2/./node_modules/graphql/language/ast.mjs","webpack://cabinetv2/./node_modules/graphql/language/tokenKind.mjs","webpack://cabinetv2/./node_modules/graphql/jsutils/inspect.mjs","webpack://cabinetv2/./node_modules/graphql/jsutils/devAssert.mjs","webpack://cabinetv2/./node_modules/graphql/jsutils/instanceOf.mjs","webpack://cabinetv2/./node_modules/graphql/language/source.mjs","webpack://cabinetv2/./node_modules/graphql/language/directiveLocation.mjs","webpack://cabinetv2/./node_modules/graphql/language/blockString.mjs","webpack://cabinetv2/./node_modules/graphql/language/lexer.mjs","webpack://cabinetv2/./node_modules/graphql/language/parser.mjs","webpack://cabinetv2/./node_modules/graphql/language/visitor.mjs","webpack://cabinetv2/./node_modules/graphql/language/printer.mjs","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/constants.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/lib-esm/types/PubSub.js","webpack://cabinetv2/./node_modules/zen-observable-ts/lib/bundle.esm.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/PubSubProvider.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Util/Reachability.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/constants.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/lib-esm/utils/ReachabilityMonitor/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/lib-esm/utils/ConnectionStateMonitor.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/MqttOverWSProvider.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSAppSyncProvider.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/I18n/I18n.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/I18n/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-graphql/lib-esm/types/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/auth/lib-esm/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/lib-esm/PubSub.js","webpack://cabinetv2/./node_modules/@aws-amplify/api-graphql/lib-esm/GraphQLAPI.js","webpack://cabinetv2/./node_modules/@aws-amplify/api/lib-esm/API.js","webpack://cabinetv2/./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Parser.js","webpack://cabinetv2/./node_modules/universal-cookie/es6/utils.js","webpack://cabinetv2/./node_modules/universal-cookie/es6/Cookies.js","webpack://cabinetv2/./node_modules/universal-cookie/es6/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/UniversalStorage/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Util/StringUtils.js","webpack://cabinetv2/./node_modules/@aws-amplify/auth/lib-esm/common/AuthErrorStrings.js","webpack://cabinetv2/./node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js","webpack://cabinetv2/./node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js","webpack://cabinetv2/./node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js","webpack://cabinetv2/./node_modules/@aws-amplify/auth/lib-esm/urlListener.js","webpack://cabinetv2/./node_modules/@aws-amplify/auth/lib-esm/Errors.js","webpack://cabinetv2/./node_modules/@aws-amplify/auth/lib-esm/Auth.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Amplify.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/client-cognito-identity/node_modules/tslib/tslib.es6.mjs","webpack://cabinetv2/./node_modules/@aws-sdk/client-cognito-identity/dist/es/models/models_0.js","webpack://cabinetv2/./node_modules/@aws-sdk/protocol-http/dist/es/httpResponse.js","webpack://cabinetv2/./node_modules/@aws-sdk/protocol-http/dist/es/httpRequest.js","webpack://cabinetv2/./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-serde/dist/es/deserializerMiddleware.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-serde/dist/es/serializerMiddleware.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-serde/dist/es/serdePlugin.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-stack/dist/es/MiddlewareStack.js","webpack://cabinetv2/./node_modules/@aws-sdk/smithy-client/dist/es/client.js","webpack://cabinetv2/./node_modules/@aws-sdk/smithy-client/dist/es/command.js","webpack://cabinetv2/./node_modules/@aws-sdk/smithy-client/dist/es/lazy-json.js","webpack://cabinetv2/./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetCredentialsForIdentityCommand.js","webpack://cabinetv2/./node_modules/@aws-sdk/property-provider/dist/es/ProviderError.js","webpack://cabinetv2/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/resolveLogins.js","webpack://cabinetv2/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentity.js","webpack://cabinetv2/./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdCommand.js","webpack://cabinetv2/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/IndexedDbStorage.js","webpack://cabinetv2/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/InMemoryStorage.js","webpack://cabinetv2/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/localStorage.js","webpack://cabinetv2/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentityPool.js","webpack://cabinetv2/./node_modules/@aws-sdk/util-uri-escape/dist/es/escape-uri.js","webpack://cabinetv2/./node_modules/@aws-sdk/querystring-builder/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/fetch-http-handler/dist/es/request-timeout.js","webpack://cabinetv2/./node_modules/@aws-sdk/util-base64-browser/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/fetch-http-handler/dist/es/fetch-http-handler.js","webpack://cabinetv2/./node_modules/@aws-sdk/fetch-http-handler/dist/es/stream-collector.js","webpack://cabinetv2/./node_modules/@aws-sdk/invalid-dependency/dist/es/invalidProvider.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/dist/es/retryMiddleware.js","webpack://cabinetv2/./node_modules/@aws-sdk/service-error-classification/dist/es/constants.js","webpack://cabinetv2/./node_modules/@aws-sdk/service-error-classification/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/dist/es/constants.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/dist/es/defaultRetryQuota.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/dist/es/delayDecider.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/dist/es/retryDecider.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/dist/es/defaultStrategy.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/dist/es/configurations.js","webpack://cabinetv2/./node_modules/@aws-sdk/util-body-length-browser/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/util-user-agent-browser/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/client-cognito-identity/dist/es/endpoints.js","webpack://cabinetv2/./node_modules/@aws-sdk/querystring-parser/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/url-parser/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.shared.js","webpack://cabinetv2/./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.browser.js","webpack://cabinetv2/./node_modules/@aws-sdk/config-resolver/dist/es/EndpointsConfig.js","webpack://cabinetv2/./node_modules/@aws-sdk/config-resolver/dist/es/RegionConfig.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-content-length/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-host-header/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-logger/dist/es/loggerMiddleware.js","webpack://cabinetv2/./node_modules/@aws-sdk/signature-v4/dist/es/constants.js","webpack://cabinetv2/./node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js","webpack://cabinetv2/./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalHeaders.js","webpack://cabinetv2/./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalQuery.js","webpack://cabinetv2/./node_modules/@aws-sdk/is-array-buffer/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/signature-v4/dist/es/getPayloadHash.js","webpack://cabinetv2/./node_modules/@aws-sdk/signature-v4/dist/es/hasHeader.js","webpack://cabinetv2/./node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js","webpack://cabinetv2/./node_modules/@aws-sdk/signature-v4/dist/es/moveHeadersToQuery.js","webpack://cabinetv2/./node_modules/@aws-sdk/signature-v4/dist/es/prepareRequest.js","webpack://cabinetv2/./node_modules/@aws-sdk/signature-v4/dist/es/utilDate.js","webpack://cabinetv2/./node_modules/@aws-sdk/signature-v4/dist/es/SignatureV4.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-signing/dist/es/configurations.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-user-agent/dist/es/configurations.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-user-agent/dist/es/constants.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-user-agent/dist/es/user-agent-middleware.js","webpack://cabinetv2/./node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentityClient.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Util/CognitoIdentityClient.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Credentials.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Hub.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/JS.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Util/Constants.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Platform/version.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Platform/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/core/lib-esm/Util/Retry.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/node_modules/uuid/index.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/bytesToUuid.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/rng-browser.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/node_modules/uuid/v1.js","webpack://cabinetv2/./node_modules/@aws-amplify/pubsub/node_modules/uuid/v4.js","webpack://cabinetv2/./node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js","webpack://cabinetv2/./node_modules/@aws-crypto/ie11-detection/build/Key.js","webpack://cabinetv2/./node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js","webpack://cabinetv2/./node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js","webpack://cabinetv2/./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js","webpack://cabinetv2/./node_modules/@aws-crypto/ie11-detection/build/index.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-browser/build/constants.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-browser/build/index.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/RawSha256.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/constants.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/index.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/jsSha256.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-js/build/RawSha256.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-js/build/constants.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-js/build/index.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-js/build/jsSha256.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","webpack://cabinetv2/./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-crypto/supports-web-crypto/build/index.js","webpack://cabinetv2/./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js","webpack://cabinetv2/./node_modules/@aws-crypto/util/build/convertToBuffer.js","webpack://cabinetv2/./node_modules/@aws-crypto/util/build/index.js","webpack://cabinetv2/./node_modules/@aws-crypto/util/build/isEmptyData.js","webpack://cabinetv2/./node_modules/@aws-crypto/util/build/numToUint8.js","webpack://cabinetv2/./node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/lib/bytesToUuid.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/lib/rng-browser.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/v1.js","webpack://cabinetv2/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/v4.js","webpack://cabinetv2/./node_modules/@aws-sdk/util-hex-encoding/dist/es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/util-locate-window/dist-es/index.js","webpack://cabinetv2/./node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","webpack://cabinetv2/./node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","webpack://cabinetv2/./node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","webpack://cabinetv2/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://cabinetv2/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://cabinetv2/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://cabinetv2/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/BigInteger.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/DateHelper.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/StorageHelper.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/CognitoUser.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/Platform/version.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/Platform/index.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/UserAgent.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/Client.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","webpack://cabinetv2/./node_modules/amazon-cognito-identity-js/es/CookieStorage.js","webpack://cabinetv2/./node_modules/axios/index.js","webpack://cabinetv2/./node_modules/axios/lib/adapters/xhr.js","webpack://cabinetv2/./node_modules/axios/lib/axios.js","webpack://cabinetv2/./node_modules/axios/lib/cancel/CancelToken.js","webpack://cabinetv2/./node_modules/axios/lib/cancel/CanceledError.js","webpack://cabinetv2/./node_modules/axios/lib/cancel/isCancel.js","webpack://cabinetv2/./node_modules/axios/lib/core/Axios.js","webpack://cabinetv2/./node_modules/axios/lib/core/AxiosError.js","webpack://cabinetv2/./node_modules/axios/lib/core/InterceptorManager.js","webpack://cabinetv2/./node_modules/axios/lib/core/buildFullPath.js","webpack://cabinetv2/./node_modules/axios/lib/core/dispatchRequest.js","webpack://cabinetv2/./node_modules/axios/lib/core/mergeConfig.js","webpack://cabinetv2/./node_modules/axios/lib/core/settle.js","webpack://cabinetv2/./node_modules/axios/lib/core/transformData.js","webpack://cabinetv2/./node_modules/axios/lib/defaults/index.js","webpack://cabinetv2/./node_modules/axios/lib/defaults/transitional.js","webpack://cabinetv2/./node_modules/axios/lib/env/data.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/bind.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/buildURL.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/combineURLs.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/cookies.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/null.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/spread.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/toFormData.js","webpack://cabinetv2/./node_modules/axios/lib/helpers/validator.js","webpack://cabinetv2/./node_modules/axios/lib/utils.js","webpack://cabinetv2/./node_modules/base64-js/index.js","webpack://cabinetv2/./node_modules/bowser/es5.js","webpack://cabinetv2/./node_modules/buffer/index.js","webpack://cabinetv2/./node_modules/call-bind-apply-helpers/actualApply.js","webpack://cabinetv2/./node_modules/call-bind-apply-helpers/functionApply.js","webpack://cabinetv2/./node_modules/call-bind-apply-helpers/functionCall.js","webpack://cabinetv2/./node_modules/call-bind-apply-helpers/index.js","webpack://cabinetv2/./node_modules/call-bind-apply-helpers/reflectApply.js","webpack://cabinetv2/./node_modules/call-bound/index.js","webpack://cabinetv2/./node_modules/cookie/index.js","webpack://cabinetv2/./node_modules/crypto-js/core.js","webpack://cabinetv2/./node_modules/crypto-js/enc-base64.js","webpack://cabinetv2/./node_modules/crypto-js/hmac-sha256.js","webpack://cabinetv2/./node_modules/crypto-js/hmac.js","webpack://cabinetv2/./node_modules/crypto-js/lib-typedarrays.js","webpack://cabinetv2/./node_modules/crypto-js/sha256.js","webpack://cabinetv2/./node_modules/dunder-proto/get.js","webpack://cabinetv2/./node_modules/es-define-property/index.js","webpack://cabinetv2/./node_modules/es-errors/eval.js","webpack://cabinetv2/./node_modules/es-errors/index.js","webpack://cabinetv2/./node_modules/es-errors/range.js","webpack://cabinetv2/./node_modules/es-errors/ref.js","webpack://cabinetv2/./node_modules/es-errors/syntax.js","webpack://cabinetv2/./node_modules/es-errors/type.js","webpack://cabinetv2/./node_modules/es-errors/uri.js","webpack://cabinetv2/./node_modules/es-object-atoms/index.js","webpack://cabinetv2/./node_modules/function-bind/implementation.js","webpack://cabinetv2/./node_modules/function-bind/index.js","webpack://cabinetv2/./node_modules/get-intrinsic/index.js","webpack://cabinetv2/./node_modules/gopd/gOPD.js","webpack://cabinetv2/./node_modules/gopd/index.js","webpack://cabinetv2/./node_modules/has-symbols/index.js","webpack://cabinetv2/./node_modules/has-symbols/shams.js","webpack://cabinetv2/./node_modules/hasown/index.js","webpack://cabinetv2/./node_modules/ieee754/index.js","webpack://cabinetv2/./node_modules/isarray/index.js","webpack://cabinetv2/./node_modules/isomorphic-unfetch/browser.js","webpack://cabinetv2/./node_modules/js-cookie/src/js.cookie.js","webpack://cabinetv2/./node_modules/math-intrinsics/abs.js","webpack://cabinetv2/./node_modules/math-intrinsics/floor.js","webpack://cabinetv2/./node_modules/math-intrinsics/max.js","webpack://cabinetv2/./node_modules/math-intrinsics/min.js","webpack://cabinetv2/./node_modules/math-intrinsics/pow.js","webpack://cabinetv2/./node_modules/object-inspect/index.js","webpack://cabinetv2/./node_modules/paho-mqtt/paho-mqtt.js","webpack://cabinetv2/./node_modules/primevue/api/api.esm.js","webpack://cabinetv2/./node_modules/primevue/base/style/basestyle.esm.js","webpack://cabinetv2/./node_modules/primevue/basedirective/basedirective.esm.js","webpack://cabinetv2/./node_modules/primevue/config/config.esm.js","webpack://cabinetv2/./node_modules/primevue/dynamicdialogeventbus/dynamicdialogeventbus.esm.js","webpack://cabinetv2/./node_modules/primevue/usedialog/usedialog.esm.js","webpack://cabinetv2/./node_modules/primevue/dialogservice/dialogservice.esm.js","webpack://cabinetv2/./node_modules/primevue/styleclass/styleclass.esm.js","webpack://cabinetv2/./node_modules/primevue/toasteventbus/toasteventbus.esm.js","webpack://cabinetv2/./node_modules/primevue/toastservice/toastservice.esm.js","webpack://cabinetv2/./node_modules/primevue/tooltip/style/tooltipstyle.esm.js","webpack://cabinetv2/./node_modules/primevue/tooltip/tooltip.esm.js","webpack://cabinetv2/./node_modules/primevue/usestyle/usestyle.esm.js","webpack://cabinetv2/./node_modules/primevue/usetoast/usetoast.esm.js","webpack://cabinetv2/./node_modules/primevue/utils/utils.esm.js","webpack://cabinetv2/./node_modules/rxjs/node_modules/tslib/tslib.es6.mjs","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/config.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/util/errorContext.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/Observable.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/Subject.js","webpack://cabinetv2/./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","webpack://cabinetv2/./node_modules/side-channel-list/index.js","webpack://cabinetv2/./node_modules/side-channel-map/index.js","webpack://cabinetv2/./node_modules/side-channel-weakmap/index.js","webpack://cabinetv2/./node_modules/side-channel/index.js","webpack://cabinetv2/./node_modules/tslib/tslib.es6.js","webpack://cabinetv2/./node_modules/unfetch/dist/unfetch.module.js","webpack://cabinetv2/./node_modules/url/node_modules/punycode/punycode.js","webpack://cabinetv2/./node_modules/url/node_modules/qs/lib/formats.js","webpack://cabinetv2/./node_modules/url/node_modules/qs/lib/index.js","webpack://cabinetv2/./node_modules/url/node_modules/qs/lib/parse.js","webpack://cabinetv2/./node_modules/url/node_modules/qs/lib/stringify.js","webpack://cabinetv2/./node_modules/url/node_modules/qs/lib/utils.js","webpack://cabinetv2/./node_modules/url/url.js","webpack://cabinetv2/./node_modules/vue-loader/dist/exportHelper.js","webpack://cabinetv2/./node_modules/vue-mobile-detection/dist/vue-mobile-detection.umd.min.js","webpack://cabinetv2/./node_modules/vue-next-select/dist/vue-next-select.es.prod.js","webpack://cabinetv2/./node_modules/@vue/devtools-api/lib/esm/env.js","webpack://cabinetv2/./node_modules/@vue/devtools-api/lib/esm/const.js","webpack://cabinetv2/./node_modules/@vue/devtools-api/lib/esm/time.js","webpack://cabinetv2/./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack://cabinetv2/./node_modules/@vue/devtools-api/lib/esm/index.js","webpack://cabinetv2/./node_modules/vuex/dist/vuex.esm-bundler.js","webpack://cabinetv2/./node_modules/zen-observable/index.js","webpack://cabinetv2/./node_modules/zen-observable/lib/Observable.js","webpack://cabinetv2/./node_modules/core-js/internals/a-callable.js","webpack://cabinetv2/./node_modules/core-js/internals/a-possible-prototype.js","webpack://cabinetv2/./node_modules/core-js/internals/an-instance.js","webpack://cabinetv2/./node_modules/core-js/internals/an-object.js","webpack://cabinetv2/./node_modules/core-js/internals/array-includes.js","webpack://cabinetv2/./node_modules/core-js/internals/array-set-length.js","webpack://cabinetv2/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://cabinetv2/./node_modules/core-js/internals/classof-raw.js","webpack://cabinetv2/./node_modules/core-js/internals/classof.js","webpack://cabinetv2/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://cabinetv2/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://cabinetv2/./node_modules/core-js/internals/create-iter-result-object.js","webpack://cabinetv2/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://cabinetv2/./node_modules/core-js/internals/create-property-descriptor.js","webpack://cabinetv2/./node_modules/core-js/internals/create-property.js","webpack://cabinetv2/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://cabinetv2/./node_modules/core-js/internals/define-built-in.js","webpack://cabinetv2/./node_modules/core-js/internals/define-built-ins.js","webpack://cabinetv2/./node_modules/core-js/internals/define-global-property.js","webpack://cabinetv2/./node_modules/core-js/internals/descriptors.js","webpack://cabinetv2/./node_modules/core-js/internals/document-all.js","webpack://cabinetv2/./node_modules/core-js/internals/document-create-element.js","webpack://cabinetv2/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://cabinetv2/./node_modules/core-js/internals/dom-exception-constants.js","webpack://cabinetv2/./node_modules/core-js/internals/engine-user-agent.js","webpack://cabinetv2/./node_modules/core-js/internals/engine-v8-version.js","webpack://cabinetv2/./node_modules/core-js/internals/enum-bug-keys.js","webpack://cabinetv2/./node_modules/core-js/internals/error-stack-clear.js","webpack://cabinetv2/./node_modules/core-js/internals/export.js","webpack://cabinetv2/./node_modules/core-js/internals/fails.js","webpack://cabinetv2/./node_modules/core-js/internals/function-bind-context.js","webpack://cabinetv2/./node_modules/core-js/internals/function-bind-native.js","webpack://cabinetv2/./node_modules/core-js/internals/function-call.js","webpack://cabinetv2/./node_modules/core-js/internals/function-name.js","webpack://cabinetv2/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://cabinetv2/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://cabinetv2/./node_modules/core-js/internals/function-uncurry-this.js","webpack://cabinetv2/./node_modules/core-js/internals/get-built-in.js","webpack://cabinetv2/./node_modules/core-js/internals/get-iterator-direct.js","webpack://cabinetv2/./node_modules/core-js/internals/get-iterator-method.js","webpack://cabinetv2/./node_modules/core-js/internals/get-iterator.js","webpack://cabinetv2/./node_modules/core-js/internals/get-method.js","webpack://cabinetv2/./node_modules/core-js/internals/global.js","webpack://cabinetv2/./node_modules/core-js/internals/has-own-property.js","webpack://cabinetv2/./node_modules/core-js/internals/hidden-keys.js","webpack://cabinetv2/./node_modules/core-js/internals/html.js","webpack://cabinetv2/./node_modules/core-js/internals/ie8-dom-define.js","webpack://cabinetv2/./node_modules/core-js/internals/indexed-object.js","webpack://cabinetv2/./node_modules/core-js/internals/inherit-if-required.js","webpack://cabinetv2/./node_modules/core-js/internals/inspect-source.js","webpack://cabinetv2/./node_modules/core-js/internals/internal-state.js","webpack://cabinetv2/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://cabinetv2/./node_modules/core-js/internals/is-array.js","webpack://cabinetv2/./node_modules/core-js/internals/is-callable.js","webpack://cabinetv2/./node_modules/core-js/internals/is-forced.js","webpack://cabinetv2/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://cabinetv2/./node_modules/core-js/internals/is-object.js","webpack://cabinetv2/./node_modules/core-js/internals/is-pure.js","webpack://cabinetv2/./node_modules/core-js/internals/is-symbol.js","webpack://cabinetv2/./node_modules/core-js/internals/iterate.js","webpack://cabinetv2/./node_modules/core-js/internals/iterator-close.js","webpack://cabinetv2/./node_modules/core-js/internals/iterator-create-proxy.js","webpack://cabinetv2/./node_modules/core-js/internals/iterator-map.js","webpack://cabinetv2/./node_modules/core-js/internals/iterators-core.js","webpack://cabinetv2/./node_modules/core-js/internals/iterators.js","webpack://cabinetv2/./node_modules/core-js/internals/length-of-array-like.js","webpack://cabinetv2/./node_modules/core-js/internals/make-built-in.js","webpack://cabinetv2/./node_modules/core-js/internals/math-trunc.js","webpack://cabinetv2/./node_modules/core-js/internals/normalize-string-argument.js","webpack://cabinetv2/./node_modules/core-js/internals/object-create.js","webpack://cabinetv2/./node_modules/core-js/internals/object-define-properties.js","webpack://cabinetv2/./node_modules/core-js/internals/object-define-property.js","webpack://cabinetv2/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://cabinetv2/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://cabinetv2/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://cabinetv2/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://cabinetv2/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://cabinetv2/./node_modules/core-js/internals/object-keys-internal.js","webpack://cabinetv2/./node_modules/core-js/internals/object-keys.js","webpack://cabinetv2/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://cabinetv2/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://cabinetv2/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://cabinetv2/./node_modules/core-js/internals/own-keys.js","webpack://cabinetv2/./node_modules/core-js/internals/require-object-coercible.js","webpack://cabinetv2/./node_modules/core-js/internals/shared-key.js","webpack://cabinetv2/./node_modules/core-js/internals/shared-store.js","webpack://cabinetv2/./node_modules/core-js/internals/shared.js","webpack://cabinetv2/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://cabinetv2/./node_modules/core-js/internals/to-absolute-index.js","webpack://cabinetv2/./node_modules/core-js/internals/to-indexed-object.js","webpack://cabinetv2/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://cabinetv2/./node_modules/core-js/internals/to-length.js","webpack://cabinetv2/./node_modules/core-js/internals/to-object.js","webpack://cabinetv2/./node_modules/core-js/internals/to-primitive.js","webpack://cabinetv2/./node_modules/core-js/internals/to-property-key.js","webpack://cabinetv2/./node_modules/core-js/internals/to-string-tag-support.js","webpack://cabinetv2/./node_modules/core-js/internals/to-string.js","webpack://cabinetv2/./node_modules/core-js/internals/try-to-string.js","webpack://cabinetv2/./node_modules/core-js/internals/uid.js","webpack://cabinetv2/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://cabinetv2/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://cabinetv2/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://cabinetv2/./node_modules/core-js/internals/well-known-symbol.js","webpack://cabinetv2/./node_modules/core-js/modules/es.array.push.js","webpack://cabinetv2/./node_modules/core-js/modules/esnext.iterator.constructor.js","webpack://cabinetv2/./node_modules/core-js/modules/esnext.iterator.filter.js","webpack://cabinetv2/./node_modules/core-js/modules/esnext.iterator.find.js","webpack://cabinetv2/./node_modules/core-js/modules/esnext.iterator.map.js","webpack://cabinetv2/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://cabinetv2/./node_modules/mitt/dist/mitt.mjs","webpack://cabinetv2/./node_modules/@intlify/shared/dist/shared.mjs","webpack://cabinetv2/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js","webpack://cabinetv2/./node_modules/@intlify/core-base/dist/core-base.mjs","webpack://cabinetv2/./node_modules/vue-i18n/dist/vue-i18n.mjs","webpack://cabinetv2/./node_modules/vue-router/dist/vue-router.mjs"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.26.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { StorageHelper } from '@aws-amplify/core';\n/**\n * Default cache config\n */\nexport var defaultConfig = {\n keyPrefix: 'aws-amplify-cache',\n capacityInBytes: 1048576,\n itemMaxSize: 210000,\n defaultTTL: 259200000,\n defaultPriority: 5,\n warningThreshold: 0.8,\n // the storage helper will check if localStorage exists,\n // if not, will use a in-memory object instead\n storage: new StorageHelper().getStorage(),\n};\n/**\n * return the byte size of the string\n * @param str\n */\nexport function getByteLength(str) {\n var ret = 0;\n ret = str.length;\n for (var i = str.length; i >= 0; i -= 1) {\n var charCode = str.charCodeAt(i);\n if (charCode > 0x7f && charCode <= 0x7ff) {\n ret += 1;\n }\n else if (charCode > 0x7ff && charCode <= 0xffff) {\n ret += 2;\n }\n // trail surrogate\n if (charCode >= 0xdc00 && charCode <= 0xdfff) {\n i -= 1;\n }\n }\n return ret;\n}\n/**\n * get current time\n */\nexport function getCurrTime() {\n var currTime = new Date();\n return currTime.getTime();\n}\n/**\n * check if passed value is an integer\n */\nexport function isInteger(value) {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n return _isInteger(value);\n}\nfunction _isInteger(value) {\n return (typeof value === 'number' && isFinite(value) && Math.floor(value) === value);\n}\n/**\n * provide an object as the in-memory cache\n */\nvar store = {};\nvar CacheObject = /** @class */ (function () {\n function CacheObject() {\n }\n CacheObject.clear = function () {\n store = {};\n };\n CacheObject.getItem = function (key) {\n return store[key] || null;\n };\n CacheObject.setItem = function (key, value) {\n store[key] = value;\n };\n CacheObject.removeItem = function (key) {\n delete store[key];\n };\n return CacheObject;\n}());\nexport { CacheObject };\n//# sourceMappingURL=CacheUtils.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { getCurrTime, getByteLength, defaultConfig, isInteger } from './Utils';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('StorageCache');\n/**\n * Initialization of the cache\n *\n */\nvar StorageCache = /** @class */ (function () {\n /**\n * Initialize the cache\n * @param config - the configuration of the cache\n */\n function StorageCache(config) {\n this.config = Object.assign({}, config);\n this.cacheCurSizeKey = this.config.keyPrefix + 'CurSize';\n this.checkConfig();\n }\n StorageCache.prototype.getModuleName = function () {\n return 'Cache';\n };\n StorageCache.prototype.checkConfig = function () {\n // check configuration\n if (!isInteger(this.config.capacityInBytes)) {\n logger.error('Invalid parameter: capacityInBytes. It should be an Integer. Setting back to default.');\n this.config.capacityInBytes = defaultConfig.capacityInBytes;\n }\n if (!isInteger(this.config.itemMaxSize)) {\n logger.error('Invalid parameter: itemMaxSize. It should be an Integer. Setting back to default.');\n this.config.itemMaxSize = defaultConfig.itemMaxSize;\n }\n if (!isInteger(this.config.defaultTTL)) {\n logger.error('Invalid parameter: defaultTTL. It should be an Integer. Setting back to default.');\n this.config.defaultTTL = defaultConfig.defaultTTL;\n }\n if (!isInteger(this.config.defaultPriority)) {\n logger.error('Invalid parameter: defaultPriority. It should be an Integer. Setting back to default.');\n this.config.defaultPriority = defaultConfig.defaultPriority;\n }\n if (this.config.itemMaxSize > this.config.capacityInBytes) {\n logger.error('Invalid parameter: itemMaxSize. It should be smaller than capacityInBytes. Setting back to default.');\n this.config.itemMaxSize = defaultConfig.itemMaxSize;\n }\n if (this.config.defaultPriority > 5 || this.config.defaultPriority < 1) {\n logger.error('Invalid parameter: defaultPriority. It should be between 1 and 5. Setting back to default.');\n this.config.defaultPriority = defaultConfig.defaultPriority;\n }\n if (Number(this.config.warningThreshold) > 1 ||\n Number(this.config.warningThreshold) < 0) {\n logger.error('Invalid parameter: warningThreshold. It should be between 0 and 1. Setting back to default.');\n this.config.warningThreshold = defaultConfig.warningThreshold;\n }\n // set 5MB limit\n var cacheLimit = 5 * 1024 * 1024;\n if (this.config.capacityInBytes > cacheLimit) {\n logger.error('Cache Capacity should be less than 5MB. Setting back to default. Setting back to default.');\n this.config.capacityInBytes = defaultConfig.capacityInBytes;\n }\n };\n /**\n * produce a JSON object with meta-data and data value\n * @param value - the value of the item\n * @param options - optional, the specified meta-data\n *\n * @return - the item which has the meta-data and the value\n */\n StorageCache.prototype.fillCacheItem = function (key, value, options) {\n var ret = {\n key: key,\n data: value,\n timestamp: getCurrTime(),\n visitedTime: getCurrTime(),\n priority: options.priority,\n expires: options.expires,\n type: typeof value,\n byteSize: 0,\n };\n ret.byteSize = getByteLength(JSON.stringify(ret));\n // for accurate size\n ret.byteSize = getByteLength(JSON.stringify(ret));\n return ret;\n };\n /**\n * set cache with customized configuration\n * @param config - customized configuration\n *\n * @return - the current configuration\n */\n StorageCache.prototype.configure = function (config) {\n if (!config) {\n return this.config;\n }\n if (config.keyPrefix) {\n logger.warn(\"Don't try to configure keyPrefix!\");\n }\n this.config = Object.assign({}, this.config, config, config.Cache);\n this.checkConfig();\n return this.config;\n };\n return StorageCache;\n}());\nexport { StorageCache };\n/**\n * @deprecated use named import\n */\nexport default StorageCache;\n//# sourceMappingURL=StorageCache.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { defaultConfig, getCurrTime } from './Utils';\nimport { StorageCache } from './StorageCache';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('Cache');\n/**\n * Customized storage based on the SessionStorage or LocalStorage with LRU implemented\n */\nvar BrowserStorageCacheClass = /** @class */ (function (_super) {\n __extends(BrowserStorageCacheClass, _super);\n /**\n * initialize the cache\n * @param config - the configuration of the cache\n */\n function BrowserStorageCacheClass(config) {\n var _this = this;\n var cacheConfig = config\n ? Object.assign({}, defaultConfig, config)\n : defaultConfig;\n _this = _super.call(this, cacheConfig) || this;\n _this.config.storage = cacheConfig.storage;\n _this.getItem = _this.getItem.bind(_this);\n _this.setItem = _this.setItem.bind(_this);\n _this.removeItem = _this.removeItem.bind(_this);\n return _this;\n }\n /**\n * decrease current size of the cache\n *\n * @private\n * @param amount - the amount of the cache size which needs to be decreased\n */\n BrowserStorageCacheClass.prototype._decreaseCurSizeInBytes = function (amount) {\n var curSize = this.getCacheCurSize();\n this.config.storage.setItem(this.cacheCurSizeKey, (curSize - amount).toString());\n };\n /**\n * increase current size of the cache\n *\n * @private\n * @param amount - the amount of the cache szie which need to be increased\n */\n BrowserStorageCacheClass.prototype._increaseCurSizeInBytes = function (amount) {\n var curSize = this.getCacheCurSize();\n this.config.storage.setItem(this.cacheCurSizeKey, (curSize + amount).toString());\n };\n /**\n * update the visited time if item has been visited\n *\n * @private\n * @param item - the item which need to be refreshed\n * @param prefixedKey - the key of the item\n *\n * @return the refreshed item\n */\n BrowserStorageCacheClass.prototype._refreshItem = function (item, prefixedKey) {\n item.visitedTime = getCurrTime();\n this.config.storage.setItem(prefixedKey, JSON.stringify(item));\n return item;\n };\n /**\n * check wether item is expired\n *\n * @private\n * @param key - the key of the item\n *\n * @return true if the item is expired.\n */\n BrowserStorageCacheClass.prototype._isExpired = function (key) {\n var text = this.config.storage.getItem(key);\n var item = JSON.parse(text);\n if (getCurrTime() >= item.expires) {\n return true;\n }\n return false;\n };\n /**\n * delete item from cache\n *\n * @private\n * @param prefixedKey - the key of the item\n * @param size - optional, the byte size of the item\n */\n BrowserStorageCacheClass.prototype._removeItem = function (prefixedKey, size) {\n var itemSize = size\n ? size\n : JSON.parse(this.config.storage.getItem(prefixedKey)).byteSize;\n this._decreaseCurSizeInBytes(itemSize);\n // remove the cache item\n this.config.storage.removeItem(prefixedKey);\n };\n /**\n * put item into cache\n *\n * @private\n * @param prefixedKey - the key of the item\n * @param itemData - the value of the item\n * @param itemSizeInBytes - the byte size of the item\n */\n BrowserStorageCacheClass.prototype._setItem = function (prefixedKey, item) {\n // update the cache size\n this._increaseCurSizeInBytes(item.byteSize);\n try {\n this.config.storage.setItem(prefixedKey, JSON.stringify(item));\n }\n catch (setItemErr) {\n // if failed, we need to rollback the cache size\n this._decreaseCurSizeInBytes(item.byteSize);\n logger.error(\"Failed to set item \" + setItemErr);\n }\n };\n /**\n * total space needed when poping out items\n *\n * @private\n * @param itemSize\n *\n * @return total space needed\n */\n BrowserStorageCacheClass.prototype._sizeToPop = function (itemSize) {\n var spaceItemNeed = this.getCacheCurSize() + itemSize - this.config.capacityInBytes;\n var cacheThresholdSpace = (1 - this.config.warningThreshold) * this.config.capacityInBytes;\n return spaceItemNeed > cacheThresholdSpace\n ? spaceItemNeed\n : cacheThresholdSpace;\n };\n /**\n * see whether cache is full\n *\n * @private\n * @param itemSize\n *\n * @return true if cache is full\n */\n BrowserStorageCacheClass.prototype._isCacheFull = function (itemSize) {\n return itemSize + this.getCacheCurSize() > this.config.capacityInBytes;\n };\n /**\n * scan the storage and find out all the keys owned by this cache\n * also clean the expired keys while scanning\n *\n * @private\n *\n * @return array of keys\n */\n BrowserStorageCacheClass.prototype._findValidKeys = function () {\n var keys = [];\n var keyInCache = [];\n // get all keys in Storage\n for (var i = 0; i < this.config.storage.length; i += 1) {\n keyInCache.push(this.config.storage.key(i));\n }\n // find those items which belong to our cache and also clean those expired items\n for (var i = 0; i < keyInCache.length; i += 1) {\n var key = keyInCache[i];\n if (key.indexOf(this.config.keyPrefix) === 0 &&\n key !== this.cacheCurSizeKey) {\n if (this._isExpired(key)) {\n this._removeItem(key);\n }\n else {\n keys.push(key);\n }\n }\n }\n return keys;\n };\n /**\n * get all the items we have, sort them by their priority,\n * if priority is same, sort them by their last visited time\n * pop out items from the low priority (5 is the lowest)\n *\n * @private\n * @param keys - all the keys in this cache\n * @param sizeToPop - the total size of the items which needed to be poped out\n */\n BrowserStorageCacheClass.prototype._popOutItems = function (keys, sizeToPop) {\n var items = [];\n var remainedSize = sizeToPop;\n // get the items from Storage\n for (var i = 0; i < keys.length; i += 1) {\n var val = this.config.storage.getItem(keys[i]);\n if (val != null) {\n var item = JSON.parse(val);\n items.push(item);\n }\n }\n // first compare priority\n // then compare visited time\n items.sort(function (a, b) {\n if (a.priority > b.priority) {\n return -1;\n }\n else if (a.priority < b.priority) {\n return 1;\n }\n else {\n if (a.visitedTime < b.visitedTime) {\n return -1;\n }\n else\n return 1;\n }\n });\n for (var i = 0; i < items.length; i += 1) {\n // pop out items until we have enough room for new item\n this._removeItem(items[i].key, items[i].byteSize);\n remainedSize -= items[i].byteSize;\n if (remainedSize <= 0) {\n return;\n }\n }\n };\n /**\n * Set item into cache. You can put number, string, boolean or object.\n * The cache will first check whether has the same key.\n * If it has, it will delete the old item and then put the new item in\n * The cache will pop out items if it is full\n * You can specify the cache item options. The cache will abort and output a warning:\n * If the key is invalid\n * If the size of the item exceeds itemMaxSize.\n * If the value is undefined\n * If incorrect cache item configuration\n * If error happened with browser storage\n *\n * @param key - the key of the item\n * @param value - the value of the item\n * @param {Object} [options] - optional, the specified meta-data\n */\n BrowserStorageCacheClass.prototype.setItem = function (key, value, options) {\n logger.log(\"Set item: key is \" + key + \", value is \" + value + \" with options: \" + options);\n var prefixedKey = this.config.keyPrefix + key;\n // invalid keys\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n logger.warn(\"Invalid key: should not be empty or 'CurSize'\");\n return;\n }\n if (typeof value === 'undefined') {\n logger.warn(\"The value of item should not be undefined!\");\n return;\n }\n var cacheItemOptions = {\n priority: options && options.priority !== undefined\n ? options.priority\n : this.config.defaultPriority,\n expires: options && options.expires !== undefined\n ? options.expires\n : this.config.defaultTTL + getCurrTime(),\n };\n if (cacheItemOptions.priority < 1 || cacheItemOptions.priority > 5) {\n logger.warn(\"Invalid parameter: priority due to out or range. It should be within 1 and 5.\");\n return;\n }\n var item = this.fillCacheItem(prefixedKey, value, cacheItemOptions);\n // check wether this item is too big;\n if (item.byteSize > this.config.itemMaxSize) {\n logger.warn(\"Item with key: \" + key + \" you are trying to put into is too big!\");\n return;\n }\n try {\n // first look into the storage, if it exists, delete it.\n var val = this.config.storage.getItem(prefixedKey);\n if (val) {\n this._removeItem(prefixedKey, JSON.parse(val).byteSize);\n }\n // check whether the cache is full\n if (this._isCacheFull(item.byteSize)) {\n var validKeys = this._findValidKeys();\n // check again and then pop out items\n if (this._isCacheFull(item.byteSize)) {\n var sizeToPop = this._sizeToPop(item.byteSize);\n this._popOutItems(validKeys, sizeToPop);\n }\n }\n // put item in the cache\n // may failed due to storage full\n this._setItem(prefixedKey, item);\n }\n catch (e) {\n logger.warn(\"setItem failed! \" + e);\n }\n };\n /**\n * Get item from cache. It will return null if item doesn’t exist or it has been expired.\n * If you specified callback function in the options,\n * then the function will be executed if no such item in the cache\n * and finally put the return value into cache.\n * Please make sure the callback function will return the value you want to put into the cache.\n * The cache will abort output a warning:\n * If the key is invalid\n * If error happened with browser storage\n *\n * @param key - the key of the item\n * @param {Object} [options] - the options of callback function\n *\n * @return - return the value of the item\n */\n BrowserStorageCacheClass.prototype.getItem = function (key, options) {\n logger.log(\"Get item: key is \" + key + \" with options \" + options);\n var ret = null;\n var prefixedKey = this.config.keyPrefix + key;\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n logger.warn(\"Invalid key: should not be empty or 'CurSize'\");\n return null;\n }\n try {\n ret = this.config.storage.getItem(prefixedKey);\n if (ret != null) {\n if (this._isExpired(prefixedKey)) {\n // if expired, remove that item and return null\n this._removeItem(prefixedKey, JSON.parse(ret).byteSize);\n ret = null;\n }\n else {\n // if not expired, great, return the value and refresh it\n var item = JSON.parse(ret);\n item = this._refreshItem(item, prefixedKey);\n return item.data;\n }\n }\n if (options && options.callback !== undefined) {\n var val = options.callback();\n if (val !== null) {\n this.setItem(key, val, options);\n }\n return val;\n }\n return null;\n }\n catch (e) {\n logger.warn(\"getItem failed! \" + e);\n return null;\n }\n };\n /**\n * remove item from the cache\n * The cache will abort output a warning:\n * If error happened with browser storage\n * @param key - the key of the item\n */\n BrowserStorageCacheClass.prototype.removeItem = function (key) {\n logger.log(\"Remove item: key is \" + key);\n var prefixedKey = this.config.keyPrefix + key;\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n return;\n }\n try {\n var val = this.config.storage.getItem(prefixedKey);\n if (val) {\n this._removeItem(prefixedKey, JSON.parse(val).byteSize);\n }\n }\n catch (e) {\n logger.warn(\"removeItem failed! \" + e);\n }\n };\n /**\n * clear the entire cache\n * The cache will abort output a warning:\n * If error happened with browser storage\n */\n BrowserStorageCacheClass.prototype.clear = function () {\n logger.log(\"Clear Cache\");\n var keysToRemove = [];\n for (var i = 0; i < this.config.storage.length; i += 1) {\n var key = this.config.storage.key(i);\n if (key.indexOf(this.config.keyPrefix) === 0) {\n keysToRemove.push(key);\n }\n }\n try {\n for (var i = 0; i < keysToRemove.length; i += 1) {\n this.config.storage.removeItem(keysToRemove[i]);\n }\n }\n catch (e) {\n logger.warn(\"clear failed! \" + e);\n }\n };\n /**\n * Return all the keys in the cache.\n *\n * @return - all keys in the cache\n */\n BrowserStorageCacheClass.prototype.getAllKeys = function () {\n var keys = [];\n for (var i = 0; i < this.config.storage.length; i += 1) {\n var key = this.config.storage.key(i);\n if (key.indexOf(this.config.keyPrefix) === 0 &&\n key !== this.cacheCurSizeKey) {\n keys.push(key.substring(this.config.keyPrefix.length));\n }\n }\n return keys;\n };\n /**\n * return the current size of the cache\n *\n * @return - current size of the cache\n */\n BrowserStorageCacheClass.prototype.getCacheCurSize = function () {\n var ret = this.config.storage.getItem(this.cacheCurSizeKey);\n if (!ret) {\n this.config.storage.setItem(this.cacheCurSizeKey, '0');\n ret = '0';\n }\n return Number(ret);\n };\n /**\n * Return a new instance of cache with customized configuration.\n * @param config - the customized configuration\n *\n * @return - new instance of Cache\n */\n BrowserStorageCacheClass.prototype.createInstance = function (config) {\n if (!config.keyPrefix || config.keyPrefix === defaultConfig.keyPrefix) {\n logger.error('invalid keyPrefix, setting keyPrefix with timeStamp');\n config.keyPrefix = getCurrTime.toString();\n }\n return new BrowserStorageCacheClass(config);\n };\n return BrowserStorageCacheClass;\n}(StorageCache));\nexport { BrowserStorageCacheClass };\nexport var BrowserStorageCache = new BrowserStorageCacheClass();\n/**\n * @deprecated use named import\n */\nexport default BrowserStorageCache;\n//# sourceMappingURL=BrowserStorageCache.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Amplify } from '@aws-amplify/core';\nimport { BrowserStorageCache } from './BrowserStorageCache';\nimport { InMemoryCache } from './InMemoryCache';\nexport { BrowserStorageCache, InMemoryCache };\nexport { BrowserStorageCache as Cache };\n/**\n * @deprecated use named import\n */\nexport default BrowserStorageCache;\nAmplify.register(BrowserStorageCache);\n//# sourceMappingURL=index.js.map","/**\n * Date & time utility functions to abstract the `aws-sdk` away from users.\n * (v2 => v3 modularization is a breaking change)\n *\n * @see https://github.com/aws/aws-sdk-js/blob/6edf586dcc1de7fe8fbfbbd9a0d2b1847921e6e1/lib/util.js#L262\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n// Comment - TODO: remove\nvar FIVE_MINUTES_IN_MS = 1000 * 60 * 5;\nexport var DateUtils = {\n /**\n * Milliseconds to offset the date to compensate for clock skew between device & services\n */\n clockOffset: 0,\n getDateWithClockOffset: function () {\n if (DateUtils.clockOffset) {\n return new Date(new Date().getTime() + DateUtils.clockOffset);\n }\n else {\n return new Date();\n }\n },\n /**\n * @returns {number} Clock offset in milliseconds\n */\n getClockOffset: function () {\n return DateUtils.clockOffset;\n },\n getHeaderStringFromDate: function (date) {\n if (date === void 0) { date = DateUtils.getDateWithClockOffset(); }\n return date.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n },\n getDateFromHeaderString: function (header) {\n var _a = __read(header.match(/^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2}).+/), 7), year = _a[1], month = _a[2], day = _a[3], hour = _a[4], minute = _a[5], second = _a[6];\n return new Date(Date.UTC(Number(year), Number(month) - 1, Number(day), Number(hour), Number(minute), Number(second)));\n },\n isClockSkewed: function (serverDate) {\n // API gateway permits client calls that are off by no more than ±5 minutes\n return (Math.abs(serverDate.getTime() - DateUtils.getDateWithClockOffset().getTime()) >= FIVE_MINUTES_IN_MS);\n },\n isClockSkewError: function (error) {\n if (!error.response || !error.response.headers) {\n return false;\n }\n var headers = error.response.headers;\n return Boolean(['BadRequestException', 'InvalidSignatureException'].includes(headers['x-amzn-errortype']) &&\n (headers.date || headers.Date));\n },\n /**\n * @param {number} offset Clock offset in milliseconds\n */\n setClockOffset: function (offset) {\n DateUtils.clockOffset = offset;\n },\n};\n//# sourceMappingURL=DateUtils.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { ConsoleLogger as Logger } from './Logger';\nimport { Sha256 as jsSha256 } from '@aws-crypto/sha256-js';\nimport { toHex } from '@aws-sdk/util-hex-encoding';\nimport { parse, format } from 'url';\nimport { DateUtils } from './Util';\nvar logger = new Logger('Signer');\nvar DEFAULT_ALGORITHM = 'AWS4-HMAC-SHA256';\nvar IOT_SERVICE_NAME = 'iotdevicegateway';\nvar encrypt = function (key, src) {\n var hash = new jsSha256(key);\n hash.update(src);\n return hash.digestSync();\n};\nvar hash = function (src) {\n var arg = src || '';\n var hash = new jsSha256();\n hash.update(arg);\n return toHex(hash.digestSync());\n};\n/**\n * @private\n * RFC 3986 compliant version of encodeURIComponent\n */\nvar escape_RFC3986 = function (component) {\n return component.replace(/[!'()*]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n};\n/**\n * @private\n * Create canonical query string\n *\n */\nvar canonical_query = function (query) {\n if (!query || query.length === 0) {\n return '';\n }\n return query\n .split('&')\n .map(function (e) {\n var key_val = e.split('=');\n if (key_val.length === 1) {\n return e;\n }\n else {\n var reencoded_val = escape_RFC3986(key_val[1]);\n return key_val[0] + '=' + reencoded_val;\n }\n })\n .sort(function (a, b) {\n var key_a = a.split('=')[0];\n var key_b = b.split('=')[0];\n if (key_a === key_b) {\n return a < b ? -1 : 1;\n }\n else {\n return key_a < key_b ? -1 : 1;\n }\n })\n .join('&');\n};\n/**\n* @private\n* Create canonical headers\n*\n
\nCanonicalHeaders =\n    CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN\nCanonicalHeadersEntry =\n    Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\\n'\n
\n*/\nvar canonical_headers = function (headers) {\n if (!headers || Object.keys(headers).length === 0) {\n return '';\n }\n return (Object.keys(headers)\n .map(function (key) {\n return {\n key: key.toLowerCase(),\n value: headers[key] ? headers[key].trim().replace(/\\s+/g, ' ') : '',\n };\n })\n .sort(function (a, b) {\n return a.key < b.key ? -1 : 1;\n })\n .map(function (item) {\n return item.key + ':' + item.value;\n })\n .join('\\n') + '\\n');\n};\n/**\n * List of header keys included in the canonical headers.\n * @access private\n */\nvar signed_headers = function (headers) {\n return Object.keys(headers)\n .map(function (key) {\n return key.toLowerCase();\n })\n .sort()\n .join(';');\n};\n/**\n* @private\n* Create canonical request\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html|Create a Canonical Request}\n*\n
\nCanonicalRequest =\n    HTTPRequestMethod + '\\n' +\n    CanonicalURI + '\\n' +\n    CanonicalQueryString + '\\n' +\n    CanonicalHeaders + '\\n' +\n    SignedHeaders + '\\n' +\n    HexEncode(Hash(RequestPayload))\n
\n*/\nvar canonical_request = function (request) {\n var url_info = parse(request.url);\n return [\n request.method || '/',\n encodeURIComponent(url_info.pathname).replace(/%2F/gi, '/'),\n canonical_query(url_info.query),\n canonical_headers(request.headers),\n signed_headers(request.headers),\n hash(request.data),\n ].join('\\n');\n};\nvar parse_service_info = function (request) {\n var url_info = parse(request.url), host = url_info.host;\n var matched = host.match(/([^\\.]+)\\.(?:([^\\.]*)\\.)?amazonaws\\.com$/);\n var parsed = (matched || []).slice(1, 3);\n if (parsed[1] === 'es') {\n // Elastic Search\n parsed = parsed.reverse();\n }\n return {\n service: request.service || parsed[0],\n region: request.region || parsed[1],\n };\n};\nvar credential_scope = function (d_str, region, service) {\n return [d_str, region, service, 'aws4_request'].join('/');\n};\n/**\n* @private\n* Create a string to sign\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html|Create String to Sign}\n*\n
\nStringToSign =\n    Algorithm + \\n +\n    RequestDateTime + \\n +\n    CredentialScope + \\n +\n    HashedCanonicalRequest\n
\n*/\nvar string_to_sign = function (algorithm, canonical_request, dt_str, scope) {\n return [algorithm, dt_str, scope, hash(canonical_request)].join('\\n');\n};\n/**\n* @private\n* Create signing key\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html|Calculate Signature}\n*\n
\nkSecret = your secret access key\nkDate = HMAC(\"AWS4\" + kSecret, Date)\nkRegion = HMAC(kDate, Region)\nkService = HMAC(kRegion, Service)\nkSigning = HMAC(kService, \"aws4_request\")\n
\n*/\nvar get_signing_key = function (secret_key, d_str, service_info) {\n logger.debug(service_info);\n var k = 'AWS4' + secret_key, k_date = encrypt(k, d_str), k_region = encrypt(k_date, service_info.region), k_service = encrypt(k_region, service_info.service), k_signing = encrypt(k_service, 'aws4_request');\n return k_signing;\n};\nvar get_signature = function (signing_key, str_to_sign) {\n return toHex(encrypt(signing_key, str_to_sign));\n};\n/**\n * @private\n * Create authorization header\n * Refer to\n * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html|Add the Signing Information}\n */\nvar get_authorization_header = function (algorithm, access_key, scope, signed_headers, signature) {\n return [\n algorithm + ' ' + 'Credential=' + access_key + '/' + scope,\n 'SignedHeaders=' + signed_headers,\n 'Signature=' + signature,\n ].join(', ');\n};\nvar Signer = /** @class */ (function () {\n function Signer() {\n }\n /**\n * Sign a HTTP request, add 'Authorization' header to request param\n * @method sign\n * @memberof Signer\n * @static\n *\n * @param {object} request - HTTP request object\n
\n    request: {\n        method: GET | POST | PUT ...\n        url: ...,\n        headers: {\n            header1: ...\n        },\n        data: data\n    }\n    
\n * @param {object} access_info - AWS access credential info\n
\n    access_info: {\n        access_key: ...,\n        secret_key: ...,\n        session_token: ...\n    }\n    
\n * @param {object} [service_info] - AWS service type and region, optional,\n * if not provided then parse out from url\n
\n    service_info: {\n        service: ...,\n        region: ...\n    }\n    
\n *\n * @returns {object} Signed HTTP request\n */\n Signer.sign = function (request, access_info, service_info) {\n if (service_info === void 0) { service_info = null; }\n request.headers = request.headers || {};\n if (request.body && !request.data) {\n throw new Error('The attribute \"body\" was found on the request object. Please use the attribute \"data\" instead.');\n }\n // datetime string and date string\n var dt = DateUtils.getDateWithClockOffset(), dt_str = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, ''), d_str = dt_str.substr(0, 8);\n var url_info = parse(request.url);\n request.headers['host'] = url_info.host;\n request.headers['x-amz-date'] = dt_str;\n if (access_info.session_token) {\n request.headers['X-Amz-Security-Token'] = access_info.session_token;\n }\n // Task 1: Create a Canonical Request\n var request_str = canonical_request(request);\n logger.debug(request_str);\n // Task 2: Create a String to Sign\n var serviceInfo = service_info || parse_service_info(request), scope = credential_scope(d_str, serviceInfo.region, serviceInfo.service), str_to_sign = string_to_sign(DEFAULT_ALGORITHM, request_str, dt_str, scope);\n // Task 3: Calculate the Signature\n var signing_key = get_signing_key(access_info.secret_key, d_str, serviceInfo), signature = get_signature(signing_key, str_to_sign);\n // Task 4: Adding the Signing information to the Request\n var authorization_header = get_authorization_header(DEFAULT_ALGORITHM, access_info.access_key, scope, signed_headers(request.headers), signature);\n request.headers['Authorization'] = authorization_header;\n return request;\n };\n Signer.signUrl = function (urlOrRequest, accessInfo, serviceInfo, expiration) {\n var urlToSign = typeof urlOrRequest === 'object' ? urlOrRequest.url : urlOrRequest;\n var method = typeof urlOrRequest === 'object' ? urlOrRequest.method : 'GET';\n var body = typeof urlOrRequest === 'object' ? urlOrRequest.body : undefined;\n var now = DateUtils.getDateWithClockOffset()\n .toISOString()\n .replace(/[:\\-]|\\.\\d{3}/g, '');\n var today = now.substr(0, 8);\n // Intentionally discarding search\n var _a = parse(urlToSign, true, true), search = _a.search, parsedUrl = __rest(_a, [\"search\"]);\n var host = parsedUrl.host;\n var signedHeaders = { host: host };\n var _b = serviceInfo || parse_service_info({ url: format(parsedUrl) }), region = _b.region, service = _b.service;\n var credentialScope = credential_scope(today, region, service);\n // IoT service does not allow the session token in the canonical request\n // https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n var sessionTokenRequired = accessInfo.session_token && service !== IOT_SERVICE_NAME;\n var queryParams = __assign(__assign(__assign({ 'X-Amz-Algorithm': DEFAULT_ALGORITHM, 'X-Amz-Credential': [accessInfo.access_key, credentialScope].join('/'), 'X-Amz-Date': now.substr(0, 16) }, (sessionTokenRequired\n ? { 'X-Amz-Security-Token': \"\" + accessInfo.session_token }\n : {})), (expiration ? { 'X-Amz-Expires': \"\" + expiration } : {})), { 'X-Amz-SignedHeaders': Object.keys(signedHeaders).join(',') });\n var canonicalRequest = canonical_request({\n method: method,\n url: format(__assign(__assign({}, parsedUrl), { query: __assign(__assign({}, parsedUrl.query), queryParams) })),\n headers: signedHeaders,\n data: body,\n });\n var stringToSign = string_to_sign(DEFAULT_ALGORITHM, canonicalRequest, now, credentialScope);\n var signing_key = get_signing_key(accessInfo.secret_key, today, {\n region: region,\n service: service,\n });\n var signature = get_signature(signing_key, stringToSign);\n var additionalQueryParams = __assign({ 'X-Amz-Signature': signature }, (accessInfo.session_token && {\n 'X-Amz-Security-Token': accessInfo.session_token,\n }));\n var result = format({\n protocol: parsedUrl.protocol,\n slashes: true,\n hostname: parsedUrl.hostname,\n port: parsedUrl.port,\n pathname: parsedUrl.pathname,\n query: __assign(__assign(__assign({}, parsedUrl.query), queryParams), additionalQueryParams),\n });\n return result;\n };\n return Signer;\n}());\nexport { Signer };\n/**\n * @deprecated use per-function import\n */\nexport default Signer;\n//# sourceMappingURL=Signer.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { ConsoleLogger as Logger, Credentials, DateUtils, Signer, Platform, } from '@aws-amplify/core';\nimport axios from 'axios';\nimport { parse, format } from 'url';\nvar logger = new Logger('RestClient');\n/**\n* HTTP Client for REST requests. Send and receive JSON data.\n* Sign request with AWS credentials if available\n* Usage:\n
\nconst restClient = new RestClient();\nrestClient.get('...')\n    .then(function(data) {\n        console.log(data);\n    })\n    .catch(err => console.log(err));\n
\n*/\nvar RestClient = /** @class */ (function () {\n /**\n * @param {RestClientOptions} [options] - Instance options\n */\n function RestClient(options) {\n this._region = 'us-east-1'; // this will be updated by endpoint function\n this._service = 'execute-api'; // this can be updated by endpoint function\n this._custom_header = undefined; // this can be updated by endpoint function\n /**\n * This weak map provides functionality to let clients cancel\n * in-flight axios requests. https://github.com/axios/axios#cancellation\n *\n * 1. For every axios request, a unique cancel token is generated and added in the request.\n * 2. Promise for fulfilling the request is then mapped to that unique cancel token.\n * 3. The promise is returned to the client.\n * 4. Clients can either wait for the promise to fulfill or call `API.cancel(promise)` to cancel the request.\n * 5. If `API.cancel(promise)` is called, then the corresponding cancel token is retrieved from the map below.\n * 6. Promise returned to the client will be in rejected state with the error provided during cancel.\n * 7. Clients can check if the error is because of cancelling by calling `API.isCancel(error)`.\n *\n * For more details, see https://github.com/aws-amplify/amplify-js/pull/3769#issuecomment-552660025\n */\n this._cancelTokenMap = null;\n this.Credentials = Credentials;\n this._options = options;\n logger.debug('API Options', this._options);\n if (this._cancelTokenMap == null) {\n this._cancelTokenMap = new WeakMap();\n }\n }\n /**\n * Update AWS credentials\n * @param {AWSCredentials} credentials - AWS credentials\n *\n updateCredentials(credentials: AWSCredentials) {\n this.options.credentials = credentials;\n }\n*/\n /**\n * Basic HTTP request. Customizable\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {string} method - Request HTTP method\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.ajax = function (urlOrApiInfo, method, init) {\n return __awaiter(this, void 0, void 0, function () {\n var parsed_url, url, region, service, custom_header, params, libraryHeaders, userAgent, initParams, isAllResponse, custom_header_obj, _a, _b, search, parsedUrl;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n logger.debug(method, urlOrApiInfo);\n region = 'us-east-1';\n service = 'execute-api';\n custom_header = undefined;\n if (typeof urlOrApiInfo === 'string') {\n parsed_url = this._parseUrl(urlOrApiInfo);\n url = urlOrApiInfo;\n }\n else {\n (url = urlOrApiInfo.endpoint, custom_header = urlOrApiInfo.custom_header, region = urlOrApiInfo.region, service = urlOrApiInfo.service);\n parsed_url = this._parseUrl(urlOrApiInfo.endpoint);\n }\n params = {\n method: method,\n url: url,\n host: parsed_url.host,\n path: parsed_url.path,\n headers: {},\n data: null,\n responseType: 'json',\n timeout: 0,\n cancelToken: null,\n };\n libraryHeaders = {};\n if (Platform.isReactNative) {\n userAgent = Platform.userAgent || 'aws-amplify/0.1.x';\n libraryHeaders = {\n 'User-Agent': userAgent,\n };\n }\n initParams = Object.assign({}, init);\n isAllResponse = initParams.response;\n if (initParams.body) {\n if (typeof FormData === 'function' &&\n initParams.body instanceof FormData) {\n libraryHeaders['Content-Type'] = 'multipart/form-data';\n params.data = initParams.body;\n }\n else {\n libraryHeaders['Content-Type'] = 'application/json; charset=UTF-8';\n params.data = JSON.stringify(initParams.body);\n }\n }\n if (initParams.responseType) {\n params.responseType = initParams.responseType;\n }\n if (initParams.withCredentials) {\n params['withCredentials'] = initParams.withCredentials;\n }\n if (initParams.timeout) {\n params.timeout = initParams.timeout;\n }\n if (initParams.cancellableToken) {\n params.cancelToken = initParams.cancellableToken.token;\n }\n params['signerServiceInfo'] = initParams.signerServiceInfo;\n if (!(typeof custom_header === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, custom_header()];\n case 1:\n _a = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = undefined;\n _c.label = 3;\n case 3:\n custom_header_obj = _a;\n params.headers = __assign(__assign(__assign({}, libraryHeaders), custom_header_obj), initParams.headers);\n _b = parse(url, true, true), search = _b.search, parsedUrl = __rest(_b, [\"search\"]);\n params.url = format(__assign(__assign({}, parsedUrl), { query: __assign(__assign({}, parsedUrl.query), (initParams.queryStringParameters || {})) }));\n // Do not sign the request if client has added 'Authorization' header,\n // which means custom authorizer.\n if (typeof params.headers['Authorization'] !== 'undefined') {\n params.headers = Object.keys(params.headers).reduce(function (acc, k) {\n if (params.headers[k]) {\n acc[k] = params.headers[k];\n }\n return acc;\n // tslint:disable-next-line:align\n }, {});\n return [2 /*return*/, this._request(params, isAllResponse)];\n }\n // Signing the request in case there credentials are available\n return [2 /*return*/, this.Credentials.get().then(function (credentials) {\n return _this._signed(__assign({}, params), credentials, isAllResponse, {\n region: region,\n service: service,\n }).catch(function (error) {\n if (DateUtils.isClockSkewError(error)) {\n var headers = error.response.headers;\n var dateHeader = headers && (headers.date || headers.Date);\n var responseDate = new Date(dateHeader);\n var requestDate = DateUtils.getDateFromHeaderString(params.headers['x-amz-date']);\n // Compare local clock to the server clock\n if (DateUtils.isClockSkewed(responseDate)) {\n DateUtils.setClockOffset(responseDate.getTime() - requestDate.getTime());\n return _this.ajax(urlOrApiInfo, method, init);\n }\n }\n throw error;\n });\n }, function (err) {\n logger.debug('No credentials available, the request will be unsigned');\n return _this._request(params, isAllResponse);\n })];\n }\n });\n });\n };\n /**\n * GET HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {JSON} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.get = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'GET', init);\n };\n /**\n * PUT HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.put = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'PUT', init);\n };\n /**\n * PATCH HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.patch = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'PATCH', init);\n };\n /**\n * POST HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.post = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'POST', init);\n };\n /**\n * DELETE HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.del = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'DELETE', init);\n };\n /**\n * HEAD HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.head = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'HEAD', init);\n };\n /**\n * Cancel an inflight API request\n * @param {Promise} request - The request promise to cancel\n * @param {string} [message] - A message to include in the cancelation exception\n */\n RestClient.prototype.cancel = function (request, message) {\n var source = this._cancelTokenMap.get(request);\n if (source) {\n source.cancel(message);\n return true;\n }\n return false;\n };\n /**\n * Check if the request has a corresponding cancel token in the WeakMap.\n * @params request - The request promise\n * @return if the request has a corresponding cancel token.\n */\n RestClient.prototype.hasCancelToken = function (request) {\n return this._cancelTokenMap.has(request);\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param {any} error - Any error\n * @return {boolean} - A boolean indicating if the error was from an api request cancellation\n */\n RestClient.prototype.isCancel = function (error) {\n return axios.isCancel(error);\n };\n /**\n * Retrieves a new and unique cancel token which can be\n * provided in an axios request to be cancelled later.\n */\n RestClient.prototype.getCancellableToken = function () {\n return axios.CancelToken.source();\n };\n /**\n * Updates the weakmap with a response promise and its\n * cancel token such that the cancel token can be easily\n * retrieved (and used for cancelling the request)\n */\n RestClient.prototype.updateRequestToBeCancellable = function (promise, cancelTokenSource) {\n this._cancelTokenMap.set(promise, cancelTokenSource);\n };\n /**\n * Getting endpoint for API\n * @param {string} apiName - The name of the api\n * @return {string} - The endpoint of the api\n */\n RestClient.prototype.endpoint = function (apiName) {\n var _this = this;\n var cloud_logic_array = this._options.endpoints;\n var response = '';\n if (!Array.isArray(cloud_logic_array)) {\n return response;\n }\n cloud_logic_array.forEach(function (v) {\n if (v.name === apiName) {\n response = v.endpoint;\n if (typeof v.region === 'string') {\n _this._region = v.region;\n }\n else if (typeof _this._options.region === 'string') {\n _this._region = _this._options.region;\n }\n if (typeof v.service === 'string') {\n _this._service = v.service || 'execute-api';\n }\n else {\n _this._service = 'execute-api';\n }\n if (typeof v.custom_header === 'function') {\n _this._custom_header = v.custom_header;\n }\n else {\n _this._custom_header = undefined;\n }\n }\n });\n return response;\n };\n /** private methods **/\n RestClient.prototype._signed = function (params, credentials, isAllResponse, _a) {\n var service = _a.service, region = _a.region;\n var signerServiceInfoParams = params.signerServiceInfo, otherParams = __rest(params, [\"signerServiceInfo\"]);\n var endpoint_region = region || this._region || this._options.region;\n var endpoint_service = service || this._service || this._options.service;\n var creds = {\n secret_key: credentials.secretAccessKey,\n access_key: credentials.accessKeyId,\n session_token: credentials.sessionToken,\n };\n var endpointInfo = {\n region: endpoint_region,\n service: endpoint_service,\n };\n var signerServiceInfo = Object.assign(endpointInfo, signerServiceInfoParams);\n var signed_params = Signer.sign(otherParams, creds, signerServiceInfo);\n if (signed_params.data) {\n signed_params.body = signed_params.data;\n }\n logger.debug('Signed Request: ', signed_params);\n delete signed_params.headers['host'];\n return axios(signed_params)\n .then(function (response) { return (isAllResponse ? response : response.data); })\n .catch(function (error) {\n logger.debug(error);\n throw error;\n });\n };\n RestClient.prototype._request = function (params, isAllResponse) {\n if (isAllResponse === void 0) { isAllResponse = false; }\n return axios(params)\n .then(function (response) { return (isAllResponse ? response : response.data); })\n .catch(function (error) {\n logger.debug(error);\n throw error;\n });\n };\n RestClient.prototype._parseUrl = function (url) {\n var parts = url.split('/');\n return {\n host: parts[2],\n path: '/' + parts.slice(3).join('/'),\n };\n };\n return RestClient;\n}());\nexport { RestClient };\n//# sourceMappingURL=RestClient.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { RestClient } from './RestClient';\nimport { Amplify, ConsoleLogger as Logger, Credentials, } from '@aws-amplify/core';\nvar logger = new Logger('RestAPI');\n/**\n * Export Cloud Logic APIs\n */\nvar RestAPIClass = /** @class */ (function () {\n /**\n * Initialize Rest API with AWS configuration\n * @param {Object} options - Configuration object for API\n */\n function RestAPIClass(options) {\n this._api = null;\n this.Credentials = Credentials;\n this._options = options;\n logger.debug('API Options', this._options);\n }\n RestAPIClass.prototype.getModuleName = function () {\n return 'RestAPI';\n };\n /**\n * Configure API part with aws configurations\n * @param {Object} config - Configuration of the API\n * @return {Object} - The current configuration\n */\n RestAPIClass.prototype.configure = function (options) {\n var _a = options || {}, _b = _a.API, API = _b === void 0 ? {} : _b, otherOptions = __rest(_a, [\"API\"]);\n var opt = __assign(__assign({}, otherOptions), API);\n logger.debug('configure Rest API', { opt: opt });\n if (opt['aws_project_region']) {\n if (opt['aws_cloud_logic_custom']) {\n var custom = opt['aws_cloud_logic_custom'];\n opt.endpoints =\n typeof custom === 'string' ? JSON.parse(custom) : custom;\n }\n opt = Object.assign({}, opt, {\n region: opt['aws_project_region'],\n header: {},\n });\n }\n if (Array.isArray(opt.endpoints)) {\n // Check if endpoints has custom_headers and validate if is a function\n opt.endpoints.forEach(function (endpoint) {\n if (typeof endpoint.custom_header !== 'undefined' &&\n typeof endpoint.custom_header !== 'function') {\n logger.warn('Rest API ' + endpoint.name + ', custom_header should be a function');\n endpoint.custom_header = undefined;\n }\n });\n }\n else if (this._options && Array.isArray(this._options.endpoints)) {\n opt.endpoints = this._options.endpoints;\n }\n else {\n opt.endpoints = [];\n }\n this._options = Object.assign({}, this._options, opt);\n this.createInstance();\n return this._options;\n };\n /**\n * Create an instance of API for the library\n * @return - A promise of true if Success\n */\n RestAPIClass.prototype.createInstance = function () {\n logger.debug('create Rest API instance');\n this._api = new RestClient(this._options);\n // Share Amplify instance with client for SSR\n this._api.Credentials = this.Credentials;\n return true;\n };\n /**\n * Make a GET request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.get = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.get(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a POST request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.post = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.post(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a PUT request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.put = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.put(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a PATCH request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.patch = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.patch(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a DEL request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.del = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.del(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a HEAD request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.head = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.head(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param {any} error - Any error\n * @return {boolean} - A boolean indicating if the error was from an api request cancellation\n */\n RestAPIClass.prototype.isCancel = function (error) {\n return this._api.isCancel(error);\n };\n /**\n * Cancels an inflight request\n * @param {any} request - request to cancel\n * @return {boolean} - A boolean indicating if the request was cancelled\n */\n RestAPIClass.prototype.cancel = function (request, message) {\n return this._api.cancel(request, message);\n };\n /**\n * Check if the request has a corresponding cancel token in the WeakMap.\n * @params request - The request promise\n * @return if the request has a corresponding cancel token.\n */\n RestAPIClass.prototype.hasCancelToken = function (request) {\n return this._api.hasCancelToken(request);\n };\n /**\n * Getting endpoint for API\n * @param {string} apiName - The name of the api\n * @return {string} - The endpoint of the api\n */\n RestAPIClass.prototype.endpoint = function (apiName) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._api.endpoint(apiName)];\n });\n });\n };\n /**\n * Getting endpoint info for API\n * @param {string} apiName - The name of the api\n * @param {string} path - The path of the api that is going to accessed\n * @return {ApiInfo} - The endpoint information for that api-name\n */\n RestAPIClass.prototype.getEndpointInfo = function (apiName, path) {\n var cloud_logic_array = this._options.endpoints;\n if (!Array.isArray(cloud_logic_array)) {\n throw new Error(\"API category not configured\");\n }\n var apiConfig = cloud_logic_array.find(function (api) { return api.name === apiName; });\n if (!apiConfig) {\n throw new Error(\"API \" + apiName + \" does not exist\");\n }\n var response = {\n endpoint: apiConfig.endpoint + path,\n };\n if (typeof apiConfig.region === 'string') {\n response.region = apiConfig.region;\n }\n else if (typeof this._options.region === 'string') {\n response.region = this._options.region;\n }\n if (typeof apiConfig.service === 'string') {\n response.service = apiConfig.service || 'execute-api';\n }\n else {\n response.service = 'execute-api';\n }\n if (typeof apiConfig.custom_header === 'function') {\n response.custom_header = apiConfig.custom_header;\n }\n else {\n response.custom_header = undefined;\n }\n return response;\n };\n return RestAPIClass;\n}());\nexport { RestAPIClass };\nexport var RestAPI = new RestAPIClass(null);\nAmplify.register(RestAPI);\n//# sourceMappingURL=RestAPI.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport default function isObjectLike(value) {\n return _typeof(value) == 'object' && value !== null;\n}\n","// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nexport var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator != null ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator != null ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_TO_STRING_TAG = typeof Symbol === 'function' && Symbol.toStringTag != null ? Symbol.toStringTag : '@@toStringTag';\n","/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n var lineRegexp = /\\r\\n|[\\n\\r]/g;\n var line = 1;\n var column = position + 1;\n var match;\n\n while ((match = lineRegexp.exec(source.body)) && match.index < position) {\n line += 1;\n column = position + 1 - (match.index + match[0].length);\n }\n\n return {\n line: line,\n column: column\n };\n}\n","import { getLocation } from \"./location.mjs\";\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printLocation(location) {\n return printSourceLocation(location.source, getLocation(location.source, location.start));\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n var firstLineColumnOffset = source.locationOffset.column - 1;\n var body = whitespace(firstLineColumnOffset) + source.body;\n var lineIndex = sourceLocation.line - 1;\n var lineOffset = source.locationOffset.line - 1;\n var lineNum = sourceLocation.line + lineOffset;\n var columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n var columnNum = sourceLocation.column + columnOffset;\n var locationStr = \"\".concat(source.name, \":\").concat(lineNum, \":\").concat(columnNum, \"\\n\");\n var lines = body.split(/\\r\\n|[\\n\\r]/g);\n var locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n var subLineIndex = Math.floor(columnNum / 80);\n var subLineColumnNum = columnNum % 80;\n var subLines = [];\n\n for (var i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return locationStr + printPrefixedLines([[\"\".concat(lineNum), subLines[0]]].concat(subLines.slice(1, subLineIndex + 1).map(function (subLine) {\n return ['', subLine];\n }), [[' ', whitespace(subLineColumnNum - 1) + '^'], ['', subLines[subLineIndex + 1]]]));\n }\n\n return locationStr + printPrefixedLines([// Lines specified like this: [\"prefix\", \"string\"],\n [\"\".concat(lineNum - 1), lines[lineIndex - 1]], [\"\".concat(lineNum), locationLine], ['', whitespace(columnNum - 1) + '^'], [\"\".concat(lineNum + 1), lines[lineIndex + 1]]]);\n}\n\nfunction printPrefixedLines(lines) {\n var existingLines = lines.filter(function (_ref) {\n var _ = _ref[0],\n line = _ref[1];\n return line !== undefined;\n });\n var padLen = Math.max.apply(Math, existingLines.map(function (_ref2) {\n var prefix = _ref2[0];\n return prefix.length;\n }));\n return existingLines.map(function (_ref3) {\n var prefix = _ref3[0],\n line = _ref3[1];\n return leftPad(padLen, prefix) + (line ? ' | ' + line : ' |');\n }).join('\\n');\n}\n\nfunction whitespace(len) {\n return Array(len + 1).join(' ');\n}\n\nfunction leftPad(len, str) {\n return whitespace(len - str.length) + str;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport { getLocation } from \"../language/location.mjs\";\nimport { printLocation, printSourceLocation } from \"../language/printLocation.mjs\";\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport var GraphQLError = /*#__PURE__*/function (_Error) {\n _inherits(GraphQLError, _Error);\n\n var _super = _createSuper(GraphQLError);\n\n /**\n * An array of { line, column } locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {\n var _nodeLocations, _nodeLocations2, _nodeLocations3;\n\n var _this;\n\n _classCallCheck(this, GraphQLError);\n\n _this = _super.call(this, message);\n _this.name = 'GraphQLError';\n _this.originalError = originalError !== null && originalError !== void 0 ? originalError : undefined; // Compute list of blame nodes.\n\n _this.nodes = undefinedIfEmpty(Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined);\n var nodeLocations = [];\n\n for (var _i2 = 0, _ref3 = (_this$nodes = _this.nodes) !== null && _this$nodes !== void 0 ? _this$nodes : []; _i2 < _ref3.length; _i2++) {\n var _this$nodes;\n\n var _ref4 = _ref3[_i2];\n var loc = _ref4.loc;\n\n if (loc != null) {\n nodeLocations.push(loc);\n }\n }\n\n nodeLocations = undefinedIfEmpty(nodeLocations); // Compute locations in the source for the given nodes/positions.\n\n _this.source = source !== null && source !== void 0 ? source : (_nodeLocations = nodeLocations) === null || _nodeLocations === void 0 ? void 0 : _nodeLocations[0].source;\n _this.positions = positions !== null && positions !== void 0 ? positions : (_nodeLocations2 = nodeLocations) === null || _nodeLocations2 === void 0 ? void 0 : _nodeLocations2.map(function (loc) {\n return loc.start;\n });\n _this.locations = positions && source ? positions.map(function (pos) {\n return getLocation(source, pos);\n }) : (_nodeLocations3 = nodeLocations) === null || _nodeLocations3 === void 0 ? void 0 : _nodeLocations3.map(function (loc) {\n return getLocation(loc.source, loc.start);\n });\n _this.path = path !== null && path !== void 0 ? path : undefined;\n var originalExtensions = originalError === null || originalError === void 0 ? void 0 : originalError.extensions;\n\n if (extensions == null && isObjectLike(originalExtensions)) {\n _this.extensions = _objectSpread({}, originalExtensions);\n } else {\n _this.extensions = extensions !== null && extensions !== void 0 ? extensions : {};\n } // By being enumerable, JSON.stringify will include bellow properties in the resulting output.\n // This ensures that the simplest possible GraphQL service adheres to the spec.\n\n\n Object.defineProperties(_assertThisInitialized(_this), {\n message: {\n enumerable: true\n },\n locations: {\n enumerable: _this.locations != null\n },\n path: {\n enumerable: _this.path != null\n },\n extensions: {\n enumerable: _this.extensions != null && Object.keys(_this.extensions).length > 0\n },\n name: {\n enumerable: false\n },\n nodes: {\n enumerable: false\n },\n source: {\n enumerable: false\n },\n positions: {\n enumerable: false\n },\n originalError: {\n enumerable: false\n }\n }); // Include (non-enumerable) stack trace.\n\n if (originalError !== null && originalError !== void 0 && originalError.stack) {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n return _possibleConstructorReturn(_this);\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_assertThisInitialized(_this), GraphQLError);\n } else {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n\n return _this;\n }\n\n _createClass(GraphQLError, [{\n key: \"toString\",\n value: function toString() {\n return printError(this);\n } // FIXME: workaround to not break chai comparisons, should be remove in v16\n // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n }, {\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Object';\n }\n }]);\n\n return GraphQLError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n */\n\n\nexport function printError(error) {\n var output = error.message;\n\n if (error.nodes) {\n for (var _i4 = 0, _error$nodes2 = error.nodes; _i4 < _error$nodes2.length; _i4++) {\n var node = _error$nodes2[_i4];\n\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (error.source && error.locations) {\n for (var _i6 = 0, _error$locations2 = error.locations; _i6 < _error$locations2.length; _i6++) {\n var location = _error$locations2[_i6];\n output += '\\n\\n' + printSourceLocation(error.source, location);\n }\n }\n\n return output;\n}\n","import { GraphQLError } from \"./GraphQLError.mjs\";\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(\"Syntax Error: \".concat(description), undefined, source, [position]);\n}\n","/**\n * The set of allowed kind values for AST nodes.\n */\nexport var Kind = Object.freeze({\n // Name\n NAME: 'Name',\n // Document\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n // Fragments\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n // Values\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n // Directives\n DIRECTIVE: 'Directive',\n // Types\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n // Type System Definitions\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n // Type Definitions\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n // Directive Definitions\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n // Type System Extensions\n SCHEMA_EXTENSION: 'SchemaExtension',\n // Type Extensions\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'\n});\n/**\n * The enum type representing the possible kind values of AST nodes.\n */\n","export default function invariant(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message != null ? message : 'Unexpected invariant triggered.');\n }\n}\n","// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nvar nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;\n","import invariant from \"./invariant.mjs\";\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\n/**\n * The `defineInspect()` function defines `inspect()` prototype method as alias of `toJSON`\n */\n\nexport default function defineInspect(classObject) {\n var fn = classObject.prototype.toJSON;\n typeof fn === 'function' || invariant(0);\n classObject.prototype.inspect = fn; // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n if (nodejsCustomInspectSymbol) {\n classObject.prototype[nodejsCustomInspectSymbol] = fn;\n }\n}\n","import defineInspect from \"../jsutils/defineInspect.mjs\";\n\n/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport var Location = /*#__PURE__*/function () {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n function Location(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n var _proto = Location.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n start: this.start,\n end: this.end\n };\n };\n\n return Location;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Location);\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport var Token = /*#__PURE__*/function () {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. is always the first node and \n * the last.\n */\n function Token(kind, start, end, line, column, prev, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column;\n this.value = value;\n this.prev = prev;\n this.next = null;\n }\n\n var _proto2 = Token.prototype;\n\n _proto2.toJSON = function toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column\n };\n };\n\n return Token;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Token);\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n return maybeNode != null && typeof maybeNode.kind === 'string';\n}\n/**\n * The list of all possible AST node types.\n */\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nexport var TokenKind = Object.freeze({\n SOF: '',\n EOF: '',\n BANG: '!',\n DOLLAR: '$',\n AMP: '&',\n PAREN_L: '(',\n PAREN_R: ')',\n SPREAD: '...',\n COLON: ':',\n EQUALS: '=',\n AT: '@',\n BRACKET_L: '[',\n BRACKET_R: ']',\n BRACE_L: '{',\n PIPE: '|',\n BRACE_R: '}',\n NAME: 'Name',\n INT: 'Int',\n FLOAT: 'Float',\n STRING: 'String',\n BLOCK_STRING: 'BlockString',\n COMMENT: 'Comment'\n});\n/**\n * The enum type representing the token kinds values.\n */\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable flowtype/no-weak-types */\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\nvar MAX_ARRAY_LENGTH = 10;\nvar MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport default function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (_typeof(value)) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? \"[function \".concat(value.name, \"]\") : '[function]';\n\n case 'object':\n if (value === null) {\n return 'null';\n }\n\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (previouslySeenValues.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n var seenValues = [].concat(previouslySeenValues, [value]);\n var customInspectFn = getCustomFn(value);\n\n if (customInspectFn !== undefined) {\n var customValue = customInspectFn.call(value); // check for infinite recursion\n\n if (customValue !== value) {\n return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction formatObject(object, seenValues) {\n var keys = Object.keys(object);\n\n if (keys.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n var properties = keys.map(function (key) {\n var value = formatValue(object[key], seenValues);\n return key + ': ' + value;\n });\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n var len = Math.min(MAX_ARRAY_LENGTH, array.length);\n var remaining = array.length - len;\n var items = [];\n\n for (var i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(\"... \".concat(remaining, \" more items\"));\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getCustomFn(object) {\n var customInspectFn = object[String(nodejsCustomInspectSymbol)];\n\n if (typeof customInspectFn === 'function') {\n return customInspectFn;\n }\n\n if (typeof object.inspect === 'function') {\n return object.inspect;\n }\n}\n\nfunction getObjectTag(object) {\n var tag = Object.prototype.toString.call(object).replace(/^\\[object /, '').replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n var name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","export default function devAssert(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport inspect from \"./inspect.mjs\";\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n */\n\n// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n// See: https://webpack.js.org/guides/production/\nexport default process.env.NODE_ENV === 'production' ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n// eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n return value instanceof constructor;\n} : // eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (_typeof(value) === 'object' && value !== null) {\n var _value$constructor;\n\n var className = constructor.prototype[Symbol.toStringTag];\n var valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name;\n\n if (className === valueClassName) {\n var stringifiedValue = inspect(value);\n throw new Error(\"Cannot use \".concat(className, \" \\\"\").concat(stringifiedValue, \"\\\" from another module or realm.\\n\\nEnsure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory. If different versions of \\\"graphql\\\" are the dependencies of other\\nrelied on modules, use \\\"resolutions\\\" to ensure only one version is installed.\\n\\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\\n\\nDuplicate \\\"graphql\\\" modules cannot be used at the same time since different\\nversions may have different capabilities and behavior. The data from one\\nversion used in the function from another could produce confusing and\\nspurious results.\"));\n }\n }\n\n return false;\n};\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport var Source = /*#__PURE__*/function () {\n function Source(body) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';\n var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n line: 1,\n column: 1\n };\n typeof body === 'string' || devAssert(0, \"Body must be a string. Received: \".concat(inspect(body), \".\"));\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');\n this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n\n _createClass(Source, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Source';\n }\n }]);\n\n return Source;\n}();\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","/**\n * The set of allowed directive location values.\n */\nexport var DirectiveLocation = Object.freeze({\n // Request Definitions\n QUERY: 'QUERY',\n MUTATION: 'MUTATION',\n SUBSCRIPTION: 'SUBSCRIPTION',\n FIELD: 'FIELD',\n FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',\n FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',\n INLINE_FRAGMENT: 'INLINE_FRAGMENT',\n VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',\n // Type System Definitions\n SCHEMA: 'SCHEMA',\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n FIELD_DEFINITION: 'FIELD_DEFINITION',\n ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n ENUM_VALUE: 'ENUM_VALUE',\n INPUT_OBJECT: 'INPUT_OBJECT',\n INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'\n});\n/**\n * The enum type representing the directive location values.\n */\n","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\nexport function dedentBlockStringValue(rawString) {\n // Expand a block string's raw value into independent lines.\n var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n var commonIndent = getBlockStringIndentation(rawString);\n\n if (commonIndent !== 0) {\n for (var i = 1; i < lines.length; i++) {\n lines[i] = lines[i].slice(commonIndent);\n }\n } // Remove leading and trailing blank lines.\n\n\n var startLine = 0;\n\n while (startLine < lines.length && isBlank(lines[startLine])) {\n ++startLine;\n }\n\n var endLine = lines.length;\n\n while (endLine > startLine && isBlank(lines[endLine - 1])) {\n --endLine;\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.slice(startLine, endLine).join('\\n');\n}\n\nfunction isBlank(str) {\n for (var i = 0; i < str.length; ++i) {\n if (str[i] !== ' ' && str[i] !== '\\t') {\n return false;\n }\n }\n\n return true;\n}\n/**\n * @internal\n */\n\n\nexport function getBlockStringIndentation(value) {\n var _commonIndent;\n\n var isFirstLine = true;\n var isEmptyLine = true;\n var indent = 0;\n var commonIndent = null;\n\n for (var i = 0; i < value.length; ++i) {\n switch (value.charCodeAt(i)) {\n case 13:\n // \\r\n if (value.charCodeAt(i + 1) === 10) {\n ++i; // skip \\r\\n as one symbol\n }\n\n // falls through\n\n case 10:\n // \\n\n isFirstLine = false;\n isEmptyLine = true;\n indent = 0;\n break;\n\n case 9: // \\t\n\n case 32:\n // \n ++indent;\n break;\n\n default:\n if (isEmptyLine && !isFirstLine && (commonIndent === null || indent < commonIndent)) {\n commonIndent = indent;\n }\n\n isEmptyLine = false;\n }\n }\n\n return (_commonIndent = commonIndent) !== null && _commonIndent !== void 0 ? _commonIndent : 0;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value) {\n var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isSingleLine = value.indexOf('\\n') === -1;\n var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n var hasTrailingQuote = value[value.length - 1] === '\"';\n var hasTrailingSlash = value[value.length - 1] === '\\\\';\n var printAsMultipleLines = !isSingleLine || hasTrailingQuote || hasTrailingSlash || preferMultipleLines;\n var result = ''; // Format a multi-line block quote to account for leading space.\n\n if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n result += '\\n' + indentation;\n }\n\n result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n if (printAsMultipleLines) {\n result += '\\n';\n }\n\n return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Token } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { dedentBlockStringValue } from \"./blockString.mjs\";\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport var Lexer = /*#__PURE__*/function () {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n function Lexer(source) {\n var startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0, null);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n\n var _proto = Lexer.prototype;\n\n _proto.advance = function advance() {\n this.lastToken = this.token;\n var token = this.token = this.lookahead();\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n ;\n\n _proto.lookahead = function lookahead() {\n var token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n var _token$next;\n\n // Note: next is only mutable during parsing, so we cast to allow this.\n token = (_token$next = token.next) !== null && _token$next !== void 0 ? _token$next : token.next = readToken(this, token);\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n };\n\n return Lexer;\n}();\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;\n}\n\nfunction printCharCode(code) {\n return (// NaN/undefined represents access beyond the end of the file.\n isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII.\n code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.\n \"\\\"\\\\u\".concat(('00' + code.toString(16).toUpperCase()).slice(-4), \"\\\"\")\n );\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\n\nfunction readToken(lexer, prev) {\n var source = lexer.source;\n var body = source.body;\n var bodyLength = body.length;\n var pos = prev.end;\n\n while (pos < bodyLength) {\n var code = body.charCodeAt(pos);\n var _line = lexer.line;\n\n var _col = 1 + pos - lexer.lineStart; // SourceCharacter\n\n\n switch (code) {\n case 0xfeff: // \n\n case 9: // \\t\n\n case 32: // \n\n case 44:\n // ,\n ++pos;\n continue;\n\n case 10:\n // \\n\n ++pos;\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 13:\n // \\r\n if (body.charCodeAt(pos + 1) === 10) {\n pos += 2;\n } else {\n ++pos;\n }\n\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 33:\n // !\n return new Token(TokenKind.BANG, pos, pos + 1, _line, _col, prev);\n\n case 35:\n // #\n return readComment(source, pos, _line, _col, prev);\n\n case 36:\n // $\n return new Token(TokenKind.DOLLAR, pos, pos + 1, _line, _col, prev);\n\n case 38:\n // &\n return new Token(TokenKind.AMP, pos, pos + 1, _line, _col, prev);\n\n case 40:\n // (\n return new Token(TokenKind.PAREN_L, pos, pos + 1, _line, _col, prev);\n\n case 41:\n // )\n return new Token(TokenKind.PAREN_R, pos, pos + 1, _line, _col, prev);\n\n case 46:\n // .\n if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {\n return new Token(TokenKind.SPREAD, pos, pos + 3, _line, _col, prev);\n }\n\n break;\n\n case 58:\n // :\n return new Token(TokenKind.COLON, pos, pos + 1, _line, _col, prev);\n\n case 61:\n // =\n return new Token(TokenKind.EQUALS, pos, pos + 1, _line, _col, prev);\n\n case 64:\n // @\n return new Token(TokenKind.AT, pos, pos + 1, _line, _col, prev);\n\n case 91:\n // [\n return new Token(TokenKind.BRACKET_L, pos, pos + 1, _line, _col, prev);\n\n case 93:\n // ]\n return new Token(TokenKind.BRACKET_R, pos, pos + 1, _line, _col, prev);\n\n case 123:\n // {\n return new Token(TokenKind.BRACE_L, pos, pos + 1, _line, _col, prev);\n\n case 124:\n // |\n return new Token(TokenKind.PIPE, pos, pos + 1, _line, _col, prev);\n\n case 125:\n // }\n return new Token(TokenKind.BRACE_R, pos, pos + 1, _line, _col, prev);\n\n case 34:\n // \"\n if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {\n return readBlockString(source, pos, _line, _col, prev, lexer);\n }\n\n return readString(source, pos, _line, _col, prev);\n\n case 45: // -\n\n case 48: // 0\n\n case 49: // 1\n\n case 50: // 2\n\n case 51: // 3\n\n case 52: // 4\n\n case 53: // 5\n\n case 54: // 6\n\n case 55: // 7\n\n case 56: // 8\n\n case 57:\n // 9\n return readNumber(source, pos, code, _line, _col, prev);\n\n case 65: // A\n\n case 66: // B\n\n case 67: // C\n\n case 68: // D\n\n case 69: // E\n\n case 70: // F\n\n case 71: // G\n\n case 72: // H\n\n case 73: // I\n\n case 74: // J\n\n case 75: // K\n\n case 76: // L\n\n case 77: // M\n\n case 78: // N\n\n case 79: // O\n\n case 80: // P\n\n case 81: // Q\n\n case 82: // R\n\n case 83: // S\n\n case 84: // T\n\n case 85: // U\n\n case 86: // V\n\n case 87: // W\n\n case 88: // X\n\n case 89: // Y\n\n case 90: // Z\n\n case 95: // _\n\n case 97: // a\n\n case 98: // b\n\n case 99: // c\n\n case 100: // d\n\n case 101: // e\n\n case 102: // f\n\n case 103: // g\n\n case 104: // h\n\n case 105: // i\n\n case 106: // j\n\n case 107: // k\n\n case 108: // l\n\n case 109: // m\n\n case 110: // n\n\n case 111: // o\n\n case 112: // p\n\n case 113: // q\n\n case 114: // r\n\n case 115: // s\n\n case 116: // t\n\n case 117: // u\n\n case 118: // v\n\n case 119: // w\n\n case 120: // x\n\n case 121: // y\n\n case 122:\n // z\n return readName(source, pos, _line, _col, prev);\n }\n\n throw syntaxError(source, pos, unexpectedCharacterMessage(code));\n }\n\n var line = lexer.line;\n var col = 1 + pos - lexer.lineStart;\n return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);\n}\n/**\n * Report a message that an unexpected character was encountered.\n */\n\n\nfunction unexpectedCharacterMessage(code) {\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n return \"Cannot contain the invalid character \".concat(printCharCode(code), \".\");\n }\n\n if (code === 39) {\n // '\n return 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?';\n }\n\n return \"Cannot parse the unexpected character \".concat(printCharCode(code), \".\");\n}\n/**\n * Reads a comment token from the source file.\n *\n * #[\\u0009\\u0020-\\uFFFF]*\n */\n\n\nfunction readComment(source, start, line, col, prev) {\n var body = source.body;\n var code;\n var position = start;\n\n do {\n code = body.charCodeAt(++position);\n } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator\n code > 0x001f || code === 0x0009));\n\n return new Token(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));\n}\n/**\n * Reads a number token from the source file, either a float\n * or an int depending on whether a decimal point appears.\n *\n * Int: -?(0|[1-9][0-9]*)\n * Float: -?(0|[1-9][0-9]*)(\\.[0-9]+)?((E|e)(+|-)?[0-9]+)?\n */\n\n\nfunction readNumber(source, start, firstCode, line, col, prev) {\n var body = source.body;\n var code = firstCode;\n var position = start;\n var isFloat = false;\n\n if (code === 45) {\n // -\n code = body.charCodeAt(++position);\n }\n\n if (code === 48) {\n // 0\n code = body.charCodeAt(++position);\n\n if (code >= 48 && code <= 57) {\n throw syntaxError(source, position, \"Invalid number, unexpected digit after 0: \".concat(printCharCode(code), \".\"));\n }\n } else {\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 46) {\n // .\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 69 || code === 101) {\n // E e\n isFloat = true;\n code = body.charCodeAt(++position);\n\n if (code === 43 || code === 45) {\n // + -\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n\n if (code === 46 || isNameStart(code)) {\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n }\n\n return new Token(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));\n}\n/**\n * Returns the new position in the source after reading digits.\n */\n\n\nfunction readDigits(source, start, firstCode) {\n var body = source.body;\n var position = start;\n var code = firstCode;\n\n if (code >= 48 && code <= 57) {\n // 0 - 9\n do {\n code = body.charCodeAt(++position);\n } while (code >= 48 && code <= 57); // 0 - 9\n\n\n return position;\n }\n\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n}\n/**\n * Reads a string token from the source file.\n *\n * \"([^\"\\\\\\u000A\\u000D]|(\\\\(u[0-9a-fA-F]{4}|[\"\\\\/bfnrt])))*\"\n */\n\n\nfunction readString(source, start, line, col, prev) {\n var body = source.body;\n var position = start + 1;\n var chunkStart = position;\n var code = 0;\n var value = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator\n code !== 0x000a && code !== 0x000d) {\n // Closing Quote (\")\n if (code === 34) {\n value += body.slice(chunkStart, position);\n return new Token(TokenKind.STRING, start, position + 1, line, col, prev, value);\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n ++position;\n\n if (code === 92) {\n // \\\n value += body.slice(chunkStart, position - 1);\n code = body.charCodeAt(position);\n\n switch (code) {\n case 34:\n value += '\"';\n break;\n\n case 47:\n value += '/';\n break;\n\n case 92:\n value += '\\\\';\n break;\n\n case 98:\n value += '\\b';\n break;\n\n case 102:\n value += '\\f';\n break;\n\n case 110:\n value += '\\n';\n break;\n\n case 114:\n value += '\\r';\n break;\n\n case 116:\n value += '\\t';\n break;\n\n case 117:\n {\n // uXXXX\n var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));\n\n if (charCode < 0) {\n var invalidSequence = body.slice(position + 1, position + 5);\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\u\".concat(invalidSequence, \".\"));\n }\n\n value += String.fromCharCode(charCode);\n position += 4;\n break;\n }\n\n default:\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\\".concat(String.fromCharCode(code), \".\"));\n }\n\n ++position;\n chunkStart = position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Reads a block string token from the source file.\n *\n * \"\"\"(\"?\"?(\\\\\"\"\"|\\\\(?!=\"\"\")|[^\"\\\\]))*\"\"\"\n */\n\n\nfunction readBlockString(source, start, line, col, prev, lexer) {\n var body = source.body;\n var position = start + 3;\n var chunkStart = position;\n var code = 0;\n var rawValue = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position))) {\n // Closing Triple-Quote (\"\"\")\n if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {\n rawValue += body.slice(chunkStart, position);\n return new Token(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n if (code === 10) {\n // new line\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n } else if (code === 13) {\n // carriage return\n if (body.charCodeAt(position + 1) === 10) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n } else if ( // Escape Triple-Quote (\\\"\"\")\n code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {\n rawValue += body.slice(chunkStart, position) + '\"\"\"';\n position += 4;\n chunkStart = position;\n } else {\n ++position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Converts four hexadecimal chars to the integer that the\n * string represents. For example, uniCharCode('0','0','0','f')\n * will return 15, and uniCharCode('0','0','f','f') returns 255.\n *\n * Returns a negative number on error, if a char was invalid.\n *\n * This is implemented by noting that char2hex() returns -1 on error,\n * which means the result of ORing the char2hex() will also be negative.\n */\n\n\nfunction uniCharCode(a, b, c, d) {\n return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);\n}\n/**\n * Converts a hex character to its integer value.\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 on error.\n */\n\n\nfunction char2hex(a) {\n return a >= 48 && a <= 57 ? a - 48 // 0-9\n : a >= 65 && a <= 70 ? a - 55 // A-F\n : a >= 97 && a <= 102 ? a - 87 // a-f\n : -1;\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * [_A-Za-z][_0-9A-Za-z]*\n */\n\n\nfunction readName(source, start, line, col, prev) {\n var body = source.body;\n var bodyLength = body.length;\n var position = start + 1;\n var code = 0;\n\n while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _\n code >= 48 && code <= 57 || // 0-9\n code >= 65 && code <= 90 || // A-Z\n code >= 97 && code <= 122) // a-z\n ) {\n ++position;\n }\n\n return new Token(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));\n} // _ A-Z a-z\n\n\nfunction isNameStart(code) {\n return code === 95 || code >= 65 && code <= 90 || code >= 97 && code <= 122;\n}\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Kind } from \"./kinds.mjs\";\nimport { Location } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { Source, isSource } from \"./source.mjs\";\nimport { DirectiveLocation } from \"./directiveLocation.mjs\";\nimport { Lexer, isPunctuatorTokenKind } from \"./lexer.mjs\";\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n var parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport var Parser = /*#__PURE__*/function () {\n function Parser(source, options) {\n var sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.parseName = function parseName() {\n var token = this.expectToken(TokenKind.NAME);\n return {\n kind: Kind.NAME,\n value: token.value,\n loc: this.loc(token)\n };\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n ;\n\n _proto.parseDocument = function parseDocument() {\n var start = this._lexer.token;\n return {\n kind: Kind.DOCUMENT,\n definitions: this.many(TokenKind.SOF, this.parseDefinition, TokenKind.EOF),\n loc: this.loc(start)\n };\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n */\n ;\n\n _proto.parseDefinition = function parseDefinition() {\n if (this.peek(TokenKind.NAME)) {\n switch (this._lexer.token.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'schema':\n case 'scalar':\n case 'type':\n case 'interface':\n case 'union':\n case 'enum':\n case 'input':\n case 'directive':\n return this.parseTypeSystemDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n } else if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } else if (this.peekDescription()) {\n return this.parseTypeSystemDefinition();\n }\n\n throw this.unexpected();\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n ;\n\n _proto.parseOperationDefinition = function parseOperationDefinition() {\n var start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: 'query',\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n var operation = this.parseOperationType();\n var name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: operation,\n name: name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * OperationType : one of query mutation subscription\n */\n ;\n\n _proto.parseOperationType = function parseOperationType() {\n var operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return 'query';\n\n case 'mutation':\n return 'mutation';\n\n case 'subscription':\n return 'subscription';\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n ;\n\n _proto.parseVariableDefinitions = function parseVariableDefinitions() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R);\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseVariableDefinition = function parseVariableDefinition() {\n var start = this._lexer.token;\n return {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,\n directives: this.parseDirectives(true),\n loc: this.loc(start)\n };\n }\n /**\n * Variable : $ Name\n */\n ;\n\n _proto.parseVariable = function parseVariable() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n }\n /**\n * SelectionSet : { Selection+ }\n */\n ;\n\n _proto.parseSelectionSet = function parseSelectionSet() {\n var start = this._lexer.token;\n return {\n kind: Kind.SELECTION_SET,\n selections: this.many(TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n ;\n\n _proto.parseSelection = function parseSelection() {\n return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n ;\n\n _proto.parseField = function parseField() {\n var start = this._lexer.token;\n var nameOrAlias = this.parseName();\n var alias;\n var name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return {\n kind: Kind.FIELD,\n alias: alias,\n name: name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,\n loc: this.loc(start)\n };\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n ;\n\n _proto.parseArguments = function parseArguments(isConst) {\n var item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseArgument = function parseArgument() {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.ARGUMENT,\n name: name,\n value: this.parseValueLiteral(false),\n loc: this.loc(start)\n };\n };\n\n _proto.parseConstArgument = function parseConstArgument() {\n var start = this._lexer.token;\n return {\n kind: Kind.ARGUMENT,\n name: this.parseName(),\n value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n ;\n\n _proto.parseFragment = function parseFragment() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n var hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n ;\n\n _proto.parseFragmentDefinition = function parseFragmentDefinition() {\n var _this$_options;\n\n var start = this._lexer.token;\n this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (((_this$_options = this._options) === null || _this$_options === void 0 ? void 0 : _this$_options.experimentalFragmentVariables) === true) {\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentName : Name but not `on`\n */\n ;\n\n _proto.parseFragmentName = function parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n ;\n\n _proto.parseValueLiteral = function parseValueLiteral(isConst) {\n var token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this._lexer.advance();\n\n return {\n kind: Kind.INT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.FLOAT:\n this._lexer.advance();\n\n return {\n kind: Kind.FLOAT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this._lexer.advance();\n\n switch (token.value) {\n case 'true':\n return {\n kind: Kind.BOOLEAN,\n value: true,\n loc: this.loc(token)\n };\n\n case 'false':\n return {\n kind: Kind.BOOLEAN,\n value: false,\n loc: this.loc(token)\n };\n\n case 'null':\n return {\n kind: Kind.NULL,\n loc: this.loc(token)\n };\n\n default:\n return {\n kind: Kind.ENUM,\n value: token.value,\n loc: this.loc(token)\n };\n }\n\n case TokenKind.DOLLAR:\n if (!isConst) {\n return this.parseVariable();\n }\n\n break;\n }\n\n throw this.unexpected();\n };\n\n _proto.parseStringLiteral = function parseStringLiteral() {\n var token = this._lexer.token;\n\n this._lexer.advance();\n\n return {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n loc: this.loc(token)\n };\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n ;\n\n _proto.parseList = function parseList(isConst) {\n var _this = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this.parseValueLiteral(isConst);\n };\n\n return {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n */\n ;\n\n _proto.parseObject = function parseObject(isConst) {\n var _this2 = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this2.parseObjectField(isConst);\n };\n\n return {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseObjectField = function parseObjectField(isConst) {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.OBJECT_FIELD,\n name: name,\n value: this.parseValueLiteral(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n ;\n\n _proto.parseDirectives = function parseDirectives(isConst) {\n var directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n /**\n * Directive[Const] : @ Name Arguments[?Const]?\n */\n ;\n\n _proto.parseDirective = function parseDirective(isConst) {\n var start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n ;\n\n _proto.parseTypeReference = function parseTypeReference() {\n var start = this._lexer.token;\n var type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n type = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = {\n kind: Kind.LIST_TYPE,\n type: type,\n loc: this.loc(start)\n };\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return {\n kind: Kind.NON_NULL_TYPE,\n type: type,\n loc: this.loc(start)\n };\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n ;\n\n _proto.parseNamedType = function parseNamedType() {\n var start = this._lexer.token;\n return {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Type Definition section.\n\n /**\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {\n // Many definitions begin with a description and require a lookahead.\n var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n }\n\n throw this.unexpected(keywordToken);\n };\n\n _proto.peekDescription = function peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n ;\n\n _proto.parseDescription = function parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n */\n ;\n\n _proto.parseSchemaDefinition = function parseSchemaDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.many(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n return {\n kind: Kind.SCHEMA_DEFINITION,\n description: description,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n ;\n\n _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {\n var start = this._lexer.token;\n var operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n var type = this.parseNamedType();\n return {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation: operation,\n type: type,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n ;\n\n _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n ;\n\n _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {\n var _this$_options2;\n\n if (!this.expectOptionalKeyword('implements')) {\n return [];\n }\n\n if (((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true) {\n var types = []; // Optional leading ampersand\n\n this.expectOptionalToken(TokenKind.AMP);\n\n do {\n types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.AMP) || this.peek(TokenKind.NAME));\n\n return types;\n }\n\n return this.delimitedMany(TokenKind.AMP, this.parseNamedType);\n }\n /**\n * FieldsDefinition : { FieldDefinition+ }\n */\n ;\n\n _proto.parseFieldsDefinition = function parseFieldsDefinition() {\n var _this$_options3;\n\n // Legacy support for the SDL?\n if (((_this$_options3 = this._options) === null || _this$_options3 === void 0 ? void 0 : _this$_options3.allowLegacySDLEmptyFields) === true && this.peek(TokenKind.BRACE_L) && this._lexer.lookahead().kind === TokenKind.BRACE_R) {\n this._lexer.advance();\n\n this._lexer.advance();\n\n return [];\n }\n\n return this.optionalMany(TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R);\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n ;\n\n _proto.parseFieldDefinition = function parseFieldDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.FIELD_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n type: type,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n ;\n\n _proto.parseArgumentDefs = function parseArgumentDefs() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R);\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseInputValueDef = function parseInputValueDef() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseValueLiteral(true);\n }\n\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: description,\n name: name,\n type: type,\n defaultValue: defaultValue,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n ;\n\n _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n ;\n\n _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS) ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType) : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n ;\n\n _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * EnumValuesDefinition : { EnumValueDefinition+ }\n */\n ;\n\n _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R);\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n *\n * EnumValue : Name\n */\n ;\n\n _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n ;\n\n _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InputFieldsDefinition : { InputValueDefinition+ }\n */\n ;\n\n _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R);\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {\n var keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n */\n ;\n\n _proto.parseSchemaExtension = function parseSchemaExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.optionalMany(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCHEMA_EXTENSION,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n ;\n\n _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n ;\n\n _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n ;\n\n _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n ;\n\n _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.UNION_TYPE_EXTENSION,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n ;\n\n _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n ;\n\n _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n */\n ;\n\n _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n var repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n var locations = this.parseDirectiveLocations();\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n repeatable: repeatable,\n locations: locations,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n ;\n\n _proto.parseDirectiveLocations = function parseDirectiveLocations() {\n return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n ;\n\n _proto.parseDirectiveLocation = function parseDirectiveLocation() {\n var start = this._lexer.token;\n var name = this.parseName();\n\n if (DirectiveLocation[name.value] !== undefined) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a location object, used to identify the place in the source that created a given parsed object.\n */\n ;\n\n _proto.loc = function loc(startToken) {\n var _this$_options4;\n\n if (((_this$_options4 = this._options) === null || _this$_options4 === void 0 ? void 0 : _this$_options4.noLocation) !== true) {\n return new Location(startToken, this._lexer.lastToken, this._lexer.source);\n }\n }\n /**\n * Determines if the next token is of a given kind\n */\n ;\n\n _proto.peek = function peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectToken = function expectToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n throw syntaxError(this._lexer.source, token.start, \"Expected \".concat(getTokenKindDesc(kind), \", found \").concat(getTokenDesc(token), \".\"));\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and return undefined.\n */\n ;\n\n _proto.expectOptionalToken = function expectOptionalToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n return undefined;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectKeyword = function expectKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n } else {\n throw syntaxError(this._lexer.source, token.start, \"Expected \\\"\".concat(value, \"\\\", found \").concat(getTokenDesc(token), \".\"));\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n ;\n\n _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token is encountered.\n */\n ;\n\n _proto.unexpected = function unexpected(atToken) {\n var token = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(this._lexer.source, token.start, \"Unexpected \".concat(getTokenDesc(token), \".\"));\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.any = function any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always return non-empty list\n * that begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.many = function many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n * Advances the parser to the next lex token after last item in the list.\n */\n ;\n\n _proto.delimitedMany = function delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n };\n\n return Parser;\n}();\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n var value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? \" \\\"\".concat(value, \"\\\"\") : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? \"\\\"\".concat(kind, \"\\\"\") : kind;\n}\n","import inspect from \"../jsutils/inspect.mjs\";\nimport { isNode } from \"./ast.mjs\";\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport var QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n 'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],\n InterfaceTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields']\n};\nexport var BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to four permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n *\n * 2) Named visitors that trigger upon entering and leaving a node of\n * a specific kind.\n *\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n *\n * 4) Parallel visitors for entering and leaving nodes of a specific kind.\n *\n * visit(ast, {\n * enter: {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * },\n * leave: {\n * Kind(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n */\n\nexport function visit(root, visitor) {\n var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;\n\n /* eslint-disable no-undef-init */\n var stack = undefined;\n var inArray = Array.isArray(root);\n var keys = [root];\n var index = -1;\n var edits = [];\n var node = undefined;\n var key = undefined;\n var parent = undefined;\n var path = [];\n var ancestors = [];\n var newRoot = root;\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n var isLeaving = index === keys.length;\n var isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n } else {\n var clone = {};\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n clone[k] = node[k];\n }\n\n node = clone;\n }\n\n var editOffset = 0;\n\n for (var ii = 0; ii < edits.length; ii++) {\n var editKey = edits[ii][0];\n var editValue = edits[ii][1];\n\n if (inArray) {\n editKey -= editOffset;\n }\n\n if (inArray && editValue === null) {\n node.splice(editKey, 1);\n editOffset++;\n } else {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else {\n key = parent ? inArray ? index : keys[index] : undefined;\n node = parent ? parent[key] : newRoot;\n\n if (node === null || node === undefined) {\n continue;\n }\n\n if (parent) {\n path.push(key);\n }\n }\n\n var result = void 0;\n\n if (!Array.isArray(node)) {\n if (!isNode(node)) {\n throw new Error(\"Invalid AST Node: \".concat(inspect(node), \".\"));\n }\n\n var visitFn = getVisitFn(visitor, node.kind, isLeaving);\n\n if (visitFn) {\n result = visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _visitorKeys$node$kin;\n\n stack = {\n inArray: inArray,\n index: index,\n keys: keys,\n edits: edits,\n prev: stack\n };\n inArray = Array.isArray(node);\n keys = inArray ? node : (_visitorKeys$node$kin = visitorKeys[node.kind]) !== null && _visitorKeys$node$kin !== void 0 ? _visitorKeys$node$kin : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n newRoot = edits[edits.length - 1][1];\n }\n\n return newRoot;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n var skipping = new Array(visitors.length);\n return {\n enter: function enter(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n }\n },\n leave: function leave(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n true);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n }\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n var kindVisitor = visitor[kind];\n\n if (kindVisitor) {\n if (!isLeaving && typeof kindVisitor === 'function') {\n // { Kind() {} }\n return kindVisitor;\n }\n\n var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;\n\n if (typeof kindSpecificVisitor === 'function') {\n // { Kind: { enter() {}, leave() {} } }\n return kindSpecificVisitor;\n }\n } else {\n var specificVisitor = isLeaving ? visitor.leave : visitor.enter;\n\n if (specificVisitor) {\n if (typeof specificVisitor === 'function') {\n // { enter() {}, leave() {} }\n return specificVisitor;\n }\n\n var specificKindVisitor = specificVisitor[kind];\n\n if (typeof specificKindVisitor === 'function') {\n // { enter: { Kind() {} }, leave: { Kind() {} } }\n return specificKindVisitor;\n }\n }\n }\n}\n","import { visit } from \"./visitor.mjs\";\nimport { printBlockString } from \"./blockString.mjs\";\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, {\n leave: printDocASTReducer\n });\n}\nvar MAX_LINE_LENGTH = 80; // TODO: provide better type coverage in future\n\nvar printDocASTReducer = {\n Name: function Name(node) {\n return node.value;\n },\n Variable: function Variable(node) {\n return '$' + node.name;\n },\n // Document\n Document: function Document(node) {\n return join(node.definitions, '\\n\\n') + '\\n';\n },\n OperationDefinition: function OperationDefinition(node) {\n var op = node.operation;\n var name = node.name;\n var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n var directives = join(node.directives, ' ');\n var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');\n },\n VariableDefinition: function VariableDefinition(_ref) {\n var variable = _ref.variable,\n type = _ref.type,\n defaultValue = _ref.defaultValue,\n directives = _ref.directives;\n return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));\n },\n SelectionSet: function SelectionSet(_ref2) {\n var selections = _ref2.selections;\n return block(selections);\n },\n Field: function Field(_ref3) {\n var alias = _ref3.alias,\n name = _ref3.name,\n args = _ref3.arguments,\n directives = _ref3.directives,\n selectionSet = _ref3.selectionSet;\n var prefix = wrap('', alias, ': ') + name;\n var argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n Argument: function Argument(_ref4) {\n var name = _ref4.name,\n value = _ref4.value;\n return name + ': ' + value;\n },\n // Fragments\n FragmentSpread: function FragmentSpread(_ref5) {\n var name = _ref5.name,\n directives = _ref5.directives;\n return '...' + name + wrap(' ', join(directives, ' '));\n },\n InlineFragment: function InlineFragment(_ref6) {\n var typeCondition = _ref6.typeCondition,\n directives = _ref6.directives,\n selectionSet = _ref6.selectionSet;\n return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');\n },\n FragmentDefinition: function FragmentDefinition(_ref7) {\n var name = _ref7.name,\n typeCondition = _ref7.typeCondition,\n variableDefinitions = _ref7.variableDefinitions,\n directives = _ref7.directives,\n selectionSet = _ref7.selectionSet;\n return (// Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n \"fragment \".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), \" \") + \"on \".concat(typeCondition, \" \").concat(wrap('', join(directives, ' '), ' ')) + selectionSet\n );\n },\n // Value\n IntValue: function IntValue(_ref8) {\n var value = _ref8.value;\n return value;\n },\n FloatValue: function FloatValue(_ref9) {\n var value = _ref9.value;\n return value;\n },\n StringValue: function StringValue(_ref10, key) {\n var value = _ref10.value,\n isBlockString = _ref10.block;\n return isBlockString ? printBlockString(value, key === 'description' ? '' : ' ') : JSON.stringify(value);\n },\n BooleanValue: function BooleanValue(_ref11) {\n var value = _ref11.value;\n return value ? 'true' : 'false';\n },\n NullValue: function NullValue() {\n return 'null';\n },\n EnumValue: function EnumValue(_ref12) {\n var value = _ref12.value;\n return value;\n },\n ListValue: function ListValue(_ref13) {\n var values = _ref13.values;\n return '[' + join(values, ', ') + ']';\n },\n ObjectValue: function ObjectValue(_ref14) {\n var fields = _ref14.fields;\n return '{' + join(fields, ', ') + '}';\n },\n ObjectField: function ObjectField(_ref15) {\n var name = _ref15.name,\n value = _ref15.value;\n return name + ': ' + value;\n },\n // Directive\n Directive: function Directive(_ref16) {\n var name = _ref16.name,\n args = _ref16.arguments;\n return '@' + name + wrap('(', join(args, ', '), ')');\n },\n // Type\n NamedType: function NamedType(_ref17) {\n var name = _ref17.name;\n return name;\n },\n ListType: function ListType(_ref18) {\n var type = _ref18.type;\n return '[' + type + ']';\n },\n NonNullType: function NonNullType(_ref19) {\n var type = _ref19.type;\n return type + '!';\n },\n // Type System Definitions\n SchemaDefinition: addDescription(function (_ref20) {\n var directives = _ref20.directives,\n operationTypes = _ref20.operationTypes;\n return join(['schema', join(directives, ' '), block(operationTypes)], ' ');\n }),\n OperationTypeDefinition: function OperationTypeDefinition(_ref21) {\n var operation = _ref21.operation,\n type = _ref21.type;\n return operation + ': ' + type;\n },\n ScalarTypeDefinition: addDescription(function (_ref22) {\n var name = _ref22.name,\n directives = _ref22.directives;\n return join(['scalar', name, join(directives, ' ')], ' ');\n }),\n ObjectTypeDefinition: addDescription(function (_ref23) {\n var name = _ref23.name,\n interfaces = _ref23.interfaces,\n directives = _ref23.directives,\n fields = _ref23.fields;\n return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n FieldDefinition: addDescription(function (_ref24) {\n var name = _ref24.name,\n args = _ref24.arguments,\n type = _ref24.type,\n directives = _ref24.directives;\n return name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));\n }),\n InputValueDefinition: addDescription(function (_ref25) {\n var name = _ref25.name,\n type = _ref25.type,\n defaultValue = _ref25.defaultValue,\n directives = _ref25.directives;\n return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');\n }),\n InterfaceTypeDefinition: addDescription(function (_ref26) {\n var name = _ref26.name,\n interfaces = _ref26.interfaces,\n directives = _ref26.directives,\n fields = _ref26.fields;\n return join(['interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n UnionTypeDefinition: addDescription(function (_ref27) {\n var name = _ref27.name,\n directives = _ref27.directives,\n types = _ref27.types;\n return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n }),\n EnumTypeDefinition: addDescription(function (_ref28) {\n var name = _ref28.name,\n directives = _ref28.directives,\n values = _ref28.values;\n return join(['enum', name, join(directives, ' '), block(values)], ' ');\n }),\n EnumValueDefinition: addDescription(function (_ref29) {\n var name = _ref29.name,\n directives = _ref29.directives;\n return join([name, join(directives, ' ')], ' ');\n }),\n InputObjectTypeDefinition: addDescription(function (_ref30) {\n var name = _ref30.name,\n directives = _ref30.directives,\n fields = _ref30.fields;\n return join(['input', name, join(directives, ' '), block(fields)], ' ');\n }),\n DirectiveDefinition: addDescription(function (_ref31) {\n var name = _ref31.name,\n args = _ref31.arguments,\n repeatable = _ref31.repeatable,\n locations = _ref31.locations;\n return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');\n }),\n SchemaExtension: function SchemaExtension(_ref32) {\n var directives = _ref32.directives,\n operationTypes = _ref32.operationTypes;\n return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');\n },\n ScalarTypeExtension: function ScalarTypeExtension(_ref33) {\n var name = _ref33.name,\n directives = _ref33.directives;\n return join(['extend scalar', name, join(directives, ' ')], ' ');\n },\n ObjectTypeExtension: function ObjectTypeExtension(_ref34) {\n var name = _ref34.name,\n interfaces = _ref34.interfaces,\n directives = _ref34.directives,\n fields = _ref34.fields;\n return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {\n var name = _ref35.name,\n interfaces = _ref35.interfaces,\n directives = _ref35.directives,\n fields = _ref35.fields;\n return join(['extend interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n UnionTypeExtension: function UnionTypeExtension(_ref36) {\n var name = _ref36.name,\n directives = _ref36.directives,\n types = _ref36.types;\n return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n },\n EnumTypeExtension: function EnumTypeExtension(_ref37) {\n var name = _ref37.name,\n directives = _ref37.directives,\n values = _ref37.values;\n return join(['extend enum', name, join(directives, ' '), block(values)], ' ');\n },\n InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {\n var name = _ref38.name,\n directives = _ref38.directives,\n fields = _ref38.fields;\n return join(['extend input', name, join(directives, ' '), block(fields)], ' ');\n }\n};\n\nfunction addDescription(cb) {\n return function (node) {\n return join([node.description, cb(node)], '\\n');\n };\n}\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\n\nfunction join(maybeArray) {\n var _maybeArray$filter$jo;\n\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (_maybeArray$filter$jo = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter(function (x) {\n return x;\n }).join(separator)) !== null && _maybeArray$filter$jo !== void 0 ? _maybeArray$filter$jo : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an\n * indented \"{ }\" block.\n */\n\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\n\nfunction wrap(start, maybeString) {\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n return maybeString != null && maybeString !== '' ? start + maybeString + end : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction isMultiline(str) {\n return str.indexOf('\\n') !== -1;\n}\n\nfunction hasMultilineItems(maybeArray) {\n return maybeArray != null && maybeArray.some(isMultiline);\n}\n","/*\n * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n/**\n * This Symbol is used to reference an internal-only PubSub provider that\n * is used for AppSync/GraphQL subscriptions in the API category.\n */\nvar hasSymbol = typeof Symbol !== 'undefined' && typeof Symbol.for === 'function';\n/**\n * @deprecated Unused, all usecases have migrated to INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER\n */\nexport var INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER = hasSymbol\n ? Symbol.for('INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER')\n : '@@INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER';\nexport var INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER = hasSymbol\n ? Symbol.for('INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER')\n : '@@INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER';\nexport var USER_AGENT_HEADER = 'x-amz-user-agent';\n//# sourceMappingURL=constants.js.map","/*\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nexport var CONTROL_MSG;\n(function (CONTROL_MSG) {\n CONTROL_MSG[\"CONNECTION_CLOSED\"] = \"Connection closed\";\n CONTROL_MSG[\"CONNECTION_FAILED\"] = \"Connection failed\";\n CONTROL_MSG[\"REALTIME_SUBSCRIPTION_INIT_ERROR\"] = \"AppSync Realtime subscription init error\";\n CONTROL_MSG[\"SUBSCRIPTION_ACK\"] = \"Subscription ack\";\n CONTROL_MSG[\"TIMEOUT_DISCONNECT\"] = \"Timeout disconnect\";\n})(CONTROL_MSG || (CONTROL_MSG = {}));\n/** @enum {string} */\nexport var ConnectionState;\n(function (ConnectionState) {\n /*\n * The connection is alive and healthy\n */\n ConnectionState[\"Connected\"] = \"Connected\";\n /*\n * The connection is alive, but the connection is offline\n */\n ConnectionState[\"ConnectedPendingNetwork\"] = \"ConnectedPendingNetwork\";\n /*\n * The connection has been disconnected while in use\n */\n ConnectionState[\"ConnectionDisrupted\"] = \"ConnectionDisrupted\";\n /*\n * The connection has been disconnected and the network is offline\n */\n ConnectionState[\"ConnectionDisruptedPendingNetwork\"] = \"ConnectionDisruptedPendingNetwork\";\n /*\n * The connection is in the process of connecting\n */\n ConnectionState[\"Connecting\"] = \"Connecting\";\n /*\n * The connection is not in use and is being disconnected\n */\n ConnectionState[\"ConnectedPendingDisconnect\"] = \"ConnectedPendingDisconnect\";\n /*\n * The connection is not in use and has been disconnected\n */\n ConnectionState[\"Disconnected\"] = \"Disconnected\";\n /*\n * The connection is alive, but a keep alive message has been missed\n */\n ConnectionState[\"ConnectedPendingKeepAlive\"] = \"ConnectedPendingKeepAlive\";\n})(ConnectionState || (ConnectionState = {}));\n//# sourceMappingURL=PubSub.js.map","import zenObservable from 'zen-observable';\n\nvar Observable = zenObservable;\n\nexport default Observable;\nexport { Observable };\n//# sourceMappingURL=bundle.esm.js.map\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('AbstractPubSubProvider');\nvar AbstractPubSubProvider = /** @class */ (function () {\n function AbstractPubSubProvider(options) {\n if (options === void 0) { options = {}; }\n this._config = options;\n }\n AbstractPubSubProvider.prototype.configure = function (config) {\n if (config === void 0) { config = {}; }\n this._config = __assign(__assign({}, config), this._config);\n logger.debug(\"configure \" + this.getProviderName(), this._config);\n return this.options;\n };\n AbstractPubSubProvider.prototype.getCategory = function () {\n return 'PubSub';\n };\n Object.defineProperty(AbstractPubSubProvider.prototype, \"options\", {\n get: function () {\n return __assign({}, this._config);\n },\n enumerable: true,\n configurable: true\n });\n return AbstractPubSubProvider;\n}());\nexport { AbstractPubSubProvider };\n//# sourceMappingURL=PubSubProvider.js.map","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { browserOrNode, isWebWorker } from '@aws-amplify/core';\nimport Observable from 'zen-observable-ts';\nvar ReachabilityNavigator = /** @class */ (function () {\n function ReachabilityNavigator() {\n }\n ReachabilityNavigator.prototype.networkMonitor = function (netInfo) {\n if (browserOrNode().isNode) {\n return Observable.from([{ online: true }]);\n }\n var globalObj = isWebWorker() ? self : window;\n return new Observable(function (observer) {\n observer.next({ online: globalObj.navigator.onLine });\n var notifyOnline = function () { return observer.next({ online: true }); };\n var notifyOffline = function () { return observer.next({ online: false }); };\n globalObj.addEventListener('online', notifyOnline);\n globalObj.addEventListener('offline', notifyOffline);\n ReachabilityNavigator._observers.push(observer);\n return function () {\n globalObj.removeEventListener('online', notifyOnline);\n globalObj.removeEventListener('offline', notifyOffline);\n ReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(function (_observer) { return _observer !== observer; });\n };\n });\n };\n // expose observers to simulate offline mode for integration testing\n ReachabilityNavigator._observerOverride = function (status) {\n var e_1, _a;\n var _loop_1 = function (observer) {\n if (observer.closed) {\n ReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(function (_observer) { return _observer !== observer; });\n return \"continue\";\n }\n observer.next(status);\n };\n try {\n for (var _b = __values(ReachabilityNavigator._observers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n _loop_1(observer);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n ReachabilityNavigator._observers = [];\n return ReachabilityNavigator;\n}());\nexport default ReachabilityNavigator;\n//# sourceMappingURL=Reachability.js.map","export var MAX_DELAY_MS = 5000;\nexport var NON_RETRYABLE_CODES = [400, 401, 403];\nexport var CONNECTION_STATE_CHANGE = 'ConnectionStateChange';\nexport var MESSAGE_TYPES;\n(function (MESSAGE_TYPES) {\n /**\n * Client -> Server message.\n * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_INIT\"] = \"connection_init\";\n /**\n * Server -> Client message\n * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ERROR\"] = \"connection_error\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ACK\"] = \"connection_ack\";\n /**\n * Client -> Server message.\n * This message type is for register subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_START\"] = \"start\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_START message\n */\n MESSAGE_TYPES[\"GQL_START_ACK\"] = \"start_ack\";\n /**\n * Server -> Client message.\n * This message type is for subscription message from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_DATA\"] = \"data\";\n /**\n * Server -> Client message.\n * This message type helps the client to know is still receiving messages from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_KEEP_ALIVE\"] = \"ka\";\n /**\n * Client -> Server message.\n * This message type is for unregister subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_STOP\"] = \"stop\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message\n */\n MESSAGE_TYPES[\"GQL_COMPLETE\"] = \"complete\";\n /**\n * Server -> Client message.\n * This message type is for sending error messages from AWS AppSync RealTime to the client\n */\n MESSAGE_TYPES[\"GQL_ERROR\"] = \"error\";\n})(MESSAGE_TYPES || (MESSAGE_TYPES = {}));\nexport var SUBSCRIPTION_STATUS;\n(function (SUBSCRIPTION_STATUS) {\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"PENDING\"] = 0] = \"PENDING\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"CONNECTED\"] = 1] = \"CONNECTED\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"FAILED\"] = 2] = \"FAILED\";\n})(SUBSCRIPTION_STATUS || (SUBSCRIPTION_STATUS = {}));\nexport var SOCKET_STATUS;\n(function (SOCKET_STATUS) {\n SOCKET_STATUS[SOCKET_STATUS[\"CLOSED\"] = 0] = \"CLOSED\";\n SOCKET_STATUS[SOCKET_STATUS[\"READY\"] = 1] = \"READY\";\n SOCKET_STATUS[SOCKET_STATUS[\"CONNECTING\"] = 2] = \"CONNECTING\";\n})(SOCKET_STATUS || (SOCKET_STATUS = {}));\nexport var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nexport var AWS_APPSYNC_REALTIME_HEADERS = {\n accept: 'application/json, text/javascript',\n 'content-encoding': 'amz-1.0',\n 'content-type': 'application/json; charset=UTF-8',\n};\n/**\n * Time in milleseconds to wait for GQL_CONNECTION_INIT message\n */\nexport var CONNECTION_INIT_TIMEOUT = 15000;\n/**\n * Time in milleseconds to wait for GQL_START_ACK message\n */\nexport var START_ACK_TIMEOUT = 15000;\n/**\n * Default Time in milleseconds to wait for GQL_CONNECTION_KEEP_ALIVE message\n */\nexport var DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;\n/**\n * Default Time in milleseconds to alert for missed GQL_CONNECTION_KEEP_ALIVE message\n */\nexport var DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT = 65 * 1000;\n//# sourceMappingURL=constants.js.map","import { Reachability } from '@aws-amplify/core';\nexport var ReachabilityMonitor = function () { return new Reachability().networkMonitor(); };\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport Observable from 'zen-observable-ts';\nimport { ConnectionState } from '../types/PubSub';\nimport { ReachabilityMonitor } from './ReachabilityMonitor';\nexport var CONNECTION_CHANGE = {\n KEEP_ALIVE_MISSED: { keepAliveState: 'unhealthy' },\n KEEP_ALIVE: { keepAliveState: 'healthy' },\n CONNECTION_ESTABLISHED: { connectionState: 'connected' },\n CONNECTION_FAILED: {\n intendedConnectionState: 'disconnected',\n connectionState: 'disconnected',\n },\n CLOSING_CONNECTION: { intendedConnectionState: 'disconnected' },\n OPENING_CONNECTION: {\n intendedConnectionState: 'connected',\n connectionState: 'connecting',\n },\n CLOSED: { connectionState: 'disconnected' },\n ONLINE: { networkState: 'connected' },\n OFFLINE: { networkState: 'disconnected' },\n};\nvar ConnectionStateMonitor = /** @class */ (function () {\n function ConnectionStateMonitor() {\n var _this = this;\n this._networkMonitoringSubscription = undefined;\n this._linkedConnectionState = {\n networkState: 'connected',\n connectionState: 'disconnected',\n intendedConnectionState: 'disconnected',\n keepAliveState: 'healthy',\n };\n this._linkedConnectionStateObservable =\n new Observable(function (connectionStateObserver) {\n connectionStateObserver.next(_this._linkedConnectionState);\n _this._linkedConnectionStateObserver = connectionStateObserver;\n });\n }\n /**\n * Turn network state monitoring on if it isn't on already\n */\n ConnectionStateMonitor.prototype.enableNetworkMonitoring = function () {\n var _this = this;\n // Maintain the network state based on the reachability monitor\n if (this._networkMonitoringSubscription === undefined) {\n this._networkMonitoringSubscription = ReachabilityMonitor().subscribe(function (_a) {\n var online = _a.online;\n _this.record(online ? CONNECTION_CHANGE.ONLINE : CONNECTION_CHANGE.OFFLINE);\n });\n }\n };\n /**\n * Turn network state monitoring off if it isn't off already\n */\n ConnectionStateMonitor.prototype.disableNetworkMonitoring = function () {\n var _a;\n (_a = this._networkMonitoringSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n this._networkMonitoringSubscription = undefined;\n };\n Object.defineProperty(ConnectionStateMonitor.prototype, \"connectionStateObservable\", {\n /**\n * Get the observable that allows us to monitor the connection state\n *\n * @returns {Observable} - The observable that emits ConnectionState updates\n */\n get: function () {\n var _this = this;\n var previous;\n // The linked state aggregates state changes to any of the network, connection,\n // intendedConnection and keepAliveHealth. Some states will change these independent\n // states without changing the overall connection state.\n // After translating from linked states to ConnectionState, then remove any duplicates\n return this._linkedConnectionStateObservable\n .map(function (value) {\n return _this.connectionStatesTranslator(value);\n })\n .filter(function (current) {\n var toInclude = current !== previous;\n previous = current;\n return toInclude;\n });\n },\n enumerable: true,\n configurable: true\n });\n /*\n * Updates local connection state and emits the full state to the observer.\n */\n ConnectionStateMonitor.prototype.record = function (statusUpdates) {\n // Maintain the network monitor\n if (statusUpdates.intendedConnectionState === 'connected') {\n this.enableNetworkMonitoring();\n }\n else if (statusUpdates.intendedConnectionState === 'disconnected') {\n this.disableNetworkMonitoring();\n }\n // Maintain the socket state\n var newSocketStatus = __assign(__assign({}, this._linkedConnectionState), statusUpdates);\n this._linkedConnectionState = __assign({}, newSocketStatus);\n this._linkedConnectionStateObserver.next(this._linkedConnectionState);\n };\n /*\n * Translate the ConnectionState structure into a specific ConnectionState string literal union\n */\n ConnectionStateMonitor.prototype.connectionStatesTranslator = function (_a) {\n var connectionState = _a.connectionState, networkState = _a.networkState, intendedConnectionState = _a.intendedConnectionState, keepAliveState = _a.keepAliveState;\n if (connectionState === 'connected' && networkState === 'disconnected')\n return ConnectionState.ConnectedPendingNetwork;\n if (connectionState === 'connected' &&\n intendedConnectionState === 'disconnected')\n return ConnectionState.ConnectedPendingDisconnect;\n if (connectionState === 'disconnected' &&\n intendedConnectionState === 'connected' &&\n networkState === 'disconnected')\n return ConnectionState.ConnectionDisruptedPendingNetwork;\n if (connectionState === 'disconnected' &&\n intendedConnectionState === 'connected')\n return ConnectionState.ConnectionDisrupted;\n if (connectionState === 'connected' && keepAliveState === 'unhealthy')\n return ConnectionState.ConnectedPendingKeepAlive;\n // All remaining states directly correspond to the connection state\n if (connectionState === 'connecting')\n return ConnectionState.Connecting;\n if (connectionState === 'disconnected')\n return ConnectionState.Disconnected;\n return ConnectionState.Connected;\n };\n return ConnectionStateMonitor;\n}());\nexport { ConnectionStateMonitor };\n//# sourceMappingURL=ConnectionStateMonitor.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n/*\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport * as Paho from 'paho-mqtt';\nimport { v4 as uuid } from 'uuid';\nimport Observable from 'zen-observable-ts';\nimport { AbstractPubSubProvider } from './PubSubProvider';\nimport { ConsoleLogger as Logger, Hub } from '@aws-amplify/core';\nimport { ConnectionStateMonitor, CONNECTION_CHANGE, } from '../utils/ConnectionStateMonitor';\nimport { AMPLIFY_SYMBOL, CONNECTION_STATE_CHANGE } from './constants';\nvar logger = new Logger('MqttOverWSProvider');\nexport function mqttTopicMatch(filter, topic) {\n var filterArray = filter.split('/');\n var length = filterArray.length;\n var topicArray = topic.split('/');\n for (var i = 0; i < length; ++i) {\n var left = filterArray[i];\n var right = topicArray[i];\n if (left === '#')\n return topicArray.length >= length;\n if (left !== '+' && left !== right)\n return false;\n }\n return length === topicArray.length;\n}\nvar ClientsQueue = /** @class */ (function () {\n function ClientsQueue() {\n this.promises = new Map();\n }\n ClientsQueue.prototype.get = function (clientId, clientFactory) {\n return __awaiter(this, void 0, void 0, function () {\n var cachedPromise, newPromise;\n return __generator(this, function (_a) {\n cachedPromise = this.promises.get(clientId);\n if (cachedPromise) {\n return [2 /*return*/, cachedPromise];\n }\n if (clientFactory) {\n newPromise = clientFactory(clientId);\n this.promises.set(clientId, newPromise);\n return [2 /*return*/, newPromise];\n }\n return [2 /*return*/, undefined];\n });\n });\n };\n Object.defineProperty(ClientsQueue.prototype, \"allClients\", {\n get: function () {\n return Array.from(this.promises.keys());\n },\n enumerable: true,\n configurable: true\n });\n ClientsQueue.prototype.remove = function (clientId) {\n this.promises.delete(clientId);\n };\n return ClientsQueue;\n}());\nvar dispatchPubSubEvent = function (event, data, message) {\n Hub.dispatch('pubsub', { event: event, data: data, message: message }, 'PubSub', AMPLIFY_SYMBOL);\n};\nvar topicSymbol = typeof Symbol !== 'undefined' ? Symbol('topic') : '@@topic';\nvar MqttOverWSProvider = /** @class */ (function (_super) {\n __extends(MqttOverWSProvider, _super);\n function MqttOverWSProvider(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, __assign(__assign({}, options), { clientId: options.clientId || uuid() })) || this;\n _this._clientsQueue = new ClientsQueue();\n _this.connectionStateMonitor = new ConnectionStateMonitor();\n _this._topicObservers = new Map();\n _this._clientIdObservers = new Map();\n // Monitor the connection health state and pass changes along to Hub\n _this.connectionStateMonitor.connectionStateObservable.subscribe(function (connectionStateChange) {\n dispatchPubSubEvent(CONNECTION_STATE_CHANGE, {\n provider: _this,\n connectionState: connectionStateChange,\n }, \"Connection state is \" + connectionStateChange);\n });\n return _this;\n }\n Object.defineProperty(MqttOverWSProvider.prototype, \"clientId\", {\n get: function () {\n return this.options.clientId;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MqttOverWSProvider.prototype, \"endpoint\", {\n get: function () {\n return this.options.aws_pubsub_endpoint;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MqttOverWSProvider.prototype, \"clientsQueue\", {\n get: function () {\n return this._clientsQueue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MqttOverWSProvider.prototype, \"isSSLEnabled\", {\n get: function () {\n return !this.options\n .aws_appsync_dangerously_connect_to_http_endpoint_for_testing;\n },\n enumerable: true,\n configurable: true\n });\n MqttOverWSProvider.prototype.getTopicForValue = function (value) {\n return typeof value === 'object' && value[topicSymbol];\n };\n MqttOverWSProvider.prototype.getProviderName = function () {\n return 'MqttOverWSProvider';\n };\n MqttOverWSProvider.prototype.onDisconnect = function (_a) {\n var _this = this;\n var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, [\"clientId\", \"errorCode\"]);\n if (errorCode !== 0) {\n logger.warn(clientId, JSON.stringify(__assign({ errorCode: errorCode }, args), null, 2));\n var topicsToDelete_1 = [];\n if (!clientId) {\n return;\n }\n var clientIdObservers = this._clientIdObservers.get(clientId);\n if (!clientIdObservers) {\n return;\n }\n clientIdObservers.forEach(function (observer) {\n observer.error('Disconnected, error code: ' + errorCode);\n // removing observers for disconnected clientId\n _this._topicObservers.forEach(function (observerForTopic, observerTopic) {\n observerForTopic.delete(observer);\n if (observerForTopic.size === 0) {\n topicsToDelete_1.push(observerTopic);\n }\n });\n });\n // forgiving any trace of clientId\n this._clientIdObservers.delete(clientId);\n // Removing topics that are not listen by an observer\n topicsToDelete_1.forEach(function (topic) {\n _this._topicObservers.delete(topic);\n });\n }\n };\n MqttOverWSProvider.prototype.newClient = function (_a) {\n var url = _a.url, clientId = _a.clientId;\n return __awaiter(this, void 0, void 0, function () {\n var client;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger.debug('Creating new MQTT client', clientId);\n this.connectionStateMonitor.record(CONNECTION_CHANGE.OPENING_CONNECTION);\n client = new Paho.Client(url, clientId);\n // client.trace = (args) => logger.debug(clientId, JSON.stringify(args, null, 2));\n client.onMessageArrived = function (_a) {\n var topic = _a.destinationName, msg = _a.payloadString;\n _this._onMessage(topic, msg);\n };\n client.onConnectionLost = function (_a) {\n var errorCode = _a.errorCode, args = __rest(_a, [\"errorCode\"]);\n _this.onDisconnect(__assign({ clientId: clientId, errorCode: errorCode }, args));\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n };\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n client.connect({\n useSSL: _this.isSSLEnabled,\n mqttVersion: 3,\n onSuccess: function () { return resolve(client); },\n onFailure: function () {\n reject();\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\n },\n });\n })];\n case 1:\n _b.sent();\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_ESTABLISHED);\n return [2 /*return*/, client];\n }\n });\n });\n };\n MqttOverWSProvider.prototype.connect = function (clientId, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function (clientId) {\n return _this.newClient(__assign(__assign({}, options), { clientId: clientId }));\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n MqttOverWSProvider.prototype.disconnect = function (clientId) {\n return __awaiter(this, void 0, void 0, function () {\n var client;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.clientsQueue.get(clientId)];\n case 1:\n client = _a.sent();\n if (client && client.isConnected()) {\n client.disconnect();\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n }\n this.clientsQueue.remove(clientId);\n return [2 /*return*/];\n }\n });\n });\n };\n MqttOverWSProvider.prototype.publish = function (topics, msg) {\n return __awaiter(this, void 0, void 0, function () {\n var targetTopics, message, url, client;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n targetTopics = [].concat(topics);\n message = JSON.stringify(msg);\n return [4 /*yield*/, this.endpoint];\n case 1:\n url = _a.sent();\n return [4 /*yield*/, this.connect(this.clientId, { url: url })];\n case 2:\n client = _a.sent();\n logger.debug('Publishing to topic(s)', targetTopics.join(','), message);\n targetTopics.forEach(function (topic) { return client.send(topic, message); });\n return [2 /*return*/];\n }\n });\n });\n };\n MqttOverWSProvider.prototype._onMessage = function (topic, msg) {\n try {\n var matchedTopicObservers_1 = [];\n this._topicObservers.forEach(function (observerForTopic, observerTopic) {\n if (mqttTopicMatch(observerTopic, topic)) {\n matchedTopicObservers_1.push(observerForTopic);\n }\n });\n var parsedMessage_1 = JSON.parse(msg);\n if (typeof parsedMessage_1 === 'object') {\n parsedMessage_1[topicSymbol] = topic;\n }\n matchedTopicObservers_1.forEach(function (observersForTopic) {\n observersForTopic.forEach(function (observer) { return observer.next(parsedMessage_1); });\n });\n }\n catch (error) {\n logger.warn('Error handling message', error, msg);\n }\n };\n MqttOverWSProvider.prototype.subscribe = function (topics, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var targetTopics = [].concat(topics);\n logger.debug('Subscribing to topic(s)', targetTopics.join(','));\n return new Observable(function (observer) {\n targetTopics.forEach(function (topic) {\n // this._topicObservers is used to notify the observers according to the topic received on the message\n var observersForTopic = _this._topicObservers.get(topic);\n if (!observersForTopic) {\n observersForTopic = new Set();\n _this._topicObservers.set(topic, observersForTopic);\n }\n observersForTopic.add(observer);\n });\n // @ts-ignore\n var client;\n var _a = options.clientId, clientId = _a === void 0 ? _this.clientId : _a;\n // this._clientIdObservers is used to close observers when client gets disconnected\n var observersForClientId = _this._clientIdObservers.get(clientId);\n if (!observersForClientId) {\n observersForClientId = new Set();\n }\n observersForClientId.add(observer);\n _this._clientIdObservers.set(clientId, observersForClientId);\n (function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, url, _b, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = options.url;\n if (!(_a === void 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.endpoint];\n case 1:\n _b = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n _b = _a;\n _c.label = 3;\n case 3:\n url = _b;\n _c.label = 4;\n case 4:\n _c.trys.push([4, 6, , 7]);\n return [4 /*yield*/, this.connect(clientId, { url: url })];\n case 5:\n client = _c.sent();\n targetTopics.forEach(function (topic) {\n client.subscribe(topic);\n });\n return [3 /*break*/, 7];\n case 6:\n e_1 = _c.sent();\n observer.error(e_1);\n return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n }); })();\n return function () {\n var _a, _b;\n logger.debug('Unsubscribing from topic(s)', targetTopics.join(','));\n if (client) {\n (_a = _this._clientIdObservers.get(clientId)) === null || _a === void 0 ? void 0 : _a.delete(observer);\n // No more observers per client => client not needed anymore\n if (((_b = _this._clientIdObservers.get(clientId)) === null || _b === void 0 ? void 0 : _b.size) === 0) {\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSING_CONNECTION);\n _this.disconnect(clientId);\n _this._clientIdObservers.delete(clientId);\n }\n targetTopics.forEach(function (topic) {\n var observersForTopic = _this._topicObservers.get(topic) ||\n new Set();\n observersForTopic.delete(observer);\n // if no observers exists for the topic, topic should be removed\n if (observersForTopic.size === 0) {\n _this._topicObservers.delete(topic);\n if (client.isConnected()) {\n client.unsubscribe(topic);\n }\n }\n });\n }\n return null;\n };\n });\n };\n return MqttOverWSProvider;\n}(AbstractPubSubProvider));\nexport { MqttOverWSProvider };\n//# sourceMappingURL=MqttOverWSProvider.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport Observable from 'zen-observable-ts';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { MqttOverWSProvider } from './MqttOverWSProvider';\nvar logger = new Logger('AWSAppSyncProvider');\n/**\n * @deprecated Unused, all usecases have migrated to AWSAppSyncRealtimeProvider\n */\nvar AWSAppSyncProvider = /** @class */ (function (_super) {\n __extends(AWSAppSyncProvider, _super);\n function AWSAppSyncProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._topicClient = new Map();\n _this._topicAlias = new Map();\n return _this;\n }\n Object.defineProperty(AWSAppSyncProvider.prototype, \"endpoint\", {\n get: function () {\n throw new Error('Not supported');\n },\n enumerable: true,\n configurable: true\n });\n AWSAppSyncProvider.prototype.getProviderName = function () {\n return 'AWSAppSyncProvider';\n };\n AWSAppSyncProvider.prototype.publish = function (topics, msg, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw new Error('Operation not supported');\n });\n });\n };\n AWSAppSyncProvider.prototype._cleanUp = function (clientId) {\n var _this = this;\n var topicsForClient = Array.from(this._topicClient.entries())\n .filter(function (_a) {\n var _b = __read(_a, 2), c = _b[1];\n return c.clientId === clientId;\n })\n .map(function (_a) {\n var _b = __read(_a, 1), t = _b[0];\n return t;\n });\n topicsForClient.forEach(function (t) { return _this._cleanUpForTopic(t); });\n };\n AWSAppSyncProvider.prototype._cleanUpForTopic = function (topic) {\n this._topicClient.delete(topic);\n this._topicAlias.delete(topic);\n };\n AWSAppSyncProvider.prototype.onDisconnect = function (_a) {\n var _this = this;\n var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, [\"clientId\", \"errorCode\"]);\n if (errorCode !== 0) {\n var topicsForClient = Array.from(this._topicClient.entries())\n .filter(function (_a) {\n var _b = __read(_a, 2), c = _b[1];\n return c.clientId === clientId;\n })\n .map(function (_a) {\n var _b = __read(_a, 1), t = _b[0];\n return t;\n });\n topicsForClient.forEach(function (topic) {\n if (_this._topicObservers.has(topic)) {\n _this._topicObservers.get(topic).forEach(function (obs) {\n if (!obs.closed) {\n obs.error(args);\n }\n });\n _this._topicObservers.delete(topic);\n }\n });\n this._cleanUp(clientId);\n }\n };\n AWSAppSyncProvider.prototype.disconnect = function (clientId) {\n return __awaiter(this, void 0, void 0, function () {\n var client;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function () { return null; })];\n case 1:\n client = _a.sent();\n return [4 /*yield*/, _super.prototype.disconnect.call(this, clientId)];\n case 2:\n _a.sent();\n this._cleanUp(clientId);\n return [2 /*return*/];\n }\n });\n });\n };\n AWSAppSyncProvider.prototype.subscribe = function (topics, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var result = new Observable(function (observer) {\n var targetTopics = [].concat(topics);\n logger.debug('Subscribing to topic(s)', targetTopics.join(','));\n (function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, mqttConnections, newSubscriptions, newAliases, map;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n // Add these topics to map\n targetTopics.forEach(function (t) {\n if (!_this._topicObservers.has(t)) {\n _this._topicObservers.set(t, new Set());\n }\n _this._topicObservers.get(t).add(observer);\n });\n _a = options.mqttConnections, mqttConnections = _a === void 0 ? [] : _a, newSubscriptions = options.newSubscriptions;\n newAliases = Object.entries(newSubscriptions).map(function (_a) {\n var _b = __read(_a, 2), alias = _b[0], v = _b[1];\n return [v.topic, alias];\n });\n // Merge new aliases with old ones\n this._topicAlias = new Map(__spread(Array.from(this._topicAlias.entries()), newAliases));\n map = Object.entries(targetTopics.reduce(function (acc, elem) {\n var connectionInfoForTopic = mqttConnections.find(function (c) { return c.topics.indexOf(elem) > -1; });\n if (connectionInfoForTopic) {\n var clientId = connectionInfoForTopic.client, url = connectionInfoForTopic.url;\n if (!acc[clientId]) {\n acc[clientId] = {\n url: url,\n topics: new Set(),\n };\n }\n acc[clientId].topics.add(elem);\n }\n return acc;\n }, {}));\n // reconnect everything we have in the map\n return [4 /*yield*/, Promise.all(map.map(function (_a) {\n var _b = __read(_a, 2), clientId = _b[0], _c = _b[1], url = _c.url, topics = _c.topics;\n return __awaiter(_this, void 0, void 0, function () {\n var client, err_1;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n client = null;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.connect(clientId, {\n clientId: clientId,\n url: url,\n })];\n case 2:\n client = _d.sent();\n return [3 /*break*/, 4];\n case 3:\n err_1 = _d.sent();\n observer.error({ message: 'Failed to connect', error: err_1 });\n observer.complete();\n return [2 /*return*/, undefined];\n case 4:\n // subscribe to all topics for this client\n // store topic-client mapping\n topics.forEach(function (topic) {\n if (client.isConnected()) {\n client.subscribe(topic);\n _this._topicClient.set(topic, client);\n }\n });\n return [2 /*return*/, client];\n }\n });\n });\n }))];\n case 1:\n // reconnect everything we have in the map\n _b.sent();\n return [2 /*return*/];\n }\n });\n }); })();\n return function () {\n logger.debug('Unsubscribing from topic(s)', targetTopics.join(','));\n targetTopics.forEach(function (t) {\n var client = _this._topicClient.get(t);\n if (client && client.isConnected()) {\n client.unsubscribe(t);\n _this._topicClient.delete(t);\n if (!Array.from(_this._topicClient.values()).some(function (c) { return c === client; })) {\n _this.disconnect(client.clientId);\n }\n }\n _this._topicObservers.delete(t);\n });\n };\n });\n return Observable.from(result).map(function (value) {\n var topic = _this.getTopicForValue(value);\n var alias = _this._topicAlias.get(topic);\n value.data = Object.entries(value.data).reduce(function (obj, _a) {\n var _b = __read(_a, 2), origKey = _b[0], val = _b[1];\n return ((obj[(alias || origKey)] = val), obj);\n }, {});\n return value;\n });\n };\n return AWSAppSyncProvider;\n}(MqttOverWSProvider));\nexport { AWSAppSyncProvider };\n//# sourceMappingURL=AWSAppSyncProvider.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nvar logger = new Logger('I18n');\n/**\n * Language transition class\n */\nvar I18n = /** @class */ (function () {\n /**\n * @constructor\n * Initialize with configurations\n * @param {Object} options\n */\n function I18n(options) {\n /**\n * @private\n */\n this._options = null;\n /**\n * @private\n */\n this._lang = null;\n /**\n * @private\n */\n this._dict = {};\n this._options = Object.assign({}, options);\n this._lang = this._options.language;\n if (!this._lang &&\n typeof window !== 'undefined' &&\n window &&\n window.navigator) {\n this._lang = window.navigator.language;\n }\n logger.debug(this._lang);\n }\n /**\n * @method\n * Explicitly setting language\n * @param {String} lang\n */\n I18n.prototype.setLanguage = function (lang) {\n this._lang = lang;\n };\n /**\n * @method\n * Get value\n * @param {String} key\n * @param {String} defVal - Default value\n */\n I18n.prototype.get = function (key, defVal) {\n if (defVal === void 0) { defVal = undefined; }\n if (!this._lang) {\n return typeof defVal !== 'undefined' ? defVal : key;\n }\n var lang = this._lang;\n var val = this.getByLanguage(key, lang);\n if (val) {\n return val;\n }\n if (lang.indexOf('-') > 0) {\n val = this.getByLanguage(key, lang.split('-')[0]);\n }\n if (val) {\n return val;\n }\n return typeof defVal !== 'undefined' ? defVal : key;\n };\n /**\n * @method\n * Get value according to specified language\n * @param {String} key\n * @param {String} language - Specified langurage to be used\n * @param {String} defVal - Default value\n */\n I18n.prototype.getByLanguage = function (key, language, defVal) {\n if (defVal === void 0) { defVal = null; }\n if (!language) {\n return defVal;\n }\n var lang_dict = this._dict[language];\n if (!lang_dict) {\n return defVal;\n }\n return lang_dict[key];\n };\n /**\n * @method\n * Add vocabularies for one language\n * @param {String} language - Language of the dictionary\n * @param {Object} vocabularies - Object that has key-value as dictionary entry\n */\n I18n.prototype.putVocabulariesForLanguage = function (language, vocabularies) {\n var lang_dict = this._dict[language];\n if (!lang_dict) {\n lang_dict = this._dict[language] = {};\n }\n Object.assign(lang_dict, vocabularies);\n };\n /**\n * @method\n * Add vocabularies for one language\n * @param {Object} vocabularies - Object that has language as key,\n * vocabularies of each language as value\n */\n I18n.prototype.putVocabularies = function (vocabularies) {\n var _this = this;\n Object.keys(vocabularies).map(function (key) {\n _this.putVocabulariesForLanguage(key, vocabularies[key]);\n });\n };\n return I18n;\n}());\nexport { I18n };\n//# sourceMappingURL=I18n.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { I18n as I18nClass } from './I18n';\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { Amplify } from '../Amplify';\nvar logger = new Logger('I18n');\nvar _config = null;\nvar _i18n = null;\n/**\n * Export I18n APIs\n */\nvar I18n = /** @class */ (function () {\n function I18n() {\n }\n /**\n * @static\n * @method\n * Configure I18n part\n * @param {Object} config - Configuration of the I18n\n */\n I18n.configure = function (config) {\n logger.debug('configure I18n');\n if (!config) {\n return _config;\n }\n _config = Object.assign({}, _config, config.I18n || config);\n I18n.createInstance();\n return _config;\n };\n I18n.getModuleName = function () {\n return 'I18n';\n };\n /**\n * @static\n * @method\n * Create an instance of I18n for the library\n */\n I18n.createInstance = function () {\n logger.debug('create I18n instance');\n if (_i18n) {\n return;\n }\n _i18n = new I18nClass(_config);\n };\n /**\n * @static @method\n * Explicitly setting language\n * @param {String} lang\n */\n I18n.setLanguage = function (lang) {\n I18n.checkConfig();\n return _i18n.setLanguage(lang);\n };\n /**\n * @static @method\n * Get value\n * @param {String} key\n * @param {String} defVal - Default value\n */\n I18n.get = function (key, defVal) {\n if (!I18n.checkConfig()) {\n return typeof defVal === 'undefined' ? key : defVal;\n }\n return _i18n.get(key, defVal);\n };\n /**\n * @static\n * @method\n * Add vocabularies for one language\n * @param {String} langurage - Language of the dictionary\n * @param {Object} vocabularies - Object that has key-value as dictionary entry\n */\n I18n.putVocabulariesForLanguage = function (language, vocabularies) {\n I18n.checkConfig();\n return _i18n.putVocabulariesForLanguage(language, vocabularies);\n };\n /**\n * @static\n * @method\n * Add vocabularies for one language\n * @param {Object} vocabularies - Object that has language as key,\n * vocabularies of each language as value\n */\n I18n.putVocabularies = function (vocabularies) {\n I18n.checkConfig();\n return _i18n.putVocabularies(vocabularies);\n };\n I18n.checkConfig = function () {\n if (!_i18n) {\n _i18n = new I18nClass(_config);\n }\n return true;\n };\n return I18n;\n}());\nexport { I18n };\nAmplify.register(I18n);\n/**\n * @deprecated use named import\n */\nexport default I18n;\n//# sourceMappingURL=index.js.map","import { GRAPHQL_AUTH_MODE } from '@aws-amplify/auth';\nexport { GRAPHQL_AUTH_MODE };\nexport var GraphQLAuthError;\n(function (GraphQLAuthError) {\n GraphQLAuthError[\"NO_API_KEY\"] = \"No api-key configured\";\n GraphQLAuthError[\"NO_CURRENT_USER\"] = \"No current user\";\n GraphQLAuthError[\"NO_CREDENTIALS\"] = \"No credentials\";\n GraphQLAuthError[\"NO_FEDERATED_JWT\"] = \"No federated jwt\";\n GraphQLAuthError[\"NO_AUTH_TOKEN\"] = \"No auth token specified\";\n})(GraphQLAuthError || (GraphQLAuthError = {}));\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Amplify } from './Amplify';\nimport { Platform } from './Platform';\nexport { AmplifyClass } from './Amplify';\nexport { ClientDevice } from './ClientDevice';\nexport { ConsoleLogger, ConsoleLogger as Logger } from './Logger';\nexport * from './Errors';\nexport { Hub } from './Hub';\nexport { I18n } from './I18n';\nexport * from './JS';\nexport { Signer } from './Signer';\nexport * from './Parser';\nexport * from './Providers';\nexport { FacebookOAuth, GoogleOAuth } from './OAuthHelper';\nexport * from './RNComponents';\nexport { Credentials, CredentialsClass } from './Credentials';\nexport { ServiceWorker } from './ServiceWorker';\nexport { StorageHelper, MemoryStorage } from './StorageHelper';\nexport { UniversalStorage } from './UniversalStorage';\nexport { Platform, getAmplifyUserAgent } from './Platform';\nexport * from './constants';\nexport var Constants = {\n userAgent: Platform.userAgent,\n};\nexport * from './constants';\nexport * from './Util';\nexport { Amplify };\n/**\n * @deprecated use named import\n */\nexport default Amplify;\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Auth } from './Auth';\nimport { CognitoHostedUIIdentityProvider, GRAPHQL_AUTH_MODE, } from './types/Auth';\nimport { CognitoUser, CookieStorage, appendToCognitoUserAgent, } from 'amazon-cognito-identity-js';\nimport { AuthErrorStrings } from './common/AuthErrorStrings';\n/**\n * @deprecated use named import\n */\nexport default Auth;\nexport { Auth, CognitoUser, CookieStorage, CognitoHostedUIIdentityProvider, appendToCognitoUserAgent, AuthErrorStrings, GRAPHQL_AUTH_MODE, };\n//# sourceMappingURL=index.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/*\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport Observable from 'zen-observable-ts';\nimport { GraphQLError } from 'graphql';\nimport * as url from 'url';\nimport { v4 as uuid } from 'uuid';\nimport { Buffer } from 'buffer';\nimport { Logger, Credentials, Signer, Hub, Constants, USER_AGENT_HEADER, jitteredExponentialRetry, NonRetryableError, } from '@aws-amplify/core';\nimport Cache from '@aws-amplify/cache';\nimport Auth from '@aws-amplify/auth';\nimport { AbstractPubSubProvider } from '../PubSubProvider';\nimport { CONTROL_MSG } from '../../types/PubSub';\nimport { AMPLIFY_SYMBOL, AWS_APPSYNC_REALTIME_HEADERS, CONNECTION_INIT_TIMEOUT, DEFAULT_KEEP_ALIVE_TIMEOUT, DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT, MAX_DELAY_MS, MESSAGE_TYPES, NON_RETRYABLE_CODES, SOCKET_STATUS, START_ACK_TIMEOUT, SUBSCRIPTION_STATUS, CONNECTION_STATE_CHANGE, } from '../constants';\nimport { ConnectionStateMonitor, CONNECTION_CHANGE, } from '../../utils/ConnectionStateMonitor';\nvar logger = new Logger('AWSAppSyncRealTimeProvider');\nvar dispatchApiEvent = function (event, data, message) {\n Hub.dispatch('api', { event: event, data: data, message: message }, 'PubSub', AMPLIFY_SYMBOL);\n};\nvar standardDomainPattern = /^https:\\/\\/\\w{26}\\.appsync\\-api\\.\\w{2}(?:(?:\\-\\w{2,})+)\\-\\d\\.amazonaws.com\\/graphql$/i;\nvar customDomainPath = '/realtime';\nvar AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {\n __extends(AWSAppSyncRealTimeProvider, _super);\n function AWSAppSyncRealTimeProvider(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, options) || this;\n _this.socketStatus = SOCKET_STATUS.CLOSED;\n _this.keepAliveTimeout = DEFAULT_KEEP_ALIVE_TIMEOUT;\n _this.subscriptionObserverMap = new Map();\n _this.promiseArray = [];\n _this.connectionStateMonitor = new ConnectionStateMonitor();\n // Monitor the connection state and pass changes along to Hub\n _this.connectionStateMonitor.connectionStateObservable.subscribe(function (ConnectionState) {\n dispatchApiEvent(CONNECTION_STATE_CHANGE, {\n provider: _this,\n connectionState: ConnectionState,\n }, \"Connection state is \" + ConnectionState);\n });\n return _this;\n }\n AWSAppSyncRealTimeProvider.prototype.getNewWebSocket = function (url, protocol) {\n return new WebSocket(url, protocol);\n };\n AWSAppSyncRealTimeProvider.prototype.getProviderName = function () {\n return 'AWSAppSyncRealTimeProvider';\n };\n AWSAppSyncRealTimeProvider.prototype.newClient = function () {\n throw new Error('Not used here');\n };\n AWSAppSyncRealTimeProvider.prototype.publish = function (_topics, _msg, _options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw new Error('Operation not supported');\n });\n });\n };\n // Check if url matches standard domain pattern\n AWSAppSyncRealTimeProvider.prototype.isCustomDomain = function (url) {\n return url.match(standardDomainPattern) === null;\n };\n AWSAppSyncRealTimeProvider.prototype.subscribe = function (_topics, options) {\n var _this = this;\n var appSyncGraphqlEndpoint = options === null || options === void 0 ? void 0 : options.appSyncGraphqlEndpoint;\n return new Observable(function (observer) {\n if (!options || !appSyncGraphqlEndpoint) {\n observer.error({\n errors: [\n __assign({}, new GraphQLError(\"Subscribe only available for AWS AppSync endpoint\")),\n ],\n });\n observer.complete();\n }\n else {\n var subscriptionId_1 = uuid();\n _this._startSubscriptionWithAWSAppSyncRealTime({\n options: options,\n observer: observer,\n subscriptionId: subscriptionId_1,\n }).catch(function (err) {\n observer.error({\n errors: [\n __assign({}, new GraphQLError(CONTROL_MSG.REALTIME_SUBSCRIPTION_INIT_ERROR + \": \" + err)),\n ],\n });\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n observer.complete();\n });\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var subscriptionState, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, 3, 4]);\n // Waiting that subscription has been connected before trying to unsubscribe\n return [4 /*yield*/, this._waitForSubscriptionToBeConnected(subscriptionId_1)];\n case 1:\n // Waiting that subscription has been connected before trying to unsubscribe\n _a.sent();\n subscriptionState = (this.subscriptionObserverMap.get(subscriptionId_1) || {}).subscriptionState;\n if (!subscriptionState) {\n // subscription already unsubscribed\n return [2 /*return*/];\n }\n if (subscriptionState === SUBSCRIPTION_STATUS.CONNECTED) {\n this._sendUnsubscriptionMessage(subscriptionId_1);\n }\n else {\n throw new Error('Subscription never connected');\n }\n return [3 /*break*/, 4];\n case 2:\n err_1 = _a.sent();\n logger.debug(\"Error while unsubscribing \" + err_1);\n return [3 /*break*/, 4];\n case 3:\n this._removeSubscriptionObserver(subscriptionId_1);\n return [7 /*endfinally*/];\n case 4: return [2 /*return*/];\n }\n });\n }); };\n }\n });\n };\n Object.defineProperty(AWSAppSyncRealTimeProvider.prototype, \"isSSLEnabled\", {\n get: function () {\n return !this.options\n .aws_appsync_dangerously_connect_to_http_endpoint_for_testing;\n },\n enumerable: true,\n configurable: true\n });\n AWSAppSyncRealTimeProvider.prototype._startSubscriptionWithAWSAppSyncRealTime = function (_a) {\n var options = _a.options, observer = _a.observer, subscriptionId = _a.subscriptionId;\n var _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, _d, graphql_headers, _e, additionalHeaders, subscriptionState, data, dataString, headerObj, _f, _g, subscriptionMessage, stringToAWSRealTime, err_2, message, subscriptionFailedCallback_1, _h, subscriptionFailedCallback, subscriptionReadyCallback;\n var _j;\n var _this = this;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n appSyncGraphqlEndpoint = options.appSyncGraphqlEndpoint, authenticationType = options.authenticationType, query = options.query, variables = options.variables, apiKey = options.apiKey, region = options.region, _d = options.graphql_headers, graphql_headers = _d === void 0 ? function () { return ({}); } : _d, _e = options.additionalHeaders, additionalHeaders = _e === void 0 ? {} : _e;\n subscriptionState = SUBSCRIPTION_STATUS.PENDING;\n data = {\n query: query,\n variables: variables,\n };\n // Having a subscription id map will make it simple to forward messages received\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query !== null && query !== void 0 ? query : '',\n variables: variables !== null && variables !== void 0 ? variables : {},\n subscriptionState: subscriptionState,\n startAckTimeoutId: undefined,\n });\n dataString = JSON.stringify(data);\n _f = [{}];\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n payload: dataString,\n canonicalUri: '',\n region: region,\n additionalHeaders: additionalHeaders,\n })];\n case 1:\n _g = [__assign.apply(void 0, _f.concat([(_k.sent())]))];\n return [4 /*yield*/, graphql_headers()];\n case 2:\n headerObj = __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), additionalHeaders]), (_j = {}, _j[USER_AGENT_HEADER] = Constants.userAgent, _j)]);\n subscriptionMessage = {\n id: subscriptionId,\n payload: {\n data: dataString,\n extensions: {\n authorization: __assign({}, headerObj),\n },\n },\n type: MESSAGE_TYPES.GQL_START,\n };\n stringToAWSRealTime = JSON.stringify(subscriptionMessage);\n _k.label = 3;\n case 3:\n _k.trys.push([3, 5, , 6]);\n this.connectionStateMonitor.record(CONNECTION_CHANGE.OPENING_CONNECTION);\n return [4 /*yield*/, this._initializeWebSocketConnection({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n region: region,\n additionalHeaders: additionalHeaders,\n })];\n case 4:\n _k.sent();\n return [3 /*break*/, 6];\n case 5:\n err_2 = _k.sent();\n logger.debug({ err: err_2 });\n message = (_b = err_2['message']) !== null && _b !== void 0 ? _b : '';\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n observer.error({\n errors: [\n __assign({}, new GraphQLError(CONTROL_MSG.CONNECTION_FAILED + \": \" + message)),\n ],\n });\n observer.complete();\n subscriptionFailedCallback_1 = (this.subscriptionObserverMap.get(subscriptionId) || {}).subscriptionFailedCallback;\n // Notify concurrent unsubscription\n if (typeof subscriptionFailedCallback_1 === 'function') {\n subscriptionFailedCallback_1();\n }\n return [2 /*return*/];\n case 6:\n _h = (_c = this.subscriptionObserverMap.get(subscriptionId)) !== null && _c !== void 0 ? _c : {}, subscriptionFailedCallback = _h.subscriptionFailedCallback, subscriptionReadyCallback = _h.subscriptionReadyCallback;\n // This must be done before sending the message in order to be listening immediately\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n query: query !== null && query !== void 0 ? query : '',\n variables: variables !== null && variables !== void 0 ? variables : {},\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n startAckTimeoutId: setTimeout(function () {\n _this._timeoutStartSubscriptionAck.call(_this, subscriptionId);\n }, START_ACK_TIMEOUT),\n });\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n // Waiting that subscription has been connected before trying to unsubscribe\n AWSAppSyncRealTimeProvider.prototype._waitForSubscriptionToBeConnected = function (subscriptionId) {\n return __awaiter(this, void 0, void 0, function () {\n var subscriptionObserver, subscriptionState;\n var _this = this;\n return __generator(this, function (_a) {\n subscriptionObserver = this.subscriptionObserverMap.get(subscriptionId);\n if (subscriptionObserver) {\n subscriptionState = subscriptionObserver.subscriptionState;\n // This in case unsubscribe is invoked before sending start subscription message\n if (subscriptionState === SUBSCRIPTION_STATUS.PENDING) {\n return [2 /*return*/, new Promise(function (res, rej) {\n var observer = subscriptionObserver.observer, subscriptionState = subscriptionObserver.subscriptionState, variables = subscriptionObserver.variables, query = subscriptionObserver.query;\n _this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n variables: variables,\n query: query,\n subscriptionReadyCallback: res,\n subscriptionFailedCallback: rej,\n });\n })];\n }\n }\n return [2 /*return*/];\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._sendUnsubscriptionMessage = function (subscriptionId) {\n try {\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN &&\n this.socketStatus === SOCKET_STATUS.READY) {\n // Preparing unsubscribe message to stop receiving messages for that subscription\n var unsubscribeMessage = {\n id: subscriptionId,\n type: MESSAGE_TYPES.GQL_STOP,\n };\n var stringToAWSRealTime = JSON.stringify(unsubscribeMessage);\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n }\n catch (err) {\n // If GQL_STOP is not sent because of disconnection issue, then there is nothing the client can do\n logger.debug({ err: err });\n }\n };\n AWSAppSyncRealTimeProvider.prototype._removeSubscriptionObserver = function (subscriptionId) {\n this.subscriptionObserverMap.delete(subscriptionId);\n // Verifying 1000ms after removing subscription in case there are new subscription unmount/mount\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n };\n AWSAppSyncRealTimeProvider.prototype._closeSocketIfRequired = function () {\n if (this.subscriptionObserverMap.size > 0) {\n // Active subscriptions on the WebSocket\n return;\n }\n if (!this.awsRealTimeSocket) {\n this.socketStatus = SOCKET_STATUS.CLOSED;\n return;\n }\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSING_CONNECTION);\n if (this.awsRealTimeSocket.bufferedAmount > 0) {\n // Still data on the WebSocket\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n }\n else {\n logger.debug('closing WebSocket...');\n if (this.keepAliveTimeoutId) {\n clearTimeout(this.keepAliveTimeoutId);\n }\n if (this.keepAliveAlertTimeoutId) {\n clearTimeout(this.keepAliveAlertTimeoutId);\n }\n var tempSocket = this.awsRealTimeSocket;\n // Cleaning callbacks to avoid race condition, socket still exists\n tempSocket.onclose = null;\n tempSocket.onerror = null;\n tempSocket.close(1000);\n this.awsRealTimeSocket = undefined;\n this.socketStatus = SOCKET_STATUS.CLOSED;\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n }\n };\n AWSAppSyncRealTimeProvider.prototype._handleIncomingSubscriptionMessage = function (message) {\n var _this = this;\n logger.debug(\"subscription message from AWS AppSync RealTime: \" + message.data);\n var _a = JSON.parse(message.data), _b = _a.id, id = _b === void 0 ? '' : _b, payload = _a.payload, type = _a.type;\n var _c = this.subscriptionObserverMap.get(id) || {}, _d = _c.observer, observer = _d === void 0 ? null : _d, _e = _c.query, query = _e === void 0 ? '' : _e, _f = _c.variables, variables = _f === void 0 ? {} : _f, startAckTimeoutId = _c.startAckTimeoutId, subscriptionReadyCallback = _c.subscriptionReadyCallback, subscriptionFailedCallback = _c.subscriptionFailedCallback;\n logger.debug({ id: id, observer: observer, query: query, variables: variables });\n if (type === MESSAGE_TYPES.GQL_DATA && payload && payload.data) {\n if (observer) {\n observer.next(payload);\n }\n else {\n logger.debug(\"observer not found for id: \" + id);\n }\n return;\n }\n if (type === MESSAGE_TYPES.GQL_START_ACK) {\n logger.debug(\"subscription ready for \" + JSON.stringify({ query: query, variables: variables }));\n if (typeof subscriptionReadyCallback === 'function') {\n subscriptionReadyCallback();\n }\n if (startAckTimeoutId)\n clearTimeout(startAckTimeoutId);\n dispatchApiEvent(CONTROL_MSG.SUBSCRIPTION_ACK, { query: query, variables: variables }, 'Connection established for subscription');\n var subscriptionState = SUBSCRIPTION_STATUS.CONNECTED;\n if (observer) {\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: undefined,\n subscriptionState: subscriptionState,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n });\n }\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_ESTABLISHED);\n return;\n }\n if (type === MESSAGE_TYPES.GQL_CONNECTION_KEEP_ALIVE) {\n if (this.keepAliveTimeoutId)\n clearTimeout(this.keepAliveTimeoutId);\n if (this.keepAliveAlertTimeoutId)\n clearTimeout(this.keepAliveAlertTimeoutId);\n this.keepAliveTimeoutId = setTimeout(function () { return _this._errorDisconnect(CONTROL_MSG.TIMEOUT_DISCONNECT); }, this.keepAliveTimeout);\n this.keepAliveAlertTimeoutId = setTimeout(function () {\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.KEEP_ALIVE_MISSED);\n }, DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT);\n this.connectionStateMonitor.record(CONNECTION_CHANGE.KEEP_ALIVE);\n return;\n }\n if (type === MESSAGE_TYPES.GQL_ERROR) {\n var subscriptionState = SUBSCRIPTION_STATUS.FAILED;\n if (observer) {\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: startAckTimeoutId,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n subscriptionState: subscriptionState,\n });\n observer.error({\n errors: [\n __assign({}, new GraphQLError(CONTROL_MSG.CONNECTION_FAILED + \": \" + JSON.stringify(payload))),\n ],\n });\n if (startAckTimeoutId)\n clearTimeout(startAckTimeoutId);\n observer.complete();\n if (typeof subscriptionFailedCallback === 'function') {\n subscriptionFailedCallback();\n }\n }\n }\n };\n AWSAppSyncRealTimeProvider.prototype._errorDisconnect = function (msg) {\n logger.debug(\"Disconnect error: \" + msg);\n this.subscriptionObserverMap.forEach(function (_a) {\n var observer = _a.observer;\n if (observer && !observer.closed) {\n observer.error({\n errors: [__assign({}, new GraphQLError(msg))],\n });\n }\n });\n this.subscriptionObserverMap.clear();\n if (this.awsRealTimeSocket) {\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n this.awsRealTimeSocket.close();\n }\n this.socketStatus = SOCKET_STATUS.CLOSED;\n };\n AWSAppSyncRealTimeProvider.prototype._timeoutStartSubscriptionAck = function (subscriptionId) {\n var subscriptionObserver = this.subscriptionObserverMap.get(subscriptionId);\n if (subscriptionObserver) {\n var observer = subscriptionObserver.observer, query = subscriptionObserver.query, variables = subscriptionObserver.variables;\n if (!observer) {\n return;\n }\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query,\n variables: variables,\n subscriptionState: SUBSCRIPTION_STATUS.FAILED,\n });\n if (observer && !observer.closed) {\n observer.error({\n errors: [\n __assign({}, new GraphQLError(\"Subscription timeout \" + JSON.stringify({\n query: query,\n variables: variables,\n }))),\n ],\n });\n // Cleanup will be automatically executed\n observer.complete();\n }\n logger.debug('timeoutStartSubscription', JSON.stringify({ query: query, variables: variables }));\n }\n };\n AWSAppSyncRealTimeProvider.prototype._initializeWebSocketConnection = function (_a) {\n var _this = this;\n var appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, authenticationType = _a.authenticationType, apiKey = _a.apiKey, region = _a.region, additionalHeaders = _a.additionalHeaders;\n if (this.socketStatus === SOCKET_STATUS.READY) {\n return;\n }\n return new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var payloadString, headerString, _a, _b, headerQs, payloadQs, discoverableEndpoint, protocol, awsRealTimeUrl, err_3;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n this.promiseArray.push({ res: res, rej: rej });\n if (!(this.socketStatus === SOCKET_STATUS.CLOSED)) return [3 /*break*/, 5];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 4, , 5]);\n this.socketStatus = SOCKET_STATUS.CONNECTING;\n payloadString = '{}';\n _b = (_a = JSON).stringify;\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n authenticationType: authenticationType,\n payload: payloadString,\n canonicalUri: '/connect',\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n region: region,\n additionalHeaders: additionalHeaders,\n })];\n case 2:\n headerString = _b.apply(_a, [_c.sent()]);\n headerQs = Buffer.from(headerString).toString('base64');\n payloadQs = Buffer.from(payloadString).toString('base64');\n discoverableEndpoint = appSyncGraphqlEndpoint !== null && appSyncGraphqlEndpoint !== void 0 ? appSyncGraphqlEndpoint : '';\n if (this.isCustomDomain(discoverableEndpoint)) {\n discoverableEndpoint =\n discoverableEndpoint.concat(customDomainPath);\n }\n else {\n discoverableEndpoint = discoverableEndpoint\n .replace('appsync-api', 'appsync-realtime-api')\n .replace('gogi-beta', 'grt-beta');\n }\n protocol = this.isSSLEnabled ? 'wss://' : 'ws://';\n discoverableEndpoint = discoverableEndpoint\n .replace('https://', protocol)\n .replace('http://', protocol);\n awsRealTimeUrl = discoverableEndpoint + \"?header=\" + headerQs + \"&payload=\" + payloadQs;\n return [4 /*yield*/, this._initializeRetryableHandshake(awsRealTimeUrl)];\n case 3:\n _c.sent();\n this.promiseArray.forEach(function (_a) {\n var res = _a.res;\n logger.debug('Notifying connection successful');\n res();\n });\n this.socketStatus = SOCKET_STATUS.READY;\n this.promiseArray = [];\n return [3 /*break*/, 5];\n case 4:\n err_3 = _c.sent();\n this.promiseArray.forEach(function (_a) {\n var rej = _a.rej;\n return rej(err_3);\n });\n this.promiseArray = [];\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN) {\n this.awsRealTimeSocket.close(3001);\n }\n this.awsRealTimeSocket = undefined;\n this.socketStatus = SOCKET_STATUS.CLOSED;\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n }); });\n };\n AWSAppSyncRealTimeProvider.prototype._initializeRetryableHandshake = function (awsRealTimeUrl) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(\"Initializaling retryable Handshake\");\n return [4 /*yield*/, jitteredExponentialRetry(this._initializeHandshake.bind(this), [awsRealTimeUrl], MAX_DELAY_MS)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._initializeHandshake = function (awsRealTimeUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var err_4, _a, errorType, errorCode;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger.debug(\"Initializing handshake \" + awsRealTimeUrl);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n var newSocket = _this.getNewWebSocket(awsRealTimeUrl, 'graphql-ws');\n newSocket.onerror = function () {\n logger.debug(\"WebSocket connection error\");\n };\n newSocket.onclose = function () {\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\n rej(new Error('Connection handshake error'));\n };\n newSocket.onopen = function () {\n _this.awsRealTimeSocket = newSocket;\n return res();\n };\n });\n })()];\n case 2:\n _b.sent();\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n if (_this.awsRealTimeSocket) {\n var ackOk_1 = false;\n _this.awsRealTimeSocket.onerror = function (error) {\n logger.debug(\"WebSocket error \" + JSON.stringify(error));\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger.debug(\"WebSocket closed \" + event.reason);\n rej(new Error(JSON.stringify(event)));\n };\n _this.awsRealTimeSocket.onmessage = function (message) {\n logger.debug(\"subscription message from AWS AppSyncRealTime: \" + message.data + \" \");\n var data = JSON.parse(message.data);\n var type = data.type, _a = data.payload, _b = (_a === void 0 ? {} : _a).connectionTimeoutMs, connectionTimeoutMs = _b === void 0 ? DEFAULT_KEEP_ALIVE_TIMEOUT : _b;\n if (type === MESSAGE_TYPES.GQL_CONNECTION_ACK) {\n ackOk_1 = true;\n if (_this.awsRealTimeSocket) {\n _this.keepAliveTimeout = connectionTimeoutMs;\n _this.awsRealTimeSocket.onmessage =\n _this._handleIncomingSubscriptionMessage.bind(_this);\n _this.awsRealTimeSocket.onerror = function (err) {\n logger.debug(err);\n _this._errorDisconnect(CONTROL_MSG.CONNECTION_CLOSED);\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger.debug(\"WebSocket closed \" + event.reason);\n _this._errorDisconnect(CONTROL_MSG.CONNECTION_CLOSED);\n };\n }\n res('Cool, connected to AWS AppSyncRealTime');\n return;\n }\n if (type === MESSAGE_TYPES.GQL_CONNECTION_ERROR) {\n var _c = data.payload, _d = (_c === void 0 ? {} : _c).errors, _e = __read(_d === void 0 ? [] : _d, 1), _f = _e[0], _g = _f === void 0 ? {} : _f, _h = _g.errorType, errorType = _h === void 0 ? '' : _h, _j = _g.errorCode, errorCode = _j === void 0 ? 0 : _j;\n rej({ errorType: errorType, errorCode: errorCode });\n }\n };\n var gqlInit = {\n type: MESSAGE_TYPES.GQL_CONNECTION_INIT,\n };\n _this.awsRealTimeSocket.send(JSON.stringify(gqlInit));\n var checkAckOk_1 = function (ackOk) {\n if (!ackOk) {\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\n rej(new Error(\"Connection timeout: ack from AWSAppSyncRealTime was not received after \" + CONNECTION_INIT_TIMEOUT + \" ms\"));\n }\n };\n setTimeout(function () { return checkAckOk_1(ackOk_1); }, CONNECTION_INIT_TIMEOUT);\n }\n });\n })()];\n case 3:\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n err_4 = _b.sent();\n _a = err_4, errorType = _a.errorType, errorCode = _a.errorCode;\n if (NON_RETRYABLE_CODES.includes(errorCode)) {\n throw new NonRetryableError(errorType);\n }\n else if (errorType) {\n throw new Error(errorType);\n }\n else {\n throw err_4;\n }\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeHeaderBasedAuth = function (_a) {\n var authenticationType = _a.authenticationType, payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, apiKey = _a.apiKey, region = _a.region, additionalHeaders = _a.additionalHeaders;\n return __awaiter(this, void 0, void 0, function () {\n var headerHandler, handler, host, result;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n headerHandler = {\n API_KEY: this._awsRealTimeApiKeyHeader.bind(this),\n AWS_IAM: this._awsRealTimeIAMHeader.bind(this),\n OPENID_CONNECT: this._awsRealTimeOPENIDHeader.bind(this),\n AMAZON_COGNITO_USER_POOLS: this._awsRealTimeCUPHeader.bind(this),\n AWS_LAMBDA: this._customAuthHeader,\n };\n if (!(!authenticationType || !headerHandler[authenticationType])) return [3 /*break*/, 1];\n logger.debug(\"Authentication type \" + authenticationType + \" not supported\");\n return [2 /*return*/, ''];\n case 1:\n handler = headerHandler[authenticationType];\n host = url.parse(appSyncGraphqlEndpoint !== null && appSyncGraphqlEndpoint !== void 0 ? appSyncGraphqlEndpoint : '').host;\n logger.debug(\"Authenticating with \" + authenticationType);\n return [4 /*yield*/, handler({\n payload: payload,\n canonicalUri: canonicalUri,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n apiKey: apiKey,\n region: region,\n host: host,\n additionalHeaders: additionalHeaders,\n })];\n case 2:\n result = _b.sent();\n return [2 /*return*/, result];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeCUPHeader = function (_a) {\n var host = _a.host;\n return __awaiter(this, void 0, void 0, function () {\n var session;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Auth.currentSession()];\n case 1:\n session = _b.sent();\n return [2 /*return*/, {\n Authorization: session.getAccessToken().getJwtToken(),\n host: host,\n }];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeOPENIDHeader = function (_a) {\n var host = _a.host;\n return __awaiter(this, void 0, void 0, function () {\n var token, federatedInfo, currentUser;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Cache.getItem('federatedInfo')];\n case 1:\n federatedInfo = _b.sent();\n if (!federatedInfo) return [3 /*break*/, 2];\n token = federatedInfo.token;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, Auth.currentAuthenticatedUser()];\n case 3:\n currentUser = _b.sent();\n if (currentUser) {\n token = currentUser.token;\n }\n _b.label = 4;\n case 4:\n if (!token) {\n throw new Error('No federated jwt');\n }\n return [2 /*return*/, {\n Authorization: token,\n host: host,\n }];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeApiKeyHeader = function (_a) {\n var apiKey = _a.apiKey, host = _a.host;\n return __awaiter(this, void 0, void 0, function () {\n var dt, dtStr;\n return __generator(this, function (_b) {\n dt = new Date();\n dtStr = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n return [2 /*return*/, {\n host: host,\n 'x-amz-date': dtStr,\n 'x-api-key': apiKey,\n }];\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeIAMHeader = function (_a) {\n var payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, region = _a.region;\n return __awaiter(this, void 0, void 0, function () {\n var endpointInfo, credentialsOK, creds, request, signed_params;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n endpointInfo = {\n region: region,\n service: 'appsync',\n };\n return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _b.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n return [4 /*yield*/, Credentials.get().then(function (credentials) {\n var _a = credentials, secretAccessKey = _a.secretAccessKey, accessKeyId = _a.accessKeyId, sessionToken = _a.sessionToken;\n return {\n secret_key: secretAccessKey,\n access_key: accessKeyId,\n session_token: sessionToken,\n };\n })];\n case 2:\n creds = _b.sent();\n request = {\n url: \"\" + appSyncGraphqlEndpoint + canonicalUri,\n data: payload,\n method: 'POST',\n headers: __assign({}, AWS_APPSYNC_REALTIME_HEADERS),\n };\n signed_params = Signer.sign(request, creds, endpointInfo);\n return [2 /*return*/, signed_params.headers];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._customAuthHeader = function (_a) {\n var host = _a.host, additionalHeaders = _a.additionalHeaders;\n if (!additionalHeaders || !additionalHeaders['Authorization']) {\n throw new Error('No auth token specified');\n }\n return {\n Authorization: additionalHeaders.Authorization,\n host: host,\n };\n };\n /**\n * @private\n */\n AWSAppSyncRealTimeProvider.prototype._ensureCredentials = function () {\n return Credentials.get()\n .then(function (credentials) {\n if (!credentials)\n return false;\n var cred = Credentials.shear(credentials);\n logger.debug('set credentials for AWSAppSyncRealTimeProvider', cred);\n return true;\n })\n .catch(function (err) {\n logger.warn('ensure credentials error', err);\n return false;\n });\n };\n return AWSAppSyncRealTimeProvider;\n}(AbstractPubSubProvider));\nexport { AWSAppSyncRealTimeProvider };\n//# sourceMappingURL=index.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/*\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n// import '../Common/Polyfills';\nimport Observable from 'zen-observable-ts';\nimport { Amplify, browserOrNode, ConsoleLogger as Logger, INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER, INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER, } from '@aws-amplify/core';\nimport { AWSAppSyncProvider, AWSAppSyncRealTimeProvider } from './Providers';\nvar isNode = browserOrNode().isNode;\nvar logger = new Logger('PubSub');\nvar PubSubClass = /** @class */ (function () {\n /**\n * Initialize PubSub with AWS configurations\n *\n * @param {PubSubOptions} options - Configuration object for PubSub\n */\n function PubSubClass(options) {\n this._options = options !== null && options !== void 0 ? options : {};\n logger.debug('PubSub Options', this._options);\n this._pluggables = [];\n this.subscribe = this.subscribe.bind(this);\n }\n Object.defineProperty(PubSubClass.prototype, \"awsAppSyncProvider\", {\n /**\n * Lazy instantiate AWSAppSyncProvider when it is required by the API category\n */\n get: function () {\n if (!this._awsAppSyncProvider) {\n this._awsAppSyncProvider = new AWSAppSyncProvider(this._options);\n }\n return this._awsAppSyncProvider;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PubSubClass.prototype, \"awsAppSyncRealTimeProvider\", {\n /**\n * Lazy instantiate AWSAppSyncRealTimeProvider when it is required by the API category\n */\n get: function () {\n if (!this._awsAppSyncRealTimeProvider) {\n this._awsAppSyncRealTimeProvider = new AWSAppSyncRealTimeProvider(this._options);\n }\n return this._awsAppSyncRealTimeProvider;\n },\n enumerable: true,\n configurable: true\n });\n PubSubClass.prototype.getModuleName = function () {\n return 'PubSub';\n };\n /**\n * Configure PubSub part with configurations\n *\n * @param {PubSubOptions} config - Configuration for PubSub\n * @return {Object} - The current configuration\n */\n PubSubClass.prototype.configure = function (options) {\n var _this = this;\n var opt = options ? options.PubSub || options : {};\n logger.debug('configure PubSub', { opt: opt });\n this._options = Object.assign({}, this._options, opt);\n this._pluggables.map(function (pluggable) { return pluggable.configure(_this._options); });\n return this._options;\n };\n /**\n * add plugin into Analytics category\n * @param {Object} pluggable - an instance of the plugin\n */\n PubSubClass.prototype.addPluggable = function (pluggable) {\n return __awaiter(this, void 0, void 0, function () {\n var config;\n return __generator(this, function (_a) {\n if (pluggable && pluggable.getCategory() === 'PubSub') {\n this._pluggables.push(pluggable);\n config = pluggable.configure(this._options);\n return [2 /*return*/, config];\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * remove plugin from PubSub category\n * @param providerName - the name of the plugin\n */\n PubSubClass.prototype.removePluggable = function (providerName) {\n this._pluggables = this._pluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; });\n };\n PubSubClass.prototype.getProviderByName = function (providerName) {\n if (providerName === INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER) {\n return this.awsAppSyncProvider;\n }\n if (providerName === INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER) {\n return this.awsAppSyncRealTimeProvider;\n }\n return this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === providerName; });\n };\n PubSubClass.prototype.getProviders = function (options) {\n if (options === void 0) { options = {}; }\n var providerName = options.provider;\n if (!providerName) {\n return this._pluggables;\n }\n var provider = this.getProviderByName(providerName);\n if (!provider) {\n throw new Error(\"Could not find provider named \" + providerName);\n }\n return [provider];\n };\n PubSubClass.prototype.publish = function (topics, msg, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, Promise.all(this.getProviders(options).map(function (provider) {\n return provider.publish(topics, msg, options);\n }))];\n });\n });\n };\n PubSubClass.prototype.subscribe = function (topics, options) {\n if (isNode && this._options && this._options.ssr) {\n throw new Error('Subscriptions are not supported for Server-Side Rendering (SSR)');\n }\n logger.debug('subscribe options', options);\n var providers = this.getProviders(options);\n return new Observable(function (observer) {\n var observables = providers.map(function (provider) { return ({\n provider: provider,\n observable: provider.subscribe(topics, options),\n }); });\n var subscriptions = observables.map(function (_a) {\n var provider = _a.provider, observable = _a.observable;\n return observable.subscribe({\n start: console.error,\n next: function (value) { return observer.next({ provider: provider, value: value }); },\n error: function (error) { return observer.error({ provider: provider, error: error }); },\n });\n });\n return function () {\n return subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); });\n };\n });\n };\n return PubSubClass;\n}());\nexport { PubSubClass };\nexport var PubSub = new PubSubClass();\nAmplify.register(PubSub);\n//# sourceMappingURL=PubSub.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { print, parse, GraphQLError, } from 'graphql';\nimport { Amplify, ConsoleLogger as Logger, Credentials, getAmplifyUserAgent, INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER, } from '@aws-amplify/core';\nimport { PubSub } from '@aws-amplify/pubsub';\nimport Auth from '@aws-amplify/auth';\nimport Cache from '@aws-amplify/cache';\nimport { GraphQLAuthError, } from './types';\nimport { RestClient } from '@aws-amplify/api-rest';\nvar USER_AGENT_HEADER = 'x-amz-user-agent';\nvar logger = new Logger('GraphQLAPI');\nexport var graphqlOperation = function (query, variables, authToken, userAgentSuffix) {\n if (variables === void 0) { variables = {}; }\n return ({\n query: query,\n variables: variables,\n authToken: authToken,\n userAgentSuffix: userAgentSuffix,\n });\n};\n/**\n * Export Cloud Logic APIs\n */\nvar GraphQLAPIClass = /** @class */ (function () {\n /**\n * Initialize GraphQL API with AWS configuration\n * @param {Object} options - Configuration object for API\n */\n function GraphQLAPIClass(options) {\n this._api = null;\n this.Auth = Auth;\n this.Cache = Cache;\n this.Credentials = Credentials;\n this._options = options;\n logger.debug('API Options', this._options);\n }\n GraphQLAPIClass.prototype.getModuleName = function () {\n return 'GraphQLAPI';\n };\n /**\n * Configure API\n * @param {Object} config - Configuration of the API\n * @return {Object} - The current configuration\n */\n GraphQLAPIClass.prototype.configure = function (options) {\n var _a = options || {}, _b = _a.API, API = _b === void 0 ? {} : _b, otherOptions = __rest(_a, [\"API\"]);\n var opt = __assign(__assign({}, otherOptions), API);\n logger.debug('configure GraphQL API', { opt: opt });\n if (opt['aws_project_region']) {\n opt = Object.assign({}, opt, {\n region: opt['aws_project_region'],\n header: {},\n });\n }\n if (typeof opt.graphql_headers !== 'undefined' &&\n typeof opt.graphql_headers !== 'function') {\n logger.warn('graphql_headers should be a function');\n opt.graphql_headers = undefined;\n }\n this._options = Object.assign({}, this._options, opt);\n this.createInstance();\n return this._options;\n };\n /**\n * Create an instance of API for the library\n * @return - A promise of true if Success\n */\n GraphQLAPIClass.prototype.createInstance = function () {\n logger.debug('create Rest instance');\n if (this._options) {\n this._api = new RestClient(this._options);\n // Share instance Credentials with client for SSR\n this._api.Credentials = this.Credentials;\n return true;\n }\n else {\n return Promise.reject('API not configured');\n }\n };\n GraphQLAPIClass.prototype._headerBasedAuth = function (defaultAuthenticationType, additionalHeaders) {\n if (additionalHeaders === void 0) { additionalHeaders = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, aws_appsync_authenticationType, apiKey, authenticationType, headers, _b, credentialsOK, token, federatedInfo, currentUser, e_1, session, e_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = this._options, aws_appsync_authenticationType = _a.aws_appsync_authenticationType, apiKey = _a.aws_appsync_apiKey;\n authenticationType = defaultAuthenticationType || aws_appsync_authenticationType || 'AWS_IAM';\n headers = {};\n _b = authenticationType;\n switch (_b) {\n case 'API_KEY': return [3 /*break*/, 1];\n case 'AWS_IAM': return [3 /*break*/, 2];\n case 'OPENID_CONNECT': return [3 /*break*/, 4];\n case 'AMAZON_COGNITO_USER_POOLS': return [3 /*break*/, 11];\n case 'AWS_LAMBDA': return [3 /*break*/, 15];\n }\n return [3 /*break*/, 16];\n case 1:\n if (!apiKey) {\n throw new Error(GraphQLAuthError.NO_API_KEY);\n }\n headers = {\n Authorization: null,\n 'X-Api-Key': apiKey,\n };\n return [3 /*break*/, 17];\n case 2: return [4 /*yield*/, this._ensureCredentials()];\n case 3:\n credentialsOK = _c.sent();\n if (!credentialsOK) {\n throw new Error(GraphQLAuthError.NO_CREDENTIALS);\n }\n return [3 /*break*/, 17];\n case 4:\n _c.trys.push([4, 9, , 10]);\n token = void 0;\n return [4 /*yield*/, Cache.getItem('federatedInfo')];\n case 5:\n federatedInfo = _c.sent();\n if (!federatedInfo) return [3 /*break*/, 6];\n token = federatedInfo.token;\n return [3 /*break*/, 8];\n case 6: return [4 /*yield*/, Auth.currentAuthenticatedUser()];\n case 7:\n currentUser = _c.sent();\n if (currentUser) {\n token = currentUser.token;\n }\n _c.label = 8;\n case 8:\n if (!token) {\n throw new Error(GraphQLAuthError.NO_FEDERATED_JWT);\n }\n headers = {\n Authorization: token,\n };\n return [3 /*break*/, 10];\n case 9:\n e_1 = _c.sent();\n throw new Error(GraphQLAuthError.NO_CURRENT_USER);\n case 10: return [3 /*break*/, 17];\n case 11:\n _c.trys.push([11, 13, , 14]);\n return [4 /*yield*/, this.Auth.currentSession()];\n case 12:\n session = _c.sent();\n headers = {\n Authorization: session.getAccessToken().getJwtToken(),\n };\n return [3 /*break*/, 14];\n case 13:\n e_2 = _c.sent();\n throw new Error(GraphQLAuthError.NO_CURRENT_USER);\n case 14: return [3 /*break*/, 17];\n case 15:\n if (!additionalHeaders.Authorization) {\n throw new Error(GraphQLAuthError.NO_AUTH_TOKEN);\n }\n headers = {\n Authorization: additionalHeaders.Authorization,\n };\n return [3 /*break*/, 17];\n case 16:\n headers = {\n Authorization: null,\n };\n return [3 /*break*/, 17];\n case 17: return [2 /*return*/, headers];\n }\n });\n });\n };\n /**\n * to get the operation type\n * @param operation\n */\n GraphQLAPIClass.prototype.getGraphqlOperationType = function (operation) {\n var doc = parse(operation);\n var definitions = doc.definitions;\n var _a = __read(definitions, 1), operationType = _a[0].operation;\n return operationType;\n };\n /**\n * Executes a GraphQL operation\n *\n * @param options - GraphQL Options\n * @param [additionalHeaders] - headers to merge in after any `graphql_headers` set in the config\n * @returns An Observable if the query is a subscription query, else a promise of the graphql result.\n */\n GraphQLAPIClass.prototype.graphql = function (_a, additionalHeaders) {\n var paramQuery = _a.query, _b = _a.variables, variables = _b === void 0 ? {} : _b, authMode = _a.authMode, authToken = _a.authToken, userAgentSuffix = _a.userAgentSuffix;\n var query = typeof paramQuery === 'string'\n ? parse(paramQuery)\n : parse(print(paramQuery));\n var _c = __read(query.definitions.filter(function (def) { return def.kind === 'OperationDefinition'; }), 1), _d = _c[0], operationDef = _d === void 0 ? {} : _d;\n var operationType = operationDef.operation;\n var headers = additionalHeaders || {};\n // if an authorization header is set, have the explicit authToken take precedence\n if (authToken) {\n headers.Authorization = authToken;\n }\n switch (operationType) {\n case 'query':\n case 'mutation':\n this.createInstanceIfNotCreated();\n var cancellableToken = this._api.getCancellableToken();\n var initParams = { cancellableToken: cancellableToken };\n var responsePromise = this._graphql({ query: query, variables: variables, authMode: authMode, userAgentSuffix: userAgentSuffix }, headers, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n case 'subscription':\n return this._graphqlSubscribe({ query: query, variables: variables, authMode: authMode }, headers);\n default:\n throw new Error(\"invalid operation type: \" + operationType);\n }\n };\n GraphQLAPIClass.prototype._graphql = function (_a, additionalHeaders, initParams) {\n var query = _a.query, variables = _a.variables, authMode = _a.authMode, userAgentSuffix = _a.userAgentSuffix;\n if (additionalHeaders === void 0) { additionalHeaders = {}; }\n if (initParams === void 0) { initParams = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _b, region, appSyncGraphqlEndpoint, _c, graphql_headers, customGraphqlEndpoint, customEndpointRegion, headers, _d, _e, _f, _g, _h, _j, body, init, endpoint, error, response, err_1, errors;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n this.createInstanceIfNotCreated();\n _b = this._options, region = _b.aws_appsync_region, appSyncGraphqlEndpoint = _b.aws_appsync_graphqlEndpoint, _c = _b.graphql_headers, graphql_headers = _c === void 0 ? function () { return ({}); } : _c, customGraphqlEndpoint = _b.graphql_endpoint, customEndpointRegion = _b.graphql_endpoint_iam_region;\n _d = [{}];\n _e = !customGraphqlEndpoint;\n if (!_e) return [3 /*break*/, 2];\n return [4 /*yield*/, this._headerBasedAuth(authMode, additionalHeaders)];\n case 1:\n _e = (_l.sent());\n _l.label = 2;\n case 2:\n _f = [__assign.apply(void 0, _d.concat([(_e)]))];\n _g = customGraphqlEndpoint;\n if (!_g) return [3 /*break*/, 6];\n if (!customEndpointRegion) return [3 /*break*/, 4];\n return [4 /*yield*/, this._headerBasedAuth(authMode, additionalHeaders)];\n case 3:\n _h = _l.sent();\n return [3 /*break*/, 5];\n case 4:\n _h = { Authorization: null };\n _l.label = 5;\n case 5:\n _g = (_h);\n _l.label = 6;\n case 6:\n _j = [__assign.apply(void 0, _f.concat([(_g)]))];\n return [4 /*yield*/, graphql_headers({ query: query, variables: variables })];\n case 7:\n headers = __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), additionalHeaders]), (!customGraphqlEndpoint && (_k = {},\n _k[USER_AGENT_HEADER] = getAmplifyUserAgent(userAgentSuffix),\n _k))]);\n body = {\n query: print(query),\n variables: variables,\n };\n init = Object.assign({\n headers: headers,\n body: body,\n signerServiceInfo: {\n service: !customGraphqlEndpoint ? 'appsync' : 'execute-api',\n region: !customGraphqlEndpoint ? region : customEndpointRegion,\n },\n }, initParams);\n endpoint = customGraphqlEndpoint || appSyncGraphqlEndpoint;\n if (!endpoint) {\n error = new GraphQLError('No graphql endpoint provided.');\n throw {\n data: {},\n errors: [error],\n };\n }\n _l.label = 8;\n case 8:\n _l.trys.push([8, 10, , 11]);\n return [4 /*yield*/, this._api.post(endpoint, init)];\n case 9:\n response = _l.sent();\n return [3 /*break*/, 11];\n case 10:\n err_1 = _l.sent();\n // If the exception is because user intentionally\n // cancelled the request, do not modify the exception\n // so that clients can identify the exception correctly.\n if (this._api.isCancel(err_1)) {\n throw err_1;\n }\n response = {\n data: {},\n errors: [new GraphQLError(err_1.message, null, null, null, null, err_1)],\n };\n return [3 /*break*/, 11];\n case 11:\n errors = response.errors;\n if (errors && errors.length) {\n throw response;\n }\n return [2 /*return*/, response];\n }\n });\n });\n };\n GraphQLAPIClass.prototype.createInstanceIfNotCreated = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this._api) return [3 /*break*/, 2];\n return [4 /*yield*/, this.createInstance()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param {any} error - Any error\n * @return {boolean} - A boolean indicating if the error was from an api request cancellation\n */\n GraphQLAPIClass.prototype.isCancel = function (error) {\n return this._api.isCancel(error);\n };\n /**\n * Cancels an inflight request. Only applicable for graphql queries and mutations\n * @param {any} request - request to cancel\n * @return {boolean} - A boolean indicating if the request was cancelled\n */\n GraphQLAPIClass.prototype.cancel = function (request, message) {\n return this._api.cancel(request, message);\n };\n /**\n * Check if the request has a corresponding cancel token in the WeakMap.\n * @params request - The request promise\n * @return if the request has a corresponding cancel token.\n */\n GraphQLAPIClass.prototype.hasCancelToken = function (request) {\n return this._api.hasCancelToken(request);\n };\n GraphQLAPIClass.prototype._graphqlSubscribe = function (_a, additionalHeaders) {\n var query = _a.query, variables = _a.variables, defaultAuthenticationType = _a.authMode, authToken = _a.authToken;\n if (additionalHeaders === void 0) { additionalHeaders = {}; }\n var _b = this._options, region = _b.aws_appsync_region, appSyncGraphqlEndpoint = _b.aws_appsync_graphqlEndpoint, aws_appsync_authenticationType = _b.aws_appsync_authenticationType, apiKey = _b.aws_appsync_apiKey, _c = _b.graphql_headers, graphql_headers = _c === void 0 ? function () { return ({}); } : _c;\n var authenticationType = defaultAuthenticationType || aws_appsync_authenticationType || 'AWS_IAM';\n if (PubSub && typeof PubSub.subscribe === 'function') {\n return PubSub.subscribe('', {\n provider: INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n apiKey: apiKey,\n query: print(query),\n region: region,\n variables: variables,\n graphql_headers: graphql_headers,\n additionalHeaders: additionalHeaders,\n authToken: authToken,\n });\n }\n else {\n logger.debug('No pubsub module applied for subscription');\n throw new Error('No pubsub module applied for subscription');\n }\n };\n /**\n * @private\n */\n GraphQLAPIClass.prototype._ensureCredentials = function () {\n var _this = this;\n return this.Credentials.get()\n .then(function (credentials) {\n if (!credentials)\n return false;\n var cred = _this.Credentials.shear(credentials);\n logger.debug('set credentials for api', cred);\n return true;\n })\n .catch(function (err) {\n logger.warn('ensure credentials error', err);\n return false;\n });\n };\n return GraphQLAPIClass;\n}());\nexport { GraphQLAPIClass };\nexport var GraphQLAPI = new GraphQLAPIClass(null);\nAmplify.register(GraphQLAPI);\n//# sourceMappingURL=GraphQLAPI.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Auth } from '@aws-amplify/auth';\nimport Cache from '@aws-amplify/cache';\nimport { RestAPIClass } from '@aws-amplify/api-rest';\nimport { GraphQLAPIClass, } from '@aws-amplify/api-graphql';\nimport { Amplify, ConsoleLogger as Logger, Credentials, } from '@aws-amplify/core';\nvar logger = new Logger('API');\n/**\n * @deprecated\n * Use RestApi or GraphQLAPI to reduce your application bundle size\n * Export Cloud Logic APIs\n */\nvar APIClass = /** @class */ (function () {\n /**\n * Initialize API with AWS configuration\n * @param {Object} options - Configuration object for API\n */\n function APIClass(options) {\n this.Auth = Auth;\n this.Cache = Cache;\n this.Credentials = Credentials;\n this._options = options;\n this._restApi = new RestAPIClass(options);\n this._graphqlApi = new GraphQLAPIClass(options);\n logger.debug('API Options', this._options);\n }\n APIClass.prototype.getModuleName = function () {\n return 'API';\n };\n /**\n * Configure API part with aws configurations\n * @param {Object} config - Configuration of the API\n * @return {Object} - The current configuration\n */\n APIClass.prototype.configure = function (options) {\n this._options = Object.assign({}, this._options, options);\n // Share Amplify instance with client for SSR\n this._restApi.Credentials = this.Credentials;\n this._graphqlApi.Auth = this.Auth;\n this._graphqlApi.Cache = this.Cache;\n this._graphqlApi.Credentials = this.Credentials;\n var restAPIConfig = this._restApi.configure(this._options);\n var graphQLAPIConfig = this._graphqlApi.configure(this._options);\n return __assign(__assign({}, restAPIConfig), graphQLAPIConfig);\n };\n /**\n * Make a GET request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.get = function (apiName, path, init) {\n return this._restApi.get(apiName, path, init);\n };\n /**\n * Make a POST request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.post = function (apiName, path, init) {\n return this._restApi.post(apiName, path, init);\n };\n /**\n * Make a PUT request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.put = function (apiName, path, init) {\n return this._restApi.put(apiName, path, init);\n };\n /**\n * Make a PATCH request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.patch = function (apiName, path, init) {\n return this._restApi.patch(apiName, path, init);\n };\n /**\n * Make a DEL request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.del = function (apiName, path, init) {\n return this._restApi.del(apiName, path, init);\n };\n /**\n * Make a HEAD request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.head = function (apiName, path, init) {\n return this._restApi.head(apiName, path, init);\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param error - Any error\n * @return If the error was from an api request cancellation\n */\n APIClass.prototype.isCancel = function (error) {\n return this._restApi.isCancel(error);\n };\n /**\n * Cancels an inflight request for either a GraphQL request or a Rest API request.\n * @param request - request to cancel\n * @param [message] - custom error message\n * @return If the request was cancelled\n */\n APIClass.prototype.cancel = function (request, message) {\n if (this._restApi.hasCancelToken(request)) {\n return this._restApi.cancel(request, message);\n }\n else if (this._graphqlApi.hasCancelToken(request)) {\n return this._graphqlApi.cancel(request, message);\n }\n return false;\n };\n /**\n * Getting endpoint for API\n * @param apiName - The name of the api\n * @return The endpoint of the api\n */\n APIClass.prototype.endpoint = function (apiName) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._restApi.endpoint(apiName)];\n });\n });\n };\n /**\n * to get the operation type\n * @param operation\n */\n APIClass.prototype.getGraphqlOperationType = function (operation) {\n return this._graphqlApi.getGraphqlOperationType(operation);\n };\n APIClass.prototype.graphql = function (options, additionalHeaders) {\n return this._graphqlApi.graphql(options, additionalHeaders);\n };\n return APIClass;\n}());\nexport { APIClass };\nexport var API = new APIClass(null);\nAmplify.register(API);\n//# sourceMappingURL=API.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nexport var CognitoHostedUIIdentityProvider;\n(function (CognitoHostedUIIdentityProvider) {\n CognitoHostedUIIdentityProvider[\"Cognito\"] = \"COGNITO\";\n CognitoHostedUIIdentityProvider[\"Google\"] = \"Google\";\n CognitoHostedUIIdentityProvider[\"Facebook\"] = \"Facebook\";\n CognitoHostedUIIdentityProvider[\"Amazon\"] = \"LoginWithAmazon\";\n CognitoHostedUIIdentityProvider[\"Apple\"] = \"SignInWithApple\";\n})(CognitoHostedUIIdentityProvider || (CognitoHostedUIIdentityProvider = {}));\nexport function isFederatedSignInOptions(obj) {\n var keys = ['provider'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function isFederatedSignInOptionsCustom(obj) {\n var keys = ['customProvider'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function hasCustomState(obj) {\n var keys = ['customState'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function isCognitoHostedOpts(oauth) {\n return oauth.redirectSignIn !== undefined;\n}\nexport var AuthErrorTypes;\n(function (AuthErrorTypes) {\n AuthErrorTypes[\"NoConfig\"] = \"noConfig\";\n AuthErrorTypes[\"MissingAuthConfig\"] = \"missingAuthConfig\";\n AuthErrorTypes[\"EmptyUsername\"] = \"emptyUsername\";\n AuthErrorTypes[\"InvalidUsername\"] = \"invalidUsername\";\n AuthErrorTypes[\"EmptyPassword\"] = \"emptyPassword\";\n AuthErrorTypes[\"EmptyCode\"] = \"emptyCode\";\n AuthErrorTypes[\"SignUpError\"] = \"signUpError\";\n AuthErrorTypes[\"NoMFA\"] = \"noMFA\";\n AuthErrorTypes[\"InvalidMFA\"] = \"invalidMFA\";\n AuthErrorTypes[\"EmptyChallengeResponse\"] = \"emptyChallengeResponse\";\n AuthErrorTypes[\"NoUserSession\"] = \"noUserSession\";\n AuthErrorTypes[\"Default\"] = \"default\";\n AuthErrorTypes[\"DeviceConfig\"] = \"deviceConfig\";\n AuthErrorTypes[\"NetworkError\"] = \"networkError\";\n AuthErrorTypes[\"AutoSignInError\"] = \"autoSignInError\";\n})(AuthErrorTypes || (AuthErrorTypes = {}));\nexport function isUsernamePasswordOpts(obj) {\n return !!obj.username;\n}\nexport var GRAPHQL_AUTH_MODE;\n(function (GRAPHQL_AUTH_MODE) {\n GRAPHQL_AUTH_MODE[\"API_KEY\"] = \"API_KEY\";\n GRAPHQL_AUTH_MODE[\"AWS_IAM\"] = \"AWS_IAM\";\n GRAPHQL_AUTH_MODE[\"OPENID_CONNECT\"] = \"OPENID_CONNECT\";\n GRAPHQL_AUTH_MODE[\"AMAZON_COGNITO_USER_POOLS\"] = \"AMAZON_COGNITO_USER_POOLS\";\n GRAPHQL_AUTH_MODE[\"AWS_LAMBDA\"] = \"AWS_LAMBDA\";\n})(GRAPHQL_AUTH_MODE || (GRAPHQL_AUTH_MODE = {}));\n//# sourceMappingURL=Auth.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Parser');\nexport var parseMobileHubConfig = function (config) {\n var amplifyConfig = {};\n // Analytics\n if (config['aws_mobile_analytics_app_id']) {\n var Analytics = {\n AWSPinpoint: {\n appId: config['aws_mobile_analytics_app_id'],\n region: config['aws_mobile_analytics_app_region'],\n },\n };\n amplifyConfig.Analytics = Analytics;\n }\n // Auth\n if (config['aws_cognito_identity_pool_id'] || config['aws_user_pools_id']) {\n amplifyConfig.Auth = {\n userPoolId: config['aws_user_pools_id'],\n userPoolWebClientId: config['aws_user_pools_web_client_id'],\n region: config['aws_cognito_region'],\n identityPoolId: config['aws_cognito_identity_pool_id'],\n identityPoolRegion: config['aws_cognito_region'],\n mandatorySignIn: config['aws_mandatory_sign_in'] === 'enable',\n signUpVerificationMethod: config['aws_cognito_sign_up_verification_method'] || 'code',\n };\n }\n // Storage\n var storageConfig;\n if (config['aws_user_files_s3_bucket']) {\n storageConfig = {\n AWSS3: {\n bucket: config['aws_user_files_s3_bucket'],\n region: config['aws_user_files_s3_bucket_region'],\n dangerouslyConnectToHttpEndpointForTesting: config['aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing'],\n },\n };\n }\n else {\n storageConfig = config ? config.Storage || config : {};\n }\n // Logging\n if (config['Logging']) {\n amplifyConfig.Logging = __assign(__assign({}, config['Logging']), { region: config['aws_project_region'] });\n }\n // Geo\n if (config['geo']) {\n amplifyConfig.Geo = Object.assign({}, config.geo);\n if (config.geo['amazon_location_service']) {\n amplifyConfig.Geo = {\n AmazonLocationService: config.geo['amazon_location_service'],\n };\n }\n }\n amplifyConfig.Analytics = Object.assign({}, amplifyConfig.Analytics, config.Analytics);\n amplifyConfig.Auth = Object.assign({}, amplifyConfig.Auth, config.Auth);\n amplifyConfig.Storage = Object.assign({}, storageConfig);\n amplifyConfig.Logging = Object.assign({}, amplifyConfig.Logging, config.Logging);\n logger.debug('parse config', config, 'to amplifyconfig', amplifyConfig);\n return amplifyConfig;\n};\n/**\n * @deprecated use per-function export\n */\nvar Parser = /** @class */ (function () {\n function Parser() {\n }\n Parser.parseMobilehubConfig = parseMobileHubConfig;\n return Parser;\n}());\nexport { Parser };\n/**\n * @deprecated use per-function export\n */\nexport default Parser;\n//# sourceMappingURL=Parser.js.map","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from './Cookies';\r\nexport default Cookies;\r\n","import Cookies from 'universal-cookie';\nimport { browserOrNode } from '../JS';\nvar isBrowser = browserOrNode().isBrowser;\nvar UniversalStorage = /** @class */ (function () {\n function UniversalStorage(context) {\n if (context === void 0) { context = {}; }\n this.cookies = new Cookies();\n this.store = isBrowser ? window.localStorage : Object.create(null);\n this.cookies = context.req\n ? new Cookies(context.req.headers.cookie)\n : new Cookies();\n Object.assign(this.store, this.cookies.getAll());\n }\n Object.defineProperty(UniversalStorage.prototype, \"length\", {\n get: function () {\n return Object.entries(this.store).length;\n },\n enumerable: true,\n configurable: true\n });\n UniversalStorage.prototype.clear = function () {\n var _this = this;\n Array.from(new Array(this.length))\n .map(function (_, i) { return _this.key(i); })\n .forEach(function (key) { return _this.removeItem(key); });\n };\n UniversalStorage.prototype.getItem = function (key) {\n return this.getLocalItem(key);\n };\n UniversalStorage.prototype.getLocalItem = function (key) {\n return Object.prototype.hasOwnProperty.call(this.store, key)\n ? this.store[key]\n : null;\n };\n UniversalStorage.prototype.getUniversalItem = function (key) {\n return this.cookies.get(key);\n };\n UniversalStorage.prototype.key = function (index) {\n return Object.keys(this.store)[index];\n };\n UniversalStorage.prototype.removeItem = function (key) {\n this.removeLocalItem(key);\n this.removeUniversalItem(key);\n };\n UniversalStorage.prototype.removeLocalItem = function (key) {\n delete this.store[key];\n };\n UniversalStorage.prototype.removeUniversalItem = function (key) {\n this.cookies.remove(key, {\n path: '/',\n });\n };\n UniversalStorage.prototype.setItem = function (key, value) {\n this.setLocalItem(key, value);\n // keys take the shape:\n // 1. `${ProviderPrefix}.${userPoolClientId}.${username}.${tokenType}\n // 2. `${ProviderPrefix}.${userPoolClientId}.LastAuthUser\n var tokenType = key.split('.').pop();\n switch (tokenType) {\n // LastAuthUser is needed for computing other key names\n case 'LastAuthUser':\n // accessToken is required for CognitoUserSession\n case 'accessToken':\n // refreshToken originates on the client, but SSR pages won't fail when this expires\n // Note: the new `accessToken` will also be refreshed on the client (since Amplify doesn't set server-side cookies)\n case 'refreshToken':\n // Required for CognitoUserSession\n case 'idToken':\n isBrowser\n ? this.setUniversalItem(key, value)\n : this.setLocalItem(key, value);\n // userData is used when `Auth.currentAuthenticatedUser({ bypassCache: false })`.\n // Can be persisted to speed up calls to `Auth.currentAuthenticatedUser()`\n // case 'userData':\n // Ignoring clockDrift on the server for now, but needs testing\n // case 'clockDrift':\n }\n };\n UniversalStorage.prototype.setLocalItem = function (key, value) {\n this.store[key] = value;\n };\n UniversalStorage.prototype.setUniversalItem = function (key, value) {\n this.cookies.set(key, value, {\n path: '/',\n // `httpOnly` cannot be set via JavaScript: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#JavaScript_access_using_Document.cookie\n sameSite: true,\n // Allow unsecure requests to http://localhost:3000/ when in development.\n secure: window.location.hostname === 'localhost' ? false : true,\n });\n };\n return UniversalStorage;\n}());\nexport { UniversalStorage };\n//# sourceMappingURL=index.js.map","export function urlSafeEncode(str) {\n return str\n .split('')\n .map(function (char) {\n return char\n .charCodeAt(0)\n .toString(16)\n .padStart(2, '0');\n })\n .join('');\n}\nexport function urlSafeDecode(hex) {\n return hex\n .match(/.{2}/g)\n .map(function (char) { return String.fromCharCode(parseInt(char, 16)); })\n .join('');\n}\n//# sourceMappingURL=StringUtils.js.map","export var AuthErrorStrings;\n(function (AuthErrorStrings) {\n AuthErrorStrings[\"DEFAULT_MSG\"] = \"Authentication Error\";\n AuthErrorStrings[\"EMPTY_EMAIL\"] = \"Email cannot be empty\";\n AuthErrorStrings[\"EMPTY_PHONE\"] = \"Phone number cannot be empty\";\n AuthErrorStrings[\"EMPTY_USERNAME\"] = \"Username cannot be empty\";\n AuthErrorStrings[\"INVALID_USERNAME\"] = \"The username should either be a string or one of the sign in types\";\n AuthErrorStrings[\"EMPTY_PASSWORD\"] = \"Password cannot be empty\";\n AuthErrorStrings[\"EMPTY_CODE\"] = \"Confirmation code cannot be empty\";\n AuthErrorStrings[\"SIGN_UP_ERROR\"] = \"Error creating account\";\n AuthErrorStrings[\"NO_MFA\"] = \"No valid MFA method provided\";\n AuthErrorStrings[\"INVALID_MFA\"] = \"Invalid MFA type\";\n AuthErrorStrings[\"EMPTY_CHALLENGE\"] = \"Challenge response cannot be empty\";\n AuthErrorStrings[\"NO_USER_SESSION\"] = \"Failed to get the session because the user is empty\";\n AuthErrorStrings[\"NETWORK_ERROR\"] = \"Network Error\";\n AuthErrorStrings[\"DEVICE_CONFIG\"] = \"Device tracking has not been configured in this User Pool\";\n AuthErrorStrings[\"AUTOSIGNIN_ERROR\"] = \"Please use your credentials to sign in\";\n})(AuthErrorStrings || (AuthErrorStrings = {}));\n//# sourceMappingURL=AuthErrorStrings.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar SELF = '_self';\nexport var launchUri = function (url) {\n var windowProxy = window.open(url, SELF);\n if (windowProxy) {\n return Promise.resolve(windowProxy);\n }\n else {\n return Promise.reject();\n }\n};\n//# sourceMappingURL=urlOpener.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nexport var setState = function (state) {\n window.sessionStorage.setItem('oauth_state', state);\n};\nexport var getState = function () {\n var oauth_state = window.sessionStorage.getItem('oauth_state');\n window.sessionStorage.removeItem('oauth_state');\n return oauth_state;\n};\nexport var setPKCE = function (private_key) {\n window.sessionStorage.setItem('ouath_pkce_key', private_key);\n};\nexport var getPKCE = function () {\n var ouath_pkce_key = window.sessionStorage.getItem('ouath_pkce_key');\n window.sessionStorage.removeItem('ouath_pkce_key');\n return ouath_pkce_key;\n};\nexport var clearAll = function () {\n window.sessionStorage.removeItem('ouath_pkce_key');\n window.sessionStorage.removeItem('oauth_state');\n};\n//# sourceMappingURL=oauthStorage.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { parse } from 'url'; // Used for OAuth parsing of Cognito Hosted UI\nimport { launchUri } from './urlOpener';\nimport * as oAuthStorage from './oauthStorage';\nimport { isCognitoHostedOpts, CognitoHostedUIIdentityProvider, } from '../types/Auth';\nimport { ConsoleLogger as Logger, Hub, urlSafeEncode } from '@aws-amplify/core';\nimport sha256 from 'crypto-js/sha256';\nimport Base64 from 'crypto-js/enc-base64';\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&\n typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nvar dispatchAuthEvent = function (event, data, message) {\n Hub.dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL);\n};\nvar logger = new Logger('OAuth');\nvar OAuth = /** @class */ (function () {\n function OAuth(_a) {\n var config = _a.config, cognitoClientId = _a.cognitoClientId, _b = _a.scopes, scopes = _b === void 0 ? [] : _b;\n this._urlOpener = config.urlOpener || launchUri;\n this._config = config;\n this._cognitoClientId = cognitoClientId;\n if (!this.isValidScopes(scopes))\n throw Error('scopes must be a String Array');\n this._scopes = scopes;\n }\n OAuth.prototype.isValidScopes = function (scopes) {\n return (Array.isArray(scopes) && scopes.every(function (scope) { return typeof scope === 'string'; }));\n };\n OAuth.prototype.oauthSignIn = function (responseType, domain, redirectSignIn, clientId, provider, customState) {\n if (responseType === void 0) { responseType = 'code'; }\n if (provider === void 0) { provider = CognitoHostedUIIdentityProvider.Cognito; }\n var generatedState = this._generateState(32);\n /* encodeURIComponent is not URL safe, use urlSafeEncode instead. Cognito\n single-encodes/decodes url on first sign in and double-encodes/decodes url\n when user already signed in. Using encodeURIComponent, Base32, Base64 add\n characters % or = which on further encoding becomes unsafe. '=' create issue\n for parsing query params.\n Refer: https://github.com/aws-amplify/amplify-js/issues/5218 */\n var state = customState\n ? generatedState + \"-\" + urlSafeEncode(customState)\n : generatedState;\n oAuthStorage.setState(state);\n var pkce_key = this._generateRandom(128);\n oAuthStorage.setPKCE(pkce_key);\n var code_challenge = this._generateChallenge(pkce_key);\n var code_challenge_method = 'S256';\n var scopesString = this._scopes.join(' ');\n var queryString = Object.entries(__assign(__assign({ redirect_uri: redirectSignIn, response_type: responseType, client_id: clientId, identity_provider: provider, scope: scopesString, state: state }, (responseType === 'code' ? { code_challenge: code_challenge } : {})), (responseType === 'code' ? { code_challenge_method: code_challenge_method } : {})))\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return encodeURIComponent(k) + \"=\" + encodeURIComponent(v);\n })\n .join('&');\n var URL = \"https://\" + domain + \"/oauth2/authorize?\" + queryString;\n logger.debug(\"Redirecting to \" + URL);\n this._urlOpener(URL, redirectSignIn);\n };\n OAuth.prototype._handleCodeFlow = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var code, currentUrlPathname, redirectSignInPathname, oAuthTokenEndpoint, client_id, redirect_uri, code_verifier, oAuthTokenBody, body, _a, access_token, refresh_token, id_token, error;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n code = (parse(currentUrl).query || '')\n .split('&')\n .map(function (pairings) { return pairings.split('='); })\n .reduce(function (accum, _a) {\n var _b;\n var _c = __read(_a, 2), k = _c[0], v = _c[1];\n return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b)));\n }, { code: undefined }).code;\n currentUrlPathname = parse(currentUrl).pathname || '/';\n redirectSignInPathname = parse(this._config.redirectSignIn).pathname || '/';\n if (!code || currentUrlPathname !== redirectSignInPathname) {\n return [2 /*return*/];\n }\n oAuthTokenEndpoint = 'https://' + this._config.domain + '/oauth2/token';\n dispatchAuthEvent('codeFlow', {}, \"Retrieving tokens from \" + oAuthTokenEndpoint);\n client_id = isCognitoHostedOpts(this._config)\n ? this._cognitoClientId\n : this._config.clientID;\n redirect_uri = isCognitoHostedOpts(this._config)\n ? this._config.redirectSignIn\n : this._config.redirectUri;\n code_verifier = oAuthStorage.getPKCE();\n oAuthTokenBody = __assign({ grant_type: 'authorization_code', code: code,\n client_id: client_id,\n redirect_uri: redirect_uri }, (code_verifier ? { code_verifier: code_verifier } : {}));\n logger.debug(\"Calling token endpoint: \" + oAuthTokenEndpoint + \" with\", oAuthTokenBody);\n body = Object.entries(oAuthTokenBody)\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return encodeURIComponent(k) + \"=\" + encodeURIComponent(v);\n })\n .join('&');\n return [4 /*yield*/, fetch(oAuthTokenEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: body,\n })];\n case 1: return [4 /*yield*/, (_b.sent()).json()];\n case 2:\n _a = _b.sent(), access_token = _a.access_token, refresh_token = _a.refresh_token, id_token = _a.id_token, error = _a.error;\n if (error) {\n throw new Error(error);\n }\n return [2 /*return*/, {\n accessToken: access_token,\n refreshToken: refresh_token,\n idToken: id_token,\n }];\n }\n });\n });\n };\n OAuth.prototype._handleImplicitFlow = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, id_token, access_token;\n return __generator(this, function (_b) {\n _a = (parse(currentUrl).hash || '#')\n .substr(1) // Remove # from returned code\n .split('&')\n .map(function (pairings) { return pairings.split('='); })\n .reduce(function (accum, _a) {\n var _b;\n var _c = __read(_a, 2), k = _c[0], v = _c[1];\n return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b)));\n }, {\n id_token: undefined,\n access_token: undefined,\n }), id_token = _a.id_token, access_token = _a.access_token;\n dispatchAuthEvent('implicitFlow', {}, \"Got tokens from \" + currentUrl);\n logger.debug(\"Retrieving implicit tokens from \" + currentUrl + \" with\");\n return [2 /*return*/, {\n accessToken: access_token,\n idToken: id_token,\n refreshToken: null,\n }];\n });\n });\n };\n OAuth.prototype.handleAuthResponse = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var urlParams, error, error_description, state, _a, _b, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 5, , 6]);\n urlParams = currentUrl\n ? __assign(__assign({}, (parse(currentUrl).hash || '#')\n .substr(1)\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .reduce(function (acc, _a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return ((acc[k] = v), acc);\n }, {})), (parse(currentUrl).query || '')\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .reduce(function (acc, _a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return ((acc[k] = v), acc);\n }, {}))\n : {};\n error = urlParams.error, error_description = urlParams.error_description;\n if (error) {\n throw new Error(error_description);\n }\n state = this._validateState(urlParams);\n logger.debug(\"Starting \" + this._config.responseType + \" flow with \" + currentUrl);\n if (!(this._config.responseType === 'code')) return [3 /*break*/, 2];\n _a = [{}];\n return [4 /*yield*/, this._handleCodeFlow(currentUrl)];\n case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_c.sent())])), { state: state }])];\n case 2:\n _b = [{}];\n return [4 /*yield*/, this._handleImplicitFlow(currentUrl)];\n case 3: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _b.concat([(_c.sent())])), { state: state }])];\n case 4: return [3 /*break*/, 6];\n case 5:\n e_1 = _c.sent();\n logger.error(\"Error handling auth response.\", e_1);\n throw e_1;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n OAuth.prototype._validateState = function (urlParams) {\n if (!urlParams) {\n return;\n }\n var savedState = oAuthStorage.getState();\n var returnedState = urlParams.state;\n // This is because savedState only exists if the flow was initiated by Amplify\n if (savedState && savedState !== returnedState) {\n throw new Error('Invalid state in OAuth flow');\n }\n return returnedState;\n };\n OAuth.prototype.signOut = function () {\n return __awaiter(this, void 0, void 0, function () {\n var oAuthLogoutEndpoint, client_id, signout_uri;\n return __generator(this, function (_a) {\n oAuthLogoutEndpoint = 'https://' + this._config.domain + '/logout?';\n client_id = isCognitoHostedOpts(this._config)\n ? this._cognitoClientId\n : this._config.oauth.clientID;\n signout_uri = isCognitoHostedOpts(this._config)\n ? this._config.redirectSignOut\n : this._config.returnTo;\n oAuthLogoutEndpoint += Object.entries({\n client_id: client_id,\n logout_uri: encodeURIComponent(signout_uri),\n })\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return k + \"=\" + v;\n })\n .join('&');\n dispatchAuthEvent('oAuthSignOut', { oAuth: 'signOut' }, \"Signing out from \" + oAuthLogoutEndpoint);\n logger.debug(\"Signing out from \" + oAuthLogoutEndpoint);\n return [2 /*return*/, this._urlOpener(oAuthLogoutEndpoint, signout_uri)];\n });\n });\n };\n OAuth.prototype._generateState = function (length) {\n var result = '';\n var i = length;\n var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (; i > 0; --i)\n result += chars[Math.round(Math.random() * (chars.length - 1))];\n return result;\n };\n OAuth.prototype._generateChallenge = function (code) {\n return this._base64URL(sha256(code));\n };\n OAuth.prototype._base64URL = function (string) {\n return string\n .toString(Base64)\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n };\n OAuth.prototype._generateRandom = function (size) {\n var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n var buffer = new Uint8Array(size);\n if (typeof window !== 'undefined' && !!window.crypto) {\n window.crypto.getRandomValues(buffer);\n }\n else {\n for (var i = 0; i < size; i += 1) {\n buffer[i] = (Math.random() * CHARSET.length) | 0;\n }\n }\n return this._bufferToString(buffer);\n };\n OAuth.prototype._bufferToString = function (buffer) {\n var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var state = [];\n for (var i = 0; i < buffer.byteLength; i += 1) {\n var index = buffer[i] % CHARSET.length;\n state.push(CHARSET[index]);\n }\n return state.join('');\n };\n return OAuth;\n}());\nexport default OAuth;\n//# sourceMappingURL=OAuth.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { browserOrNode } from '@aws-amplify/core';\nexport default (function (callback) {\n if (browserOrNode().isBrowser && window.location) {\n var url = window.location.href;\n callback({ url: url });\n }\n else if (browserOrNode().isNode) {\n // continue building on ssr\n (function () { }); // noop\n }\n else {\n throw new Error('Not supported');\n }\n});\n//# sourceMappingURL=urlListener.js.map","/*\n * Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { AuthErrorStrings } from './common/AuthErrorStrings';\nvar logger = new Logger('AuthError');\nvar AuthError = /** @class */ (function (_super) {\n __extends(AuthError, _super);\n function AuthError(type) {\n var _this = this;\n var _a = authErrorMessages[type], message = _a.message, log = _a.log;\n _this = _super.call(this, message) || this;\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n _this.constructor = AuthError;\n Object.setPrototypeOf(_this, AuthError.prototype);\n _this.name = 'AuthError';\n _this.log = log || message;\n logger.error(_this.log);\n return _this;\n }\n return AuthError;\n}(Error));\nexport { AuthError };\nvar NoUserPoolError = /** @class */ (function (_super) {\n __extends(NoUserPoolError, _super);\n function NoUserPoolError(type) {\n var _this = _super.call(this, type) || this;\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n _this.constructor = NoUserPoolError;\n Object.setPrototypeOf(_this, NoUserPoolError.prototype);\n _this.name = 'NoUserPoolError';\n return _this;\n }\n return NoUserPoolError;\n}(AuthError));\nexport { NoUserPoolError };\nexport var authErrorMessages = {\n noConfig: {\n message: AuthErrorStrings.DEFAULT_MSG,\n log: \"\\n Error: Amplify has not been configured correctly.\\n This error is typically caused by one of the following scenarios:\\n\\n 1. Make sure you're passing the awsconfig object to Amplify.configure() in your app's entry point\\n See https://aws-amplify.github.io/docs/js/authentication#configure-your-app for more information\\n \\n 2. There might be multiple conflicting versions of amplify packages in your node_modules.\\n\\t\\t\\t\\tRefer to our docs site for help upgrading Amplify packages (https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js)\\n \",\n },\n missingAuthConfig: {\n message: AuthErrorStrings.DEFAULT_MSG,\n log: \"\\n Error: Amplify has not been configured correctly. \\n The configuration object is missing required auth properties.\\n This error is typically caused by one of the following scenarios:\\n\\n 1. Did you run `amplify push` after adding auth via `amplify add auth`?\\n See https://aws-amplify.github.io/docs/js/authentication#amplify-project-setup for more information\\n\\n 2. This could also be caused by multiple conflicting versions of amplify packages, see (https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js) for help upgrading Amplify packages.\\n \",\n },\n emptyUsername: {\n message: AuthErrorStrings.EMPTY_USERNAME,\n },\n // TODO: should include a list of valid sign-in types\n invalidUsername: {\n message: AuthErrorStrings.INVALID_USERNAME,\n },\n emptyPassword: {\n message: AuthErrorStrings.EMPTY_PASSWORD,\n },\n emptyCode: {\n message: AuthErrorStrings.EMPTY_CODE,\n },\n signUpError: {\n message: AuthErrorStrings.SIGN_UP_ERROR,\n log: 'The first parameter should either be non-null string or object',\n },\n noMFA: {\n message: AuthErrorStrings.NO_MFA,\n },\n invalidMFA: {\n message: AuthErrorStrings.INVALID_MFA,\n },\n emptyChallengeResponse: {\n message: AuthErrorStrings.EMPTY_CHALLENGE,\n },\n noUserSession: {\n message: AuthErrorStrings.NO_USER_SESSION,\n },\n deviceConfig: {\n message: AuthErrorStrings.DEVICE_CONFIG,\n },\n networkError: {\n message: AuthErrorStrings.NETWORK_ERROR,\n },\n autoSignInError: {\n message: AuthErrorStrings.AUTOSIGNIN_ERROR,\n },\n default: {\n message: AuthErrorStrings.DEFAULT_MSG,\n },\n};\n//# sourceMappingURL=Errors.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n *\t http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { isUsernamePasswordOpts, isCognitoHostedOpts, isFederatedSignInOptions, isFederatedSignInOptionsCustom, hasCustomState, } from './types';\nimport { Amplify, ConsoleLogger as Logger, Credentials, Hub, StorageHelper, Parser, browserOrNode, UniversalStorage, urlSafeDecode, } from '@aws-amplify/core';\nimport { CookieStorage, CognitoUserPool, AuthenticationDetails, CognitoUser, CognitoUserSession, CognitoUserAttribute, CognitoIdToken, CognitoRefreshToken, CognitoAccessToken, } from 'amazon-cognito-identity-js';\nimport { parse } from 'url';\nimport OAuth from './OAuth/OAuth';\nimport { default as urlListener } from './urlListener';\nimport { AuthError, NoUserPoolError } from './Errors';\nimport { AuthErrorTypes, CognitoHostedUIIdentityProvider, } from './types/Auth';\nvar logger = new Logger('AuthClass');\nvar USER_ADMIN_SCOPE = 'aws.cognito.signin.user.admin';\n// 10 sec, following this guide https://www.nngroup.com/articles/response-times-3-important-limits/\nvar OAUTH_FLOW_MS_TIMEOUT = 10 * 1000;\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nvar dispatchAuthEvent = function (event, data, message) {\n Hub.dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL);\n};\n// Cognito Documentation for max device\n// tslint:disable-next-line:max-line-length\n// https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListDevices.html#API_ListDevices_RequestSyntax\nvar MAX_DEVICES = 60;\nvar MAX_AUTOSIGNIN_POLLING_MS = 3 * 60 * 1000;\n/**\n * Provide authentication steps\n */\nvar AuthClass = /** @class */ (function () {\n /**\n * Initialize Auth with AWS configurations\n * @param {Object} config - Configuration of the Auth\n */\n function AuthClass(config) {\n var _this = this;\n this.userPool = null;\n this.user = null;\n this.oAuthFlowInProgress = false;\n this.autoSignInInitiated = false;\n this.Credentials = Credentials;\n this.wrapRefreshSessionCallback = function (callback) {\n var wrapped = function (error, data) {\n if (data) {\n dispatchAuthEvent('tokenRefresh', undefined, \"New token retrieved\");\n }\n else {\n dispatchAuthEvent('tokenRefresh_failure', error, \"Failed to retrieve new token\");\n }\n return callback(error, data);\n };\n return wrapped;\n }; // prettier-ignore\n this.configure(config);\n this.currentCredentials = this.currentCredentials.bind(this);\n this.currentUserCredentials = this.currentUserCredentials.bind(this);\n Hub.listen('auth', function (_a) {\n var payload = _a.payload;\n var event = payload.event;\n switch (event) {\n case 'signIn':\n _this._storage.setItem('amplify-signin-with-hostedUI', 'false');\n break;\n case 'signOut':\n _this._storage.removeItem('amplify-signin-with-hostedUI');\n break;\n case 'cognitoHostedUI':\n _this._storage.setItem('amplify-signin-with-hostedUI', 'true');\n break;\n }\n });\n }\n AuthClass.prototype.getModuleName = function () {\n return 'Auth';\n };\n AuthClass.prototype.configure = function (config) {\n var _this = this;\n if (!config)\n return this._config || {};\n logger.debug('configure Auth');\n var conf = Object.assign({}, this._config, Parser.parseMobilehubConfig(config).Auth, config);\n this._config = conf;\n var _a = this._config, userPoolId = _a.userPoolId, userPoolWebClientId = _a.userPoolWebClientId, cookieStorage = _a.cookieStorage, oauth = _a.oauth, region = _a.region, identityPoolId = _a.identityPoolId, mandatorySignIn = _a.mandatorySignIn, refreshHandlers = _a.refreshHandlers, identityPoolRegion = _a.identityPoolRegion, clientMetadata = _a.clientMetadata, endpoint = _a.endpoint;\n if (!this._config.storage) {\n // backward compatability\n if (cookieStorage)\n this._storage = new CookieStorage(cookieStorage);\n else {\n this._storage = config.ssr\n ? new UniversalStorage()\n : new StorageHelper().getStorage();\n }\n }\n else {\n if (!this._isValidAuthStorage(this._config.storage)) {\n logger.error('The storage in the Auth config is not valid!');\n throw new Error('Empty storage object');\n }\n this._storage = this._config.storage;\n }\n this._storageSync = Promise.resolve();\n if (typeof this._storage['sync'] === 'function') {\n this._storageSync = this._storage['sync']();\n }\n if (userPoolId) {\n var userPoolData = {\n UserPoolId: userPoolId,\n ClientId: userPoolWebClientId,\n endpoint: endpoint,\n };\n userPoolData.Storage = this._storage;\n this.userPool = new CognitoUserPool(userPoolData, this.wrapRefreshSessionCallback);\n }\n this.Credentials.configure({\n mandatorySignIn: mandatorySignIn,\n region: identityPoolRegion || region,\n userPoolId: userPoolId,\n identityPoolId: identityPoolId,\n refreshHandlers: refreshHandlers,\n storage: this._storage,\n });\n // initialize cognitoauth client if hosted ui options provided\n // to keep backward compatibility:\n var cognitoHostedUIConfig = oauth\n ? isCognitoHostedOpts(this._config.oauth)\n ? oauth\n : oauth.awsCognito\n : undefined;\n if (cognitoHostedUIConfig) {\n var cognitoAuthParams = Object.assign({\n cognitoClientId: userPoolWebClientId,\n UserPoolId: userPoolId,\n domain: cognitoHostedUIConfig['domain'],\n scopes: cognitoHostedUIConfig['scope'],\n redirectSignIn: cognitoHostedUIConfig['redirectSignIn'],\n redirectSignOut: cognitoHostedUIConfig['redirectSignOut'],\n responseType: cognitoHostedUIConfig['responseType'],\n Storage: this._storage,\n urlOpener: cognitoHostedUIConfig['urlOpener'],\n clientMetadata: clientMetadata,\n }, cognitoHostedUIConfig['options']);\n this._oAuthHandler = new OAuth({\n scopes: cognitoAuthParams.scopes,\n config: cognitoAuthParams,\n cognitoClientId: cognitoAuthParams.cognitoClientId,\n });\n // **NOTE** - Remove this in a future major release as it is a breaking change\n // Prevents _handleAuthResponse from being called multiple times in Expo\n // See https://github.com/aws-amplify/amplify-js/issues/4388\n var usedResponseUrls_1 = {};\n urlListener(function (_a) {\n var url = _a.url;\n if (usedResponseUrls_1[url]) {\n return;\n }\n usedResponseUrls_1[url] = true;\n _this._handleAuthResponse(url);\n });\n }\n dispatchAuthEvent('configured', null, \"The Auth category has been configured successfully\");\n if (!this.autoSignInInitiated &&\n typeof this._storage['getItem'] === 'function') {\n var pollingInitiated = this.isTrueStorageValue('amplify-polling-started');\n if (pollingInitiated) {\n dispatchAuthEvent('autoSignIn_failure', null, AuthErrorTypes.AutoSignInError);\n this._storage.removeItem('amplify-auto-sign-in');\n }\n this._storage.removeItem('amplify-polling-started');\n }\n return this._config;\n };\n /**\n * Sign up with username, password and other attributes like phone, email\n * @param {String | object} params - The user attributes used for signin\n * @param {String[]} restOfAttrs - for the backward compatability\n * @return - A promise resolves callback data if success\n */\n AuthClass.prototype.signUp = function (params) {\n var _this = this;\n var restOfAttrs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n restOfAttrs[_i - 1] = arguments[_i];\n }\n var _a, _b, _c;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n var username = null;\n var password = null;\n var attributes = [];\n var validationData = null;\n var clientMetadata;\n var autoSignIn = { enabled: false };\n var autoSignInValidationData = {};\n var autoSignInClientMetaData = {};\n if (params && typeof params === 'string') {\n username = params;\n password = restOfAttrs ? restOfAttrs[0] : null;\n var email = restOfAttrs ? restOfAttrs[1] : null;\n var phone_number = restOfAttrs ? restOfAttrs[2] : null;\n if (email)\n attributes.push(new CognitoUserAttribute({ Name: 'email', Value: email }));\n if (phone_number)\n attributes.push(new CognitoUserAttribute({\n Name: 'phone_number',\n Value: phone_number,\n }));\n }\n else if (params && typeof params === 'object') {\n username = params['username'];\n password = params['password'];\n if (params && params.clientMetadata) {\n clientMetadata = params.clientMetadata;\n }\n else if (this._config.clientMetadata) {\n clientMetadata = this._config.clientMetadata;\n }\n var attrs_1 = params['attributes'];\n if (attrs_1) {\n Object.keys(attrs_1).map(function (key) {\n attributes.push(new CognitoUserAttribute({ Name: key, Value: attrs_1[key] }));\n });\n }\n var validationDataObject_1 = params['validationData'];\n if (validationDataObject_1) {\n validationData = [];\n Object.keys(validationDataObject_1).map(function (key) {\n validationData.push(new CognitoUserAttribute({\n Name: key,\n Value: validationDataObject_1[key],\n }));\n });\n }\n autoSignIn = (_a = params.autoSignIn) !== null && _a !== void 0 ? _a : { enabled: false };\n if (autoSignIn.enabled) {\n this._storage.setItem('amplify-auto-sign-in', 'true');\n autoSignInValidationData = (_b = autoSignIn.validationData) !== null && _b !== void 0 ? _b : {};\n autoSignInClientMetaData = (_c = autoSignIn.clientMetaData) !== null && _c !== void 0 ? _c : {};\n }\n }\n else {\n return this.rejectAuthError(AuthErrorTypes.SignUpError);\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n logger.debug('signUp attrs:', attributes);\n logger.debug('signUp validation data:', validationData);\n return new Promise(function (resolve, reject) {\n _this.userPool.signUp(username, password, attributes, validationData, function (err, data) {\n if (err) {\n dispatchAuthEvent('signUp_failure', err, username + \" failed to signup\");\n reject(err);\n }\n else {\n dispatchAuthEvent('signUp', data, username + \" has signed up successfully\");\n if (autoSignIn.enabled) {\n _this.handleAutoSignIn(username, password, autoSignInValidationData, autoSignInClientMetaData, data);\n }\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n AuthClass.prototype.handleAutoSignIn = function (username, password, validationData, clientMetadata, data) {\n this.autoSignInInitiated = true;\n var authDetails = new AuthenticationDetails({\n Username: username,\n Password: password,\n ValidationData: validationData,\n ClientMetadata: clientMetadata,\n });\n if (data.userConfirmed) {\n this.signInAfterUserConfirmed(authDetails);\n }\n else if (this._config.signUpVerificationMethod === 'link') {\n this.handleLinkAutoSignIn(authDetails);\n }\n else {\n this.handleCodeAutoSignIn(authDetails);\n }\n };\n AuthClass.prototype.handleCodeAutoSignIn = function (authDetails) {\n var _this = this;\n var listenEvent = function (_a) {\n var payload = _a.payload;\n if (payload.event === 'confirmSignUp') {\n _this.signInAfterUserConfirmed(authDetails, listenEvent);\n }\n };\n Hub.listen('auth', listenEvent);\n };\n AuthClass.prototype.handleLinkAutoSignIn = function (authDetails) {\n var _this = this;\n this._storage.setItem('amplify-polling-started', 'true');\n var start = Date.now();\n var autoSignInPollingIntervalId = setInterval(function () {\n if (Date.now() - start > MAX_AUTOSIGNIN_POLLING_MS) {\n clearInterval(autoSignInPollingIntervalId);\n dispatchAuthEvent('autoSignIn_failure', null, 'Please confirm your account and use your credentials to sign in.');\n _this._storage.removeItem('amplify-auto-sign-in');\n }\n else {\n _this.signInAfterUserConfirmed(authDetails, null, autoSignInPollingIntervalId);\n }\n }, 5000);\n };\n AuthClass.prototype.signInAfterUserConfirmed = function (authDetails, listenEvent, autoSignInPollingIntervalId) {\n return __awaiter(this, void 0, void 0, function () {\n var user, error_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n user = this.createCognitoUser(authDetails.getUsername());\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, user.authenticateUser(authDetails, this.authCallbacks(user, function (value) {\n dispatchAuthEvent('autoSignIn', value, authDetails.getUsername() + \" has signed in successfully\");\n if (listenEvent) {\n Hub.remove('auth', listenEvent);\n }\n if (autoSignInPollingIntervalId) {\n clearInterval(autoSignInPollingIntervalId);\n _this._storage.removeItem('amplify-polling-started');\n }\n _this._storage.removeItem('amplify-auto-sign-in');\n }, function (error) {\n logger.error(error);\n _this._storage.removeItem('amplify-auto-sign-in');\n }))];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_1 = _a.sent();\n logger.error(error_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Send the verification code to confirm sign up\n * @param {String} username - The username to be confirmed\n * @param {String} code - The verification code\n * @param {ConfirmSignUpOptions} options - other options for confirm signup\n * @return - A promise resolves callback data if success\n */\n AuthClass.prototype.confirmSignUp = function (username, code, options) {\n var _this = this;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n var user = this.createCognitoUser(username);\n var forceAliasCreation = options && typeof options.forceAliasCreation === 'boolean'\n ? options.forceAliasCreation\n : true;\n var clientMetadata;\n if (options && options.clientMetadata) {\n clientMetadata = options.clientMetadata;\n }\n else if (this._config.clientMetadata) {\n clientMetadata = this._config.clientMetadata;\n }\n return new Promise(function (resolve, reject) {\n user.confirmRegistration(code, forceAliasCreation, function (err, data) {\n if (err) {\n reject(err);\n }\n else {\n dispatchAuthEvent('confirmSignUp', data, username + \" has been confirmed successfully\");\n var autoSignIn = _this.isTrueStorageValue('amplify-auto-sign-in');\n if (autoSignIn && !_this.autoSignInInitiated) {\n dispatchAuthEvent('autoSignIn_failure', null, AuthErrorTypes.AutoSignInError);\n _this._storage.removeItem('amplify-auto-sign-in');\n }\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n AuthClass.prototype.isTrueStorageValue = function (value) {\n var item = this._storage.getItem(value);\n return item ? item === 'true' : false;\n };\n /**\n * Resend the verification code\n * @param {String} username - The username to be confirmed\n * @param {ClientMetadata} clientMetadata - Metadata to be passed to Cognito Lambda triggers\n * @return - A promise resolves code delivery details if successful\n */\n AuthClass.prototype.resendSignUp = function (username, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.resendConfirmationCode(function (err, data) {\n if (err) {\n reject(err);\n }\n else {\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n /**\n * Sign in\n * @param {String | SignInOpts} usernameOrSignInOpts - The username to be signed in or the sign in options\n * @param {String} pw - The password of the username\n * @param {ClientMetaData} clientMetadata - Client metadata for custom workflows\n * @return - A promise resolves the CognitoUser\n */\n AuthClass.prototype.signIn = function (usernameOrSignInOpts, pw, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n var username = null;\n var password = null;\n var validationData = {};\n // for backward compatibility\n if (typeof usernameOrSignInOpts === 'string') {\n username = usernameOrSignInOpts;\n password = pw;\n }\n else if (isUsernamePasswordOpts(usernameOrSignInOpts)) {\n if (typeof pw !== 'undefined') {\n logger.warn('The password should be defined under the first parameter object!');\n }\n username = usernameOrSignInOpts.username;\n password = usernameOrSignInOpts.password;\n validationData = usernameOrSignInOpts.validationData;\n }\n else {\n return this.rejectAuthError(AuthErrorTypes.InvalidUsername);\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var authDetails = new AuthenticationDetails({\n Username: username,\n Password: password,\n ValidationData: validationData,\n ClientMetadata: clientMetadata,\n });\n if (password) {\n return this.signInWithPassword(authDetails);\n }\n else {\n return this.signInWithoutPassword(authDetails);\n }\n };\n /**\n * Return an object with the authentication callbacks\n * @param {CognitoUser} user - the cognito user object\n * @param {} resolve - function called when resolving the current step\n * @param {} reject - function called when rejecting the current step\n * @return - an object with the callback methods for user authentication\n */\n AuthClass.prototype.authCallbacks = function (user, resolve, reject) {\n var _this = this;\n var that = this;\n return {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_1, currentUser, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n delete user['challengeName'];\n delete user['challengeParam'];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 9]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 9];\n case 4:\n e_1 = _a.sent();\n logger.debug('cannot get cognito credentials', e_1);\n return [3 /*break*/, 9];\n case 5:\n _a.trys.push([5, 7, , 8]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 6:\n currentUser = _a.sent();\n that.user = currentUser;\n dispatchAuthEvent('signIn', currentUser, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(currentUser);\n return [3 /*break*/, 8];\n case 7:\n e_2 = _a.sent();\n logger.error('Failed to get the signed in user', e_2);\n reject(e_2);\n return [3 /*break*/, 8];\n case 8: return [7 /*endfinally*/];\n case 9: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('signIn failure', err);\n dispatchAuthEvent('signIn_failure', err, user.getUsername() + \" failed to signin\");\n reject(err);\n },\n customChallenge: function (challengeParam) {\n logger.debug('signIn custom challenge answer required');\n user['challengeName'] = 'CUSTOM_CHALLENGE';\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaRequired: function (challengeName, challengeParam) {\n logger.debug('signIn MFA required');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaSetup: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n newPasswordRequired: function (userAttributes, requiredAttributes) {\n logger.debug('signIn new password');\n user['challengeName'] = 'NEW_PASSWORD_REQUIRED';\n user['challengeParam'] = {\n userAttributes: userAttributes,\n requiredAttributes: requiredAttributes,\n };\n resolve(user);\n },\n totpRequired: function (challengeName, challengeParam) {\n logger.debug('signIn totpRequired');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n selectMFAType: function (challengeName, challengeParam) {\n logger.debug('signIn selectMFAType', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n };\n };\n /**\n * Sign in with a password\n * @private\n * @param {AuthenticationDetails} authDetails - the user sign in data\n * @return - A promise resolves the CognitoUser object if success or mfa required\n */\n AuthClass.prototype.signInWithPassword = function (authDetails) {\n var _this = this;\n if (this.pendingSignIn) {\n throw new Error('Pending sign-in attempt already in progress');\n }\n var user = this.createCognitoUser(authDetails.getUsername());\n this.pendingSignIn = new Promise(function (resolve, reject) {\n user.authenticateUser(authDetails, _this.authCallbacks(user, function (value) {\n _this.pendingSignIn = null;\n resolve(value);\n }, function (error) {\n _this.pendingSignIn = null;\n reject(error);\n }));\n });\n return this.pendingSignIn;\n };\n /**\n * Sign in without a password\n * @private\n * @param {AuthenticationDetails} authDetails - the user sign in data\n * @return - A promise resolves the CognitoUser object if success or mfa required\n */\n AuthClass.prototype.signInWithoutPassword = function (authDetails) {\n var _this = this;\n var user = this.createCognitoUser(authDetails.getUsername());\n user.setAuthenticationFlowType('CUSTOM_AUTH');\n return new Promise(function (resolve, reject) {\n user.initiateAuth(authDetails, _this.authCallbacks(user, resolve, reject));\n });\n };\n /**\n * This was previously used by an authenticated user to get MFAOptions,\n * but no longer returns a meaningful response. Refer to the documentation for\n * how to setup and use MFA: https://docs.amplify.aws/lib/auth/mfa/q/platform/js\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves the current preferred mfa option if success\n */\n AuthClass.prototype.getMFAOptions = function (user) {\n return new Promise(function (res, rej) {\n user.getMFAOptions(function (err, mfaOptions) {\n if (err) {\n logger.debug('get MFA Options failed', err);\n rej(err);\n return;\n }\n logger.debug('get MFA options success', mfaOptions);\n res(mfaOptions);\n return;\n });\n });\n };\n /**\n * get preferred mfa method\n * @param {CognitoUser} user - the current cognito user\n * @param {GetPreferredMFAOpts} params - options for getting the current user preferred MFA\n */\n AuthClass.prototype.getPreferredMFA = function (user, params) {\n var _this = this;\n var that = this;\n return new Promise(function (res, rej) {\n var clientMetadata = _this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n var bypassCache = params ? params.bypassCache : false;\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_1, mfaType;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting preferred mfa failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_1 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_1.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n mfaType = that._getMfaTypeFromUserData(data);\n if (!mfaType) {\n rej('invalid MFA Type');\n return [2 /*return*/];\n }\n else {\n res(mfaType);\n return [2 /*return*/];\n }\n return [2 /*return*/];\n }\n });\n }); }, { bypassCache: bypassCache, clientMetadata: clientMetadata });\n });\n };\n AuthClass.prototype._getMfaTypeFromUserData = function (data) {\n var ret = null;\n var preferredMFA = data.PreferredMfaSetting;\n // if the user has used Auth.setPreferredMFA() to setup the mfa type\n // then the \"PreferredMfaSetting\" would exist in the response\n if (preferredMFA) {\n ret = preferredMFA;\n }\n else {\n // if mfaList exists but empty, then its noMFA\n var mfaList = data.UserMFASettingList;\n if (!mfaList) {\n // if SMS was enabled by using Auth.enableSMS(),\n // the response would contain MFAOptions\n // as for now Cognito only supports for SMS, so we will say it is 'SMS_MFA'\n // if it does not exist, then it should be NOMFA\n var MFAOptions = data.MFAOptions;\n if (MFAOptions) {\n ret = 'SMS_MFA';\n }\n else {\n ret = 'NOMFA';\n }\n }\n else if (mfaList.length === 0) {\n ret = 'NOMFA';\n }\n else {\n logger.debug('invalid case for getPreferredMFA', data);\n }\n }\n return ret;\n };\n AuthClass.prototype._getUserData = function (user, params) {\n var _this = this;\n return new Promise(function (res, rej) {\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_2 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_2.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n res(data);\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); }, params);\n });\n };\n /**\n * set preferred MFA method\n * @param {CognitoUser} user - the current Cognito user\n * @param {string} mfaMethod - preferred mfa method\n * @return - A promise resolve if success\n */\n AuthClass.prototype.setPreferredMFA = function (user, mfaMethod) {\n return __awaiter(this, void 0, void 0, function () {\n var clientMetadata, userData, smsMfaSettings, totpMfaSettings, _a, mfaList, currentMFAType, that;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientMetadata = this._config.clientMetadata;\n return [4 /*yield*/, this._getUserData(user, {\n bypassCache: true,\n clientMetadata: clientMetadata,\n })];\n case 1:\n userData = _b.sent();\n smsMfaSettings = null;\n totpMfaSettings = null;\n _a = mfaMethod;\n switch (_a) {\n case 'TOTP': return [3 /*break*/, 2];\n case 'SOFTWARE_TOKEN_MFA': return [3 /*break*/, 2];\n case 'SMS': return [3 /*break*/, 3];\n case 'SMS_MFA': return [3 /*break*/, 3];\n case 'NOMFA': return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n totpMfaSettings = {\n PreferredMfa: true,\n Enabled: true,\n };\n return [3 /*break*/, 7];\n case 3:\n smsMfaSettings = {\n PreferredMfa: true,\n Enabled: true,\n };\n return [3 /*break*/, 7];\n case 4:\n mfaList = userData['UserMFASettingList'];\n return [4 /*yield*/, this._getMfaTypeFromUserData(userData)];\n case 5:\n currentMFAType = _b.sent();\n if (currentMFAType === 'NOMFA') {\n return [2 /*return*/, Promise.resolve('No change for mfa type')];\n }\n else if (currentMFAType === 'SMS_MFA') {\n smsMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else if (currentMFAType === 'SOFTWARE_TOKEN_MFA') {\n totpMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else {\n return [2 /*return*/, this.rejectAuthError(AuthErrorTypes.InvalidMFA)];\n }\n // if there is a UserMFASettingList in the response\n // we need to disable every mfa type in that list\n if (mfaList && mfaList.length !== 0) {\n // to disable SMS or TOTP if exists in that list\n mfaList.forEach(function (mfaType) {\n if (mfaType === 'SMS_MFA') {\n smsMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else if (mfaType === 'SOFTWARE_TOKEN_MFA') {\n totpMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n });\n }\n return [3 /*break*/, 7];\n case 6:\n logger.debug('no validmfa method provided');\n return [2 /*return*/, this.rejectAuthError(AuthErrorTypes.NoMFA)];\n case 7:\n that = this;\n return [2 /*return*/, new Promise(function (res, rej) {\n user.setUserMfaPreference(smsMfaSettings, totpMfaSettings, function (err, result) {\n if (err) {\n logger.debug('Set user mfa preference error', err);\n return rej(err);\n }\n logger.debug('Set user mfa success', result);\n logger.debug('Caching the latest user data into local');\n // cache the latest result into user data\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_3 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_3.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5: return [2 /*return*/, res(result)];\n }\n });\n }); }, {\n bypassCache: true,\n clientMetadata: clientMetadata,\n });\n });\n })];\n }\n });\n });\n };\n /**\n * disable SMS\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves is success\n */\n AuthClass.prototype.disableSMS = function (user) {\n return new Promise(function (res, rej) {\n user.disableMFA(function (err, data) {\n if (err) {\n logger.debug('disable mfa failed', err);\n rej(err);\n return;\n }\n logger.debug('disable mfa succeed', data);\n res(data);\n return;\n });\n });\n };\n /**\n * enable SMS\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves is success\n */\n AuthClass.prototype.enableSMS = function (user) {\n return new Promise(function (res, rej) {\n user.enableMFA(function (err, data) {\n if (err) {\n logger.debug('enable mfa failed', err);\n rej(err);\n return;\n }\n logger.debug('enable mfa succeed', data);\n res(data);\n return;\n });\n });\n };\n /**\n * Setup TOTP\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves with the secret code if success\n */\n AuthClass.prototype.setupTOTP = function (user) {\n return new Promise(function (res, rej) {\n user.associateSoftwareToken({\n onFailure: function (err) {\n logger.debug('associateSoftwareToken failed', err);\n rej(err);\n return;\n },\n associateSecretCode: function (secretCode) {\n logger.debug('associateSoftwareToken sucess', secretCode);\n res(secretCode);\n return;\n },\n });\n });\n };\n /**\n * verify TOTP setup\n * @param {CognitoUser} user - the current user\n * @param {string} challengeAnswer - challenge answer\n * @return - A promise resolves is success\n */\n AuthClass.prototype.verifyTotpToken = function (user, challengeAnswer) {\n logger.debug('verification totp token', user, challengeAnswer);\n return new Promise(function (res, rej) {\n user.verifySoftwareToken(challengeAnswer, 'My TOTP device', {\n onFailure: function (err) {\n logger.debug('verifyTotpToken failed', err);\n rej(err);\n return;\n },\n onSuccess: function (data) {\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n logger.debug('verifyTotpToken success', data);\n res(data);\n return;\n },\n });\n });\n };\n /**\n * Send MFA code to confirm sign in\n * @param {Object} user - The CognitoUser object\n * @param {String} code - The confirmation code\n */\n AuthClass.prototype.confirmSignIn = function (user, code, mfaType, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.sendMFACode(code, {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 6]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 6];\n case 4:\n e_3 = _a.sent();\n logger.debug('cannot get cognito credentials', e_3);\n return [3 /*break*/, 6];\n case 5:\n that.user = user;\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(user);\n return [7 /*endfinally*/];\n case 6: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('confirm signIn failure', err);\n reject(err);\n },\n }, mfaType, clientMetadata);\n });\n };\n AuthClass.prototype.completeNewPassword = function (user, password, requiredAttributes, clientMetadata) {\n var _this = this;\n if (requiredAttributes === void 0) { requiredAttributes = {}; }\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.completeNewPasswordChallenge(password, requiredAttributes, {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 6]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 6];\n case 4:\n e_4 = _a.sent();\n logger.debug('cannot get cognito credentials', e_4);\n return [3 /*break*/, 6];\n case 5:\n that.user = user;\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(user);\n return [7 /*endfinally*/];\n case 6: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('completeNewPassword failure', err);\n dispatchAuthEvent('completeNewPassword_failure', err, _this.user + \" failed to complete the new password flow\");\n reject(err);\n },\n mfaRequired: function (challengeName, challengeParam) {\n logger.debug('signIn MFA required');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaSetup: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n totpRequired: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n }, clientMetadata);\n });\n };\n /**\n * Send the answer to a custom challenge\n * @param {CognitoUser} user - The CognitoUser object\n * @param {String} challengeResponses - The confirmation code\n */\n AuthClass.prototype.sendCustomChallengeAnswer = function (user, challengeResponses, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!challengeResponses) {\n return this.rejectAuthError(AuthErrorTypes.EmptyChallengeResponse);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.sendCustomChallengeAnswer(challengeResponses, _this.authCallbacks(user, resolve, reject), clientMetadata);\n });\n };\n /**\n * Delete an authenticated users' attributes\n * @param {CognitoUser} - The currently logged in user object\n * @return {Promise}\n **/\n AuthClass.prototype.deleteUserAttributes = function (user, attributeNames) {\n var that = this;\n return new Promise(function (resolve, reject) {\n that.userSession(user).then(function (session) {\n user.deleteAttributes(attributeNames, function (err, result) {\n if (err) {\n return reject(err);\n }\n else {\n return resolve(result);\n }\n });\n });\n });\n };\n /**\n * Delete the current authenticated user\n * @return {Promise}\n **/\n // TODO: Check return type void\n AuthClass.prototype.deleteUser = function () {\n return __awaiter(this, void 0, void 0, function () {\n var e_5, isSignedInHostedUI;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this._storageSync];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_5 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_5);\n throw new Error(e_5);\n case 3:\n isSignedInHostedUI = this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true';\n return [2 /*return*/, new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var user_1;\n var _this = this;\n return __generator(this, function (_a) {\n if (this.userPool) {\n user_1 = this.userPool.getCurrentUser();\n if (!user_1) {\n logger.debug('Failed to get user from user pool');\n return [2 /*return*/, rej(new Error('No current user.'))];\n }\n else {\n user_1.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_4;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('Failed to get the user session', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user_1)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_4 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_4.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5:\n user_1.deleteUser(function (err, result) {\n if (err) {\n rej(err);\n }\n else {\n dispatchAuthEvent('userDeleted', result, 'The authenticated user has been deleted.');\n user_1.signOut();\n _this.user = null;\n try {\n _this.cleanCachedItems(); // clean aws credentials\n }\n catch (e) {\n // TODO: change to rejects in refactor\n logger.debug('failed to clear cached items');\n }\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n dispatchAuthEvent('signOut', _this.user, \"A user has been signed out\");\n res(result);\n }\n }\n });\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); });\n }\n }\n else {\n logger.debug('no Congito User pool');\n rej(new Error('Cognito User pool does not exist'));\n }\n return [2 /*return*/];\n });\n }); })];\n }\n });\n });\n };\n /**\n * Update an authenticated users' attributes\n * @param {CognitoUser} - The currently logged in user object\n * @return {Promise}\n **/\n AuthClass.prototype.updateUserAttributes = function (user, attributes, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n var attributeList = [];\n var that = this;\n return new Promise(function (resolve, reject) {\n that.userSession(user).then(function (session) {\n for (var key in attributes) {\n if (key !== 'sub' && key.indexOf('_verified') < 0) {\n var attr = {\n Name: key,\n Value: attributes[key],\n };\n attributeList.push(attr);\n }\n }\n user.updateAttributes(attributeList, function (err, result) {\n if (err) {\n return reject(err);\n }\n else {\n return resolve(result);\n }\n }, clientMetadata);\n });\n });\n };\n /**\n * Return user attributes\n * @param {Object} user - The CognitoUser object\n * @return - A promise resolves to user attributes if success\n */\n AuthClass.prototype.userAttributes = function (user) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.userSession(user).then(function (session) {\n user.getUserAttributes(function (err, attributes) {\n if (err) {\n reject(err);\n }\n else {\n resolve(attributes);\n }\n });\n });\n });\n };\n AuthClass.prototype.verifiedContact = function (user) {\n var that = this;\n return this.userAttributes(user).then(function (attributes) {\n var attrs = that.attributesToObject(attributes);\n var unverified = {};\n var verified = {};\n if (attrs['email']) {\n if (attrs['email_verified']) {\n verified['email'] = attrs['email'];\n }\n else {\n unverified['email'] = attrs['email'];\n }\n }\n if (attrs['phone_number']) {\n if (attrs['phone_number_verified']) {\n verified['phone_number'] = attrs['phone_number'];\n }\n else {\n unverified['phone_number'] = attrs['phone_number'];\n }\n }\n return {\n verified: verified,\n unverified: unverified,\n };\n });\n };\n AuthClass.prototype.isErrorWithMessage = function (err) {\n return (typeof err === 'object' &&\n Object.prototype.hasOwnProperty.call(err, 'message'));\n };\n // Session revoked by another app\n AuthClass.prototype.isTokenRevokedError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Access Token has been revoked');\n };\n AuthClass.prototype.isRefreshTokenRevokedError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Refresh Token has been revoked');\n };\n AuthClass.prototype.isUserDisabledError = function (err) {\n return this.isErrorWithMessage(err) && err.message === 'User is disabled.';\n };\n AuthClass.prototype.isUserDoesNotExistError = function (err) {\n return (this.isErrorWithMessage(err) && err.message === 'User does not exist.');\n };\n AuthClass.prototype.isRefreshTokenExpiredError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Refresh Token has expired');\n };\n AuthClass.prototype.isSignedInHostedUI = function () {\n return (this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true');\n };\n AuthClass.prototype.isSessionInvalid = function (err) {\n return (this.isUserDisabledError(err) ||\n this.isUserDoesNotExistError(err) ||\n this.isTokenRevokedError(err) ||\n this.isRefreshTokenRevokedError(err) ||\n this.isRefreshTokenExpiredError(err));\n };\n AuthClass.prototype.cleanUpInvalidSession = function (user) {\n return __awaiter(this, void 0, void 0, function () {\n var e_6;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n user.signOut();\n this.user = null;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanCachedItems()];\n case 2:\n _a.sent(); // clean aws credentials\n return [3 /*break*/, 4];\n case 3:\n e_6 = _a.sent();\n logger.debug('failed to clear cached items');\n return [3 /*break*/, 4];\n case 4:\n if (this.isSignedInHostedUI()) {\n return [2 /*return*/, new Promise(function (res, rej) {\n _this.oAuthSignOutRedirect(res, rej);\n })];\n }\n else {\n dispatchAuthEvent('signOut', this.user, \"A user has been signed out\");\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Get current authenticated user\n * @return - A promise resolves to current authenticated CognitoUser if success\n */\n AuthClass.prototype.currentUserPoolUser = function (params) {\n var _this = this;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n return new Promise(function (res, rej) {\n _this._storageSync\n .then(function () { return __awaiter(_this, void 0, void 0, function () {\n var user, clientMetadata;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isOAuthInProgress()) return [3 /*break*/, 2];\n logger.debug('OAuth signIn in progress, waiting for resolution...');\n return [4 /*yield*/, new Promise(function (res) {\n var timeoutId = setTimeout(function () {\n logger.debug('OAuth signIn in progress timeout');\n Hub.remove('auth', hostedUISignCallback);\n res();\n }, OAUTH_FLOW_MS_TIMEOUT);\n Hub.listen('auth', hostedUISignCallback);\n function hostedUISignCallback(_a) {\n var payload = _a.payload;\n var event = payload.event;\n if (event === 'cognitoHostedUI' ||\n event === 'cognitoHostedUI_failure') {\n logger.debug(\"OAuth signIn resolved: \" + event);\n clearTimeout(timeoutId);\n Hub.remove('auth', hostedUISignCallback);\n res();\n }\n }\n })];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n user = this.userPool.getCurrentUser();\n if (!user) {\n logger.debug('Failed to get user from user pool');\n rej('No current user');\n return [2 /*return*/];\n }\n clientMetadata = this._config.clientMetadata;\n // refresh the session if the session expired.\n user.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_5, bypassCache, clientMetadata, _a, scope;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('Failed to get the user session', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _b.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_5 = _b.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_5.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n bypassCache = params ? params.bypassCache : false;\n if (!bypassCache) return [3 /*break*/, 7];\n return [4 /*yield*/, this.Credentials.clear()];\n case 6:\n _b.sent();\n _b.label = 7;\n case 7:\n clientMetadata = this._config.clientMetadata;\n _a = session.getAccessToken().decodePayload().scope, scope = _a === void 0 ? '' : _a;\n if (scope.split(' ').includes(USER_ADMIN_SCOPE)) {\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_6, preferredMFA, attributeList, i, attribute, userAttribute, attributes;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 7];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_6 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_6.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [3 /*break*/, 6];\n case 5:\n res(user);\n _a.label = 6;\n case 6: return [2 /*return*/];\n case 7:\n preferredMFA = data.PreferredMfaSetting || 'NOMFA';\n attributeList = [];\n for (i = 0; i < data.UserAttributes.length; i++) {\n attribute = {\n Name: data.UserAttributes[i].Name,\n Value: data.UserAttributes[i].Value,\n };\n userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n attributes = this.attributesToObject(attributeList);\n Object.assign(user, { attributes: attributes, preferredMFA: preferredMFA });\n return [2 /*return*/, res(user)];\n }\n });\n }); }, { bypassCache: bypassCache, clientMetadata: clientMetadata });\n }\n else {\n logger.debug(\"Unable to get the user data because the \" + USER_ADMIN_SCOPE + \" \" +\n \"is not in the scopes of the access token\");\n return [2 /*return*/, res(user)];\n }\n return [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n return [2 /*return*/];\n }\n });\n }); })\n .catch(function (e) {\n logger.debug('Failed to sync cache info into memory', e);\n return rej(e);\n });\n });\n };\n AuthClass.prototype.isOAuthInProgress = function () {\n return this.oAuthFlowInProgress;\n };\n /**\n * Get current authenticated user\n * @param {CurrentUserOpts} - options for getting the current user\n * @return - A promise resolves to current authenticated CognitoUser if success\n */\n AuthClass.prototype.currentAuthenticatedUser = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var federatedUser, e_7, federatedInfo, user, e_8;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('getting current authenticated user');\n federatedUser = null;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_7 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_7);\n throw e_7;\n case 4:\n try {\n federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo'));\n if (federatedInfo) {\n federatedUser = __assign(__assign({}, federatedInfo.user), { token: federatedInfo.token });\n }\n }\n catch (e) {\n logger.debug('cannot load federated user from auth storage');\n }\n if (!federatedUser) return [3 /*break*/, 5];\n this.user = federatedUser;\n logger.debug('get current authenticated federated user', this.user);\n return [2 /*return*/, this.user];\n case 5:\n logger.debug('get current authenticated userpool user');\n user = null;\n _a.label = 6;\n case 6:\n _a.trys.push([6, 8, , 9]);\n return [4 /*yield*/, this.currentUserPoolUser(params)];\n case 7:\n user = _a.sent();\n return [3 /*break*/, 9];\n case 8:\n e_8 = _a.sent();\n if (e_8 === 'No userPool') {\n logger.error('Cannot get the current user because the user pool is missing. ' +\n 'Please make sure the Auth module is configured with a valid Cognito User Pool ID');\n }\n logger.debug('The user is not authenticated by the error', e_8);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 9:\n this.user = user;\n return [2 /*return*/, this.user];\n }\n });\n });\n };\n /**\n * Get current user's session\n * @return - A promise resolves to session object if success\n */\n AuthClass.prototype.currentSession = function () {\n var that = this;\n logger.debug('Getting current session');\n // Purposely not calling the reject method here because we don't need a console error\n if (!this.userPool) {\n return Promise.reject(new Error('No User Pool in the configuration.'));\n }\n return new Promise(function (res, rej) {\n that\n .currentUserPoolUser()\n .then(function (user) {\n that\n .userSession(user)\n .then(function (session) {\n res(session);\n return;\n })\n .catch(function (e) {\n logger.debug('Failed to get the current session', e);\n rej(e);\n return;\n });\n })\n .catch(function (e) {\n logger.debug('Failed to get the current user', e);\n rej(e);\n return;\n });\n });\n };\n /**\n * Get the corresponding user session\n * @param {Object} user - The CognitoUser object\n * @return - A promise resolves to the session\n */\n AuthClass.prototype.userSession = function (user) {\n var _this = this;\n if (!user) {\n logger.debug('the user is null');\n return this.rejectAuthError(AuthErrorTypes.NoUserSession);\n }\n var clientMetadata = this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n return new Promise(function (res, rej) {\n logger.debug('Getting the session from this user:', user);\n user.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_7;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('Failed to get the session from user', user);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_7 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_7.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n logger.debug('Succeed to get the user session', session);\n res(session);\n return [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n });\n };\n /**\n * Get authenticated credentials of current user.\n * @return - A promise resolves to be current user's credentials\n */\n AuthClass.prototype.currentUserCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var e_9, federatedInfo;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('Getting current user credentials');\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_9 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_9);\n throw e_9;\n case 4:\n federatedInfo = null;\n try {\n federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo'));\n }\n catch (e) {\n logger.debug('failed to get or parse item aws-amplify-federatedInfo', e);\n }\n if (federatedInfo) {\n // refresh the jwt token here if necessary\n return [2 /*return*/, this.Credentials.refreshFederatedToken(federatedInfo)];\n }\n else {\n return [2 /*return*/, this.currentSession()\n .then(function (session) {\n logger.debug('getting session success', session);\n return _this.Credentials.set(session, 'session');\n })\n .catch(function () {\n logger.debug('getting guest credentials');\n return _this.Credentials.set(null, 'guest');\n })];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.currentCredentials = function () {\n logger.debug('getting current credentials');\n return this.Credentials.get();\n };\n /**\n * Initiate an attribute confirmation request\n * @param {Object} user - The CognitoUser\n * @param {Object} attr - The attributes to be verified\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyUserAttribute = function (user, attr, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n return new Promise(function (resolve, reject) {\n user.getAttributeVerificationCode(attr, {\n onSuccess: function (success) {\n return resolve(success);\n },\n onFailure: function (err) {\n return reject(err);\n },\n }, clientMetadata);\n });\n };\n /**\n * Confirm an attribute using a confirmation code\n * @param {Object} user - The CognitoUser\n * @param {Object} attr - The attribute to be verified\n * @param {String} code - The confirmation code\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyUserAttributeSubmit = function (user, attr, code) {\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n return new Promise(function (resolve, reject) {\n user.verifyAttribute(attr, code, {\n onSuccess: function (data) {\n resolve(data);\n return;\n },\n onFailure: function (err) {\n reject(err);\n return;\n },\n });\n });\n };\n AuthClass.prototype.verifyCurrentUserAttribute = function (attr) {\n var that = this;\n return that\n .currentUserPoolUser()\n .then(function (user) { return that.verifyUserAttribute(user, attr); });\n };\n /**\n * Confirm current user's attribute using a confirmation code\n * @param {Object} attr - The attribute to be verified\n * @param {String} code - The confirmation code\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyCurrentUserAttributeSubmit = function (attr, code) {\n var that = this;\n return that\n .currentUserPoolUser()\n .then(function (user) { return that.verifyUserAttributeSubmit(user, attr, code); });\n };\n AuthClass.prototype.cognitoIdentitySignOut = function (opts, user) {\n return __awaiter(this, void 0, void 0, function () {\n var e_10, isSignedInHostedUI;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this._storageSync];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_10 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_10);\n throw e_10;\n case 3:\n isSignedInHostedUI = this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true';\n return [2 /*return*/, new Promise(function (res, rej) {\n if (opts && opts.global) {\n logger.debug('user global sign out', user);\n // in order to use global signout\n // we must validate the user as an authenticated user by using getSession\n var clientMetadata = _this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n user.getSession(function (err, result) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_8;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('failed to get the user session', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_8 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_8.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5:\n user.globalSignOut({\n onSuccess: function (data) {\n logger.debug('global sign out success');\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n return res();\n }\n },\n onFailure: function (err) {\n logger.debug('global sign out failed', err);\n return rej(err);\n },\n });\n return [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n }\n else {\n logger.debug('user sign out', user);\n user.signOut(function () {\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n return res();\n }\n });\n }\n })];\n }\n });\n });\n };\n AuthClass.prototype.oAuthSignOutRedirect = function (resolve, reject) {\n var isBrowser = browserOrNode().isBrowser;\n if (isBrowser) {\n this.oAuthSignOutRedirectOrReject(reject);\n }\n else {\n this.oAuthSignOutAndResolve(resolve);\n }\n };\n AuthClass.prototype.oAuthSignOutAndResolve = function (resolve) {\n this._oAuthHandler.signOut();\n resolve();\n };\n AuthClass.prototype.oAuthSignOutRedirectOrReject = function (reject) {\n this._oAuthHandler.signOut(); // this method redirects url\n // App should be redirected to another url otherwise it will reject\n setTimeout(function () { return reject(Error('Signout timeout fail')); }, 3000);\n };\n /**\n * Sign out method\n * @\n * @return - A promise resolved if success\n */\n AuthClass.prototype.signOut = function (opts) {\n return __awaiter(this, void 0, void 0, function () {\n var e_11, user;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.cleanCachedItems()];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_11 = _a.sent();\n logger.debug('failed to clear cached items');\n return [3 /*break*/, 3];\n case 3:\n if (!this.userPool) return [3 /*break*/, 7];\n user = this.userPool.getCurrentUser();\n if (!user) return [3 /*break*/, 5];\n return [4 /*yield*/, this.cognitoIdentitySignOut(opts, user)];\n case 4:\n _a.sent();\n return [3 /*break*/, 6];\n case 5:\n logger.debug('no current Cognito user');\n _a.label = 6;\n case 6: return [3 /*break*/, 8];\n case 7:\n logger.debug('no Cognito User pool');\n _a.label = 8;\n case 8:\n /**\n * Note for future refactor - no reliable way to get username with\n * Cognito User Pools vs Identity when federating with Social Providers\n * This is why we need a well structured session object that can be inspected\n * and information passed back in the message below for Hub dispatch\n */\n dispatchAuthEvent('signOut', this.user, \"A user has been signed out\");\n this.user = null;\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.cleanCachedItems = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: \n // clear cognito cached item\n return [4 /*yield*/, this.Credentials.clear()];\n case 1:\n // clear cognito cached item\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Change a password for an authenticated user\n * @param {Object} user - The CognitoUser object\n * @param {String} oldPassword - the current password\n * @param {String} newPassword - the requested new password\n * @return - A promise resolves if success\n */\n AuthClass.prototype.changePassword = function (user, oldPassword, newPassword, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n return new Promise(function (resolve, reject) {\n _this.userSession(user).then(function (session) {\n user.changePassword(oldPassword, newPassword, function (err, data) {\n if (err) {\n logger.debug('change password failure', err);\n return reject(err);\n }\n else {\n return resolve(data);\n }\n }, clientMetadata);\n });\n });\n };\n /**\n * Initiate a forgot password request\n * @param {String} username - the username to change password\n * @return - A promise resolves if success\n */\n AuthClass.prototype.forgotPassword = function (username, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.forgotPassword({\n onSuccess: function () {\n resolve();\n return;\n },\n onFailure: function (err) {\n logger.debug('forgot password failure', err);\n dispatchAuthEvent('forgotPassword_failure', err, username + \" forgotPassword failed\");\n reject(err);\n return;\n },\n inputVerificationCode: function (data) {\n dispatchAuthEvent('forgotPassword', user, username + \" has initiated forgot password flow\");\n resolve(data);\n return;\n },\n }, clientMetadata);\n });\n };\n /**\n * Confirm a new password using a confirmation Code\n * @param {String} username - The username\n * @param {String} code - The confirmation code\n * @param {String} password - The new password\n * @return - A promise that resolves if success\n */\n AuthClass.prototype.forgotPasswordSubmit = function (username, code, password, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.confirmPassword(code, password, {\n onSuccess: function (success) {\n dispatchAuthEvent('forgotPasswordSubmit', user, username + \" forgotPasswordSubmit successful\");\n resolve(success);\n return;\n },\n onFailure: function (err) {\n dispatchAuthEvent('forgotPasswordSubmit_failure', err, username + \" forgotPasswordSubmit failed\");\n reject(err);\n return;\n },\n }, clientMetadata);\n });\n };\n /**\n * Get user information\n * @async\n * @return {Object }- current User's information\n */\n AuthClass.prototype.currentUserInfo = function () {\n return __awaiter(this, void 0, void 0, function () {\n var source, user, attributes, userAttrs, credentials, e_12, info, err_1, user;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n source = this.Credentials.getCredSource();\n if (!(!source || source === 'aws' || source === 'userPool')) return [3 /*break*/, 9];\n return [4 /*yield*/, this.currentUserPoolUser().catch(function (err) {\n return logger.error(err);\n })];\n case 1:\n user = _a.sent();\n if (!user) {\n return [2 /*return*/, null];\n }\n _a.label = 2;\n case 2:\n _a.trys.push([2, 8, , 9]);\n return [4 /*yield*/, this.userAttributes(user)];\n case 3:\n attributes = _a.sent();\n userAttrs = this.attributesToObject(attributes);\n credentials = null;\n _a.label = 4;\n case 4:\n _a.trys.push([4, 6, , 7]);\n return [4 /*yield*/, this.currentCredentials()];\n case 5:\n credentials = _a.sent();\n return [3 /*break*/, 7];\n case 6:\n e_12 = _a.sent();\n logger.debug('Failed to retrieve credentials while getting current user info', e_12);\n return [3 /*break*/, 7];\n case 7:\n info = {\n id: credentials ? credentials.identityId : undefined,\n username: user.getUsername(),\n attributes: userAttrs,\n };\n return [2 /*return*/, info];\n case 8:\n err_1 = _a.sent();\n logger.error('currentUserInfo error', err_1);\n return [2 /*return*/, {}];\n case 9:\n if (source === 'federated') {\n user = this.user;\n return [2 /*return*/, user ? user : {}];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.federatedSignIn = function (providerOrOptions, response, user) {\n return __awaiter(this, void 0, void 0, function () {\n var options, provider, customState, client_id, redirect_uri, provider, loggedInUser, token, identity_id, expires_at, credentials, currentUser;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._config.identityPoolId && !this._config.userPoolId) {\n throw new Error(\"Federation requires either a User Pool or Identity Pool in config\");\n }\n // Ensure backwards compatability\n if (typeof providerOrOptions === 'undefined') {\n if (this._config.identityPoolId && !this._config.userPoolId) {\n throw new Error(\"Federation with Identity Pools requires tokens passed as arguments\");\n }\n }\n if (!(isFederatedSignInOptions(providerOrOptions) ||\n isFederatedSignInOptionsCustom(providerOrOptions) ||\n hasCustomState(providerOrOptions) ||\n typeof providerOrOptions === 'undefined')) return [3 /*break*/, 1];\n options = providerOrOptions || {\n provider: CognitoHostedUIIdentityProvider.Cognito,\n };\n provider = isFederatedSignInOptions(options)\n ? options.provider\n : options.customProvider;\n customState = isFederatedSignInOptions(options)\n ? options.customState\n : options.customState;\n if (this._config.userPoolId) {\n client_id = isCognitoHostedOpts(this._config.oauth)\n ? this._config.userPoolWebClientId\n : this._config.oauth.clientID;\n redirect_uri = isCognitoHostedOpts(this._config.oauth)\n ? this._config.oauth.redirectSignIn\n : this._config.oauth.redirectUri;\n this._oAuthHandler.oauthSignIn(this._config.oauth.responseType, this._config.oauth.domain, redirect_uri, client_id, provider, customState);\n }\n return [3 /*break*/, 4];\n case 1:\n provider = providerOrOptions;\n // To check if the user is already logged in\n try {\n loggedInUser = JSON.stringify(JSON.parse(this._storage.getItem('aws-amplify-federatedInfo')).user);\n if (loggedInUser) {\n logger.warn(\"There is already a signed in user: \" + loggedInUser + \" in your app.\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tYou should not call Auth.federatedSignIn method again as it may cause unexpected behavior.\");\n }\n }\n catch (e) { }\n token = response.token, identity_id = response.identity_id, expires_at = response.expires_at;\n return [4 /*yield*/, this.Credentials.set({ provider: provider, token: token, identity_id: identity_id, user: user, expires_at: expires_at }, 'federation')];\n case 2:\n credentials = _a.sent();\n return [4 /*yield*/, this.currentAuthenticatedUser()];\n case 3:\n currentUser = _a.sent();\n dispatchAuthEvent('signIn', currentUser, \"A user \" + currentUser.username + \" has been signed in\");\n logger.debug('federated sign in credentials', credentials);\n return [2 /*return*/, credentials];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Used to complete the OAuth flow with or without the Cognito Hosted UI\n * @param {String} URL - optional parameter for customers to pass in the response URL\n */\n AuthClass.prototype._handleAuthResponse = function (URL) {\n return __awaiter(this, void 0, void 0, function () {\n var currentUrl, hasCodeOrError, hasTokenOrError, _a, accessToken, idToken, refreshToken, state, session, credentials, isCustomStateIncluded, currentUser, customState, err_2;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (this.oAuthFlowInProgress) {\n logger.debug(\"Skipping URL \" + URL + \" current flow in progress\");\n return [2 /*return*/];\n }\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 8, 9]);\n this.oAuthFlowInProgress = true;\n if (!this._config.userPoolId) {\n throw new Error(\"OAuth responses require a User Pool defined in config\");\n }\n dispatchAuthEvent('parsingCallbackUrl', { url: URL }, \"The callback url is being parsed\");\n currentUrl = URL || (browserOrNode().isBrowser ? window.location.href : '');\n hasCodeOrError = !!(parse(currentUrl).query || '')\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .find(function (_a) {\n var _b = __read(_a, 1), k = _b[0];\n return k === 'code' || k === 'error';\n });\n hasTokenOrError = !!(parse(currentUrl).hash || '#')\n .substr(1)\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .find(function (_a) {\n var _b = __read(_a, 1), k = _b[0];\n return k === 'access_token' || k === 'error';\n });\n if (!(hasCodeOrError || hasTokenOrError)) return [3 /*break*/, 7];\n this._storage.setItem('amplify-redirected-from-hosted-ui', 'true');\n _b.label = 2;\n case 2:\n _b.trys.push([2, 6, , 7]);\n return [4 /*yield*/, this._oAuthHandler.handleAuthResponse(currentUrl)];\n case 3:\n _a = _b.sent(), accessToken = _a.accessToken, idToken = _a.idToken, refreshToken = _a.refreshToken, state = _a.state;\n session = new CognitoUserSession({\n IdToken: new CognitoIdToken({ IdToken: idToken }),\n RefreshToken: new CognitoRefreshToken({\n RefreshToken: refreshToken,\n }),\n AccessToken: new CognitoAccessToken({\n AccessToken: accessToken,\n }),\n });\n credentials = void 0;\n if (!this._config.identityPoolId) return [3 /*break*/, 5];\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 4:\n credentials = _b.sent();\n logger.debug('AWS credentials', credentials);\n _b.label = 5;\n case 5:\n isCustomStateIncluded = /-/.test(state);\n currentUser = this.createCognitoUser(session.getIdToken().decodePayload()['cognito:username']);\n // This calls cacheTokens() in Cognito SDK\n currentUser.setSignInUserSession(session);\n if (window && typeof window.history !== 'undefined') {\n window.history.replaceState({}, null, this._config.oauth.redirectSignIn);\n }\n dispatchAuthEvent('signIn', currentUser, \"A user \" + currentUser.getUsername() + \" has been signed in\");\n dispatchAuthEvent('cognitoHostedUI', currentUser, \"A user \" + currentUser.getUsername() + \" has been signed in via Cognito Hosted UI\");\n if (isCustomStateIncluded) {\n customState = state.split('-').splice(1).join('-');\n dispatchAuthEvent('customOAuthState', urlSafeDecode(customState), \"State for user \" + currentUser.getUsername());\n }\n //#endregion\n return [2 /*return*/, credentials];\n case 6:\n err_2 = _b.sent();\n logger.debug('Error in cognito hosted auth response', err_2);\n // Just like a successful handling of `?code`, replace the window history to \"dispose\" of the `code`.\n // Otherwise, reloading the page will throw errors as the `code` has already been spent.\n if (window && typeof window.history !== 'undefined') {\n window.history.replaceState({}, null, this._config.oauth.redirectSignIn);\n }\n dispatchAuthEvent('signIn_failure', err_2, \"The OAuth response flow failed\");\n dispatchAuthEvent('cognitoHostedUI_failure', err_2, \"A failure occurred when returning to the Cognito Hosted UI\");\n dispatchAuthEvent('customState_failure', err_2, \"A failure occurred when returning state\");\n return [3 /*break*/, 7];\n case 7: return [3 /*break*/, 9];\n case 8:\n this.oAuthFlowInProgress = false;\n return [7 /*endfinally*/];\n case 9: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Compact version of credentials\n * @param {Object} credentials\n * @return {Object} - Credentials\n */\n AuthClass.prototype.essentialCredentials = function (credentials) {\n return {\n accessKeyId: credentials.accessKeyId,\n sessionToken: credentials.sessionToken,\n secretAccessKey: credentials.secretAccessKey,\n identityId: credentials.identityId,\n authenticated: credentials.authenticated,\n };\n };\n AuthClass.prototype.attributesToObject = function (attributes) {\n var _this = this;\n var obj = {};\n if (attributes) {\n attributes.map(function (attribute) {\n if (attribute.Name === 'email_verified' ||\n attribute.Name === 'phone_number_verified') {\n obj[attribute.Name] =\n _this.isTruthyString(attribute.Value) || attribute.Value === true;\n }\n else {\n obj[attribute.Name] = attribute.Value;\n }\n });\n }\n return obj;\n };\n AuthClass.prototype.isTruthyString = function (value) {\n return (typeof value.toLowerCase === 'function' && value.toLowerCase() === 'true');\n };\n AuthClass.prototype.createCognitoUser = function (username) {\n var userData = {\n Username: username,\n Pool: this.userPool,\n };\n userData.Storage = this._storage;\n var authenticationFlowType = this._config.authenticationFlowType;\n var user = new CognitoUser(userData);\n if (authenticationFlowType) {\n user.setAuthenticationFlowType(authenticationFlowType);\n }\n return user;\n };\n AuthClass.prototype._isValidAuthStorage = function (obj) {\n // We need to check if the obj has the functions of Storage\n return (!!obj &&\n typeof obj.getItem === 'function' &&\n typeof obj.setItem === 'function' &&\n typeof obj.removeItem === 'function' &&\n typeof obj.clear === 'function');\n };\n AuthClass.prototype.noUserPoolErrorHandler = function (config) {\n if (config) {\n if (!config.userPoolId || !config.identityPoolId) {\n return AuthErrorTypes.MissingAuthConfig;\n }\n }\n return AuthErrorTypes.NoConfig;\n };\n AuthClass.prototype.rejectAuthError = function (type) {\n return Promise.reject(new AuthError(type));\n };\n AuthClass.prototype.rejectNoUserPool = function () {\n var type = this.noUserPoolErrorHandler(this._config);\n return Promise.reject(new NoUserPoolError(type));\n };\n AuthClass.prototype.rememberDevice = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_2 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_2);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n currUser.setDeviceStatusRemembered({\n onSuccess: function (data) {\n res(data);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n });\n })];\n }\n });\n });\n };\n AuthClass.prototype.forgetDevice = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_3 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_3);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n currUser.forgetDevice({\n onSuccess: function (data) {\n res(data);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n });\n })];\n }\n });\n });\n };\n AuthClass.prototype.fetchDevices = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_4 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_4);\n throw new Error('The user is not authenticated');\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n var cb = {\n onSuccess: function (data) {\n var deviceList = data.Devices.map(function (device) {\n var deviceName = device.DeviceAttributes.find(function (_a) {\n var Name = _a.Name;\n return Name === 'device_name';\n }) || {};\n var deviceInfo = {\n id: device.DeviceKey,\n name: deviceName.Value,\n };\n return deviceInfo;\n });\n res(deviceList);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n };\n currUser.listDevices(MAX_DEVICES, null, cb);\n })];\n }\n });\n });\n };\n return AuthClass;\n}());\nexport { AuthClass };\nexport var Auth = new AuthClass(null);\nAmplify.register(Auth);\n//# sourceMappingURL=Auth.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { ConsoleLogger as LoggerClass } from './Logger';\nvar logger = new LoggerClass('Amplify');\nvar AmplifyClass = /** @class */ (function () {\n function AmplifyClass() {\n // Everything that is `register`ed is tracked here\n this._components = [];\n this._config = {};\n // All modules (with `getModuleName()`) are stored here for dependency injection\n this._modules = {};\n // for backward compatibility to avoid breaking change\n // if someone is using like Amplify.Auth\n this.Auth = null;\n this.Analytics = null;\n this.API = null;\n this.Credentials = null;\n this.Storage = null;\n this.I18n = null;\n this.Cache = null;\n this.PubSub = null;\n this.Interactions = null;\n this.Pushnotification = null;\n this.UI = null;\n this.XR = null;\n this.Predictions = null;\n this.DataStore = null;\n this.Geo = null;\n this.Logger = LoggerClass;\n this.ServiceWorker = null;\n }\n AmplifyClass.prototype.register = function (comp) {\n logger.debug('component registered in amplify', comp);\n this._components.push(comp);\n if (typeof comp.getModuleName === 'function') {\n this._modules[comp.getModuleName()] = comp;\n this[comp.getModuleName()] = comp;\n }\n else {\n logger.debug('no getModuleName method for component', comp);\n }\n // Finally configure this new component(category) loaded\n // With the new modularization changes in Amplify V3, all the Amplify\n // component are not loaded/registered right away but when they are\n // imported (and hence instantiated) in the client's app. This ensures\n // that all new components imported get correctly configured with the\n // configuration that Amplify.configure() was called with.\n comp.configure(this._config);\n };\n AmplifyClass.prototype.configure = function (config) {\n var _this = this;\n if (!config)\n return this._config;\n this._config = Object.assign(this._config, config);\n logger.debug('amplify config', this._config);\n // Dependency Injection via property-setting.\n // This avoids introducing a public method/interface/setter that's difficult to remove later.\n // Plus, it reduces `if` statements within the `constructor` and `configure` of each module\n Object.entries(this._modules).forEach(function (_a) {\n var _b = __read(_a, 2), Name = _b[0], comp = _b[1];\n // e.g. Auth.*\n Object.keys(comp).forEach(function (property) {\n // e.g. Auth[\"Credentials\"] = this._modules[\"Credentials\"] when set\n if (_this._modules[property]) {\n comp[property] = _this._modules[property];\n }\n });\n });\n this._components.map(function (comp) {\n comp.configure(_this._config);\n });\n return this._config;\n };\n AmplifyClass.prototype.addPluggable = function (pluggable) {\n if (pluggable &&\n pluggable['getCategory'] &&\n typeof pluggable['getCategory'] === 'function') {\n this._components.map(function (comp) {\n if (comp['addPluggable'] &&\n typeof comp['addPluggable'] === 'function') {\n comp.addPluggable(pluggable);\n }\n });\n }\n };\n return AmplifyClass;\n}());\nexport { AmplifyClass };\nexport var Amplify = new AmplifyClass();\n/**\n * @deprecated use named import\n */\nexport default Amplify;\n//# sourceMappingURL=Amplify.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\nvar logger = new Logger('CognitoCredentials');\nvar waitForInit = new Promise(function (res, rej) {\n if (!browserOrNode().isBrowser) {\n logger.debug('not in the browser, directly resolved');\n return res();\n }\n var ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n if (ga) {\n logger.debug('google api already loaded');\n return res();\n }\n else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\nvar GoogleOAuth = /** @class */ (function () {\n function GoogleOAuth() {\n this.initialized = false;\n this.refreshGoogleToken = this.refreshGoogleToken.bind(this);\n this._refreshGoogleTokenImpl = this._refreshGoogleTokenImpl.bind(this);\n }\n GoogleOAuth.prototype.refreshGoogleToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n logger.debug('need to wait for the Google SDK loaded');\n return [4 /*yield*/, waitForInit];\n case 1:\n _a.sent();\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n case 2: return [2 /*return*/, this._refreshGoogleTokenImpl()];\n }\n });\n });\n };\n GoogleOAuth.prototype._refreshGoogleTokenImpl = function () {\n var ga = null;\n if (browserOrNode().isBrowser)\n ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n if (!ga) {\n logger.debug('no gapi auth2 available');\n return Promise.reject('no gapi auth2 available');\n }\n return new Promise(function (res, rej) {\n ga.getAuthInstance()\n .then(function (googleAuth) {\n if (!googleAuth) {\n logger.debug('google Auth undefined');\n rej(new NonRetryableError('google Auth undefined'));\n }\n var googleUser = googleAuth.currentUser.get();\n // refresh the token\n if (googleUser.isSignedIn()) {\n logger.debug('refreshing the google access token');\n googleUser\n .reloadAuthResponse()\n .then(function (authResponse) {\n var id_token = authResponse.id_token, expires_at = authResponse.expires_at;\n res({ token: id_token, expires_at: expires_at });\n })\n .catch(function (err) {\n if (err && err.error === 'network_error') {\n // Not using NonRetryableError so handler will be retried\n rej('Network error reloading google auth response');\n }\n else {\n rej(new NonRetryableError('Failed to reload google auth response'));\n }\n });\n }\n else {\n rej(new NonRetryableError('User is not signed in with Google'));\n }\n })\n .catch(function (err) {\n logger.debug('Failed to refresh google token', err);\n rej(new NonRetryableError('Failed to refresh google token'));\n });\n });\n };\n return GoogleOAuth;\n}());\nexport { GoogleOAuth };\n/**\n * @deprecated use named import\n */\nexport default GoogleOAuth;\n//# sourceMappingURL=GoogleOAuth.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\nvar logger = new Logger('CognitoCredentials');\nvar waitForInit = new Promise(function (res, rej) {\n if (!browserOrNode().isBrowser) {\n logger.debug('not in the browser, directly resolved');\n return res();\n }\n var fb = window['FB'];\n if (fb) {\n logger.debug('FB SDK already loaded');\n return res();\n }\n else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\nvar FacebookOAuth = /** @class */ (function () {\n function FacebookOAuth() {\n this.initialized = false;\n this.refreshFacebookToken = this.refreshFacebookToken.bind(this);\n this._refreshFacebookTokenImpl = this._refreshFacebookTokenImpl.bind(this);\n }\n FacebookOAuth.prototype.refreshFacebookToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n logger.debug('need to wait for the Facebook SDK loaded');\n return [4 /*yield*/, waitForInit];\n case 1:\n _a.sent();\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n case 2: return [2 /*return*/, this._refreshFacebookTokenImpl()];\n }\n });\n });\n };\n FacebookOAuth.prototype._refreshFacebookTokenImpl = function () {\n var fb = null;\n if (browserOrNode().isBrowser)\n fb = window['FB'];\n if (!fb) {\n var errorMessage = 'no fb sdk available';\n logger.debug(errorMessage);\n return Promise.reject(new NonRetryableError(errorMessage));\n }\n return new Promise(function (res, rej) {\n fb.getLoginStatus(function (fbResponse) {\n if (!fbResponse || !fbResponse.authResponse) {\n var errorMessage = 'no response from facebook when refreshing the jwt token';\n logger.debug(errorMessage);\n // There is no definitive indication for a network error in\n // fbResponse, so we are treating it as an invalid token.\n rej(new NonRetryableError(errorMessage));\n }\n else {\n var response = fbResponse.authResponse;\n var accessToken = response.accessToken, expiresIn = response.expiresIn;\n var date = new Date();\n var expires_at = expiresIn * 1000 + date.getTime();\n if (!accessToken) {\n var errorMessage = 'the jwtToken is undefined';\n logger.debug(errorMessage);\n rej(new NonRetryableError(errorMessage));\n }\n res({\n token: accessToken,\n expires_at: expires_at,\n });\n }\n }, { scope: 'public_profile,email' });\n });\n };\n return FacebookOAuth;\n}());\nexport { FacebookOAuth };\n/**\n * @deprecated use named import\n */\nexport default FacebookOAuth;\n//# sourceMappingURL=FacebookOAuth.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { GoogleOAuth as GoogleOAuthClass } from './GoogleOAuth';\nimport { FacebookOAuth as FacebookOAuthClass } from './FacebookOAuth';\nexport var GoogleOAuth = new GoogleOAuthClass();\nexport var FacebookOAuth = new FacebookOAuthClass();\n//# sourceMappingURL=index.js.map","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __assign } from \"tslib\";\nexport var AmbiguousRoleResolutionType;\n(function (AmbiguousRoleResolutionType) {\n AmbiguousRoleResolutionType[\"AUTHENTICATED_ROLE\"] = \"AuthenticatedRole\";\n AmbiguousRoleResolutionType[\"DENY\"] = \"Deny\";\n})(AmbiguousRoleResolutionType || (AmbiguousRoleResolutionType = {}));\nexport var CognitoIdentityProvider;\n(function (CognitoIdentityProvider) {\n CognitoIdentityProvider.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CognitoIdentityProvider || (CognitoIdentityProvider = {}));\nexport var CreateIdentityPoolInput;\n(function (CreateIdentityPoolInput) {\n CreateIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateIdentityPoolInput || (CreateIdentityPoolInput = {}));\nexport var IdentityPool;\n(function (IdentityPool) {\n IdentityPool.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityPool || (IdentityPool = {}));\nexport var InternalErrorException;\n(function (InternalErrorException) {\n InternalErrorException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InternalErrorException || (InternalErrorException = {}));\nexport var InvalidParameterException;\n(function (InvalidParameterException) {\n InvalidParameterException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidParameterException || (InvalidParameterException = {}));\nexport var LimitExceededException;\n(function (LimitExceededException) {\n LimitExceededException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LimitExceededException || (LimitExceededException = {}));\nexport var NotAuthorizedException;\n(function (NotAuthorizedException) {\n NotAuthorizedException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NotAuthorizedException || (NotAuthorizedException = {}));\nexport var ResourceConflictException;\n(function (ResourceConflictException) {\n ResourceConflictException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceConflictException || (ResourceConflictException = {}));\nexport var TooManyRequestsException;\n(function (TooManyRequestsException) {\n TooManyRequestsException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TooManyRequestsException || (TooManyRequestsException = {}));\nexport var DeleteIdentitiesInput;\n(function (DeleteIdentitiesInput) {\n DeleteIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentitiesInput || (DeleteIdentitiesInput = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ErrorCode[\"ACCESS_DENIED\"] = \"AccessDenied\";\n ErrorCode[\"INTERNAL_SERVER_ERROR\"] = \"InternalServerError\";\n})(ErrorCode || (ErrorCode = {}));\nexport var UnprocessedIdentityId;\n(function (UnprocessedIdentityId) {\n UnprocessedIdentityId.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnprocessedIdentityId || (UnprocessedIdentityId = {}));\nexport var DeleteIdentitiesResponse;\n(function (DeleteIdentitiesResponse) {\n DeleteIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentitiesResponse || (DeleteIdentitiesResponse = {}));\nexport var DeleteIdentityPoolInput;\n(function (DeleteIdentityPoolInput) {\n DeleteIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentityPoolInput || (DeleteIdentityPoolInput = {}));\nexport var ResourceNotFoundException;\n(function (ResourceNotFoundException) {\n ResourceNotFoundException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceNotFoundException || (ResourceNotFoundException = {}));\nexport var DescribeIdentityInput;\n(function (DescribeIdentityInput) {\n DescribeIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeIdentityInput || (DescribeIdentityInput = {}));\nexport var IdentityDescription;\n(function (IdentityDescription) {\n IdentityDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityDescription || (IdentityDescription = {}));\nexport var DescribeIdentityPoolInput;\n(function (DescribeIdentityPoolInput) {\n DescribeIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeIdentityPoolInput || (DescribeIdentityPoolInput = {}));\nexport var ExternalServiceException;\n(function (ExternalServiceException) {\n ExternalServiceException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExternalServiceException || (ExternalServiceException = {}));\nexport var GetCredentialsForIdentityInput;\n(function (GetCredentialsForIdentityInput) {\n GetCredentialsForIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetCredentialsForIdentityInput || (GetCredentialsForIdentityInput = {}));\nexport var Credentials;\n(function (Credentials) {\n Credentials.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Credentials || (Credentials = {}));\nexport var GetCredentialsForIdentityResponse;\n(function (GetCredentialsForIdentityResponse) {\n GetCredentialsForIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetCredentialsForIdentityResponse || (GetCredentialsForIdentityResponse = {}));\nexport var InvalidIdentityPoolConfigurationException;\n(function (InvalidIdentityPoolConfigurationException) {\n InvalidIdentityPoolConfigurationException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidIdentityPoolConfigurationException || (InvalidIdentityPoolConfigurationException = {}));\nexport var GetIdInput;\n(function (GetIdInput) {\n GetIdInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdInput || (GetIdInput = {}));\nexport var GetIdResponse;\n(function (GetIdResponse) {\n GetIdResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdResponse || (GetIdResponse = {}));\nexport var GetIdentityPoolRolesInput;\n(function (GetIdentityPoolRolesInput) {\n GetIdentityPoolRolesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdentityPoolRolesInput || (GetIdentityPoolRolesInput = {}));\nexport var MappingRuleMatchType;\n(function (MappingRuleMatchType) {\n MappingRuleMatchType[\"CONTAINS\"] = \"Contains\";\n MappingRuleMatchType[\"EQUALS\"] = \"Equals\";\n MappingRuleMatchType[\"NOT_EQUAL\"] = \"NotEqual\";\n MappingRuleMatchType[\"STARTS_WITH\"] = \"StartsWith\";\n})(MappingRuleMatchType || (MappingRuleMatchType = {}));\nexport var MappingRule;\n(function (MappingRule) {\n MappingRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MappingRule || (MappingRule = {}));\nexport var RulesConfigurationType;\n(function (RulesConfigurationType) {\n RulesConfigurationType.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RulesConfigurationType || (RulesConfigurationType = {}));\nexport var RoleMappingType;\n(function (RoleMappingType) {\n RoleMappingType[\"RULES\"] = \"Rules\";\n RoleMappingType[\"TOKEN\"] = \"Token\";\n})(RoleMappingType || (RoleMappingType = {}));\nexport var RoleMapping;\n(function (RoleMapping) {\n RoleMapping.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RoleMapping || (RoleMapping = {}));\nexport var GetIdentityPoolRolesResponse;\n(function (GetIdentityPoolRolesResponse) {\n GetIdentityPoolRolesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdentityPoolRolesResponse || (GetIdentityPoolRolesResponse = {}));\nexport var GetOpenIdTokenInput;\n(function (GetOpenIdTokenInput) {\n GetOpenIdTokenInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenInput || (GetOpenIdTokenInput = {}));\nexport var GetOpenIdTokenResponse;\n(function (GetOpenIdTokenResponse) {\n GetOpenIdTokenResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenResponse || (GetOpenIdTokenResponse = {}));\nexport var DeveloperUserAlreadyRegisteredException;\n(function (DeveloperUserAlreadyRegisteredException) {\n DeveloperUserAlreadyRegisteredException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeveloperUserAlreadyRegisteredException || (DeveloperUserAlreadyRegisteredException = {}));\nexport var GetOpenIdTokenForDeveloperIdentityInput;\n(function (GetOpenIdTokenForDeveloperIdentityInput) {\n GetOpenIdTokenForDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenForDeveloperIdentityInput || (GetOpenIdTokenForDeveloperIdentityInput = {}));\nexport var GetOpenIdTokenForDeveloperIdentityResponse;\n(function (GetOpenIdTokenForDeveloperIdentityResponse) {\n GetOpenIdTokenForDeveloperIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenForDeveloperIdentityResponse || (GetOpenIdTokenForDeveloperIdentityResponse = {}));\nexport var ListIdentitiesInput;\n(function (ListIdentitiesInput) {\n ListIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentitiesInput || (ListIdentitiesInput = {}));\nexport var ListIdentitiesResponse;\n(function (ListIdentitiesResponse) {\n ListIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentitiesResponse || (ListIdentitiesResponse = {}));\nexport var ListIdentityPoolsInput;\n(function (ListIdentityPoolsInput) {\n ListIdentityPoolsInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentityPoolsInput || (ListIdentityPoolsInput = {}));\nexport var IdentityPoolShortDescription;\n(function (IdentityPoolShortDescription) {\n IdentityPoolShortDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityPoolShortDescription || (IdentityPoolShortDescription = {}));\nexport var ListIdentityPoolsResponse;\n(function (ListIdentityPoolsResponse) {\n ListIdentityPoolsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentityPoolsResponse || (ListIdentityPoolsResponse = {}));\nexport var ListTagsForResourceInput;\n(function (ListTagsForResourceInput) {\n ListTagsForResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForResourceInput || (ListTagsForResourceInput = {}));\nexport var ListTagsForResourceResponse;\n(function (ListTagsForResourceResponse) {\n ListTagsForResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForResourceResponse || (ListTagsForResourceResponse = {}));\nexport var LookupDeveloperIdentityInput;\n(function (LookupDeveloperIdentityInput) {\n LookupDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LookupDeveloperIdentityInput || (LookupDeveloperIdentityInput = {}));\nexport var LookupDeveloperIdentityResponse;\n(function (LookupDeveloperIdentityResponse) {\n LookupDeveloperIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LookupDeveloperIdentityResponse || (LookupDeveloperIdentityResponse = {}));\nexport var MergeDeveloperIdentitiesInput;\n(function (MergeDeveloperIdentitiesInput) {\n MergeDeveloperIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MergeDeveloperIdentitiesInput || (MergeDeveloperIdentitiesInput = {}));\nexport var MergeDeveloperIdentitiesResponse;\n(function (MergeDeveloperIdentitiesResponse) {\n MergeDeveloperIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MergeDeveloperIdentitiesResponse || (MergeDeveloperIdentitiesResponse = {}));\nexport var ConcurrentModificationException;\n(function (ConcurrentModificationException) {\n ConcurrentModificationException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ConcurrentModificationException || (ConcurrentModificationException = {}));\nexport var SetIdentityPoolRolesInput;\n(function (SetIdentityPoolRolesInput) {\n SetIdentityPoolRolesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SetIdentityPoolRolesInput || (SetIdentityPoolRolesInput = {}));\nexport var TagResourceInput;\n(function (TagResourceInput) {\n TagResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TagResourceInput || (TagResourceInput = {}));\nexport var TagResourceResponse;\n(function (TagResourceResponse) {\n TagResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TagResourceResponse || (TagResourceResponse = {}));\nexport var UnlinkDeveloperIdentityInput;\n(function (UnlinkDeveloperIdentityInput) {\n UnlinkDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnlinkDeveloperIdentityInput || (UnlinkDeveloperIdentityInput = {}));\nexport var UnlinkIdentityInput;\n(function (UnlinkIdentityInput) {\n UnlinkIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnlinkIdentityInput || (UnlinkIdentityInput = {}));\nexport var UntagResourceInput;\n(function (UntagResourceInput) {\n UntagResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UntagResourceInput || (UntagResourceInput = {}));\nexport var UntagResourceResponse;\n(function (UntagResourceResponse) {\n UntagResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UntagResourceResponse || (UntagResourceResponse = {}));\n//# sourceMappingURL=models_0.js.map","var HttpResponse = /** @class */ (function () {\n function HttpResponse(options) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n HttpResponse.isInstance = function (response) {\n //determine if response is a valid HttpResponse\n if (!response)\n return false;\n var resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n };\n return HttpResponse;\n}());\nexport { HttpResponse };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cFJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2h0dHBSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQTtJQUtFLHNCQUFZLE9BQTRCO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRU0sdUJBQVUsR0FBakIsVUFBa0IsUUFBaUI7UUFDakMsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDNUIsSUFBTSxJQUFJLEdBQUcsUUFBZSxDQUFDO1FBQzdCLE9BQU8sT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDO0lBQ2pGLENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUFqQkQsSUFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcsIEh0dHBNZXNzYWdlLCBIdHRwUmVzcG9uc2UgYXMgSUh0dHBSZXNwb25zZSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG50eXBlIEh0dHBSZXNwb25zZU9wdGlvbnMgPSBQYXJ0aWFsPEh0dHBNZXNzYWdlPiAmIHtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVzcG9uc2UgZXh0ZW5kcyBJSHR0cFJlc3BvbnNlIHt9XG5cbmV4cG9ydCBjbGFzcyBIdHRwUmVzcG9uc2Uge1xuICBwdWJsaWMgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBwdWJsaWMgaGVhZGVyczogSGVhZGVyQmFnO1xuICBwdWJsaWMgYm9keT86IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIdHRwUmVzcG9uc2VPcHRpb25zKSB7XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gb3B0aW9ucy5zdGF0dXNDb2RlO1xuICAgIHRoaXMuaGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyB8fCB7fTtcbiAgICB0aGlzLmJvZHkgPSBvcHRpb25zLmJvZHk7XG4gIH1cblxuICBzdGF0aWMgaXNJbnN0YW5jZShyZXNwb25zZTogdW5rbm93bik6IHJlc3BvbnNlIGlzIEh0dHBSZXNwb25zZSB7XG4gICAgLy9kZXRlcm1pbmUgaWYgcmVzcG9uc2UgaXMgYSB2YWxpZCBIdHRwUmVzcG9uc2VcbiAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcmVzcCA9IHJlc3BvbnNlIGFzIGFueTtcbiAgICByZXR1cm4gdHlwZW9mIHJlc3Auc3RhdHVzQ29kZSA9PT0gXCJudW1iZXJcIiAmJiB0eXBlb2YgcmVzcC5oZWFkZXJzID09PSBcIm9iamVjdFwiO1xuICB9XG59XG4iXX0=","import { __assign, __read, __spread } from \"tslib\";\nvar HttpRequest = /** @class */ (function () {\n function HttpRequest(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.substr(-1) !== \":\"\n ? options.protocol + \":\"\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? \"/\" + options.path : options.path) : \"/\";\n }\n HttpRequest.isInstance = function (request) {\n //determine if request is a valid httpRequest\n if (!request)\n return false;\n var req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n };\n HttpRequest.prototype.clone = function () {\n var cloned = new HttpRequest(__assign(__assign({}, this), { headers: __assign({}, this.headers) }));\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n };\n return HttpRequest;\n}());\nexport { HttpRequest };\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spread(param) : param, _a));\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cFJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaHR0cFJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQU1BO0lBVUUscUJBQVksT0FBMkI7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVE7WUFDOUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRztnQkFDbkMsQ0FBQyxDQUFJLE9BQU8sQ0FBQyxRQUFRLE1BQUc7Z0JBQ3hCLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNwQixDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBSSxPQUFPLENBQUMsSUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN4RyxDQUFDO0lBRU0sc0JBQVUsR0FBakIsVUFBa0IsT0FBZ0I7UUFDaEMsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDM0IsSUFBTSxHQUFHLEdBQVEsT0FBTyxDQUFDO1FBQ3pCLE9BQU8sQ0FDTCxRQUFRLElBQUksR0FBRztZQUNmLFVBQVUsSUFBSSxHQUFHO1lBQ2pCLFVBQVUsSUFBSSxHQUFHO1lBQ2pCLE1BQU0sSUFBSSxHQUFHO1lBQ2IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUTtZQUNoQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxRQUFRLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsMkJBQUssR0FBTDtRQUNFLElBQU0sTUFBTSxHQUFHLElBQUksV0FBVyx1QkFDekIsSUFBSSxLQUNQLE9BQU8sZUFBTyxJQUFJLENBQUMsT0FBTyxLQUMxQixDQUFDO1FBQ0gsSUFBSSxNQUFNLENBQUMsS0FBSztZQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBL0NELElBK0NDOztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQXdCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUMzRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQ3REO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZHBvaW50LCBIZWFkZXJCYWcsIEh0dHBNZXNzYWdlLCBIdHRwUmVxdWVzdCBhcyBJSHR0cFJlcXVlc3QsIFF1ZXJ5UGFyYW1ldGVyQmFnIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbnR5cGUgSHR0cFJlcXVlc3RPcHRpb25zID0gUGFydGlhbDxIdHRwTWVzc2FnZT4gJiBQYXJ0aWFsPEVuZHBvaW50PiAmIHsgbWV0aG9kPzogc3RyaW5nIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJlcXVlc3QgZXh0ZW5kcyBJSHR0cFJlcXVlc3Qge31cblxuZXhwb3J0IGNsYXNzIEh0dHBSZXF1ZXN0IGltcGxlbWVudHMgSHR0cE1lc3NhZ2UsIEVuZHBvaW50IHtcbiAgcHVibGljIG1ldGhvZDogc3RyaW5nO1xuICBwdWJsaWMgcHJvdG9jb2w6IHN0cmluZztcbiAgcHVibGljIGhvc3RuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBwb3J0PzogbnVtYmVyO1xuICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuICBwdWJsaWMgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnO1xuICBwdWJsaWMgaGVhZGVyczogSGVhZGVyQmFnO1xuICBwdWJsaWMgYm9keT86IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIdHRwUmVxdWVzdE9wdGlvbnMpIHtcbiAgICB0aGlzLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IFwiR0VUXCI7XG4gICAgdGhpcy5ob3N0bmFtZSA9IG9wdGlvbnMuaG9zdG5hbWUgfHwgXCJsb2NhbGhvc3RcIjtcbiAgICB0aGlzLnBvcnQgPSBvcHRpb25zLnBvcnQ7XG4gICAgdGhpcy5xdWVyeSA9IG9wdGlvbnMucXVlcnkgfHwge307XG4gICAgdGhpcy5oZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzIHx8IHt9O1xuICAgIHRoaXMuYm9keSA9IG9wdGlvbnMuYm9keTtcbiAgICB0aGlzLnByb3RvY29sID0gb3B0aW9ucy5wcm90b2NvbFxuICAgICAgPyBvcHRpb25zLnByb3RvY29sLnN1YnN0cigtMSkgIT09IFwiOlwiXG4gICAgICAgID8gYCR7b3B0aW9ucy5wcm90b2NvbH06YFxuICAgICAgICA6IG9wdGlvbnMucHJvdG9jb2xcbiAgICAgIDogXCJodHRwczpcIjtcbiAgICB0aGlzLnBhdGggPSBvcHRpb25zLnBhdGggPyAob3B0aW9ucy5wYXRoLmNoYXJBdCgwKSAhPT0gXCIvXCIgPyBgLyR7b3B0aW9ucy5wYXRofWAgOiBvcHRpb25zLnBhdGgpIDogXCIvXCI7XG4gIH1cblxuICBzdGF0aWMgaXNJbnN0YW5jZShyZXF1ZXN0OiB1bmtub3duKTogcmVxdWVzdCBpcyBIdHRwUmVxdWVzdCB7XG4gICAgLy9kZXRlcm1pbmUgaWYgcmVxdWVzdCBpcyBhIHZhbGlkIGh0dHBSZXF1ZXN0XG4gICAgaWYgKCFyZXF1ZXN0KSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcmVxOiBhbnkgPSByZXF1ZXN0O1xuICAgIHJldHVybiAoXG4gICAgICBcIm1ldGhvZFwiIGluIHJlcSAmJlxuICAgICAgXCJwcm90b2NvbFwiIGluIHJlcSAmJlxuICAgICAgXCJob3N0bmFtZVwiIGluIHJlcSAmJlxuICAgICAgXCJwYXRoXCIgaW4gcmVxICYmXG4gICAgICB0eXBlb2YgcmVxW1wicXVlcnlcIl0gPT09IFwib2JqZWN0XCIgJiZcbiAgICAgIHR5cGVvZiByZXFbXCJoZWFkZXJzXCJdID09PSBcIm9iamVjdFwiXG4gICAgKTtcbiAgfVxuXG4gIGNsb25lKCk6IEh0dHBSZXF1ZXN0IHtcbiAgICBjb25zdCBjbG9uZWQgPSBuZXcgSHR0cFJlcXVlc3Qoe1xuICAgICAgLi4udGhpcyxcbiAgICAgIGhlYWRlcnM6IHsgLi4udGhpcy5oZWFkZXJzIH0sXG4gICAgfSk7XG4gICAgaWYgKGNsb25lZC5xdWVyeSkgY2xvbmVkLnF1ZXJ5ID0gY2xvbmVRdWVyeShjbG9uZWQucXVlcnkpO1xuICAgIHJldHVybiBjbG9uZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xvbmVRdWVyeShxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcpOiBRdWVyeVBhcmFtZXRlckJhZyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeSkucmVkdWNlKChjYXJyeTogUXVlcnlQYXJhbWV0ZXJCYWcsIHBhcmFtTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBxdWVyeVtwYXJhbU5hbWVdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIFtwYXJhbU5hbWVdOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IFsuLi5wYXJhbV0gOiBwYXJhbSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { HttpRequest as __HttpRequest } from \"@aws-sdk/protocol-http\";\nexport var serializeAws_json1_1CreateIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.CreateIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1CreateIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DeleteIdentitiesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DeleteIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1DeleteIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DeleteIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DeleteIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1DeleteIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DescribeIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DescribeIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DescribeIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DescribeIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetCredentialsForIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetCredentialsForIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1GetCredentialsForIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetIdCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetId\",\n };\n body = JSON.stringify(serializeAws_json1_1GetIdInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetIdentityPoolRolesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetIdentityPoolRoles\",\n };\n body = JSON.stringify(serializeAws_json1_1GetIdentityPoolRolesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetOpenIdTokenCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetOpenIdToken\",\n };\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListIdentitiesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1ListIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListIdentityPoolsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListIdentityPools\",\n };\n body = JSON.stringify(serializeAws_json1_1ListIdentityPoolsInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListTagsForResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListTagsForResource\",\n };\n body = JSON.stringify(serializeAws_json1_1ListTagsForResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1LookupDeveloperIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.LookupDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1LookupDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1MergeDeveloperIdentitiesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.MergeDeveloperIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1MergeDeveloperIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1SetIdentityPoolRolesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.SetIdentityPoolRoles\",\n };\n body = JSON.stringify(serializeAws_json1_1SetIdentityPoolRolesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1TagResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.TagResource\",\n };\n body = JSON.stringify(serializeAws_json1_1TagResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UnlinkDeveloperIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UnlinkDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1UnlinkDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UnlinkIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UnlinkIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1UnlinkIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UntagResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UntagResource\",\n };\n body = JSON.stringify(serializeAws_json1_1UntagResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UpdateIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UpdateIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1IdentityPool(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var deserializeAws_json1_1CreateIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1CreateIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1CreateIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"LimitExceededException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DeleteIdentitiesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DeleteIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1DeleteIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DeleteIdentitiesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, parsedBody, message;\n var _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n _a = [__assign({}, output)];\n _f = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_f.body = _g.sent(), _f)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"TooManyRequestsException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 6];\n }\n return [3 /*break*/, 8];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 8:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _g.label = 9;\n case 9:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DeleteIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DeleteIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DeleteIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DescribeIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DescribeIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityDescription(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DescribeIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DescribeIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DescribeIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DescribeIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetCredentialsForIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetCredentialsForIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetCredentialsForIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetCredentialsForIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidIdentityPoolConfigurationException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidIdentityPoolConfigurationException\": return [3 /*break*/, 6];\n case \"InvalidParameterException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _m.label = 19;\n case 19:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetIdCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetIdCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetIdResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetIdCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"LimitExceededException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _m.label = 19;\n case 19:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetIdentityPoolRolesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetIdentityPoolRolesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetIdentityPoolRolesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetIdentityPoolRolesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetOpenIdTokenCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetOpenIdTokenCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetOpenIdTokenResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetOpenIdTokenCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"DeveloperUserAlreadyRegisteredException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#DeveloperUserAlreadyRegisteredException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1ListIdentitiesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1ListIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListIdentitiesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1ListIdentityPoolsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1ListIdentityPoolsCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListIdentityPoolsResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListIdentityPoolsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1ListTagsForResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1ListTagsForResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListTagsForResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1LookupDeveloperIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1LookupDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1LookupDeveloperIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1LookupDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1MergeDeveloperIdentitiesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1MergeDeveloperIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1MergeDeveloperIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1MergeDeveloperIdentitiesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1SetIdentityPoolRolesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1SetIdentityPoolRolesCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1SetIdentityPoolRolesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1TagResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1TagResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1TagResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1TagResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UnlinkDeveloperIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UnlinkDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UnlinkDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UnlinkIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UnlinkIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UnlinkIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UntagResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UntagResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1UntagResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UntagResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UpdateIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UpdateIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UpdateIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"LimitExceededException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _m.label = 19;\n case 19:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nvar deserializeAws_json1_1ConcurrentModificationExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ConcurrentModificationException(body, context);\n contents = __assign({ name: \"ConcurrentModificationException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1DeveloperUserAlreadyRegisteredException(body, context);\n contents = __assign({ name: \"DeveloperUserAlreadyRegisteredException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ExternalServiceExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ExternalServiceException(body, context);\n contents = __assign({ name: \"ExternalServiceException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InternalErrorExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1InternalErrorException(body, context);\n contents = __assign({ name: \"InternalErrorException\", $fault: \"server\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1InvalidIdentityPoolConfigurationException(body, context);\n contents = __assign({ name: \"InvalidIdentityPoolConfigurationException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InvalidParameterExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1InvalidParameterException(body, context);\n contents = __assign({ name: \"InvalidParameterException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1LimitExceededExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1LimitExceededException(body, context);\n contents = __assign({ name: \"LimitExceededException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1NotAuthorizedExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1NotAuthorizedException(body, context);\n contents = __assign({ name: \"NotAuthorizedException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ResourceConflictExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ResourceConflictException(body, context);\n contents = __assign({ name: \"ResourceConflictException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ResourceNotFoundExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ResourceNotFoundException(body, context);\n contents = __assign({ name: \"ResourceNotFoundException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1TooManyRequestsExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1TooManyRequestsException(body, context);\n contents = __assign({ name: \"TooManyRequestsException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar serializeAws_json1_1CognitoIdentityProvider = function (input, context) {\n return __assign(__assign(__assign({}, (input.ClientId !== undefined && input.ClientId !== null && { ClientId: input.ClientId })), (input.ProviderName !== undefined && input.ProviderName !== null && { ProviderName: input.ProviderName })), (input.ServerSideTokenCheck !== undefined &&\n input.ServerSideTokenCheck !== null && { ServerSideTokenCheck: input.ServerSideTokenCheck }));\n};\nvar serializeAws_json1_1CognitoIdentityProviderList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_json1_1CognitoIdentityProvider(entry, context);\n });\n};\nvar serializeAws_json1_1CreateIdentityPoolInput = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.AllowClassicFlow !== undefined &&\n input.AllowClassicFlow !== null && { AllowClassicFlow: input.AllowClassicFlow })), (input.AllowUnauthenticatedIdentities !== undefined &&\n input.AllowUnauthenticatedIdentities !== null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n })), (input.CognitoIdentityProviders !== undefined &&\n input.CognitoIdentityProviders !== null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context),\n })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolName !== undefined &&\n input.IdentityPoolName !== null && { IdentityPoolName: input.IdentityPoolName })), (input.IdentityPoolTags !== undefined &&\n input.IdentityPoolTags !== null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n })), (input.OpenIdConnectProviderARNs !== undefined &&\n input.OpenIdConnectProviderARNs !== null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n })), (input.SamlProviderARNs !== undefined &&\n input.SamlProviderARNs !== null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n })), (input.SupportedLoginProviders !== undefined &&\n input.SupportedLoginProviders !== null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }));\n};\nvar serializeAws_json1_1DeleteIdentitiesInput = function (input, context) {\n return __assign({}, (input.IdentityIdsToDelete !== undefined &&\n input.IdentityIdsToDelete !== null && {\n IdentityIdsToDelete: serializeAws_json1_1IdentityIdList(input.IdentityIdsToDelete, context),\n }));\n};\nvar serializeAws_json1_1DeleteIdentityPoolInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1DescribeIdentityInput = function (input, context) {\n return __assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId }));\n};\nvar serializeAws_json1_1DescribeIdentityPoolInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1GetCredentialsForIdentityInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.CustomRoleArn !== undefined && input.CustomRoleArn !== null && { CustomRoleArn: input.CustomRoleArn })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1GetIdentityPoolRolesInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1GetIdInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.AccountId !== undefined && input.AccountId !== null && { AccountId: input.AccountId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })), (input.TokenDuration !== undefined && input.TokenDuration !== null && { TokenDuration: input.TokenDuration }));\n};\nvar serializeAws_json1_1GetOpenIdTokenInput = function (input, context) {\n return __assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1IdentityIdList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1IdentityPool = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.AllowClassicFlow !== undefined &&\n input.AllowClassicFlow !== null && { AllowClassicFlow: input.AllowClassicFlow })), (input.AllowUnauthenticatedIdentities !== undefined &&\n input.AllowUnauthenticatedIdentities !== null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n })), (input.CognitoIdentityProviders !== undefined &&\n input.CognitoIdentityProviders !== null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context),\n })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.IdentityPoolName !== undefined &&\n input.IdentityPoolName !== null && { IdentityPoolName: input.IdentityPoolName })), (input.IdentityPoolTags !== undefined &&\n input.IdentityPoolTags !== null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n })), (input.OpenIdConnectProviderARNs !== undefined &&\n input.OpenIdConnectProviderARNs !== null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n })), (input.SamlProviderARNs !== undefined &&\n input.SamlProviderARNs !== null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n })), (input.SupportedLoginProviders !== undefined &&\n input.SupportedLoginProviders !== null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }));\n};\nvar serializeAws_json1_1IdentityPoolTagsListType = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1IdentityPoolTagsType = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1IdentityProviders = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1ListIdentitiesInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.HideDisabled !== undefined && input.HideDisabled !== null && { HideDisabled: input.HideDisabled })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1ListIdentityPoolsInput = function (input, context) {\n return __assign(__assign({}, (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1ListTagsForResourceInput = function (input, context) {\n return __assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn }));\n};\nvar serializeAws_json1_1LoginsList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1LoginsMap = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1LookupDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign({}, (input.DeveloperUserIdentifier !== undefined &&\n input.DeveloperUserIdentifier !== null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1MappingRule = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.Claim !== undefined && input.Claim !== null && { Claim: input.Claim })), (input.MatchType !== undefined && input.MatchType !== null && { MatchType: input.MatchType })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.Value !== undefined && input.Value !== null && { Value: input.Value }));\n};\nvar serializeAws_json1_1MappingRulesList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_json1_1MappingRule(entry, context);\n });\n};\nvar serializeAws_json1_1MergeDeveloperIdentitiesInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.DestinationUserIdentifier !== undefined &&\n input.DestinationUserIdentifier !== null && { DestinationUserIdentifier: input.DestinationUserIdentifier })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.SourceUserIdentifier !== undefined &&\n input.SourceUserIdentifier !== null && { SourceUserIdentifier: input.SourceUserIdentifier }));\n};\nvar serializeAws_json1_1OIDCProviderList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1RoleMapping = function (input, context) {\n return __assign(__assign(__assign({}, (input.AmbiguousRoleResolution !== undefined &&\n input.AmbiguousRoleResolution !== null && { AmbiguousRoleResolution: input.AmbiguousRoleResolution })), (input.RulesConfiguration !== undefined &&\n input.RulesConfiguration !== null && {\n RulesConfiguration: serializeAws_json1_1RulesConfigurationType(input.RulesConfiguration, context),\n })), (input.Type !== undefined && input.Type !== null && { Type: input.Type }));\n};\nvar serializeAws_json1_1RoleMappingMap = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = serializeAws_json1_1RoleMapping(value, context), _b));\n }, {});\n};\nvar serializeAws_json1_1RolesMap = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1RulesConfigurationType = function (input, context) {\n return __assign({}, (input.Rules !== undefined &&\n input.Rules !== null && { Rules: serializeAws_json1_1MappingRulesList(input.Rules, context) }));\n};\nvar serializeAws_json1_1SAMLProviderList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1SetIdentityPoolRolesInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.RoleMappings !== undefined &&\n input.RoleMappings !== null && { RoleMappings: serializeAws_json1_1RoleMappingMap(input.RoleMappings, context) })), (input.Roles !== undefined &&\n input.Roles !== null && { Roles: serializeAws_json1_1RolesMap(input.Roles, context) }));\n};\nvar serializeAws_json1_1TagResourceInput = function (input, context) {\n return __assign(__assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn })), (input.Tags !== undefined &&\n input.Tags !== null && { Tags: serializeAws_json1_1IdentityPoolTagsType(input.Tags, context) }));\n};\nvar serializeAws_json1_1UnlinkDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.DeveloperUserIdentifier !== undefined &&\n input.DeveloperUserIdentifier !== null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1UnlinkIdentityInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })), (input.LoginsToRemove !== undefined &&\n input.LoginsToRemove !== null && {\n LoginsToRemove: serializeAws_json1_1LoginsList(input.LoginsToRemove, context),\n }));\n};\nvar serializeAws_json1_1UntagResourceInput = function (input, context) {\n return __assign(__assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn })), (input.TagKeys !== undefined &&\n input.TagKeys !== null && { TagKeys: serializeAws_json1_1IdentityPoolTagsListType(input.TagKeys, context) }));\n};\nvar deserializeAws_json1_1CognitoIdentityProvider = function (output, context) {\n return {\n ClientId: output.ClientId !== undefined && output.ClientId !== null ? output.ClientId : undefined,\n ProviderName: output.ProviderName !== undefined && output.ProviderName !== null ? output.ProviderName : undefined,\n ServerSideTokenCheck: output.ServerSideTokenCheck !== undefined && output.ServerSideTokenCheck !== null\n ? output.ServerSideTokenCheck\n : undefined,\n };\n};\nvar deserializeAws_json1_1CognitoIdentityProviderList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1CognitoIdentityProvider(entry, context);\n });\n};\nvar deserializeAws_json1_1ConcurrentModificationException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1Credentials = function (output, context) {\n return {\n AccessKeyId: output.AccessKeyId !== undefined && output.AccessKeyId !== null ? output.AccessKeyId : undefined,\n Expiration: output.Expiration !== undefined && output.Expiration !== null\n ? new Date(Math.round(output.Expiration * 1000))\n : undefined,\n SecretKey: output.SecretKey !== undefined && output.SecretKey !== null ? output.SecretKey : undefined,\n SessionToken: output.SessionToken !== undefined && output.SessionToken !== null ? output.SessionToken : undefined,\n };\n};\nvar deserializeAws_json1_1DeleteIdentitiesResponse = function (output, context) {\n return {\n UnprocessedIdentityIds: output.UnprocessedIdentityIds !== undefined && output.UnprocessedIdentityIds !== null\n ? deserializeAws_json1_1UnprocessedIdentityIdList(output.UnprocessedIdentityIds, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1DeveloperUserAlreadyRegisteredException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1DeveloperUserIdentifierList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1ExternalServiceException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1GetCredentialsForIdentityResponse = function (output, context) {\n return {\n Credentials: output.Credentials !== undefined && output.Credentials !== null\n ? deserializeAws_json1_1Credentials(output.Credentials, context)\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1GetIdentityPoolRolesResponse = function (output, context) {\n return {\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n RoleMappings: output.RoleMappings !== undefined && output.RoleMappings !== null\n ? deserializeAws_json1_1RoleMappingMap(output.RoleMappings, context)\n : undefined,\n Roles: output.Roles !== undefined && output.Roles !== null\n ? deserializeAws_json1_1RolesMap(output.Roles, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1GetIdResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined,\n };\n};\nvar deserializeAws_json1_1GetOpenIdTokenResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined,\n };\n};\nvar deserializeAws_json1_1IdentitiesList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1IdentityDescription(entry, context);\n });\n};\nvar deserializeAws_json1_1IdentityDescription = function (output, context) {\n return {\n CreationDate: output.CreationDate !== undefined && output.CreationDate !== null\n ? new Date(Math.round(output.CreationDate * 1000))\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null\n ? new Date(Math.round(output.LastModifiedDate * 1000))\n : undefined,\n Logins: output.Logins !== undefined && output.Logins !== null\n ? deserializeAws_json1_1LoginsList(output.Logins, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPool = function (output, context) {\n return {\n AllowClassicFlow: output.AllowClassicFlow !== undefined && output.AllowClassicFlow !== null ? output.AllowClassicFlow : undefined,\n AllowUnauthenticatedIdentities: output.AllowUnauthenticatedIdentities !== undefined && output.AllowUnauthenticatedIdentities !== null\n ? output.AllowUnauthenticatedIdentities\n : undefined,\n CognitoIdentityProviders: output.CognitoIdentityProviders !== undefined && output.CognitoIdentityProviders !== null\n ? deserializeAws_json1_1CognitoIdentityProviderList(output.CognitoIdentityProviders, context)\n : undefined,\n DeveloperProviderName: output.DeveloperProviderName !== undefined && output.DeveloperProviderName !== null\n ? output.DeveloperProviderName\n : undefined,\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n IdentityPoolName: output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined,\n IdentityPoolTags: output.IdentityPoolTags !== undefined && output.IdentityPoolTags !== null\n ? deserializeAws_json1_1IdentityPoolTagsType(output.IdentityPoolTags, context)\n : undefined,\n OpenIdConnectProviderARNs: output.OpenIdConnectProviderARNs !== undefined && output.OpenIdConnectProviderARNs !== null\n ? deserializeAws_json1_1OIDCProviderList(output.OpenIdConnectProviderARNs, context)\n : undefined,\n SamlProviderARNs: output.SamlProviderARNs !== undefined && output.SamlProviderARNs !== null\n ? deserializeAws_json1_1SAMLProviderList(output.SamlProviderARNs, context)\n : undefined,\n SupportedLoginProviders: output.SupportedLoginProviders !== undefined && output.SupportedLoginProviders !== null\n ? deserializeAws_json1_1IdentityProviders(output.SupportedLoginProviders, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPoolShortDescription = function (output, context) {\n return {\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n IdentityPoolName: output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPoolsList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1IdentityPoolShortDescription(entry, context);\n });\n};\nvar deserializeAws_json1_1IdentityPoolTagsType = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar deserializeAws_json1_1IdentityProviders = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar deserializeAws_json1_1InternalErrorException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1InvalidIdentityPoolConfigurationException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1InvalidParameterException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1LimitExceededException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1ListIdentitiesResponse = function (output, context) {\n return {\n Identities: output.Identities !== undefined && output.Identities !== null\n ? deserializeAws_json1_1IdentitiesList(output.Identities, context)\n : undefined,\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1ListIdentityPoolsResponse = function (output, context) {\n return {\n IdentityPools: output.IdentityPools !== undefined && output.IdentityPools !== null\n ? deserializeAws_json1_1IdentityPoolsList(output.IdentityPools, context)\n : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1ListTagsForResourceResponse = function (output, context) {\n return {\n Tags: output.Tags !== undefined && output.Tags !== null\n ? deserializeAws_json1_1IdentityPoolTagsType(output.Tags, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1LoginsList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1LookupDeveloperIdentityResponse = function (output, context) {\n return {\n DeveloperUserIdentifierList: output.DeveloperUserIdentifierList !== undefined && output.DeveloperUserIdentifierList !== null\n ? deserializeAws_json1_1DeveloperUserIdentifierList(output.DeveloperUserIdentifierList, context)\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1MappingRule = function (output, context) {\n return {\n Claim: output.Claim !== undefined && output.Claim !== null ? output.Claim : undefined,\n MatchType: output.MatchType !== undefined && output.MatchType !== null ? output.MatchType : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined,\n };\n};\nvar deserializeAws_json1_1MappingRulesList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1MappingRule(entry, context);\n });\n};\nvar deserializeAws_json1_1MergeDeveloperIdentitiesResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1NotAuthorizedException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1OIDCProviderList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1ResourceConflictException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1ResourceNotFoundException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1RoleMapping = function (output, context) {\n return {\n AmbiguousRoleResolution: output.AmbiguousRoleResolution !== undefined && output.AmbiguousRoleResolution !== null\n ? output.AmbiguousRoleResolution\n : undefined,\n RulesConfiguration: output.RulesConfiguration !== undefined && output.RulesConfiguration !== null\n ? deserializeAws_json1_1RulesConfigurationType(output.RulesConfiguration, context)\n : undefined,\n Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined,\n };\n};\nvar deserializeAws_json1_1RoleMappingMap = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_json1_1RoleMapping(value, context), _b));\n }, {});\n};\nvar deserializeAws_json1_1RolesMap = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar deserializeAws_json1_1RulesConfigurationType = function (output, context) {\n return {\n Rules: output.Rules !== undefined && output.Rules !== null\n ? deserializeAws_json1_1MappingRulesList(output.Rules, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1SAMLProviderList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1TagResourceResponse = function (output, context) {\n return {};\n};\nvar deserializeAws_json1_1TooManyRequestsException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1UnprocessedIdentityId = function (output, context) {\n return {\n ErrorCode: output.ErrorCode !== undefined && output.ErrorCode !== null ? output.ErrorCode : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1UnprocessedIdentityIdList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1UnprocessedIdentityId(entry, context);\n });\n};\nvar deserializeAws_json1_1UntagResourceResponse = function (output, context) {\n return {};\n};\nvar deserializeMetadata = function (output) {\n var _a;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\n// Collect low-level response body stream to Uint8Array.\nvar collectBody = function (streamBody, context) {\n if (streamBody === void 0) { streamBody = new Uint8Array(); }\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\n// Encode Uint8Array data into string with utf-8.\nvar collectBodyString = function (streamBody, context) {\n return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });\n};\nvar buildHttpRpcRequest = function (context, headers, path, resolvedHostname, body) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, contents;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n contents = {\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n path: path,\n headers: headers,\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (body !== undefined) {\n contents.body = body;\n }\n return [2 /*return*/, new __HttpRequest(contents)];\n }\n });\n}); };\nvar parseBody = function (streamBody, context) {\n return collectBodyString(streamBody, context).then(function (encoded) {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n });\n};\n/**\n * Load an error code for the aws.rest-json-1.1 protocol.\n */\nvar loadRestJsonErrorCode = function (output, data) {\n var findKey = function (object, key) { return Object.keys(object).find(function (k) { return k.toLowerCase() === key.toLowerCase(); }); };\n var sanitizeErrorCode = function (rawValue) {\n var cleanValue = rawValue;\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n var headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n return \"\";\n};\n//# sourceMappingURL=Aws_json1_1.js.map","import { __awaiter, __generator } from \"tslib\";\nexport var deserializerMiddleware = function (options, deserializer) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var response, parsed;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, next(args)];\n case 1:\n response = (_a.sent()).response;\n return [4 /*yield*/, deserializer(response, options)];\n case 2:\n parsed = _a.sent();\n return [2 /*return*/, {\n response: response,\n output: parsed,\n }];\n }\n });\n}); }; }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemVyTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZXNlcmlhbGl6ZXJNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFTQSxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxVQUNwQyxPQUFxQixFQUNyQixZQUEwRCxJQUNqQixPQUFBLFVBQ3pDLElBQXVDLEVBQ3ZDLE9BQWdDLElBQ00sT0FBQSxVQUN0QyxJQUF3Qzs7OztvQkFFbkIscUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFBOztnQkFBN0IsUUFBUSxHQUFLLENBQUEsU0FBZ0IsQ0FBQSxTQUFyQjtnQkFDRCxxQkFBTSxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFBOztnQkFBOUMsTUFBTSxHQUFHLFNBQXFDO2dCQUNwRCxzQkFBTzt3QkFDTCxRQUFRLFVBQUE7d0JBQ1IsTUFBTSxFQUFFLE1BQWdCO3FCQUN6QixFQUFDOzs7S0FDSCxFQVR1QyxDQVN2QyxFQVowQyxDQVkxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVzZXJpYWxpemVIYW5kbGVyLFxuICBEZXNlcmlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIERlc2VyaWFsaXplSGFuZGxlck91dHB1dCxcbiAgRGVzZXJpYWxpemVNaWRkbGV3YXJlLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgUmVzcG9uc2VEZXNlcmlhbGl6ZXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemVyTWlkZGxld2FyZSA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0LCBSdW50aW1lVXRpbHMgPSBhbnk+KFxuICBvcHRpb25zOiBSdW50aW1lVXRpbHMsXG4gIGRlc2VyaWFsaXplcjogUmVzcG9uc2VEZXNlcmlhbGl6ZXI8YW55LCBhbnksIFJ1bnRpbWVVdGlscz5cbik6IERlc2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PiA9PiAoXG4gIG5leHQ6IERlc2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IERlc2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PiA9PiBhc3luYyAoXG4gIGFyZ3M6IERlc2VyaWFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD5cbik6IFByb21pc2U8RGVzZXJpYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgY29uc3QgeyByZXNwb25zZSB9ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgY29uc3QgcGFyc2VkID0gYXdhaXQgZGVzZXJpYWxpemVyKHJlc3BvbnNlLCBvcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICByZXNwb25zZSxcbiAgICBvdXRwdXQ6IHBhcnNlZCBhcyBPdXRwdXQsXG4gIH07XG59O1xuIl19","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var serializerMiddleware = function (options, serializer) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, serializer(args.input, options)];\n case 1:\n request = _a.sent();\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n}); }; }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplck1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplck1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVVBLE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLFVBQ2xDLE9BQXFCLEVBQ3JCLFVBQWdELElBQ1QsT0FBQSxVQUN2QyxJQUFxQyxFQUNyQyxPQUFnQyxJQUNJLE9BQUEsVUFDcEMsSUFBc0M7Ozs7b0JBRXRCLHFCQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFBOztnQkFBL0MsT0FBTyxHQUFHLFNBQXFDO2dCQUNyRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOzs7S0FDSixFQVJxQyxDQVFyQyxFQVh3QyxDQVd4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW5kcG9pbnRCZWFyZXIsXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBSZXF1ZXN0U2VyaWFsaXplcixcbiAgU2VyaWFsaXplSGFuZGxlcixcbiAgU2VyaWFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgU2VyaWFsaXplSGFuZGxlck91dHB1dCxcbiAgU2VyaWFsaXplTWlkZGxld2FyZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVyTWlkZGxld2FyZSA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0LCBSdW50aW1lVXRpbHMgZXh0ZW5kcyBFbmRwb2ludEJlYXJlcj4oXG4gIG9wdGlvbnM6IFJ1bnRpbWVVdGlscyxcbiAgc2VyaWFsaXplcjogUmVxdWVzdFNlcmlhbGl6ZXI8YW55LCBSdW50aW1lVXRpbHM+XG4pOiBTZXJpYWxpemVNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+ID0+IChcbiAgbmV4dDogU2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IFNlcmlhbGl6ZUhhbmRsZXI8SW5wdXQsIE91dHB1dD4gPT4gYXN5bmMgKFxuICBhcmdzOiBTZXJpYWxpemVIYW5kbGVyQXJndW1lbnRzPElucHV0PlxuKTogUHJvbWlzZTxTZXJpYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHNlcmlhbGl6ZXIoYXJncy5pbnB1dCwgb3B0aW9ucyk7XG4gIHJldHVybiBuZXh0KHtcbiAgICAuLi5hcmdzLFxuICAgIHJlcXVlc3QsXG4gIH0pO1xufTtcbiJdfQ==","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport var deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport var serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: function (commandStack) {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyZGVQbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyZGVQbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQThCO0lBQ3JFLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQ3RCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLDBCQUEwQixHQUE0QjtJQUNqRSxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLElBQUksRUFBRSxXQUFXO0lBQ2pCLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztJQUNwQixRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRixNQUFNLFVBQVUsY0FBYyxDQUs1QixNQUFvQixFQUNwQixVQUFnRCxFQUNoRCxZQUFpRTtJQUVqRSxPQUFPO1FBQ0wsWUFBWSxFQUFFLFVBQUMsWUFBb0Q7WUFDakUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztZQUM3RixZQUFZLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlc2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIEVuZHBvaW50QmVhcmVyLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgTWlkZGxld2FyZVN0YWNrLFxuICBQbHVnZ2FibGUsXG4gIFJlcXVlc3RTZXJpYWxpemVyLFxuICBSZXNwb25zZURlc2VyaWFsaXplcixcbiAgU2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlIH0gZnJvbSBcIi4vZGVzZXJpYWxpemVyTWlkZGxld2FyZVwiO1xuaW1wb3J0IHsgc2VyaWFsaXplck1pZGRsZXdhcmUgfSBmcm9tIFwiLi9zZXJpYWxpemVyTWlkZGxld2FyZVwiO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemVyTWlkZGxld2FyZU9wdGlvbjogRGVzZXJpYWxpemVIYW5kbGVyT3B0aW9ucyA9IHtcbiAgbmFtZTogXCJkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlXCIsXG4gIHN0ZXA6IFwiZGVzZXJpYWxpemVcIixcbiAgdGFnczogW1wiREVTRVJJQUxJWkVSXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVyTWlkZGxld2FyZU9wdGlvbjogU2VyaWFsaXplSGFuZGxlck9wdGlvbnMgPSB7XG4gIG5hbWU6IFwic2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgc3RlcDogXCJzZXJpYWxpemVcIixcbiAgdGFnczogW1wiU0VSSUFMSVpFUlwiXSxcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VyZGVQbHVnaW48XG4gIElucHV0VHlwZSBleHRlbmRzIG9iamVjdCxcbiAgU2VyRGVDb250ZXh0IGV4dGVuZHMgRW5kcG9pbnRCZWFyZXIsXG4gIE91dHB1dFR5cGUgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlclxuPihcbiAgY29uZmlnOiBTZXJEZUNvbnRleHQsXG4gIHNlcmlhbGl6ZXI6IFJlcXVlc3RTZXJpYWxpemVyPGFueSwgU2VyRGVDb250ZXh0PixcbiAgZGVzZXJpYWxpemVyOiBSZXNwb25zZURlc2VyaWFsaXplcjxPdXRwdXRUeXBlLCBhbnksIFNlckRlQ29udGV4dD5cbik6IFBsdWdnYWJsZTxJbnB1dFR5cGUsIE91dHB1dFR5cGU+IHtcbiAgcmV0dXJuIHtcbiAgICBhcHBseVRvU3RhY2s6IChjb21tYW5kU3RhY2s6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+KSA9PiB7XG4gICAgICBjb21tYW5kU3RhY2suYWRkKGRlc2VyaWFsaXplck1pZGRsZXdhcmUoY29uZmlnLCBkZXNlcmlhbGl6ZXIpLCBkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlT3B0aW9uKTtcbiAgICAgIGNvbW1hbmRTdGFjay5hZGQoc2VyaWFsaXplck1pZGRsZXdhcmUoY29uZmlnLCBzZXJpYWxpemVyKSwgc2VyaWFsaXplck1pZGRsZXdhcmVPcHRpb24pO1xuICAgIH0sXG4gIH07XG59XG4iXX0=","import { __assign, __read, __spread, __values } from \"tslib\";\nexport var constructStack = function () {\n var absoluteEntries = [];\n var relativeEntries = [];\n var entriesNameSet = new Set();\n var sort = function (entries) {\n return entries.sort(function (a, b) {\n return stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"];\n });\n };\n var removeByName = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var removeByReference = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name)\n entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var cloneTo = function (toStack) {\n absoluteEntries.forEach(function (entry) {\n //@ts-ignore\n toStack.add(entry.middleware, __assign({}, entry));\n });\n relativeEntries.forEach(function (entry) {\n //@ts-ignore\n toStack.addRelativeTo(entry.middleware, __assign({}, entry));\n });\n return toStack;\n };\n var expandRelativeMiddlewareList = function (from) {\n var expandedMiddlewareList = [];\n from.before.forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spread(expandRelativeMiddlewareList(entry)));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spread(expandRelativeMiddlewareList(entry)));\n }\n });\n return expandedMiddlewareList;\n };\n /**\n * Get a final list of middleware in the order of being executed in the resolved handler.\n */\n var getMiddlewareList = function () {\n var normalizedAbsoluteEntries = [];\n var normalizedRelativeEntries = [];\n var normalizedEntriesNameMap = {};\n absoluteEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach(function (entry) {\n if (entry.toMiddleware) {\n var toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n throw new Error(entry.toMiddleware + \" is not found when adding \" + (entry.name || \"anonymous\") + \" middleware \" + entry.relation + \" \" + entry.toMiddleware);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n var mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce(function (wholeList, expendedMiddlewareList) {\n // TODO: Replace it with Array.flat();\n wholeList.push.apply(wholeList, __spread(expendedMiddlewareList));\n return wholeList;\n }, []);\n return mainChain.map(function (entry) { return entry.middleware; });\n };\n var stack = {\n add: function (middleware, options) {\n if (options === void 0) { options = {}; }\n var name = options.name, override = options.override;\n var entry = __assign({ step: \"initialize\", priority: \"normal\", middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = absoluteEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(\"\\\"\" + name + \"\\\" middleware with \" + toOverride.priority + \" priority in \" + toOverride.step + \" step cannot be \" +\n (\"overridden by same-name middleware with \" + entry.priority + \" priority in \" + entry.step + \" step.\"));\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: function (middleware, options) {\n var name = options.name, override = options.override;\n var entry = __assign({ middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = relativeEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(\"\\\"\" + name + \"\\\" middleware \" + toOverride.relation + \" \\\"\" + toOverride.toMiddleware + \"\\\" middleware cannot be overridden \" +\n (\"by same-name middleware \" + entry.relation + \" \\\"\" + entry.toMiddleware + \"\\\" middleware.\"));\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n clone: function () { return cloneTo(constructStack()); },\n use: function (plugin) {\n plugin.applyToStack(stack);\n },\n remove: function (toRemove) {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n var tags = entry.tags, name = entry.name;\n if (tags && tags.includes(toRemove)) {\n if (name)\n entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: function (from) {\n var cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n resolve: function (handler, context) {\n var e_1, _a;\n try {\n for (var _b = __values(getMiddlewareList().reverse()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var middleware = _c.value;\n handler = middleware(handler, context);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return handler;\n },\n };\n return stack;\n};\nvar stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nvar priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlkZGxld2FyZVN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01pZGRsZXdhcmVTdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBZ0JBLE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRztJQUM1QixJQUFJLGVBQWUsR0FBNkMsRUFBRSxDQUFDO0lBQ25FLElBQUksZUFBZSxHQUE2QyxFQUFFLENBQUM7SUFDbkUsSUFBTSxjQUFjLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFOUMsSUFBTSxJQUFJLEdBQUcsVUFBbUQsT0FBWTtRQUMxRSxPQUFBLE9BQU8sQ0FBQyxJQUFJLENBQ1YsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUNILE9BQUEsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDekMsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDO1FBRGpGLENBQ2lGLENBQ3BGO0lBSkQsQ0FJQyxDQUFDO0lBRUosSUFBTSxZQUFZLEdBQUcsVUFBQyxRQUFnQjtRQUNwQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFxQztZQUNyRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3pDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2hDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUNGLGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQztJQUVGLElBQU0saUJBQWlCLEdBQUcsVUFBQyxRQUF1QztRQUNoRSxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFxQztZQUNyRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO2dCQUNqQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixJQUFJLEtBQUssQ0FBQyxJQUFJO29CQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsRCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFDRixlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFFRixJQUFNLE9BQU8sR0FBRyxVQUNkLE9BQStDO1FBRS9DLGVBQWUsQ0FBQyxPQUFPLENBQUMsVUFBQyxLQUFLO1lBQzVCLFlBQVk7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLGVBQU8sS0FBSyxFQUFHLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUM1QixZQUFZO1lBQ1osT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxlQUFPLEtBQUssRUFBRyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsSUFBTSw0QkFBNEIsR0FBRyxVQUNuQyxJQUErRDtRQUUvRCxJQUFNLHNCQUFzQixHQUFxQyxFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBQyxLQUFLO1lBQ3hCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDekQsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BDO2lCQUFNO2dCQUNMLHNCQUFzQixDQUFDLElBQUksT0FBM0Isc0JBQXNCLFdBQVMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLEdBQUU7YUFDckU7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFDLEtBQUs7WUFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN6RCxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEM7aUJBQU07Z0JBQ0wsc0JBQXNCLENBQUMsSUFBSSxPQUEzQixzQkFBc0IsV0FBUyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsR0FBRTthQUNyRTtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILElBQU0saUJBQWlCLEdBQUc7UUFDeEIsSUFBTSx5QkFBeUIsR0FBd0UsRUFBRSxDQUFDO1FBQzFHLElBQU0seUJBQXlCLEdBQXdFLEVBQUUsQ0FBQztRQUMxRyxJQUFNLHdCQUF3QixHQUUxQixFQUFFLENBQUM7UUFFUCxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUM1QixJQUFNLGVBQWUseUJBQ2hCLEtBQUssS0FDUixNQUFNLEVBQUUsRUFBRSxFQUNWLEtBQUssRUFBRSxFQUFFLEdBQ1YsQ0FBQztZQUNGLElBQUksZUFBZSxDQUFDLElBQUk7Z0JBQUUsd0JBQXdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQztZQUMzRix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUM1QixJQUFNLGVBQWUseUJBQ2hCLEtBQUssS0FDUixNQUFNLEVBQUUsRUFBRSxFQUNWLEtBQUssRUFBRSxFQUFFLEdBQ1YsQ0FBQztZQUNGLElBQUksZUFBZSxDQUFDLElBQUk7Z0JBQUUsd0JBQXdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQztZQUMzRix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFFSCx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsVUFBQyxLQUFLO1lBQ3RDLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtnQkFDdEIsSUFBTSxZQUFZLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7b0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ1YsS0FBSyxDQUFDLFlBQVksbUNBQTZCLEtBQUssQ0FBQyxJQUFJLElBQUksV0FBVyxxQkFBZSxLQUFLLENBQUMsUUFBUSxTQUN0RyxLQUFLLENBQUMsWUFDTixDQUNILENBQUM7aUJBQ0g7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtvQkFDOUIsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2hDO2dCQUNELElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7b0JBQy9CLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNqQzthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUM7YUFDOUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO2FBQ2pDLE1BQU0sQ0FBQyxVQUFDLFNBQVMsRUFBRSxzQkFBc0I7WUFDeEMsc0NBQXNDO1lBQ3RDLFNBQVMsQ0FBQyxJQUFJLE9BQWQsU0FBUyxXQUFTLHNCQUFzQixHQUFFO1lBQzFDLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsRUFBRSxFQUFzQyxDQUFDLENBQUM7UUFDN0MsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQUMsS0FBSyxJQUFLLE9BQUEsS0FBSyxDQUFDLFVBQVUsRUFBaEIsQ0FBZ0IsQ0FBQyxDQUFDO0lBQ3BELENBQUMsQ0FBQztJQUVGLElBQU0sS0FBSyxHQUFHO1FBQ1osR0FBRyxFQUFFLFVBQUMsVUFBeUMsRUFBRSxPQUErQztZQUEvQyx3QkFBQSxFQUFBLFlBQStDO1lBQ3RGLElBQUEsSUFBSSxHQUFlLE9BQU8sS0FBdEIsRUFBRSxRQUFRLEdBQUssT0FBTyxTQUFaLENBQWE7WUFDbkMsSUFBTSxLQUFLLGNBQ1QsSUFBSSxFQUFFLFlBQVksRUFDbEIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsVUFBVSxZQUFBLElBQ1AsT0FBTyxDQUNYLENBQUM7WUFDRixJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxRQUFRO3dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQThCLElBQUksTUFBRyxDQUFDLENBQUM7b0JBQ3RFLElBQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksRUFBbkIsQ0FBbUIsQ0FBQyxDQUFDO29CQUNsRixJQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ3BELElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFFBQVEsRUFBRTt3QkFDNUUsTUFBTSxJQUFJLEtBQUssQ0FDYixPQUFJLElBQUksMkJBQXFCLFVBQVUsQ0FBQyxRQUFRLHFCQUFnQixVQUFVLENBQUMsSUFBSSxxQkFBa0I7NkJBQy9GLDZDQUEyQyxLQUFLLENBQUMsUUFBUSxxQkFBZ0IsS0FBSyxDQUFDLElBQUksV0FBUSxDQUFBLENBQzlGLENBQUM7cUJBQ0g7b0JBQ0QsZUFBZSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzVDO2dCQUNELGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7WUFDRCxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFFRCxhQUFhLEVBQUUsVUFBQyxVQUF5QyxFQUFFLE9BQTBDO1lBQzNGLElBQUEsSUFBSSxHQUFlLE9BQU8sS0FBdEIsRUFBRSxRQUFRLEdBQUssT0FBTyxTQUFaLENBQWE7WUFDbkMsSUFBTSxLQUFLLGNBQ1QsVUFBVSxZQUFBLElBQ1AsT0FBTyxDQUNYLENBQUM7WUFDRixJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxRQUFRO3dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQThCLElBQUksTUFBRyxDQUFDLENBQUM7b0JBQ3RFLElBQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksRUFBbkIsQ0FBbUIsQ0FBQyxDQUFDO29CQUNsRixJQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ3BELElBQUksVUFBVSxDQUFDLFlBQVksS0FBSyxLQUFLLENBQUMsWUFBWSxJQUFJLFVBQVUsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFFBQVEsRUFBRTt3QkFDNUYsTUFBTSxJQUFJLEtBQUssQ0FDYixPQUFJLElBQUksc0JBQWdCLFVBQVUsQ0FBQyxRQUFRLFdBQUssVUFBVSxDQUFDLFlBQVksd0NBQW9DOzZCQUN6Ryw2QkFBMkIsS0FBSyxDQUFDLFFBQVEsV0FBSyxLQUFLLENBQUMsWUFBWSxtQkFBZSxDQUFBLENBQ2xGLENBQUM7cUJBQ0g7b0JBQ0QsZUFBZSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzVDO2dCQUNELGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7WUFDRCxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFFRCxLQUFLLEVBQUUsY0FBTSxPQUFBLE9BQU8sQ0FBQyxjQUFjLEVBQWlCLENBQUMsRUFBeEMsQ0FBd0M7UUFFckQsR0FBRyxFQUFFLFVBQUMsTUFBZ0M7WUFDcEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsTUFBTSxFQUFFLFVBQUMsUUFBZ0Q7WUFDdkQsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUFFLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDOztnQkFDM0QsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsV0FBVyxFQUFFLFVBQUMsUUFBZ0I7WUFDNUIsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQU0sUUFBUSxHQUFHLFVBQUMsS0FBcUM7Z0JBQzdDLElBQUEsSUFBSSxHQUFXLEtBQUssS0FBaEIsRUFBRSxJQUFJLEdBQUssS0FBSyxLQUFWLENBQVc7Z0JBQzdCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ25DLElBQUksSUFBSTt3QkFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0QyxTQUFTLEdBQUcsSUFBSSxDQUFDO29CQUNqQixPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUMsQ0FBQztZQUNGLGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLEVBQUUsVUFDTixJQUE0QztZQUU1QyxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxFQUF5QixDQUFDLENBQUM7WUFDaEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsWUFBWSxFQUFFLE9BQU87UUFFckIsT0FBTyxFQUFFLFVBQ1AsT0FBa0QsRUFDbEQsT0FBZ0M7OztnQkFFaEMsS0FBeUIsSUFBQSxLQUFBLFNBQUEsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBbkQsSUFBTSxVQUFVLFdBQUE7b0JBQ25CLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBcUMsRUFBRSxPQUFPLENBQVEsQ0FBQztpQkFDN0U7Ozs7Ozs7OztZQUNELE9BQU8sT0FBeUMsQ0FBQztRQUNuRCxDQUFDO0tBQ0YsQ0FBQztJQUNGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsSUFBTSxXQUFXLEdBQThCO0lBQzdDLFVBQVUsRUFBRSxDQUFDO0lBQ2IsU0FBUyxFQUFFLENBQUM7SUFDWixLQUFLLEVBQUUsQ0FBQztJQUNSLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsRUFBRSxDQUFDO0NBQ2YsQ0FBQztBQUVGLElBQU0sZUFBZSxHQUFrQztJQUNyRCxJQUFJLEVBQUUsQ0FBQztJQUNQLE1BQU0sRUFBRSxDQUFDO0lBQ1QsR0FBRyxFQUFFLENBQUM7Q0FDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzb2x1dGVMb2NhdGlvbixcbiAgRGVzZXJpYWxpemVIYW5kbGVyLFxuICBIYW5kbGVyLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgSGFuZGxlck9wdGlvbnMsXG4gIE1pZGRsZXdhcmVTdGFjayxcbiAgTWlkZGxld2FyZVR5cGUsXG4gIFBsdWdnYWJsZSxcbiAgUHJpb3JpdHksXG4gIFJlbGF0aXZlTG9jYXRpb24sXG4gIFN0ZXAsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeSwgTWlkZGxld2FyZUVudHJ5LCBOb3JtYWxpemVkLCBSZWxhdGl2ZU1pZGRsZXdhcmVFbnRyeSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBjb25zdHJ1Y3RTdGFjayA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PigpOiBNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4gPT4ge1xuICBsZXQgYWJzb2x1dGVFbnRyaWVzOiBBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PltdID0gW107XG4gIGxldCByZWxhdGl2ZUVudHJpZXM6IFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+W10gPSBbXTtcbiAgY29uc3QgZW50cmllc05hbWVTZXQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXG4gIGNvbnN0IHNvcnQgPSA8VCBleHRlbmRzIEFic29sdXRlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+PihlbnRyaWVzOiBUW10pOiBUW10gPT5cbiAgICBlbnRyaWVzLnNvcnQoXG4gICAgICAoYSwgYikgPT5cbiAgICAgICAgc3RlcFdlaWdodHNbYi5zdGVwXSAtIHN0ZXBXZWlnaHRzW2Euc3RlcF0gfHxcbiAgICAgICAgcHJpb3JpdHlXZWlnaHRzW2IucHJpb3JpdHkgfHwgXCJub3JtYWxcIl0gLSBwcmlvcml0eVdlaWdodHNbYS5wcmlvcml0eSB8fCBcIm5vcm1hbFwiXVxuICAgICk7XG5cbiAgY29uc3QgcmVtb3ZlQnlOYW1lID0gKHRvUmVtb3ZlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICBsZXQgaXNSZW1vdmVkID0gZmFsc2U7XG4gICAgY29uc3QgZmlsdGVyQ2IgPSAoZW50cnk6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKGVudHJ5Lm5hbWUgJiYgZW50cnkubmFtZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgZW50cmllc05hbWVTZXQuZGVsZXRlKHRvUmVtb3ZlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBhYnNvbHV0ZUVudHJpZXMgPSBhYnNvbHV0ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZXR1cm4gaXNSZW1vdmVkO1xuICB9O1xuXG4gIGNvbnN0IHJlbW92ZUJ5UmVmZXJlbmNlID0gKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgIGxldCBpc1JlbW92ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBmaWx0ZXJDYiA9IChlbnRyeTogTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+KTogYm9vbGVhbiA9PiB7XG4gICAgICBpZiAoZW50cnkubWlkZGxld2FyZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKGVudHJ5Lm5hbWUpIGVudHJpZXNOYW1lU2V0LmRlbGV0ZShlbnRyeS5uYW1lKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBhYnNvbHV0ZUVudHJpZXMgPSBhYnNvbHV0ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZXR1cm4gaXNSZW1vdmVkO1xuICB9O1xuXG4gIGNvbnN0IGNsb25lVG8gPSA8SW5wdXRUeXBlIGV4dGVuZHMgSW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBPdXRwdXQ+KFxuICAgIHRvU3RhY2s6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+XG4gICk6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+ID0+IHtcbiAgICBhYnNvbHV0ZUVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdG9TdGFjay5hZGQoZW50cnkubWlkZGxld2FyZSwgeyAuLi5lbnRyeSB9KTtcbiAgICB9KTtcbiAgICByZWxhdGl2ZUVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdG9TdGFjay5hZGRSZWxhdGl2ZVRvKGVudHJ5Lm1pZGRsZXdhcmUsIHsgLi4uZW50cnkgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRvU3RhY2s7XG4gIH07XG5cbiAgY29uc3QgZXhwYW5kUmVsYXRpdmVNaWRkbGV3YXJlTGlzdCA9IChcbiAgICBmcm9tOiBOb3JtYWxpemVkPE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PiwgSW5wdXQsIE91dHB1dD5cbiAgKTogTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+W10gPT4ge1xuICAgIGNvbnN0IGV4cGFuZGVkTWlkZGxld2FyZUxpc3Q6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PltdID0gW107XG4gICAgZnJvbS5iZWZvcmUuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGlmIChlbnRyeS5iZWZvcmUubGVuZ3RoID09PSAwICYmIGVudHJ5LmFmdGVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZW50cnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwYW5kZWRNaWRkbGV3YXJlTGlzdC5wdXNoKC4uLmV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QoZW50cnkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZnJvbSk7XG4gICAgZnJvbS5hZnRlci5yZXZlcnNlKCkuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGlmIChlbnRyeS5iZWZvcmUubGVuZ3RoID09PSAwICYmIGVudHJ5LmFmdGVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZW50cnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwYW5kZWRNaWRkbGV3YXJlTGlzdC5wdXNoKC4uLmV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QoZW50cnkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZXhwYW5kZWRNaWRkbGV3YXJlTGlzdDtcbiAgfTtcblxuICAvKipcbiAgICogR2V0IGEgZmluYWwgbGlzdCBvZiBtaWRkbGV3YXJlIGluIHRoZSBvcmRlciBvZiBiZWluZyBleGVjdXRlZCBpbiB0aGUgcmVzb2x2ZWQgaGFuZGxlci5cbiAgICovXG4gIGNvbnN0IGdldE1pZGRsZXdhcmVMaXN0ID0gKCk6IEFycmF5PE1pZGRsZXdhcmVUeXBlPElucHV0LCBPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZEFic29sdXRlRW50cmllczogTm9ybWFsaXplZDxBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PiwgSW5wdXQsIE91dHB1dD5bXSA9IFtdO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJpZXM6IE5vcm1hbGl6ZWQ8UmVsYXRpdmVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4sIElucHV0LCBPdXRwdXQ+W10gPSBbXTtcbiAgICBjb25zdCBub3JtYWxpemVkRW50cmllc05hbWVNYXA6IHtcbiAgICAgIFttaWRkbGV3YXJlTmFtZTogc3RyaW5nXTogTm9ybWFsaXplZDxNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4sIElucHV0LCBPdXRwdXQ+O1xuICAgIH0gPSB7fTtcblxuICAgIGFic29sdXRlRW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZEVudHJ5ID0ge1xuICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgYmVmb3JlOiBbXSxcbiAgICAgICAgYWZ0ZXI6IFtdLFxuICAgICAgfTtcbiAgICAgIGlmIChub3JtYWxpemVkRW50cnkubmFtZSkgbm9ybWFsaXplZEVudHJpZXNOYW1lTWFwW25vcm1hbGl6ZWRFbnRyeS5uYW1lXSA9IG5vcm1hbGl6ZWRFbnRyeTtcbiAgICAgIG5vcm1hbGl6ZWRBYnNvbHV0ZUVudHJpZXMucHVzaChub3JtYWxpemVkRW50cnkpO1xuICAgIH0pO1xuXG4gICAgcmVsYXRpdmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCBub3JtYWxpemVkRW50cnkgPSB7XG4gICAgICAgIC4uLmVudHJ5LFxuICAgICAgICBiZWZvcmU6IFtdLFxuICAgICAgICBhZnRlcjogW10sXG4gICAgICB9O1xuICAgICAgaWYgKG5vcm1hbGl6ZWRFbnRyeS5uYW1lKSBub3JtYWxpemVkRW50cmllc05hbWVNYXBbbm9ybWFsaXplZEVudHJ5Lm5hbWVdID0gbm9ybWFsaXplZEVudHJ5O1xuICAgICAgbm9ybWFsaXplZFJlbGF0aXZlRW50cmllcy5wdXNoKG5vcm1hbGl6ZWRFbnRyeSk7XG4gICAgfSk7XG5cbiAgICBub3JtYWxpemVkUmVsYXRpdmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBpZiAoZW50cnkudG9NaWRkbGV3YXJlKSB7XG4gICAgICAgIGNvbnN0IHRvTWlkZGxld2FyZSA9IG5vcm1hbGl6ZWRFbnRyaWVzTmFtZU1hcFtlbnRyeS50b01pZGRsZXdhcmVdO1xuICAgICAgICBpZiAodG9NaWRkbGV3YXJlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgJHtlbnRyeS50b01pZGRsZXdhcmV9IGlzIG5vdCBmb3VuZCB3aGVuIGFkZGluZyAke2VudHJ5Lm5hbWUgfHwgXCJhbm9ueW1vdXNcIn0gbWlkZGxld2FyZSAke2VudHJ5LnJlbGF0aW9ufSAke1xuICAgICAgICAgICAgICBlbnRyeS50b01pZGRsZXdhcmVcbiAgICAgICAgICAgIH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkucmVsYXRpb24gPT09IFwiYWZ0ZXJcIikge1xuICAgICAgICAgIHRvTWlkZGxld2FyZS5hZnRlci5wdXNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkucmVsYXRpb24gPT09IFwiYmVmb3JlXCIpIHtcbiAgICAgICAgICB0b01pZGRsZXdhcmUuYmVmb3JlLnB1c2goZW50cnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBtYWluQ2hhaW4gPSBzb3J0KG5vcm1hbGl6ZWRBYnNvbHV0ZUVudHJpZXMpXG4gICAgICAubWFwKGV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QpXG4gICAgICAucmVkdWNlKCh3aG9sZUxpc3QsIGV4cGVuZGVkTWlkZGxld2FyZUxpc3QpID0+IHtcbiAgICAgICAgLy8gVE9ETzogUmVwbGFjZSBpdCB3aXRoIEFycmF5LmZsYXQoKTtcbiAgICAgICAgd2hvbGVMaXN0LnB1c2goLi4uZXhwZW5kZWRNaWRkbGV3YXJlTGlzdCk7XG4gICAgICAgIHJldHVybiB3aG9sZUxpc3Q7XG4gICAgICB9LCBbXSBhcyBNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD5bXSk7XG4gICAgcmV0dXJuIG1haW5DaGFpbi5tYXAoKGVudHJ5KSA9PiBlbnRyeS5taWRkbGV3YXJlKTtcbiAgfTtcblxuICBjb25zdCBzdGFjayA9IHtcbiAgICBhZGQ6IChtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uID0ge30pID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgb3ZlcnJpZGUgfSA9IG9wdGlvbnM7XG4gICAgICBjb25zdCBlbnRyeTogQWJzb2x1dGVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4gPSB7XG4gICAgICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgICAgICBwcmlvcml0eTogXCJub3JtYWxcIixcbiAgICAgICAgbWlkZGxld2FyZSxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIH07XG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICBpZiAoZW50cmllc05hbWVTZXQuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgaWYgKCFvdmVycmlkZSkgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgbWlkZGxld2FyZSBuYW1lICcke25hbWV9J2ApO1xuICAgICAgICAgIGNvbnN0IHRvT3ZlcnJpZGVJbmRleCA9IGFic29sdXRlRW50cmllcy5maW5kSW5kZXgoKGVudHJ5KSA9PiBlbnRyeS5uYW1lID09PSBuYW1lKTtcbiAgICAgICAgICBjb25zdCB0b092ZXJyaWRlID0gYWJzb2x1dGVFbnRyaWVzW3RvT3ZlcnJpZGVJbmRleF07XG4gICAgICAgICAgaWYgKHRvT3ZlcnJpZGUuc3RlcCAhPT0gZW50cnkuc3RlcCB8fCB0b092ZXJyaWRlLnByaW9yaXR5ICE9PSBlbnRyeS5wcmlvcml0eSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgXCIke25hbWV9XCIgbWlkZGxld2FyZSB3aXRoICR7dG9PdmVycmlkZS5wcmlvcml0eX0gcHJpb3JpdHkgaW4gJHt0b092ZXJyaWRlLnN0ZXB9IHN0ZXAgY2Fubm90IGJlIGAgK1xuICAgICAgICAgICAgICAgIGBvdmVycmlkZGVuIGJ5IHNhbWUtbmFtZSBtaWRkbGV3YXJlIHdpdGggJHtlbnRyeS5wcmlvcml0eX0gcHJpb3JpdHkgaW4gJHtlbnRyeS5zdGVwfSBzdGVwLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFic29sdXRlRW50cmllcy5zcGxpY2UodG9PdmVycmlkZUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICBlbnRyaWVzTmFtZVNldC5hZGQobmFtZSk7XG4gICAgICB9XG4gICAgICBhYnNvbHV0ZUVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgfSxcblxuICAgIGFkZFJlbGF0aXZlVG86IChtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBSZWxhdGl2ZUxvY2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUsIG92ZXJyaWRlIH0gPSBvcHRpb25zO1xuICAgICAgY29uc3QgZW50cnk6IFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+ID0ge1xuICAgICAgICBtaWRkbGV3YXJlLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgfTtcbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIGlmIChlbnRyaWVzTmFtZVNldC5oYXMobmFtZSkpIHtcbiAgICAgICAgICBpZiAoIW92ZXJyaWRlKSB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSBtaWRkbGV3YXJlIG5hbWUgJyR7bmFtZX0nYCk7XG4gICAgICAgICAgY29uc3QgdG9PdmVycmlkZUluZGV4ID0gcmVsYXRpdmVFbnRyaWVzLmZpbmRJbmRleCgoZW50cnkpID0+IGVudHJ5Lm5hbWUgPT09IG5hbWUpO1xuICAgICAgICAgIGNvbnN0IHRvT3ZlcnJpZGUgPSByZWxhdGl2ZUVudHJpZXNbdG9PdmVycmlkZUluZGV4XTtcbiAgICAgICAgICBpZiAodG9PdmVycmlkZS50b01pZGRsZXdhcmUgIT09IGVudHJ5LnRvTWlkZGxld2FyZSB8fCB0b092ZXJyaWRlLnJlbGF0aW9uICE9PSBlbnRyeS5yZWxhdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgXCIke25hbWV9XCIgbWlkZGxld2FyZSAke3RvT3ZlcnJpZGUucmVsYXRpb259IFwiJHt0b092ZXJyaWRlLnRvTWlkZGxld2FyZX1cIiBtaWRkbGV3YXJlIGNhbm5vdCBiZSBvdmVycmlkZGVuIGAgK1xuICAgICAgICAgICAgICAgIGBieSBzYW1lLW5hbWUgbWlkZGxld2FyZSAke2VudHJ5LnJlbGF0aW9ufSBcIiR7ZW50cnkudG9NaWRkbGV3YXJlfVwiIG1pZGRsZXdhcmUuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVsYXRpdmVFbnRyaWVzLnNwbGljZSh0b092ZXJyaWRlSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGVudHJpZXNOYW1lU2V0LmFkZChuYW1lKTtcbiAgICAgIH1cbiAgICAgIHJlbGF0aXZlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICB9LFxuXG4gICAgY2xvbmU6ICgpID0+IGNsb25lVG8oY29uc3RydWN0U3RhY2s8SW5wdXQsIE91dHB1dD4oKSksXG5cbiAgICB1c2U6IChwbHVnaW46IFBsdWdnYWJsZTxJbnB1dCwgT3V0cHV0PikgPT4ge1xuICAgICAgcGx1Z2luLmFwcGx5VG9TdGFjayhzdGFjayk7XG4gICAgfSxcblxuICAgIHJlbW92ZTogKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PiB8IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKHR5cGVvZiB0b1JlbW92ZSA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIHJlbW92ZUJ5TmFtZSh0b1JlbW92ZSk7XG4gICAgICBlbHNlIHJldHVybiByZW1vdmVCeVJlZmVyZW5jZSh0b1JlbW92ZSk7XG4gICAgfSxcblxuICAgIHJlbW92ZUJ5VGFnOiAodG9SZW1vdmU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgbGV0IGlzUmVtb3ZlZCA9IGZhbHNlO1xuICAgICAgY29uc3QgZmlsdGVyQ2IgPSAoZW50cnk6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgICBjb25zdCB7IHRhZ3MsIG5hbWUgfSA9IGVudHJ5O1xuICAgICAgICBpZiAodGFncyAmJiB0YWdzLmluY2x1ZGVzKHRvUmVtb3ZlKSkge1xuICAgICAgICAgIGlmIChuYW1lKSBlbnRyaWVzTmFtZVNldC5kZWxldGUobmFtZSk7XG4gICAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9O1xuICAgICAgYWJzb2x1dGVFbnRyaWVzID0gYWJzb2x1dGVFbnRyaWVzLmZpbHRlcihmaWx0ZXJDYik7XG4gICAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICAgIHJldHVybiBpc1JlbW92ZWQ7XG4gICAgfSxcblxuICAgIGNvbmNhdDogPElucHV0VHlwZSBleHRlbmRzIElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgT3V0cHV0PihcbiAgICAgIGZyb206IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+XG4gICAgKTogTWlkZGxld2FyZVN0YWNrPElucHV0VHlwZSwgT3V0cHV0VHlwZT4gPT4ge1xuICAgICAgY29uc3QgY2xvbmVkID0gY2xvbmVUbyhjb25zdHJ1Y3RTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+KCkpO1xuICAgICAgY2xvbmVkLnVzZShmcm9tKTtcbiAgICAgIHJldHVybiBjbG9uZWQ7XG4gICAgfSxcblxuICAgIGFwcGx5VG9TdGFjazogY2xvbmVUbyxcblxuICAgIHJlc29sdmU6IDxJbnB1dFR5cGUgZXh0ZW5kcyBJbnB1dCwgT3V0cHV0VHlwZSBleHRlbmRzIE91dHB1dD4oXG4gICAgICBoYW5kbGVyOiBEZXNlcmlhbGl6ZUhhbmRsZXI8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPixcbiAgICAgIGNvbnRleHQ6IEhhbmRsZXJFeGVjdXRpb25Db250ZXh0XG4gICAgKTogSGFuZGxlcjxJbnB1dFR5cGUsIE91dHB1dFR5cGU+ID0+IHtcbiAgICAgIGZvciAoY29uc3QgbWlkZGxld2FyZSBvZiBnZXRNaWRkbGV3YXJlTGlzdCgpLnJldmVyc2UoKSkge1xuICAgICAgICBoYW5kbGVyID0gbWlkZGxld2FyZShoYW5kbGVyIGFzIEhhbmRsZXI8SW5wdXQsIE91dHB1dFR5cGU+LCBjb250ZXh0KSBhcyBhbnk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFuZGxlciBhcyBIYW5kbGVyPElucHV0VHlwZSwgT3V0cHV0VHlwZT47XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIHN0YWNrO1xufTtcblxuY29uc3Qgc3RlcFdlaWdodHM6IHsgW2tleSBpbiBTdGVwXTogbnVtYmVyIH0gPSB7XG4gIGluaXRpYWxpemU6IDUsXG4gIHNlcmlhbGl6ZTogNCxcbiAgYnVpbGQ6IDMsXG4gIGZpbmFsaXplUmVxdWVzdDogMixcbiAgZGVzZXJpYWxpemU6IDEsXG59O1xuXG5jb25zdCBwcmlvcml0eVdlaWdodHM6IHsgW2tleSBpbiBQcmlvcml0eV06IG51bWJlciB9ID0ge1xuICBoaWdoOiAzLFxuICBub3JtYWw6IDIsXG4gIGxvdzogMSxcbn07XG4iXX0=","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Client = /** @class */ (function () {\n function Client(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n Client.prototype.send = function (command, optionsOrCb, cb) {\n var options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n var callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n var handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then(function (result) { return callback(null, result.output); }, function (err) { return callback(err); })\n .catch(\n // prevent any errors thrown in the callback from triggering an\n // unhandled promise rejection\n function () { });\n }\n else {\n return handler(command).then(function (result) { return result.output; });\n }\n };\n Client.prototype.destroy = function () {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n };\n return Client;\n}());\nexport { Client };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFlM0Q7SUFRRSxnQkFBWSxNQUFtQztRQUZ4QyxvQkFBZSxHQUFHLGNBQWMsRUFBNkIsQ0FBQztRQUduRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBY0QscUJBQUksR0FBSixVQUNFLE9BQStHLEVBQy9HLFdBQXNFLEVBQ3RFLEVBQTBDO1FBRTFDLElBQU0sT0FBTyxHQUFHLE9BQU8sV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUUsSUFBTSxRQUFRLEdBQUcsT0FBTyxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxXQUFxRCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakgsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFzQixFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0YsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLENBQUMsT0FBTyxDQUFDO2lCQUNiLElBQUksQ0FDSCxVQUFDLE1BQU0sSUFBSyxPQUFBLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUE3QixDQUE2QixFQUN6QyxVQUFDLEdBQVEsSUFBSyxPQUFBLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBYixDQUFhLENBQzVCO2lCQUNBLEtBQUs7WUFDSiwrREFBK0Q7WUFDL0QsOEJBQThCO1lBQzlCLGNBQU8sQ0FBQyxDQUNULENBQUM7U0FDTDthQUFNO1lBQ0wsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLE1BQU0sRUFBYixDQUFhLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRCx3QkFBTyxHQUFQO1FBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0UsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBbkRELElBbURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uc3RydWN0U3RhY2sgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1zdGFja1wiO1xuaW1wb3J0IHsgQ2xpZW50IGFzIElDbGllbnQsIENvbW1hbmQsIE1ldGFkYXRhQmVhcmVyLCBSZXF1ZXN0SGFuZGxlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNtaXRoeUNvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+IHtcbiAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyPGFueSwgYW55LCBIYW5kbGVyT3B0aW9ucz47XG4gIC8qKlxuICAgKiBUaGUgQVBJIHZlcnNpb24gc2V0IGludGVybmFsbHkgYnkgdGhlIFNESywgYW5kIGlzXG4gICAqIG5vdCBwbGFubmVkIHRvIGJlIHVzZWQgYnkgY3VzdG9tZXIgY29kZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNtaXRoeVJlc29sdmVkQ29uZmlndXJhdGlvbjxIYW5kbGVyT3B0aW9ucz4gPSBTbWl0aHlDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPjtcblxuZXhwb3J0IGNsYXNzIENsaWVudDxcbiAgSGFuZGxlck9wdGlvbnMsXG4gIENsaWVudElucHV0IGV4dGVuZHMgb2JqZWN0LFxuICBDbGllbnRPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlcixcbiAgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uIGV4dGVuZHMgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPlxuPiBpbXBsZW1lbnRzIElDbGllbnQ8Q2xpZW50SW5wdXQsIENsaWVudE91dHB1dCwgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uPiB7XG4gIHB1YmxpYyBtaWRkbGV3YXJlU3RhY2sgPSBjb25zdHJ1Y3RTdGFjazxDbGllbnRJbnB1dCwgQ2xpZW50T3V0cHV0PigpO1xuICByZWFkb25seSBjb25maWc6IFJlc29sdmVkQ2xpZW50Q29uZmlndXJhdGlvbjtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24pIHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgfVxuICBzZW5kPElucHV0VHlwZSBleHRlbmRzIENsaWVudElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgQ2xpZW50T3V0cHV0PihcbiAgICBjb21tYW5kOiBDb21tYW5kPENsaWVudElucHV0LCBJbnB1dFR5cGUsIENsaWVudE91dHB1dCwgT3V0cHV0VHlwZSwgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPj4sXG4gICAgb3B0aW9ucz86IEhhbmRsZXJPcHRpb25zXG4gICk6IFByb21pc2U8T3V0cHV0VHlwZT47XG4gIHNlbmQ8SW5wdXRUeXBlIGV4dGVuZHMgQ2xpZW50SW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBDbGllbnRPdXRwdXQ+KFxuICAgIGNvbW1hbmQ6IENvbW1hbmQ8Q2xpZW50SW5wdXQsIElucHV0VHlwZSwgQ2xpZW50T3V0cHV0LCBPdXRwdXRUeXBlLCBTbWl0aHlSZXNvbHZlZENvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+PixcbiAgICBjYjogKGVycjogYW55LCBkYXRhPzogT3V0cHV0VHlwZSkgPT4gdm9pZFxuICApOiB2b2lkO1xuICBzZW5kPElucHV0VHlwZSBleHRlbmRzIENsaWVudElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgQ2xpZW50T3V0cHV0PihcbiAgICBjb21tYW5kOiBDb21tYW5kPENsaWVudElucHV0LCBJbnB1dFR5cGUsIENsaWVudE91dHB1dCwgT3V0cHV0VHlwZSwgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPj4sXG4gICAgb3B0aW9uczogSGFuZGxlck9wdGlvbnMsXG4gICAgY2I6IChlcnI6IGFueSwgZGF0YT86IE91dHB1dFR5cGUpID0+IHZvaWRcbiAgKTogdm9pZDtcbiAgc2VuZDxJbnB1dFR5cGUgZXh0ZW5kcyBDbGllbnRJbnB1dCwgT3V0cHV0VHlwZSBleHRlbmRzIENsaWVudE91dHB1dD4oXG4gICAgY29tbWFuZDogQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXRUeXBlLCBDbGllbnRPdXRwdXQsIE91dHB1dFR5cGUsIFNtaXRoeVJlc29sdmVkQ29uZmlndXJhdGlvbjxIYW5kbGVyT3B0aW9ucz4+LFxuICAgIG9wdGlvbnNPckNiPzogSGFuZGxlck9wdGlvbnMgfCAoKGVycjogYW55LCBkYXRhPzogT3V0cHV0VHlwZSkgPT4gdm9pZCksXG4gICAgY2I/OiAoZXJyOiBhbnksIGRhdGE/OiBPdXRwdXRUeXBlKSA9PiB2b2lkXG4gICk6IFByb21pc2U8T3V0cHV0VHlwZT4gfCB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gdHlwZW9mIG9wdGlvbnNPckNiICE9PSBcImZ1bmN0aW9uXCIgPyBvcHRpb25zT3JDYiA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiID8gKG9wdGlvbnNPckNiIGFzIChlcnI6IGFueSwgZGF0YT86IE91dHB1dFR5cGUpID0+IHZvaWQpIDogY2I7XG4gICAgY29uc3QgaGFuZGxlciA9IGNvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUodGhpcy5taWRkbGV3YXJlU3RhY2sgYXMgYW55LCB0aGlzLmNvbmZpZywgb3B0aW9ucyk7XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICBoYW5kbGVyKGNvbW1hbmQpXG4gICAgICAgIC50aGVuKFxuICAgICAgICAgIChyZXN1bHQpID0+IGNhbGxiYWNrKG51bGwsIHJlc3VsdC5vdXRwdXQpLFxuICAgICAgICAgIChlcnI6IGFueSkgPT4gY2FsbGJhY2soZXJyKVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChcbiAgICAgICAgICAvLyBwcmV2ZW50IGFueSBlcnJvcnMgdGhyb3duIGluIHRoZSBjYWxsYmFjayBmcm9tIHRyaWdnZXJpbmcgYW5cbiAgICAgICAgICAvLyB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25cbiAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaGFuZGxlcihjb21tYW5kKS50aGVuKChyZXN1bHQpID0+IHJlc3VsdC5vdXRwdXQpO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnJlcXVlc3RIYW5kbGVyLmRlc3Ryb3kpIHRoaXMuY29uZmlnLnJlcXVlc3RIYW5kbGVyLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Command = /** @class */ (function () {\n function Command() {\n this.middlewareStack = constructStack();\n }\n return Command;\n}());\nexport { Command };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUczRDtJQUFBO1FBUVcsb0JBQWUsR0FBb0MsY0FBYyxFQUFpQixDQUFDO0lBTTlGLENBQUM7SUFBRCxjQUFDO0FBQUQsQ0FBQyxBQWRELElBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25zdHJ1Y3RTdGFjayB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXN0YWNrXCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzIElDb21tYW5kLCBIYW5kbGVyLCBNZXRhZGF0YUJlYXJlciwgTWlkZGxld2FyZVN0YWNrIGFzIElNaWRkbGV3YXJlU3RhY2sgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbW1hbmQ8XG4gIElucHV0IGV4dGVuZHMgQ2xpZW50SW5wdXQsXG4gIE91dHB1dCBleHRlbmRzIENsaWVudE91dHB1dCxcbiAgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uLFxuICBDbGllbnRJbnB1dCBleHRlbmRzIG9iamVjdCA9IGFueSxcbiAgQ2xpZW50T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXIgPSBhbnlcbj4gaW1wbGVtZW50cyBJQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXQsIENsaWVudE91dHB1dCwgT3V0cHV0LCBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24+IHtcbiAgYWJzdHJhY3QgaW5wdXQ6IElucHV0O1xuICByZWFkb25seSBtaWRkbGV3YXJlU3RhY2s6IElNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4gPSBjb25zdHJ1Y3RTdGFjazxJbnB1dCwgT3V0cHV0PigpO1xuICBhYnN0cmFjdCByZXNvbHZlTWlkZGxld2FyZShcbiAgICBzdGFjazogSU1pZGRsZXdhcmVTdGFjazxDbGllbnRJbnB1dCwgQ2xpZW50T3V0cHV0PixcbiAgICBjb25maWd1cmF0aW9uOiBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24sXG4gICAgb3B0aW9uczogYW55XG4gICk6IEhhbmRsZXI8SW5wdXQsIE91dHB1dD47XG59XG4iXX0=","/**\n * Lazy String holder for JSON typed contents.\n */\nimport { __extends, __read, __spread } from \"tslib\";\n/**\n * Because of https://github.com/microsoft/tslib/issues/95,\n * TS 'extends' shim doesn't support extending native types like String.\n * So here we create StringWrapper that duplicate everything from String\n * class including its prototype chain. So we can extend from here.\n */\n// @ts-ignore StringWrapper implementation is not a simple constructor\nexport var StringWrapper = function () {\n //@ts-ignore 'this' cannot be assigned to any, but Object.getPrototypeOf accepts any\n var Class = Object.getPrototypeOf(this).constructor;\n var Constructor = Function.bind.apply(String, __spread([null], arguments));\n //@ts-ignore Call wrapped String constructor directly, don't bother typing it.\n var instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(StringWrapper, String);\nvar LazyJsonString = /** @class */ (function (_super) {\n __extends(LazyJsonString, _super);\n function LazyJsonString() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LazyJsonString.prototype.deserializeJSON = function () {\n return JSON.parse(_super.prototype.toString.call(this));\n };\n LazyJsonString.prototype.toJSON = function () {\n return _super.prototype.toString.call(this);\n };\n LazyJsonString.fromObject = function (object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n };\n return LazyJsonString;\n}(StringWrapper));\nexport { LazyJsonString };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1qc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xhenktanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7QUFNSDs7Ozs7R0FLRztBQUNILHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQWtCO0lBQzFDLG9GQUFvRjtJQUNwRixJQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUN0RCxJQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLFlBQUcsSUFBVyxHQUFLLFNBQVMsRUFBRSxDQUFDO0lBQzdFLDhFQUE4RTtJQUM5RSxJQUFNLFFBQVEsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxPQUFPLFFBQWtCLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBQ0YsYUFBYSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7SUFDeEQsV0FBVyxFQUFFO1FBQ1gsS0FBSyxFQUFFLGFBQWE7UUFDcEIsVUFBVSxFQUFFLEtBQUs7UUFDakIsUUFBUSxFQUFFLElBQUk7UUFDZCxZQUFZLEVBQUUsSUFBSTtLQUNuQjtDQUNGLENBQUMsQ0FBQztBQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRTdDO0lBQW9DLGtDQUFhO0lBQWpEOztJQWlCQSxDQUFDO0lBaEJDLHdDQUFlLEdBQWY7UUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQU0sUUFBUSxXQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsK0JBQU0sR0FBTjtRQUNFLE9BQU8saUJBQU0sUUFBUSxXQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHlCQUFVLEdBQWpCLFVBQWtCLE1BQVc7UUFDM0IsSUFBSSxNQUFNLFlBQVksY0FBYyxFQUFFO1lBQ3BDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFBTSxJQUFJLE1BQU0sWUFBWSxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ2pFLE9BQU8sSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBakJELENBQW9DLGFBQWEsR0FpQmhEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMYXp5IFN0cmluZyBob2xkZXIgZm9yIEpTT04gdHlwZWQgY29udGVudHMuXG4gKi9cblxuaW50ZXJmYWNlIFN0cmluZ1dyYXBwZXIge1xuICBuZXcgKGFyZzogYW55KTogU3RyaW5nO1xufVxuXG4vKipcbiAqIEJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC90c2xpYi9pc3N1ZXMvOTUsXG4gKiBUUyAnZXh0ZW5kcycgc2hpbSBkb2Vzbid0IHN1cHBvcnQgZXh0ZW5kaW5nIG5hdGl2ZSB0eXBlcyBsaWtlIFN0cmluZy5cbiAqIFNvIGhlcmUgd2UgY3JlYXRlIFN0cmluZ1dyYXBwZXIgdGhhdCBkdXBsaWNhdGUgZXZlcnl0aGluZyBmcm9tIFN0cmluZ1xuICogY2xhc3MgaW5jbHVkaW5nIGl0cyBwcm90b3R5cGUgY2hhaW4uIFNvIHdlIGNhbiBleHRlbmQgZnJvbSBoZXJlLlxuICovXG4vLyBAdHMtaWdub3JlIFN0cmluZ1dyYXBwZXIgaW1wbGVtZW50YXRpb24gaXMgbm90IGEgc2ltcGxlIGNvbnN0cnVjdG9yXG5leHBvcnQgY29uc3QgU3RyaW5nV3JhcHBlcjogU3RyaW5nV3JhcHBlciA9IGZ1bmN0aW9uICgpIHtcbiAgLy9AdHMtaWdub3JlICd0aGlzJyBjYW5ub3QgYmUgYXNzaWduZWQgdG8gYW55LCBidXQgT2JqZWN0LmdldFByb3RvdHlwZU9mIGFjY2VwdHMgYW55XG4gIGNvbnN0IENsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yO1xuICBjb25zdCBDb25zdHJ1Y3RvciA9IEZ1bmN0aW9uLmJpbmQuYXBwbHkoU3RyaW5nLCBbbnVsbCBhcyBhbnksIC4uLmFyZ3VtZW50c10pO1xuICAvL0B0cy1pZ25vcmUgQ2FsbCB3cmFwcGVkIFN0cmluZyBjb25zdHJ1Y3RvciBkaXJlY3RseSwgZG9uJ3QgYm90aGVyIHR5cGluZyBpdC5cbiAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ29uc3RydWN0b3IoKTtcbiAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGluc3RhbmNlLCBDbGFzcy5wcm90b3R5cGUpO1xuICByZXR1cm4gaW5zdGFuY2UgYXMgU3RyaW5nO1xufTtcblN0cmluZ1dyYXBwZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTdHJpbmcucHJvdG90eXBlLCB7XG4gIGNvbnN0cnVjdG9yOiB7XG4gICAgdmFsdWU6IFN0cmluZ1dyYXBwZXIsXG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICB9LFxufSk7XG5PYmplY3Quc2V0UHJvdG90eXBlT2YoU3RyaW5nV3JhcHBlciwgU3RyaW5nKTtcblxuZXhwb3J0IGNsYXNzIExhenlKc29uU3RyaW5nIGV4dGVuZHMgU3RyaW5nV3JhcHBlciB7XG4gIGRlc2VyaWFsaXplSlNPTigpOiBhbnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHN1cGVyLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbU9iamVjdChvYmplY3Q6IGFueSk6IExhenlKc29uU3RyaW5nIHtcbiAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgTGF6eUpzb25TdHJpbmcpIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfSBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBTdHJpbmcgfHwgdHlwZW9mIG9iamVjdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIG5ldyBMYXp5SnNvblN0cmluZyhvYmplY3QpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IExhenlKc29uU3RyaW5nKEpTT04uc3RyaW5naWZ5KG9iamVjdCkpO1xuICB9XG59XG4iXX0=","import { __extends } from \"tslib\";\nimport { GetCredentialsForIdentityInput, GetCredentialsForIdentityResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1GetCredentialsForIdentityCommand, serializeAws_json1_1GetCredentialsForIdentityCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Returns credentials for the provided identity ID. Any provided logins will be\n * validated against supported login providers. If the token is for\n * cognito-identity.amazonaws.com, it will be passed through to AWS Security Token Service\n * with the appropriate role for the token.

\n *

This is a public API. You do not need any credentials to call this API.

\n */\nvar GetCredentialsForIdentityCommand = /** @class */ (function (_super) {\n __extends(GetCredentialsForIdentityCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetCredentialsForIdentityCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n GetCredentialsForIdentityCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CognitoIdentityClient\";\n var commandName = \"GetCredentialsForIdentityCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetCredentialsForIdentityInput.filterSensitiveLog,\n outputFilterSensitiveLog: GetCredentialsForIdentityResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetCredentialsForIdentityCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1GetCredentialsForIdentityCommand(input, context);\n };\n GetCredentialsForIdentityCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1GetCredentialsForIdentityCommand(output, context);\n };\n return GetCredentialsForIdentityCommand;\n}($Command));\nexport { GetCredentialsForIdentityCommand };\n//# sourceMappingURL=GetCredentialsForIdentityCommand.js.map","import { __extends } from \"tslib\";\n/**\n * An error representing a failure of an individual credential provider.\n *\n * This error class has special meaning to the {@link chain} method. If a\n * provider in the chain is rejected with an error, the chain will only proceed\n * to the next provider if the value of the `tryNextLink` property on the error\n * is truthy. This allows individual providers to halt the chain and also\n * ensures the chain will stop if an entirely unexpected error is encountered.\n */\nvar ProviderError = /** @class */ (function (_super) {\n __extends(ProviderError, _super);\n function ProviderError(message, tryNextLink) {\n if (tryNextLink === void 0) { tryNextLink = true; }\n var _this = _super.call(this, message) || this;\n _this.tryNextLink = tryNextLink;\n return _this;\n }\n return ProviderError;\n}(Error));\nexport { ProviderError };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdmlkZXJFcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Qcm92aWRlckVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7R0FRRztBQUNIO0lBQW1DLGlDQUFLO0lBQ3RDLHVCQUFZLE9BQWUsRUFBa0IsV0FBMkI7UUFBM0IsNEJBQUEsRUFBQSxrQkFBMkI7UUFBeEUsWUFDRSxrQkFBTSxPQUFPLENBQUMsU0FDZjtRQUY0QyxpQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7O0lBRXhFLENBQUM7SUFDSCxvQkFBQztBQUFELENBQUMsQUFKRCxDQUFtQyxLQUFLLEdBSXZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBbiBlcnJvciByZXByZXNlbnRpbmcgYSBmYWlsdXJlIG9mIGFuIGluZGl2aWR1YWwgY3JlZGVudGlhbCBwcm92aWRlci5cbiAqXG4gKiBUaGlzIGVycm9yIGNsYXNzIGhhcyBzcGVjaWFsIG1lYW5pbmcgdG8gdGhlIHtAbGluayBjaGFpbn0gbWV0aG9kLiBJZiBhXG4gKiBwcm92aWRlciBpbiB0aGUgY2hhaW4gaXMgcmVqZWN0ZWQgd2l0aCBhbiBlcnJvciwgdGhlIGNoYWluIHdpbGwgb25seSBwcm9jZWVkXG4gKiB0byB0aGUgbmV4dCBwcm92aWRlciBpZiB0aGUgdmFsdWUgb2YgdGhlIGB0cnlOZXh0TGlua2AgcHJvcGVydHkgb24gdGhlIGVycm9yXG4gKiBpcyB0cnV0aHkuIFRoaXMgYWxsb3dzIGluZGl2aWR1YWwgcHJvdmlkZXJzIHRvIGhhbHQgdGhlIGNoYWluIGFuZCBhbHNvXG4gKiBlbnN1cmVzIHRoZSBjaGFpbiB3aWxsIHN0b3AgaWYgYW4gZW50aXJlbHkgdW5leHBlY3RlZCBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIHJlYWRvbmx5IHRyeU5leHRMaW5rOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG59XG4iXX0=","import { __read } from \"tslib\";\n/**\n * @internal\n */\nexport function resolveLogins(logins) {\n return Promise.all(Object.keys(logins).reduce(function (arr, name) {\n var tokenOrProvider = logins[name];\n if (typeof tokenOrProvider === \"string\") {\n arr.push([name, tokenOrProvider]);\n }\n else {\n arr.push(tokenOrProvider().then(function (token) { return [name, token]; }));\n }\n return arr;\n }, [])).then(function (resolvedPairs) {\n return resolvedPairs.reduce(function (logins, _a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n logins[key] = value;\n return logins;\n }, {});\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZUxvZ2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNvbHZlTG9naW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQTs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBYztJQUMxQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsR0FBd0QsRUFBRSxJQUFZO1FBQ2hHLElBQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRTtZQUN2QyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBcUIsQ0FBQyxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLEtBQUssSUFBSyxPQUFBLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBcUIsRUFBakMsQ0FBaUMsQ0FBQyxDQUFDLENBQUM7U0FDaEY7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFzQyxDQUFDLENBQzNDLENBQUMsSUFBSSxDQUFDLFVBQUMsYUFBYTtRQUNuQixPQUFBLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBQyxNQUFzQixFQUFFLEVBQVk7Z0JBQVosS0FBQSxhQUFZLEVBQVgsR0FBRyxRQUFBLEVBQUUsS0FBSyxRQUFBO1lBQ3ZELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQW9CLENBQUM7SUFIeEIsQ0FHd0IsQ0FDekIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dpbnMsIFJlc29sdmVkTG9naW5zIH0gZnJvbSBcIi4vTG9naW5zXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTG9naW5zKGxvZ2luczogTG9naW5zKTogUHJvbWlzZTxSZXNvbHZlZExvZ2lucz4ge1xuICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgT2JqZWN0LmtleXMobG9naW5zKS5yZWR1Y2UoKGFycjogQXJyYXk8W3N0cmluZywgc3RyaW5nXSB8IFByb21pc2U8W3N0cmluZywgc3RyaW5nXT4+LCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHRva2VuT3JQcm92aWRlciA9IGxvZ2luc1tuYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgdG9rZW5PclByb3ZpZGVyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGFyci5wdXNoKFtuYW1lLCB0b2tlbk9yUHJvdmlkZXJdIGFzIFtzdHJpbmcsIHN0cmluZ10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXJyLnB1c2godG9rZW5PclByb3ZpZGVyKCkudGhlbigodG9rZW4pID0+IFtuYW1lLCB0b2tlbl0gYXMgW3N0cmluZywgc3RyaW5nXSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycjtcbiAgICB9LCBbXSBhcyBBcnJheTxQcm9taXNlPFtzdHJpbmcsIHN0cmluZ10+PilcbiAgKS50aGVuKChyZXNvbHZlZFBhaXJzKSA9PlxuICAgIHJlc29sdmVkUGFpcnMucmVkdWNlKChsb2dpbnM6IFJlc29sdmVkTG9naW5zLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGxvZ2luc1trZXldID0gdmFsdWU7XG4gICAgICByZXR1cm4gbG9naW5zO1xuICAgIH0sIHt9IGFzIFJlc29sdmVkTG9naW5zKVxuICApO1xufVxuIl19","import { __awaiter, __generator } from \"tslib\";\nimport { GetCredentialsForIdentityCommand } from \"@aws-sdk/client-cognito-identity\";\nimport { ProviderError } from \"@aws-sdk/property-provider\";\nimport { resolveLogins } from \"./resolveLogins\";\n/**\n * Retrieves temporary AWS credentials using Amazon Cognito's\n * `GetCredentialsForIdentity` operation.\n *\n * Results from this function call are not cached internally.\n */\nexport function fromCognitoIdentity(parameters) {\n var _this = this;\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, _c, AccessKeyId, Expiration, _d, SecretKey, SessionToken, _e, _f, _g, _h;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _f = (_e = parameters.client).send;\n _g = GetCredentialsForIdentityCommand.bind;\n _j = {\n CustomRoleArn: parameters.customRoleArn,\n IdentityId: parameters.identityId\n };\n if (!parameters.logins) return [3 /*break*/, 2];\n return [4 /*yield*/, resolveLogins(parameters.logins)];\n case 1:\n _h = _k.sent();\n return [3 /*break*/, 3];\n case 2:\n _h = undefined;\n _k.label = 3;\n case 3: return [4 /*yield*/, _f.apply(_e, [new (_g.apply(GetCredentialsForIdentityCommand, [void 0, (_j.Logins = _h,\n _j)]))()])];\n case 4:\n _a = (_k.sent()).Credentials, _b = _a === void 0 ? throwOnMissingCredentials() : _a, _c = _b.AccessKeyId, AccessKeyId = _c === void 0 ? throwOnMissingAccessKeyId() : _c, Expiration = _b.Expiration, _d = _b.SecretKey, SecretKey = _d === void 0 ? throwOnMissingSecretKey() : _d, SessionToken = _b.SessionToken;\n return [2 /*return*/, {\n identityId: parameters.identityId,\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n }];\n }\n });\n }); };\n}\nfunction throwOnMissingAccessKeyId() {\n throw new ProviderError(\"Response from Amazon Cognito contained no access key ID\");\n}\nfunction throwOnMissingCredentials() {\n throw new ProviderError(\"Response from Amazon Cognito contained no credentials\");\n}\nfunction throwOnMissingSecretKey() {\n throw new ProviderError(\"Response from Amazon Cognito contained no secret key\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUNvZ25pdG9JZGVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mcm9tQ29nbml0b0lkZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBU2hEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFVBQXlDO0lBQTdFLGlCQXlCQztJQXhCQyxPQUFPOzs7Ozs7b0JBUUssS0FBQSxDQUFBLEtBQUEsVUFBVSxDQUFDLE1BQU0sQ0FBQSxDQUFDLElBQUksQ0FBQTt5QkFDMUIsZ0NBQWdDOzt3QkFDbEMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO3dCQUN2QyxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVU7O3lCQUN6QixVQUFVLENBQUMsTUFBTSxFQUFqQix3QkFBaUI7b0JBQUcscUJBQU0sYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBQTs7b0JBQXRDLEtBQUEsU0FBc0MsQ0FBQTs7O29CQUFHLEtBQUEsU0FBUyxDQUFBOzt3QkFKOUUscUJBQU0sY0FDUixjQUFJLGdDQUFnQyxZQUdsQyxTQUFNLEtBQXdFO3dDQUM5RSxFQUNILEVBQUE7O29CQVpDLEtBTUUsQ0FBQSxTQU1ILENBQUEsWUFQZ0MsRUFML0IscUJBS0kseUJBQXlCLEVBQUUsS0FBQSxFQUo3QixtQkFBeUMsRUFBekMsV0FBVyxtQkFBRyx5QkFBeUIsRUFBRSxLQUFBLEVBQ3pDLFVBQVUsZ0JBQUEsRUFDVixpQkFBcUMsRUFBckMsU0FBUyxtQkFBRyx1QkFBdUIsRUFBRSxLQUFBLEVBQ3JDLFlBQVksa0JBQUE7b0JBVWhCLHNCQUFPOzRCQUNMLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTs0QkFDakMsV0FBVyxFQUFFLFdBQVc7NEJBQ3hCLGVBQWUsRUFBRSxTQUFTOzRCQUMxQixZQUFZLEVBQUUsWUFBWTs0QkFDMUIsVUFBVSxFQUFFLFVBQVU7eUJBQ3ZCLEVBQUM7OztTQUNILENBQUM7QUFDSixDQUFDO0FBVUQsU0FBUyx5QkFBeUI7SUFDaEMsTUFBTSxJQUFJLGFBQWEsQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFTLHlCQUF5QjtJQUNoQyxNQUFNLElBQUksYUFBYSxDQUFDLHVEQUF1RCxDQUFDLENBQUM7QUFDbkYsQ0FBQztBQUVELFNBQVMsdUJBQXVCO0lBQzlCLE1BQU0sSUFBSSxhQUFhLENBQUMsc0RBQXNELENBQUMsQ0FBQztBQUNsRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eUNvbW1hbmQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWNvZ25pdG8taWRlbnRpdHlcIjtcbmltcG9ydCB7IFByb3ZpZGVyRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvcHJvcGVydHktcHJvdmlkZXJcIjtcbmltcG9ydCB7IENyZWRlbnRpYWxQcm92aWRlciwgQ3JlZGVudGlhbHMgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB9IGZyb20gXCIuL0NvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHJlc29sdmVMb2dpbnMgfSBmcm9tIFwiLi9yZXNvbHZlTG9naW5zXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b0lkZW50aXR5Q3JlZGVudGlhbHMgZXh0ZW5kcyBDcmVkZW50aWFscyB7XG4gIC8qKlxuICAgKiBUaGUgQ29nbml0byBJRCByZXR1cm5lZCBieSB0aGUgbGFzdCBjYWxsIHRvIEFXUy5Db2duaXRvSWRlbnRpdHkuZ2V0T3BlbklkVG9rZW4oKS5cbiAgICovXG4gIGlkZW50aXR5SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGVtcG9yYXJ5IEFXUyBjcmVkZW50aWFscyB1c2luZyBBbWF6b24gQ29nbml0bydzXG4gKiBgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eWAgb3BlcmF0aW9uLlxuICpcbiAqIFJlc3VsdHMgZnJvbSB0aGlzIGZ1bmN0aW9uIGNhbGwgYXJlIG5vdCBjYWNoZWQgaW50ZXJuYWxseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21Db2duaXRvSWRlbnRpdHkocGFyYW1ldGVyczogRnJvbUNvZ25pdG9JZGVudGl0eVBhcmFtZXRlcnMpOiBDcmVkZW50aWFsUHJvdmlkZXIge1xuICByZXR1cm4gYXN5bmMgKCk6IFByb21pc2U8Q29nbml0b0lkZW50aXR5Q3JlZGVudGlhbHM+ID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBDcmVkZW50aWFsczoge1xuICAgICAgICBBY2Nlc3NLZXlJZCA9IHRocm93T25NaXNzaW5nQWNjZXNzS2V5SWQoKSxcbiAgICAgICAgRXhwaXJhdGlvbixcbiAgICAgICAgU2VjcmV0S2V5ID0gdGhyb3dPbk1pc3NpbmdTZWNyZXRLZXkoKSxcbiAgICAgICAgU2Vzc2lvblRva2VuLFxuICAgICAgfSA9IHRocm93T25NaXNzaW5nQ3JlZGVudGlhbHMoKSxcbiAgICB9ID0gYXdhaXQgcGFyYW1ldGVycy5jbGllbnQuc2VuZChcbiAgICAgIG5ldyBHZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5Q29tbWFuZCh7XG4gICAgICAgIEN1c3RvbVJvbGVBcm46IHBhcmFtZXRlcnMuY3VzdG9tUm9sZUFybixcbiAgICAgICAgSWRlbnRpdHlJZDogcGFyYW1ldGVycy5pZGVudGl0eUlkLFxuICAgICAgICBMb2dpbnM6IHBhcmFtZXRlcnMubG9naW5zID8gYXdhaXQgcmVzb2x2ZUxvZ2lucyhwYXJhbWV0ZXJzLmxvZ2lucykgOiB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWRlbnRpdHlJZDogcGFyYW1ldGVycy5pZGVudGl0eUlkLFxuICAgICAgYWNjZXNzS2V5SWQ6IEFjY2Vzc0tleUlkLFxuICAgICAgc2VjcmV0QWNjZXNzS2V5OiBTZWNyZXRLZXksXG4gICAgICBzZXNzaW9uVG9rZW46IFNlc3Npb25Ub2tlbixcbiAgICAgIGV4cGlyYXRpb246IEV4cGlyYXRpb24sXG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGcm9tQ29nbml0b0lkZW50aXR5UGFyYW1ldGVycyBleHRlbmRzIENvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnMge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgaWRlbnRpdHkgYWdhaW5zdCB3aGljaCBjcmVkZW50aWFscyB3aWxsIGJlXG4gICAqIGlzc3VlZC5cbiAgICovXG4gIGlkZW50aXR5SWQ6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gdGhyb3dPbk1pc3NpbmdBY2Nlc3NLZXlJZCgpOiBuZXZlciB7XG4gIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiUmVzcG9uc2UgZnJvbSBBbWF6b24gQ29nbml0byBjb250YWluZWQgbm8gYWNjZXNzIGtleSBJRFwiKTtcbn1cblxuZnVuY3Rpb24gdGhyb3dPbk1pc3NpbmdDcmVkZW50aWFscygpOiBuZXZlciB7XG4gIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiUmVzcG9uc2UgZnJvbSBBbWF6b24gQ29nbml0byBjb250YWluZWQgbm8gY3JlZGVudGlhbHNcIik7XG59XG5cbmZ1bmN0aW9uIHRocm93T25NaXNzaW5nU2VjcmV0S2V5KCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFByb3ZpZGVyRXJyb3IoXCJSZXNwb25zZSBmcm9tIEFtYXpvbiBDb2duaXRvIGNvbnRhaW5lZCBubyBzZWNyZXQga2V5XCIpO1xufVxuIl19","import { __extends } from \"tslib\";\nimport { GetIdInput, GetIdResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1GetIdCommand, serializeAws_json1_1GetIdCommand } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Generates (or retrieves) a Cognito ID. Supplying multiple logins will create an\n * implicit linked account.

\n *

This is a public API. You do not need any credentials to call this API.

\n */\nvar GetIdCommand = /** @class */ (function (_super) {\n __extends(GetIdCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetIdCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n GetIdCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CognitoIdentityClient\";\n var commandName = \"GetIdCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetIdInput.filterSensitiveLog,\n outputFilterSensitiveLog: GetIdResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetIdCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1GetIdCommand(input, context);\n };\n GetIdCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1GetIdCommand(output, context);\n };\n return GetIdCommand;\n}($Command));\nexport { GetIdCommand };\n//# sourceMappingURL=GetIdCommand.js.map","var STORE_NAME = \"IdentityIds\";\nvar IndexedDbStorage = /** @class */ (function () {\n function IndexedDbStorage(dbName) {\n if (dbName === void 0) { dbName = \"aws:cognito-identity-ids\"; }\n this.dbName = dbName;\n }\n IndexedDbStorage.prototype.getItem = function (key) {\n return this.withObjectStore(\"readonly\", function (store) {\n var req = store.get(key);\n return new Promise(function (resolve) {\n req.onerror = function () { return resolve(null); };\n req.onsuccess = function () { return resolve(req.result ? req.result.value : null); };\n });\n }).catch(function () { return null; });\n };\n IndexedDbStorage.prototype.removeItem = function (key) {\n return this.withObjectStore(\"readwrite\", function (store) {\n var req = store.delete(key);\n return new Promise(function (resolve, reject) {\n req.onerror = function () { return reject(req.error); };\n req.onsuccess = function () { return resolve(); };\n });\n });\n };\n IndexedDbStorage.prototype.setItem = function (id, value) {\n return this.withObjectStore(\"readwrite\", function (store) {\n var req = store.put({ id: id, value: value });\n return new Promise(function (resolve, reject) {\n req.onerror = function () { return reject(req.error); };\n req.onsuccess = function () { return resolve(); };\n });\n });\n };\n IndexedDbStorage.prototype.getDb = function () {\n var openDbRequest = self.indexedDB.open(this.dbName, 1);\n return new Promise(function (resolve, reject) {\n openDbRequest.onsuccess = function () {\n resolve(openDbRequest.result);\n };\n openDbRequest.onerror = function () {\n reject(openDbRequest.error);\n };\n openDbRequest.onblocked = function () {\n reject(new Error(\"Unable to access DB\"));\n };\n openDbRequest.onupgradeneeded = function () {\n var db = openDbRequest.result;\n db.onerror = function () {\n reject(new Error(\"Failed to create object store\"));\n };\n db.createObjectStore(STORE_NAME, { keyPath: \"id\" });\n };\n });\n };\n IndexedDbStorage.prototype.withObjectStore = function (mode, action) {\n return this.getDb().then(function (db) {\n var tx = db.transaction(STORE_NAME, mode);\n tx.oncomplete = function () { return db.close(); };\n return new Promise(function (resolve, reject) {\n tx.onerror = function () { return reject(tx.error); };\n resolve(action(tx.objectStore(STORE_NAME)));\n }).catch(function (err) {\n db.close();\n throw err;\n });\n });\n };\n return IndexedDbStorage;\n}());\nexport { IndexedDbStorage };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5kZXhlZERiU3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JbmRleGVkRGJTdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLElBQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQztBQUVqQztJQUNFLDBCQUE2QixNQUEyQztRQUEzQyx1QkFBQSxFQUFBLG1DQUEyQztRQUEzQyxXQUFNLEdBQU4sTUFBTSxDQUFxQztJQUFHLENBQUM7SUFFNUUsa0NBQU8sR0FBUCxVQUFRLEdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxVQUFDLEtBQUs7WUFDNUMsSUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUUzQixPQUFPLElBQUksT0FBTyxDQUFnQixVQUFDLE9BQU87Z0JBQ3hDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBYixDQUFhLENBQUM7Z0JBRWxDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsY0FBTSxPQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQTdDLENBQTZDLENBQUM7WUFDdEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBTSxPQUFBLElBQUksRUFBSixDQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQscUNBQVUsR0FBVixVQUFXLEdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxVQUFDLEtBQUs7WUFDN0MsSUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUU5QixPQUFPLElBQUksT0FBTyxDQUFPLFVBQUMsT0FBTyxFQUFFLE1BQU07Z0JBQ3ZDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQWpCLENBQWlCLENBQUM7Z0JBRXRDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsY0FBTSxPQUFBLE9BQU8sRUFBRSxFQUFULENBQVMsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtDQUFPLEdBQVAsVUFBUSxFQUFVLEVBQUUsS0FBYTtRQUMvQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLFVBQUMsS0FBSztZQUM3QyxJQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFBLEVBQUUsS0FBSyxPQUFBLEVBQUUsQ0FBQyxDQUFDO1lBRXJDLE9BQU8sSUFBSSxPQUFPLENBQU8sVUFBQyxPQUFPLEVBQUUsTUFBTTtnQkFDdkMsR0FBRyxDQUFDLE9BQU8sR0FBRyxjQUFNLE9BQUEsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBakIsQ0FBaUIsQ0FBQztnQkFFdEMsR0FBRyxDQUFDLFNBQVMsR0FBRyxjQUFNLE9BQUEsT0FBTyxFQUFFLEVBQVQsQ0FBUyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0NBQUssR0FBYjtRQUNFLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1lBQ2pDLGFBQWEsQ0FBQyxTQUFTLEdBQUc7Z0JBQ3hCLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDO1lBRUYsYUFBYSxDQUFDLE9BQU8sR0FBRztnQkFDdEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUM7WUFFRixhQUFhLENBQUMsU0FBUyxHQUFHO2dCQUN4QixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1lBQzNDLENBQUMsQ0FBQztZQUVGLGFBQWEsQ0FBQyxlQUFlLEdBQUc7Z0JBQzlCLElBQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7Z0JBQ2hDLEVBQUUsQ0FBQyxPQUFPLEdBQUc7b0JBQ1gsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQztnQkFDckQsQ0FBQyxDQUFDO2dCQUVGLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTywwQ0FBZSxHQUF2QixVQUEyQixJQUF3QixFQUFFLE1BQTZDO1FBQ2hHLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLEVBQUU7WUFDMUIsSUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUMsRUFBRSxDQUFDLFVBQVUsR0FBRyxjQUFNLE9BQUEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFWLENBQVUsQ0FBQztZQUVqQyxPQUFPLElBQUksT0FBTyxDQUFJLFVBQUMsT0FBTyxFQUFFLE1BQU07Z0JBQ3BDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQWhCLENBQWdCLENBQUM7Z0JBRXBDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQUMsR0FBRztnQkFDWCxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxHQUFHLENBQUM7WUFDWixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNILHVCQUFDO0FBQUQsQ0FBQyxBQWhGRCxJQWdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tIFwiLi9TdG9yYWdlXCI7XG5cbmNvbnN0IFNUT1JFX05BTUUgPSBcIklkZW50aXR5SWRzXCI7XG5cbmV4cG9ydCBjbGFzcyBJbmRleGVkRGJTdG9yYWdlIGltcGxlbWVudHMgU3RvcmFnZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGJOYW1lOiBzdHJpbmcgPSBcImF3czpjb2duaXRvLWlkZW50aXR5LWlkc1wiKSB7fVxuXG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkb25seVwiLCAoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IHJlcSA9IHN0b3JlLmdldChrZXkpO1xuXG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nIHwgbnVsbD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgcmVxLm9uZXJyb3IgPSAoKSA9PiByZXNvbHZlKG51bGwpO1xuXG4gICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSAoKSA9PiByZXNvbHZlKHJlcS5yZXN1bHQgPyByZXEucmVzdWx0LnZhbHVlIDogbnVsbCk7XG4gICAgICB9KTtcbiAgICB9KS5jYXRjaCgoKSA9PiBudWxsKTtcbiAgfVxuXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkd3JpdGVcIiwgKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCByZXEgPSBzdG9yZS5kZWxldGUoa2V5KTtcblxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgcmVxLm9uZXJyb3IgPSAoKSA9PiByZWplY3QocmVxLmVycm9yKTtcblxuICAgICAgICByZXEub25zdWNjZXNzID0gKCkgPT4gcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRJdGVtKGlkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkd3JpdGVcIiwgKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCByZXEgPSBzdG9yZS5wdXQoeyBpZCwgdmFsdWUgfSk7XG5cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHJlcS5vbmVycm9yID0gKCkgPT4gcmVqZWN0KHJlcS5lcnJvcik7XG5cbiAgICAgICAgcmVxLm9uc3VjY2VzcyA9ICgpID0+IHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYigpOiBQcm9taXNlPElEQkRhdGFiYXNlPiB7XG4gICAgY29uc3Qgb3BlbkRiUmVxdWVzdCA9IHNlbGYuaW5kZXhlZERCLm9wZW4odGhpcy5kYk5hbWUsIDEpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZShvcGVuRGJSZXF1ZXN0LnJlc3VsdCk7XG4gICAgICB9O1xuXG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHJlamVjdChvcGVuRGJSZXF1ZXN0LmVycm9yKTtcbiAgICAgIH07XG5cbiAgICAgIG9wZW5EYlJlcXVlc3Qub25ibG9ja2VkID0gKCkgPT4ge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKFwiVW5hYmxlIHRvIGFjY2VzcyBEQlwiKSk7XG4gICAgICB9O1xuXG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgZGIgPSBvcGVuRGJSZXF1ZXN0LnJlc3VsdDtcbiAgICAgICAgZGIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKFwiRmFpbGVkIHRvIGNyZWF0ZSBvYmplY3Qgc3RvcmVcIikpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKFNUT1JFX05BTUUsIHsga2V5UGF0aDogXCJpZFwiIH0pO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgd2l0aE9iamVjdFN0b3JlPFI+KG1vZGU6IElEQlRyYW5zYWN0aW9uTW9kZSwgYWN0aW9uOiAoc3RvcmU6IElEQk9iamVjdFN0b3JlKSA9PiBQcm9taXNlPFI+KTogUHJvbWlzZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGIoKS50aGVuKChkYikgPT4ge1xuICAgICAgY29uc3QgdHggPSBkYi50cmFuc2FjdGlvbihTVE9SRV9OQU1FLCBtb2RlKTtcbiAgICAgIHR4Lm9uY29tcGxldGUgPSAoKSA9PiBkYi5jbG9zZSgpO1xuXG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0eC5vbmVycm9yID0gKCkgPT4gcmVqZWN0KHR4LmVycm9yKTtcblxuICAgICAgICByZXNvbHZlKGFjdGlvbih0eC5vYmplY3RTdG9yZShTVE9SRV9OQU1FKSkpO1xuICAgICAgfSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19","var InMemoryStorage = /** @class */ (function () {\n function InMemoryStorage(store) {\n if (store === void 0) { store = {}; }\n this.store = store;\n }\n InMemoryStorage.prototype.getItem = function (key) {\n if (key in this.store) {\n return this.store[key];\n }\n return null;\n };\n InMemoryStorage.prototype.removeItem = function (key) {\n delete this.store[key];\n };\n InMemoryStorage.prototype.setItem = function (key, value) {\n this.store[key] = value;\n };\n return InMemoryStorage;\n}());\nexport { InMemoryStorage };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5NZW1vcnlTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0luTWVtb3J5U3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtJQUNFLHlCQUFvQixLQUFxQztRQUFyQyxzQkFBQSxFQUFBLFVBQXFDO1FBQXJDLFVBQUssR0FBTCxLQUFLLENBQWdDO0lBQUcsQ0FBQztJQUU3RCxpQ0FBTyxHQUFQLFVBQVEsR0FBVztRQUNqQixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG9DQUFVLEdBQVYsVUFBVyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsaUNBQU8sR0FBUCxVQUFRLEdBQVcsRUFBRSxLQUFhO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFsQkQsSUFrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSBcIi4vU3RvcmFnZVwiO1xuXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlTdG9yYWdlIGltcGxlbWVudHMgU3RvcmFnZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSkge31cblxuICBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKGtleSBpbiB0aGlzLnN0b3JlKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZVtrZXldO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLnN0b3JlW2tleV07XG4gIH1cblxuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZVtrZXldID0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==","import { IndexedDbStorage } from \"./IndexedDbStorage\";\nimport { InMemoryStorage } from \"./InMemoryStorage\";\nvar inMemoryStorage = new InMemoryStorage();\nexport function localStorage() {\n if (typeof self === \"object\" && self.indexedDB) {\n return new IndexedDbStorage();\n }\n if (typeof window === \"object\" && window.localStorage) {\n return window.localStorage;\n }\n return inMemoryStorage;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsU3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsSUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztBQUU5QyxNQUFNLFVBQVUsWUFBWTtJQUMxQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQzlDLE9BQU8sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0tBQy9CO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtRQUNyRCxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUM7S0FDNUI7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5kZXhlZERiU3RvcmFnZSB9IGZyb20gXCIuL0luZGV4ZWREYlN0b3JhZ2VcIjtcbmltcG9ydCB7IEluTWVtb3J5U3RvcmFnZSB9IGZyb20gXCIuL0luTWVtb3J5U3RvcmFnZVwiO1xuaW1wb3J0IHsgU3RvcmFnZSB9IGZyb20gXCIuL1N0b3JhZ2VcIjtcblxuY29uc3QgaW5NZW1vcnlTdG9yYWdlID0gbmV3IEluTWVtb3J5U3RvcmFnZSgpO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxTdG9yYWdlKCk6IFN0b3JhZ2Uge1xuICBpZiAodHlwZW9mIHNlbGYgPT09IFwib2JqZWN0XCIgJiYgc2VsZi5pbmRleGVkREIpIHtcbiAgICByZXR1cm4gbmV3IEluZGV4ZWREYlN0b3JhZ2UoKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UpIHtcbiAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgfVxuXG4gIHJldHVybiBpbk1lbW9yeVN0b3JhZ2U7XG59XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { GetIdCommand } from \"@aws-sdk/client-cognito-identity\";\nimport { ProviderError } from \"@aws-sdk/property-provider\";\nimport { fromCognitoIdentity } from \"./fromCognitoIdentity\";\nimport { localStorage } from \"./localStorage\";\nimport { resolveLogins } from \"./resolveLogins\";\n/**\n * Retrieves or generates a unique identifier using Amazon Cognito's `GetId`\n * operation, then generates temporary AWS credentials using Amazon Cognito's\n * `GetCredentialsForIdentity` operation.\n *\n * Results from `GetId` are cached internally, but results from\n * `GetCredentialsForIdentity` are not.\n */\nexport function fromCognitoIdentityPool(_a) {\n var _this = this;\n var accountId = _a.accountId, _b = _a.cache, cache = _b === void 0 ? localStorage() : _b, client = _a.client, customRoleArn = _a.customRoleArn, identityPoolId = _a.identityPoolId, logins = _a.logins, _c = _a.userIdentifier, userIdentifier = _c === void 0 ? !logins || Object.keys(logins).length === 0 ? \"ANONYMOUS\" : undefined : _c;\n var cacheKey = userIdentifier ? \"aws:cognito-identity-credentials:\" + identityPoolId + \":\" + userIdentifier : undefined;\n var provider = function () { return __awaiter(_this, void 0, void 0, function () {\n var identityId, _a, _b, IdentityId, _c, _d, _e, _f;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = cacheKey;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, cache.getItem(cacheKey)];\n case 1:\n _a = (_h.sent());\n _h.label = 2;\n case 2:\n identityId = _a;\n if (!!identityId) return [3 /*break*/, 7];\n _d = (_c = client).send;\n _e = GetIdCommand.bind;\n _g = {\n AccountId: accountId,\n IdentityPoolId: identityPoolId\n };\n if (!logins) return [3 /*break*/, 4];\n return [4 /*yield*/, resolveLogins(logins)];\n case 3:\n _f = _h.sent();\n return [3 /*break*/, 5];\n case 4:\n _f = undefined;\n _h.label = 5;\n case 5: return [4 /*yield*/, _d.apply(_c, [new (_e.apply(GetIdCommand, [void 0, (_g.Logins = _f,\n _g)]))()])];\n case 6:\n _b = (_h.sent()).IdentityId, IdentityId = _b === void 0 ? throwOnMissingId() : _b;\n identityId = IdentityId;\n if (cacheKey) {\n Promise.resolve(cache.setItem(cacheKey, identityId)).catch(function () { });\n }\n _h.label = 7;\n case 7:\n provider = fromCognitoIdentity({\n client: client,\n customRoleArn: customRoleArn,\n logins: logins,\n identityId: identityId,\n });\n return [2 /*return*/, provider()];\n }\n });\n }); };\n return function () {\n return provider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (cacheKey) {\n Promise.resolve(cache.removeItem(cacheKey)).catch(function () { });\n }\n throw err;\n });\n }); });\n };\n}\nfunction throwOnMissingId() {\n throw new ProviderError(\"Response from Amazon Cognito contained no identity ID\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUNvZ25pdG9JZGVudGl0eVBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnJvbUNvZ25pdG9JZGVudGl0eVBvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEVBUUo7SUFScEMsaUJBNkNDO1FBNUNDLFNBQVMsZUFBQSxFQUNULGFBQXNCLEVBQXRCLEtBQUssbUJBQUcsWUFBWSxFQUFFLEtBQUEsRUFDdEIsTUFBTSxZQUFBLEVBQ04sYUFBYSxtQkFBQSxFQUNiLGNBQWMsb0JBQUEsRUFDZCxNQUFNLFlBQUEsRUFDTixzQkFBc0YsRUFBdEYsY0FBYyxtQkFBRyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFBO0lBRXRGLElBQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsc0NBQW9DLGNBQWMsU0FBSSxjQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFckgsSUFBSSxRQUFRLEdBQXVCOzs7Ozs7b0JBQ2hCLEtBQUEsUUFBUSxDQUFBOzZCQUFSLHdCQUFRO29CQUFLLHFCQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUE7O29CQUE5QixLQUFBLENBQUMsU0FBNkIsQ0FBQyxDQUFBOzs7b0JBQXhELFVBQVUsS0FBOEM7eUJBQ3hELENBQUMsVUFBVSxFQUFYLHdCQUFXO29CQUNxQyxLQUFBLENBQUEsS0FBQSxNQUFNLENBQUEsQ0FBQyxJQUFJLENBQUE7eUJBQ3ZELFlBQVk7O3dCQUNkLFNBQVMsRUFBRSxTQUFTO3dCQUNwQixjQUFjLEVBQUUsY0FBYzs7eUJBQ3RCLE1BQU0sRUFBTix3QkFBTTtvQkFBRyxxQkFBTSxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUE7O29CQUEzQixLQUFBLFNBQTJCLENBQUE7OztvQkFBRyxLQUFBLFNBQVMsQ0FBQTs7d0JBSmhCLHFCQUFNLGNBQ2hELGNBQUksWUFBWSxZQUdkLFNBQU0sS0FBa0Q7d0NBQ3hELEVBQ0gsRUFBQTs7b0JBTk8sS0FBb0MsQ0FBQSxTQU0zQyxDQUFBLFdBTnNDLEVBQS9CLFVBQVUsbUJBQUcsZ0JBQWdCLEVBQUUsS0FBQTtvQkFPdkMsVUFBVSxHQUFHLFVBQVUsQ0FBQztvQkFDeEIsSUFBSSxRQUFRLEVBQUU7d0JBQ1osT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO3FCQUN0RTs7O29CQUdILFFBQVEsR0FBRyxtQkFBbUIsQ0FBQzt3QkFDN0IsTUFBTSxRQUFBO3dCQUNOLGFBQWEsZUFBQTt3QkFDYixNQUFNLFFBQUE7d0JBQ04sVUFBVSxZQUFBO3FCQUNYLENBQUMsQ0FBQztvQkFFSCxzQkFBTyxRQUFRLEVBQUUsRUFBQzs7O1NBQ25CLENBQUM7SUFFRixPQUFPO1FBQ0wsT0FBQSxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBTyxHQUFHOztnQkFDekIsSUFBSSxRQUFRLEVBQUU7b0JBQ1osT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQU8sQ0FBQyxDQUFDLENBQUM7aUJBQzdEO2dCQUVELE1BQU0sR0FBRyxDQUFDOzthQUNYLENBQUM7SUFORixDQU1FLENBQUM7QUFDUCxDQUFDO0FBc0NELFNBQVMsZ0JBQWdCO0lBQ3ZCLE1BQU0sSUFBSSxhQUFhLENBQUMsdURBQXVELENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0SWRDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1jb2duaXRvLWlkZW50aXR5XCI7XG5pbXBvcnQgeyBQcm92aWRlckVycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3BlcnR5LXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBDcmVkZW50aWFsUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB9IGZyb20gXCIuL0NvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGZyb21Db2duaXRvSWRlbnRpdHkgfSBmcm9tIFwiLi9mcm9tQ29nbml0b0lkZW50aXR5XCI7XG5pbXBvcnQgeyBsb2NhbFN0b3JhZ2UgfSBmcm9tIFwiLi9sb2NhbFN0b3JhZ2VcIjtcbmltcG9ydCB7IHJlc29sdmVMb2dpbnMgfSBmcm9tIFwiLi9yZXNvbHZlTG9naW5zXCI7XG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSBcIi4vU3RvcmFnZVwiO1xuXG4vKipcbiAqIFJldHJpZXZlcyBvciBnZW5lcmF0ZXMgYSB1bmlxdWUgaWRlbnRpZmllciB1c2luZyBBbWF6b24gQ29nbml0bydzIGBHZXRJZGBcbiAqIG9wZXJhdGlvbiwgdGhlbiBnZW5lcmF0ZXMgdGVtcG9yYXJ5IEFXUyBjcmVkZW50aWFscyB1c2luZyBBbWF6b24gQ29nbml0bydzXG4gKiBgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eWAgb3BlcmF0aW9uLlxuICpcbiAqIFJlc3VsdHMgZnJvbSBgR2V0SWRgIGFyZSBjYWNoZWQgaW50ZXJuYWxseSwgYnV0IHJlc3VsdHMgZnJvbVxuICogYEdldENyZWRlbnRpYWxzRm9ySWRlbnRpdHlgIGFyZSBub3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQ29nbml0b0lkZW50aXR5UG9vbCh7XG4gIGFjY291bnRJZCxcbiAgY2FjaGUgPSBsb2NhbFN0b3JhZ2UoKSxcbiAgY2xpZW50LFxuICBjdXN0b21Sb2xlQXJuLFxuICBpZGVudGl0eVBvb2xJZCxcbiAgbG9naW5zLFxuICB1c2VySWRlbnRpZmllciA9ICFsb2dpbnMgfHwgT2JqZWN0LmtleXMobG9naW5zKS5sZW5ndGggPT09IDAgPyBcIkFOT05ZTU9VU1wiIDogdW5kZWZpbmVkLFxufTogRnJvbUNvZ25pdG9JZGVudGl0eVBvb2xQYXJhbWV0ZXJzKTogQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgY29uc3QgY2FjaGVLZXkgPSB1c2VySWRlbnRpZmllciA/IGBhd3M6Y29nbml0by1pZGVudGl0eS1jcmVkZW50aWFsczoke2lkZW50aXR5UG9vbElkfToke3VzZXJJZGVudGlmaWVyfWAgOiB1bmRlZmluZWQ7XG5cbiAgbGV0IHByb3ZpZGVyOiBDcmVkZW50aWFsUHJvdmlkZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGlkZW50aXR5SWQgPSBjYWNoZUtleSAmJiAoYXdhaXQgY2FjaGUuZ2V0SXRlbShjYWNoZUtleSkpO1xuICAgIGlmICghaWRlbnRpdHlJZCkge1xuICAgICAgY29uc3QgeyBJZGVudGl0eUlkID0gdGhyb3dPbk1pc3NpbmdJZCgpIH0gPSBhd2FpdCBjbGllbnQuc2VuZChcbiAgICAgICAgbmV3IEdldElkQ29tbWFuZCh7XG4gICAgICAgICAgQWNjb3VudElkOiBhY2NvdW50SWQsXG4gICAgICAgICAgSWRlbnRpdHlQb29sSWQ6IGlkZW50aXR5UG9vbElkLFxuICAgICAgICAgIExvZ2luczogbG9naW5zID8gYXdhaXQgcmVzb2x2ZUxvZ2lucyhsb2dpbnMpIDogdW5kZWZpbmVkLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIGlkZW50aXR5SWQgPSBJZGVudGl0eUlkO1xuICAgICAgaWYgKGNhY2hlS2V5KSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShjYWNoZS5zZXRJdGVtKGNhY2hlS2V5LCBpZGVudGl0eUlkKSkuY2F0Y2goKCkgPT4ge30pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3ZpZGVyID0gZnJvbUNvZ25pdG9JZGVudGl0eSh7XG4gICAgICBjbGllbnQsXG4gICAgICBjdXN0b21Sb2xlQXJuLFxuICAgICAgbG9naW5zLFxuICAgICAgaWRlbnRpdHlJZCxcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm92aWRlcigpO1xuICB9O1xuXG4gIHJldHVybiAoKSA9PlxuICAgIHByb3ZpZGVyKCkuY2F0Y2goYXN5bmMgKGVycikgPT4ge1xuICAgICAgaWYgKGNhY2hlS2V5KSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShjYWNoZS5yZW1vdmVJdGVtKGNhY2hlS2V5KSkuY2F0Y2goKCkgPT4ge30pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbUNvZ25pdG9JZGVudGl0eVBvb2xQYXJhbWV0ZXJzIGV4dGVuZHMgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBBIHN0YW5kYXJkIEFXUyBhY2NvdW50IElEICg5KyBkaWdpdHMpLlxuICAgKi9cbiAgYWNjb3VudElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNhY2hlIGluIHdoaWNoIHRvIHN0b3JlIHJlc29sdmVkIENvZ25pdG8gSWRlbnRpdHlJZHMuIElmIG5vdCBzdXBwbGllZCxcbiAgICogdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXIgd2lsbCBhdHRlbXB0IHRvIHN0b3JlIElkZW50aXR5SWRzIGluIG9uZSBvZiB0aGVcbiAgICogZm9sbG93aW5nIChpbiBvcmRlciBvZiBwcmVmZXJlbmNlKTpcbiAgICogICAxLiBJbmRleGVkREJcbiAgICogICAyLiBMb2NhbFN0b3JhZ2VcbiAgICogICAzLiBBbiBpbi1tZW1vcnkgY2FjaGUgb2JqZWN0IHRoYXQgd2lsbCBub3QgcGVyc2lzdCBiZXR3ZWVuIHBhZ2VzLlxuICAgKlxuICAgKiBJbmRleGVkREIgaXMgcHJlZmVycmVkIHRvIG1heGltaXplIGRhdGEgc2hhcmluZyBiZXR3ZWVuIHRvcC1sZXZlbFxuICAgKiBicm93c2luZyBjb250ZXh0cyBhbmQgd2ViIHdvcmtlcnMuXG4gICAqXG4gICAqIFRoZSBwcm92aWRlciB3aWxsIG5vdCBjYWNoZSBJZGVudGl0eUlkcyBvZiBhdXRoZW50aWNhdGVkIHVzZXJzIHVubGVzcyBhXG4gICAqIHNlcGFyYXRlIGB1c2VySWRlbnRpdGlmZXJgIHBhcmFtZXRlciBpcyBzdXBwbGllZC5cbiAgICovXG4gIGNhY2hlPzogU3RvcmFnZTtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgaWRlbnRpdHkgcG9vbCBmcm9tIHdoaWNoIGFuIGlkZW50aXR5IHNob3VsZFxuICAgKiBiZSByZXRyaWV2ZWQgb3IgZ2VuZXJhdGVkLlxuICAgKi9cbiAgaWRlbnRpdHlQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHVzZXIuIFRoaXMgaXMgZGlzdGluY3QgZnJvbSBhIENvZ25pdG9cbiAgICogSWRlbnRpdHlJZCBhbmQgc2hvdWxkIGluc3RlYWQgYmUgYW4gaWRlbnRpZmllciBtZWFuaW5nZnVsIHRvIHlvdXJcbiAgICogYXBwbGljYXRpb24uIFVzZWQgdG8gY2FjaGUgQ29nbml0byBJZGVudGl0eUlkcyBvbiBhIHBlci11c2VyIGJhc2lzLlxuICAgKi9cbiAgdXNlcklkZW50aWZpZXI/OiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHRocm93T25NaXNzaW5nSWQoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcIlJlc3BvbnNlIGZyb20gQW1hem9uIENvZ25pdG8gY29udGFpbmVkIG5vIGlkZW50aXR5IElEXCIpO1xufVxuIl19","export var escapeUri = function (uri) {\n // AWS percent-encodes some extra non-standard characters in a URI\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\nvar hexEncode = function (c) { return \"%\" + c.charCodeAt(0).toString(16).toUpperCase(); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXVyaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lc2NhcGUtdXJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxJQUFNLFNBQVMsR0FBRyxVQUFDLEdBQVc7SUFDbkMsa0VBQWtFO0lBQ2xFLE9BQUEsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7QUFBdEQsQ0FBc0QsQ0FBQztBQUV6RCxJQUFNLFNBQVMsR0FBRyxVQUFDLENBQVMsSUFBSyxPQUFBLE1BQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFJLEVBQWhELENBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZXNjYXBlVXJpID0gKHVyaTogc3RyaW5nKTogc3RyaW5nID0+XG4gIC8vIEFXUyBwZXJjZW50LWVuY29kZXMgc29tZSBleHRyYSBub24tc3RhbmRhcmQgY2hhcmFjdGVycyBpbiBhIFVSSVxuICBlbmNvZGVVUklDb21wb25lbnQodXJpKS5yZXBsYWNlKC9bIScoKSpdL2csIGhleEVuY29kZSk7XG5cbmNvbnN0IGhleEVuY29kZSA9IChjOiBzdHJpbmcpID0+IGAlJHtjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9YDtcbiJdfQ==","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nexport function buildQueryString(query) {\n var e_1, _a;\n var parts = [];\n try {\n for (var _b = __values(Object.keys(query).sort()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (var i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(key + \"=\" + escapeUri(value[i]));\n }\n }\n else {\n var qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += \"=\" + escapeUri(value);\n }\n parts.push(qsEntry);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return parts.join(\"&\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBd0I7O0lBQ3ZELElBQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQzs7UUFDM0IsS0FBZ0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQSw0QkFBRTtZQUF0QyxJQUFJLEdBQUcsV0FBQTtZQUNWLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDbEQsS0FBSyxDQUFDLElBQUksQ0FBSSxHQUFHLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBRyxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNsQixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7b0JBQ3RDLE9BQU8sSUFBSSxNQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUcsQ0FBQztpQkFDbkM7Z0JBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyQjtTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5UGFyYW1ldGVyQmFnIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFF1ZXJ5U3RyaW5nKHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMocXVlcnkpLnNvcnQoKSkge1xuICAgIGNvbnN0IHZhbHVlID0gcXVlcnlba2V5XTtcbiAgICBrZXkgPSBlc2NhcGVVcmkoa2V5KTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBpTGVuID0gdmFsdWUubGVuZ3RoOyBpIDwgaUxlbjsgaSsrKSB7XG4gICAgICAgIHBhcnRzLnB1c2goYCR7a2V5fT0ke2VzY2FwZVVyaSh2YWx1ZVtpXSl9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBxc0VudHJ5ID0ga2V5O1xuICAgICAgaWYgKHZhbHVlIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBxc0VudHJ5ICs9IGA9JHtlc2NhcGVVcmkodmFsdWUpfWA7XG4gICAgICB9XG4gICAgICBwYXJ0cy5wdXNoKHFzRW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJ0cy5qb2luKFwiJlwiKTtcbn1cbiJdfQ==","export function requestTimeout(timeoutInMs) {\n if (timeoutInMs === void 0) { timeoutInMs = 0; }\n return new Promise(function (resolve, reject) {\n if (timeoutInMs) {\n setTimeout(function () {\n var timeoutError = new Error(\"Request did not complete within \" + timeoutInMs + \" ms\");\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC10aW1lb3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcXVlc3QtdGltZW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsY0FBYyxDQUFDLFdBQWU7SUFBZiw0QkFBQSxFQUFBLGVBQWU7SUFDNUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1FBQ2pDLElBQUksV0FBVyxFQUFFO1lBQ2YsVUFBVSxDQUFDO2dCQUNULElBQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLHFDQUFtQyxXQUFXLFFBQUssQ0FBQyxDQUFDO2dCQUNwRixZQUFZLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztnQkFDbkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNqQjtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0VGltZW91dCh0aW1lb3V0SW5NcyA9IDApOiBQcm9taXNlPG5ldmVyPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKHRpbWVvdXRJbk1zKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgdGltZW91dEVycm9yID0gbmV3IEVycm9yKGBSZXF1ZXN0IGRpZCBub3QgY29tcGxldGUgd2l0aGluICR7dGltZW91dEluTXN9IG1zYCk7XG4gICAgICAgIHRpbWVvdXRFcnJvci5uYW1lID0gXCJUaW1lb3V0RXJyb3JcIjtcbiAgICAgICAgcmVqZWN0KHRpbWVvdXRFcnJvcik7XG4gICAgICB9LCB0aW1lb3V0SW5Ncyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==","var alphabetByEncoding = {};\nvar alphabetByValue = new Array(64);\nfor (var i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\nfor (var i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n var index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nfor (var i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n var char = i.toString(10);\n var index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nvar bitsPerLetter = 6;\nvar bitsPerByte = 8;\nvar maxLetterValue = 63;\n/**\n * Converts a base-64 encoded string to a Uint8Array of bytes.\n *\n * @param input The base-64 encoded string\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function fromBase64(input) {\n var totalByteLength = (input.length / 4) * 3;\n if (input.substr(-2) === \"==\") {\n totalByteLength -= 2;\n }\n else if (input.substr(-1) === \"=\") {\n totalByteLength--;\n }\n var out = new ArrayBuffer(totalByteLength);\n var dataView = new DataView(out);\n for (var i = 0; i < input.length; i += 4) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n }\n else {\n bits >>= bitsPerLetter;\n }\n }\n var chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n var byteLength = Math.floor(bitLength / bitsPerByte);\n for (var k = 0; k < byteLength; k++) {\n var offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n return new Uint8Array(out);\n}\n/**\n * Converts a Uint8Array of binary data to a base-64 encoded string.\n *\n * @param input The binary data to encode\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function toBase64(input) {\n var str = \"\";\n for (var i = 0; i < input.length; i += 3) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n bitLength += bitsPerByte;\n }\n var bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (var k = 1; k <= bitClusterCount; k++) {\n var offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n return str;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTSxrQkFBa0IsR0FBOEIsRUFBRSxDQUFDO0FBQ3pELElBQU0sZUFBZSxHQUFrQixJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM3RixJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM1QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztDQUMzQjtBQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzdGLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVDLElBQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7Q0FDL0I7QUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzNCLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzVDLElBQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUIsSUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNyQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDakMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztDQUMvQjtBQUVELGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUM3QixlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUM3QixlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBRTFCLElBQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztBQUN4QixJQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDdEIsSUFBTSxjQUFjLEdBQUcsRUFBUSxDQUFDO0FBRWhDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBYTtJQUN0QyxJQUFJLGVBQWUsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM3QixlQUFlLElBQUksQ0FBQyxDQUFDO0tBQ3RCO1NBQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1FBQ25DLGVBQWUsRUFBRSxDQUFDO0tBQ25CO0lBQ0QsSUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0MsSUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN4QyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5QyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7Z0JBQ3BCLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO2dCQUN0RSxTQUFTLElBQUksYUFBYSxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLElBQUksS0FBSyxhQUFhLENBQUM7YUFDeEI7U0FDRjtRQUVELElBQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxJQUFJLEtBQUssU0FBUyxHQUFHLFdBQVcsQ0FBQztRQUNqQyxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUN2RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQU0sTUFBTSxHQUFHLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7WUFDbEQsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUM7U0FDeEU7S0FDRjtJQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBaUI7SUFDeEMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN4QyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyRSxJQUFJLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQ3BELFNBQVMsSUFBSSxXQUFXLENBQUM7U0FDMUI7UUFFRCxJQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsQ0FBQztRQUM3RCxJQUFJLEtBQUssZUFBZSxHQUFHLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDckQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxJQUFNLE1BQU0sR0FBRyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUM7WUFDckQsR0FBRyxJQUFJLGVBQWUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQztLQUMzQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFscGhhYmV0QnlFbmNvZGluZzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuY29uc3QgYWxwaGFiZXRCeVZhbHVlOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5KDY0KTtcblxuZm9yIChsZXQgaSA9IDAsIHN0YXJ0ID0gXCJBXCIuY2hhckNvZGVBdCgwKSwgbGltaXQgPSBcIlpcIi5jaGFyQ29kZUF0KDApOyBpICsgc3RhcnQgPD0gbGltaXQ7IGkrKykge1xuICBjb25zdCBjaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShpICsgc3RhcnQpO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpO1xuICBhbHBoYWJldEJ5VmFsdWVbaV0gPSBjaGFyO1xufVxuXG5mb3IgKGxldCBpID0gMCwgc3RhcnQgPSBcImFcIi5jaGFyQ29kZUF0KDApLCBsaW1pdCA9IFwielwiLmNoYXJDb2RlQXQoMCk7IGkgKyBzdGFydCA8PSBsaW1pdDsgaSsrKSB7XG4gIGNvbnN0IGNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkgKyBzdGFydCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDI2O1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykge1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbaS50b1N0cmluZygxMCldID0gaSArIDUyO1xuICBjb25zdCBjaGFyID0gaS50b1N0cmluZygxMCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDUyO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmFscGhhYmV0QnlFbmNvZGluZ1tcIitcIl0gPSA2MjtcbmFscGhhYmV0QnlWYWx1ZVs2Ml0gPSBcIitcIjtcbmFscGhhYmV0QnlFbmNvZGluZ1tcIi9cIl0gPSA2MztcbmFscGhhYmV0QnlWYWx1ZVs2M10gPSBcIi9cIjtcblxuY29uc3QgYml0c1BlckxldHRlciA9IDY7XG5jb25zdCBiaXRzUGVyQnl0ZSA9IDg7XG5jb25zdCBtYXhMZXR0ZXJWYWx1ZSA9IDBiMTExMTExO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZyB0byBhIFVpbnQ4QXJyYXkgb2YgYnl0ZXMuXG4gKlxuICogQHBhcmFtIGlucHV0IFRoZSBiYXNlLTY0IGVuY29kZWQgc3RyaW5nXG4gKlxuICogQHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDY0OCNzZWN0aW9uLTRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21CYXNlNjQoaW5wdXQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBsZXQgdG90YWxCeXRlTGVuZ3RoID0gKGlucHV0Lmxlbmd0aCAvIDQpICogMztcbiAgaWYgKGlucHV0LnN1YnN0cigtMikgPT09IFwiPT1cIikge1xuICAgIHRvdGFsQnl0ZUxlbmd0aCAtPSAyO1xuICB9IGVsc2UgaWYgKGlucHV0LnN1YnN0cigtMSkgPT09IFwiPVwiKSB7XG4gICAgdG90YWxCeXRlTGVuZ3RoLS07XG4gIH1cbiAgY29uc3Qgb3V0ID0gbmV3IEFycmF5QnVmZmVyKHRvdGFsQnl0ZUxlbmd0aCk7XG4gIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KG91dCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpICs9IDQpIHtcbiAgICBsZXQgYml0cyA9IDA7XG4gICAgbGV0IGJpdExlbmd0aCA9IDA7XG4gICAgZm9yIChsZXQgaiA9IGksIGxpbWl0ID0gaSArIDM7IGogPD0gbGltaXQ7IGorKykge1xuICAgICAgaWYgKGlucHV0W2pdICE9PSBcIj1cIikge1xuICAgICAgICBiaXRzIHw9IGFscGhhYmV0QnlFbmNvZGluZ1tpbnB1dFtqXV0gPDwgKChsaW1pdCAtIGopICogYml0c1BlckxldHRlcik7XG4gICAgICAgIGJpdExlbmd0aCArPSBiaXRzUGVyTGV0dGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYml0cyA+Pj0gYml0c1BlckxldHRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjaHVua09mZnNldCA9IChpIC8gNCkgKiAzO1xuICAgIGJpdHMgPj49IGJpdExlbmd0aCAlIGJpdHNQZXJCeXRlO1xuICAgIGNvbnN0IGJ5dGVMZW5ndGggPSBNYXRoLmZsb29yKGJpdExlbmd0aCAvIGJpdHNQZXJCeXRlKTtcbiAgICBmb3IgKGxldCBrID0gMDsgayA8IGJ5dGVMZW5ndGg7IGsrKykge1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gKGJ5dGVMZW5ndGggLSBrIC0gMSkgKiBiaXRzUGVyQnl0ZTtcbiAgICAgIGRhdGFWaWV3LnNldFVpbnQ4KGNodW5rT2Zmc2V0ICsgaywgKGJpdHMgJiAoMjU1IDw8IG9mZnNldCkpID4+IG9mZnNldCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KG91dCk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBVaW50OEFycmF5IG9mIGJpbmFyeSBkYXRhIHRvIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgVGhlIGJpbmFyeSBkYXRhIHRvIGVuY29kZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQ2NDgjc2VjdGlvbi00XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2U2NChpbnB1dDogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGxldCBzdHIgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSArPSAzKSB7XG4gICAgbGV0IGJpdHMgPSAwO1xuICAgIGxldCBiaXRMZW5ndGggPSAwO1xuICAgIGZvciAobGV0IGogPSBpLCBsaW1pdCA9IE1hdGgubWluKGkgKyAzLCBpbnB1dC5sZW5ndGgpOyBqIDwgbGltaXQ7IGorKykge1xuICAgICAgYml0cyB8PSBpbnB1dFtqXSA8PCAoKGxpbWl0IC0gaiAtIDEpICogYml0c1BlckJ5dGUpO1xuICAgICAgYml0TGVuZ3RoICs9IGJpdHNQZXJCeXRlO1xuICAgIH1cblxuICAgIGNvbnN0IGJpdENsdXN0ZXJDb3VudCA9IE1hdGguY2VpbChiaXRMZW5ndGggLyBiaXRzUGVyTGV0dGVyKTtcbiAgICBiaXRzIDw8PSBiaXRDbHVzdGVyQ291bnQgKiBiaXRzUGVyTGV0dGVyIC0gYml0TGVuZ3RoO1xuICAgIGZvciAobGV0IGsgPSAxOyBrIDw9IGJpdENsdXN0ZXJDb3VudDsgaysrKSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSAoYml0Q2x1c3RlckNvdW50IC0gaykgKiBiaXRzUGVyTGV0dGVyO1xuICAgICAgc3RyICs9IGFscGhhYmV0QnlWYWx1ZVsoYml0cyAmIChtYXhMZXR0ZXJWYWx1ZSA8PCBvZmZzZXQpKSA+PiBvZmZzZXRdO1xuICAgIH1cblxuICAgIHN0ciArPSBcIj09XCIuc2xpY2UoMCwgNCAtIGJpdENsdXN0ZXJDb3VudCk7XG4gIH1cblxuICByZXR1cm4gc3RyO1xufVxuIl19","import { __values } from \"tslib\";\nimport { HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { buildQueryString } from \"@aws-sdk/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\nvar FetchHttpHandler = /** @class */ (function () {\n function FetchHttpHandler(_a) {\n var _b = _a === void 0 ? {} : _a, requestTimeout = _b.requestTimeout;\n this.requestTimeout = requestTimeout;\n }\n FetchHttpHandler.prototype.destroy = function () {\n // Do nothing. TLS and HTTP/2 connection pooling is handled by the browser.\n };\n FetchHttpHandler.prototype.handle = function (request, _a) {\n var _b = _a === void 0 ? {} : _a, abortSignal = _b.abortSignal;\n var requestTimeoutInMs = this.requestTimeout;\n // if the request was already aborted, prevent doing extra work\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n var path = request.path;\n if (request.query) {\n var queryString = buildQueryString(request.query);\n if (queryString) {\n path += \"?\" + queryString;\n }\n }\n var port = request.port, method = request.method;\n var url = request.protocol + \"//\" + request.hostname + (port ? \":\" + port : \"\") + path;\n // Request constructor doesn't allow GET/HEAD request with body\n // ref: https://github.com/whatwg/fetch/issues/551\n var body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n var requestOptions = {\n body: body,\n headers: new Headers(request.headers),\n method: method,\n };\n // some browsers support abort signal\n if (typeof AbortController !== \"undefined\") {\n requestOptions[\"signal\"] = abortSignal;\n }\n var fetchRequest = new Request(url, requestOptions);\n var raceOfPromises = [\n fetch(fetchRequest).then(function (response) {\n var e_1, _a;\n var fetchHeaders = response.headers;\n var transformedHeaders = {};\n try {\n for (var _b = __values(fetchHeaders.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n transformedHeaders[pair[0]] = pair[1];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var hasReadableStream = response.body !== undefined;\n // Return the response with buffered body\n if (!hasReadableStream) {\n return response.blob().then(function (body) { return ({\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: body,\n }),\n }); });\n }\n // Return the response with streaming body\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise(function (resolve, reject) {\n abortSignal.onabort = function () {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }));\n }\n return Promise.race(raceOfPromises);\n };\n return FetchHttpHandler;\n}());\nexport { FetchHttpHandler };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtaHR0cC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZldGNoLWh0dHAtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUE0QixZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFlbkQ7SUFHRSwwQkFBWSxFQUFnRDtZQUFoRCxxQkFBOEMsRUFBRSxLQUFBLEVBQTlDLGNBQWMsb0JBQUE7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVELGtDQUFPLEdBQVA7UUFDRSwyRUFBMkU7SUFDN0UsQ0FBQztJQUVELGlDQUFNLEdBQU4sVUFBTyxPQUFvQixFQUFFLEVBQXdDO1lBQXhDLHFCQUFzQyxFQUFFLEtBQUEsRUFBdEMsV0FBVyxpQkFBQTtRQUN4QyxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFL0MsK0RBQStEO1FBQy9ELElBQUksV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLE9BQU8sRUFBRTtZQUN4QixJQUFNLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hELFVBQVUsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1lBQy9CLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuQztRQUVELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLElB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Q0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBM0ZELElBMkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQGF3cy1zZGsvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgYnVpbGRRdWVyeVN0cmluZyB9IGZyb20gXCJAYXdzLXNkay9xdWVyeXN0cmluZy1idWlsZGVyXCI7XG5pbXBvcnQgeyBIZWFkZXJCYWcsIEh0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyByZXF1ZXN0VGltZW91dCB9IGZyb20gXCIuL3JlcXVlc3QtdGltZW91dFwiO1xuXG5kZWNsYXJlIGxldCBBYm9ydENvbnRyb2xsZXI6IGFueTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBodHRwIG9wdGlvbnMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGEgYnJvd3NlciBodHRwIGNsaWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGZXRjaEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhIHJlcXVlc3QgY2FuIHRha2UgYmVmb3JlIGJlaW5nIGF1dG9tYXRpY2FsbHlcbiAgICogdGVybWluYXRlZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgRmV0Y2hIdHRwSGFuZGxlciBpbXBsZW1lbnRzIEh0dHBIYW5kbGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IHJlcXVlc3RUaW1lb3V0IH06IEZldGNoSHR0cEhhbmRsZXJPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLnJlcXVlc3RUaW1lb3V0ID0gcmVxdWVzdFRpbWVvdXQ7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIERvIG5vdGhpbmcuIFRMUyBhbmQgSFRUUC8yIGNvbm5lY3Rpb24gcG9vbGluZyBpcyBoYW5kbGVkIGJ5IHRoZSBicm93c2VyLlxuICB9XG5cbiAgaGFuZGxlKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCB7IGFib3J0U2lnbmFsIH06IEh0dHBIYW5kbGVyT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx7IHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UgfT4ge1xuICAgIGNvbnN0IHJlcXVlc3RUaW1lb3V0SW5NcyA9IHRoaXMucmVxdWVzdFRpbWVvdXQ7XG5cbiAgICAvLyBpZiB0aGUgcmVxdWVzdCB3YXMgYWxyZWFkeSBhYm9ydGVkLCBwcmV2ZW50IGRvaW5nIGV4dHJhIHdvcmtcbiAgICBpZiAoYWJvcnRTaWduYWw/LmFib3J0ZWQpIHtcbiAgICAgIGNvbnN0IGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXCJSZXF1ZXN0IGFib3J0ZWRcIik7XG4gICAgICBhYm9ydEVycm9yLm5hbWUgPSBcIkFib3J0RXJyb3JcIjtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChhYm9ydEVycm9yKTtcbiAgICB9XG5cbiAgICBsZXQgcGF0aCA9IHJlcXVlc3QucGF0aDtcbiAgICBpZiAocmVxdWVzdC5xdWVyeSkge1xuICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBidWlsZFF1ZXJ5U3RyaW5nKHJlcXVlc3QucXVlcnkpO1xuICAgICAgaWYgKHF1ZXJ5U3RyaW5nKSB7XG4gICAgICAgIHBhdGggKz0gYD8ke3F1ZXJ5U3RyaW5nfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBwb3J0LCBtZXRob2QgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgdXJsID0gYCR7cmVxdWVzdC5wcm90b2NvbH0vLyR7cmVxdWVzdC5ob3N0bmFtZX0ke3BvcnQgPyBgOiR7cG9ydH1gIDogXCJcIn0ke3BhdGh9YDtcbiAgICAvLyBSZXF1ZXN0IGNvbnN0cnVjdG9yIGRvZXNuJ3QgYWxsb3cgR0VUL0hFQUQgcmVxdWVzdCB3aXRoIGJvZHlcbiAgICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvZmV0Y2gvaXNzdWVzLzU1MVxuICAgIGNvbnN0IGJvZHkgPSBtZXRob2QgPT09IFwiR0VUXCIgfHwgbWV0aG9kID09PSBcIkhFQURcIiA/IHVuZGVmaW5lZCA6IHJlcXVlc3QuYm9keTtcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9uczogUmVxdWVzdEluaXQgPSB7XG4gICAgICBib2R5LFxuICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgIH07XG5cbiAgICAvLyBzb21lIGJyb3dzZXJzIHN1cHBvcnQgYWJvcnQgc2lnbmFsXG4gICAgaWYgKHR5cGVvZiBBYm9ydENvbnRyb2xsZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIChyZXF1ZXN0T3B0aW9ucyBhcyBhbnkpW1wic2lnbmFsXCJdID0gYWJvcnRTaWduYWw7XG4gICAgfVxuXG4gICAgY29uc3QgZmV0Y2hSZXF1ZXN0ID0gbmV3IFJlcXVlc3QodXJsLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgY29uc3QgcmFjZU9mUHJvbWlzZXMgPSBbXG4gICAgICBmZXRjaChmZXRjaFJlcXVlc3QpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IGZldGNoSGVhZGVyczogYW55ID0gcmVzcG9uc2UuaGVhZGVycztcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRIZWFkZXJzOiBIZWFkZXJCYWcgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhaXIgb2YgPEFycmF5PHN0cmluZ1tdPj5mZXRjaEhlYWRlcnMuZW50cmllcygpKSB7XG4gICAgICAgICAgdHJhbnNmb3JtZWRIZWFkZXJzW3BhaXJbMF1dID0gcGFpclsxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhhc1JlYWRhYmxlU3RyZWFtID0gcmVzcG9uc2UuYm9keSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2Ugd2l0aCBidWZmZXJlZCBib2R5XG4gICAgICAgIGlmICghaGFzUmVhZGFibGVTdHJlYW0pIHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRoZW4oKGJvZHkpID0+ICh7XG4gICAgICAgICAgICByZXNwb25zZTogbmV3IEh0dHBSZXNwb25zZSh7XG4gICAgICAgICAgICAgIGhlYWRlcnM6IHRyYW5zZm9ybWVkSGVhZGVycyxcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2Ugd2l0aCBzdHJlYW1pbmcgYm9keVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc3BvbnNlOiBuZXcgSHR0cFJlc3BvbnNlKHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHRyYW5zZm9ybWVkSGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICAgIGJvZHk6IHJlc3BvbnNlLmJvZHksXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICAgIHJlcXVlc3RUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SW5NcyksXG4gICAgXTtcbiAgICBpZiAoYWJvcnRTaWduYWwpIHtcbiAgICAgIHJhY2VPZlByb21pc2VzLnB1c2goXG4gICAgICAgIG5ldyBQcm9taXNlPG5ldmVyPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgYWJvcnRTaWduYWwub25hYm9ydCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXCJSZXF1ZXN0IGFib3J0ZWRcIik7XG4gICAgICAgICAgICBhYm9ydEVycm9yLm5hbWUgPSBcIkFib3J0RXJyb3JcIjtcbiAgICAgICAgICAgIHJlamVjdChhYm9ydEVycm9yKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmFjZShyYWNlT2ZQcm9taXNlcyk7XG4gIH1cbn1cbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { fromBase64 } from \"@aws-sdk/util-base64-browser\";\n//reference: https://snack.expo.io/r1JCSWRGU\nexport var streamCollector = function (stream) {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nfunction collectBlob(blob) {\n return __awaiter(this, void 0, void 0, function () {\n var base64, arrayBuffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, readToBase64(blob)];\n case 1:\n base64 = _a.sent();\n arrayBuffer = fromBase64(base64);\n return [2 /*return*/, new Uint8Array(arrayBuffer)];\n }\n });\n });\n}\nfunction collectStream(stream) {\n return __awaiter(this, void 0, void 0, function () {\n var res, reader, isDone, _a, done, value, prior;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n res = new Uint8Array(0);\n reader = stream.getReader();\n isDone = false;\n _b.label = 1;\n case 1:\n if (!!isDone) return [3 /*break*/, 3];\n return [4 /*yield*/, reader.read()];\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (value) {\n prior = res;\n res = new Uint8Array(prior.length + value.length);\n res.set(prior);\n res.set(value, prior.length);\n }\n isDone = done;\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/, res];\n }\n });\n });\n}\nfunction readToBase64(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onloadend = function () {\n var _a;\n // reference: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL\n // response from readAsDataURL is always prepended with \"data:*/*;base64,\"\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n var result = ((_a = reader.result) !== null && _a !== void 0 ? _a : \"\");\n // Response can include only 'data:' for empty blob, return empty string in this case.\n // Otherwise, return the string after ','\n var commaIndex = result.indexOf(\",\");\n var dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = function () { return reject(new Error(\"Read aborted\")); };\n reader.onerror = function () { return reject(reader.error); };\n // reader.readAsArrayBuffer is not always available\n reader.readAsDataURL(blob);\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJlYW0tY29sbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFMUQsNENBQTRDO0FBQzVDLE1BQU0sQ0FBQyxJQUFNLGVBQWUsR0FBb0IsVUFBQyxNQUE2QjtJQUM1RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsSUFBSSxNQUFNLFlBQVksSUFBSSxFQUFFO1FBQ3hELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzVCO0lBRUQsT0FBTyxhQUFhLENBQUMsTUFBd0IsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQztBQUVGLFNBQWUsV0FBVyxDQUFDLElBQVU7Ozs7O3dCQUNwQixxQkFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUE7O29CQUFqQyxNQUFNLEdBQUcsU0FBd0I7b0JBQ2pDLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLHNCQUFPLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFDOzs7O0NBQ3BDO0FBRUQsU0FBZSxhQUFhLENBQUMsTUFBc0I7Ozs7OztvQkFDN0MsR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUM5QixNQUFNLEdBQUcsS0FBSyxDQUFDOzs7eUJBQ1osQ0FBQyxNQUFNO29CQUNZLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBQTs7b0JBQXJDLEtBQWtCLFNBQW1CLEVBQW5DLElBQUksVUFBQSxFQUFFLEtBQUssV0FBQTtvQkFDbkIsSUFBSSxLQUFLLEVBQUU7d0JBQ0gsS0FBSyxHQUFHLEdBQUcsQ0FBQzt3QkFDbEIsR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNsRCxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNmLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDOUI7b0JBQ0QsTUFBTSxHQUFHLElBQUksQ0FBQzs7d0JBRWhCLHNCQUFPLEdBQUcsRUFBQzs7OztDQUNaO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBVTtJQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07UUFDakMsSUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsU0FBUyxHQUFHOztZQUNqQix1RkFBdUY7WUFDdkYsMEVBQTBFO1lBQzFFLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQzthQUN0RDtZQUNELElBQU0sTUFBTSxHQUFHLE9BQUMsTUFBTSxDQUFDLE1BQU0sbUNBQUksRUFBRSxDQUFXLENBQUM7WUFDL0Msc0ZBQXNGO1lBQ3RGLHlDQUF5QztZQUN6QyxJQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQU0sVUFBVSxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNwRSxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFqQyxDQUFpQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQXBCLENBQW9CLENBQUM7UUFDNUMsbURBQW1EO1FBQ25ELE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYmFzZTY0LWJyb3dzZXJcIjtcblxuLy9yZWZlcmVuY2U6IGh0dHBzOi8vc25hY2suZXhwby5pby9yMUpDU1dSR1VcbmV4cG9ydCBjb25zdCBzdHJlYW1Db2xsZWN0b3I6IFN0cmVhbUNvbGxlY3RvciA9IChzdHJlYW06IEJsb2IgfCBSZWFkYWJsZVN0cmVhbSk6IFByb21pc2U8VWludDhBcnJheT4gPT4ge1xuICBpZiAodHlwZW9mIEJsb2IgPT09IFwiZnVuY3Rpb25cIiAmJiBzdHJlYW0gaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgcmV0dXJuIGNvbGxlY3RCbG9iKHN0cmVhbSk7XG4gIH1cblxuICByZXR1cm4gY29sbGVjdFN0cmVhbShzdHJlYW0gYXMgUmVhZGFibGVTdHJlYW0pO1xufTtcblxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdEJsb2IoYmxvYjogQmxvYik6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBiYXNlNjQgPSBhd2FpdCByZWFkVG9CYXNlNjQoYmxvYik7XG4gIGNvbnN0IGFycmF5QnVmZmVyID0gZnJvbUJhc2U2NChiYXNlNjQpO1xuICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjb2xsZWN0U3RyZWFtKHN0cmVhbTogUmVhZGFibGVTdHJlYW0pOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgbGV0IHJlcyA9IG5ldyBVaW50OEFycmF5KDApO1xuICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gIGxldCBpc0RvbmUgPSBmYWxzZTtcbiAgd2hpbGUgKCFpc0RvbmUpIHtcbiAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgcHJpb3IgPSByZXM7XG4gICAgICByZXMgPSBuZXcgVWludDhBcnJheShwcmlvci5sZW5ndGggKyB2YWx1ZS5sZW5ndGgpO1xuICAgICAgcmVzLnNldChwcmlvcik7XG4gICAgICByZXMuc2V0KHZhbHVlLCBwcmlvci5sZW5ndGgpO1xuICAgIH1cbiAgICBpc0RvbmUgPSBkb25lO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cbmZ1bmN0aW9uIHJlYWRUb0Jhc2U2NChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG4gICAgICAvLyByZWZlcmVuY2U6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GaWxlUmVhZGVyL3JlYWRBc0RhdGFVUkxcbiAgICAgIC8vIHJlc3BvbnNlIGZyb20gcmVhZEFzRGF0YVVSTCBpcyBhbHdheXMgcHJlcGVuZGVkIHdpdGggXCJkYXRhOiovKjtiYXNlNjQsXCJcbiAgICAgIGlmIChyZWFkZXIucmVhZHlTdGF0ZSAhPT0gMikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcihcIlJlYWRlciBhYm9ydGVkIHRvbyBlYXJseVwiKSk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXN1bHQgPSAocmVhZGVyLnJlc3VsdCA/PyBcIlwiKSBhcyBzdHJpbmc7XG4gICAgICAvLyBSZXNwb25zZSBjYW4gaW5jbHVkZSBvbmx5ICdkYXRhOicgZm9yIGVtcHR5IGJsb2IsIHJldHVybiBlbXB0eSBzdHJpbmcgaW4gdGhpcyBjYXNlLlxuICAgICAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHN0cmluZyBhZnRlciAnLCdcbiAgICAgIGNvbnN0IGNvbW1hSW5kZXggPSByZXN1bHQuaW5kZXhPZihcIixcIik7XG4gICAgICBjb25zdCBkYXRhT2Zmc2V0ID0gY29tbWFJbmRleCA+IC0xID8gY29tbWFJbmRleCArIDEgOiByZXN1bHQubGVuZ3RoO1xuICAgICAgcmVzb2x2ZShyZXN1bHQuc3Vic3RyaW5nKGRhdGFPZmZzZXQpKTtcbiAgICB9O1xuICAgIHJlYWRlci5vbmFib3J0ID0gKCkgPT4gcmVqZWN0KG5ldyBFcnJvcihcIlJlYWQgYWJvcnRlZFwiKSk7XG4gICAgcmVhZGVyLm9uZXJyb3IgPSAoKSA9PiByZWplY3QocmVhZGVyLmVycm9yKTtcbiAgICAvLyByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIgaXMgbm90IGFsd2F5cyBhdmFpbGFibGVcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcbiAgfSk7XG59XG4iXX0=","export var invalidProvider = function (message) { return function () { return Promise.reject(message); }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZFByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludmFsaWRQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQXVDLFVBQUMsT0FBZSxJQUFLLE9BQUEsY0FBTSxPQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQXZCLENBQXVCLEVBQTdCLENBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuZXhwb3J0IGNvbnN0IGludmFsaWRQcm92aWRlcjogKG1lc3NhZ2U6IHN0cmluZykgPT4gUHJvdmlkZXI8YW55PiA9IChtZXNzYWdlOiBzdHJpbmcpID0+ICgpID0+IFByb21pc2UucmVqZWN0KG1lc3NhZ2UpO1xuIl19","import { __awaiter, __generator, __read, __spread } from \"tslib\";\nexport var retryMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n if ((_a = options === null || options === void 0 ? void 0 : options.retryStrategy) === null || _a === void 0 ? void 0 : _a.mode)\n context.userAgent = __spread((context.userAgent || []), [[\"cfg/retry-mode\", options.retryStrategy.mode]]);\n return [2 /*return*/, options.retryStrategy.retry(next, args)];\n });\n}); }; }; };\nexport var retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nexport var getRetryPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JldHJ5TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBYUEsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFVBQUMsT0FBNEIsSUFBSyxPQUFBLFVBQy9ELElBQWtDLEVBQ2xDLE9BQWdDLElBQ0MsT0FBQSxVQUNqQyxJQUFtQzs7O1FBRW5DLFVBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGFBQWEsMENBQUUsSUFBSTtZQUM5QixPQUFPLENBQUMsU0FBUyxZQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsR0FBRSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQztRQUNyRyxzQkFBTyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUM7O0tBQ2hELEVBTmtDLENBTWxDLEVBVGdFLENBU2hFLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBcUQ7SUFDdEYsSUFBSSxFQUFFLGlCQUFpQjtJQUN2QixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUM7SUFDZixJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxVQUFDLE9BQTRCLElBQTBCLE9BQUEsQ0FBQztJQUNwRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLHNCQUFzQixDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGLENBQUMsRUFKbUYsQ0FJbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic29sdXRlTG9jYXRpb24sXG4gIEZpbmFsaXplSGFuZGxlcixcbiAgRmluYWxpemVIYW5kbGVyQXJndW1lbnRzLFxuICBGaW5hbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IFJldHJ5UmVzb2x2ZWRDb25maWcgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuXG5leHBvcnQgY29uc3QgcmV0cnlNaWRkbGV3YXJlID0gKG9wdGlvbnM6IFJldHJ5UmVzb2x2ZWRDb25maWcpID0+IDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciA9IE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogRmluYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IEZpbmFsaXplSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKFxuICBhcmdzOiBGaW5hbGl6ZUhhbmRsZXJBcmd1bWVudHM8YW55PlxuKTogUHJvbWlzZTxGaW5hbGl6ZUhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICBpZiAob3B0aW9ucz8ucmV0cnlTdHJhdGVneT8ubW9kZSlcbiAgICBjb250ZXh0LnVzZXJBZ2VudCA9IFsuLi4oY29udGV4dC51c2VyQWdlbnQgfHwgW10pLCBbXCJjZmcvcmV0cnktbW9kZVwiLCBvcHRpb25zLnJldHJ5U3RyYXRlZ3kubW9kZV1dO1xuICByZXR1cm4gb3B0aW9ucy5yZXRyeVN0cmF0ZWd5LnJldHJ5KG5leHQsIGFyZ3MpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJldHJ5TWlkZGxld2FyZU9wdGlvbnM6IEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJyZXRyeU1pZGRsZXdhcmVcIixcbiAgdGFnczogW1wiUkVUUllcIl0sXG4gIHN0ZXA6IFwiZmluYWxpemVSZXF1ZXN0XCIsXG4gIHByaW9yaXR5OiBcImhpZ2hcIixcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmV0cnlQbHVnaW4gPSAob3B0aW9uczogUmV0cnlSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQocmV0cnlNaWRkbGV3YXJlKG9wdGlvbnMpLCByZXRyeU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","/**\n * Errors encountered when the client clock and server clock cannot agree on the\n * current time.\n *\n * These errors are retryable, assuming the SDK has enabled clock skew\n * correction.\n */\nexport var CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\n/**\n * Errors that indicate the SDK is being throttled.\n *\n * These errors are always retryable.\n */\nexport var THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\n/**\n * Error codes that indicate transient issues\n */\nexport var TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\n/**\n * Error codes that indicate transient issues\n */\nexport var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRztJQUNwQyxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLHVCQUF1QjtDQUN4QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHO0lBQ3BDLHdCQUF3QjtJQUN4Qix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6Qix3Q0FBd0M7SUFDeEMsc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQiwyQkFBMkI7SUFDM0IsVUFBVTtJQUNWLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLDBCQUEwQjtJQUMxQixnQ0FBZ0M7Q0FDakMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0scUJBQXFCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLENBQUM7QUFFakg7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFcnJvcnMgZW5jb3VudGVyZWQgd2hlbiB0aGUgY2xpZW50IGNsb2NrIGFuZCBzZXJ2ZXIgY2xvY2sgY2Fubm90IGFncmVlIG9uIHRoZVxuICogY3VycmVudCB0aW1lLlxuICpcbiAqIFRoZXNlIGVycm9ycyBhcmUgcmV0cnlhYmxlLCBhc3N1bWluZyB0aGUgU0RLIGhhcyBlbmFibGVkIGNsb2NrIHNrZXdcbiAqIGNvcnJlY3Rpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBDTE9DS19TS0VXX0VSUk9SX0NPREVTID0gW1xuICBcIkF1dGhGYWlsdXJlXCIsXG4gIFwiSW52YWxpZFNpZ25hdHVyZUV4Y2VwdGlvblwiLFxuICBcIlJlcXVlc3RFeHBpcmVkXCIsXG4gIFwiUmVxdWVzdEluVGhlRnV0dXJlXCIsXG4gIFwiUmVxdWVzdFRpbWVUb29Ta2V3ZWRcIixcbiAgXCJTaWduYXR1cmVEb2VzTm90TWF0Y2hcIixcbl07XG5cbi8qKlxuICogRXJyb3JzIHRoYXQgaW5kaWNhdGUgdGhlIFNESyBpcyBiZWluZyB0aHJvdHRsZWQuXG4gKlxuICogVGhlc2UgZXJyb3JzIGFyZSBhbHdheXMgcmV0cnlhYmxlLlxuICovXG5leHBvcnQgY29uc3QgVEhST1RUTElOR19FUlJPUl9DT0RFUyA9IFtcbiAgXCJCYW5kd2lkdGhMaW1pdEV4Y2VlZGVkXCIsXG4gIFwiRUMyVGhyb3R0bGVkRXhjZXB0aW9uXCIsXG4gIFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiLFxuICBcIlByaW9yUmVxdWVzdE5vdENvbXBsZXRlXCIsXG4gIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgXCJSZXF1ZXN0TGltaXRFeGNlZWRlZFwiLFxuICBcIlJlcXVlc3RUaHJvdHRsZWRcIixcbiAgXCJSZXF1ZXN0VGhyb3R0bGVkRXhjZXB0aW9uXCIsXG4gIFwiU2xvd0Rvd25cIixcbiAgXCJUaHJvdHRsZWRFeGNlcHRpb25cIixcbiAgXCJUaHJvdHRsaW5nXCIsXG4gIFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiLFxuICBcIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvblwiLFxuICBcIlRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvblwiLCAvLyBEeW5hbW9EQlxuXTtcblxuLyoqXG4gKiBFcnJvciBjb2RlcyB0aGF0IGluZGljYXRlIHRyYW5zaWVudCBpc3N1ZXNcbiAqL1xuZXhwb3J0IGNvbnN0IFRSQU5TSUVOVF9FUlJPUl9DT0RFUyA9IFtcIkFib3J0RXJyb3JcIiwgXCJUaW1lb3V0RXJyb3JcIiwgXCJSZXF1ZXN0VGltZW91dFwiLCBcIlJlcXVlc3RUaW1lb3V0RXhjZXB0aW9uXCJdO1xuXG4vKipcbiAqIEVycm9yIGNvZGVzIHRoYXQgaW5kaWNhdGUgdHJhbnNpZW50IGlzc3Vlc1xuICovXG5leHBvcnQgY29uc3QgVFJBTlNJRU5UX0VSUk9SX1NUQVRVU19DT0RFUyA9IFs1MDAsIDUwMiwgNTAzLCA1MDRdO1xuIl19","import { CLOCK_SKEW_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport var isRetryableByTrait = function (error) { return error.$retryable !== undefined; };\nexport var isClockSkewError = function (error) { return CLOCK_SKEW_ERROR_CODES.includes(error.name); };\nexport var isThrottlingError = function (error) {\n var _a, _b;\n return ((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n ((_b = error.$retryable) === null || _b === void 0 ? void 0 : _b.throttling) == true;\n};\nexport var isTransientError = function (error) {\n var _a;\n return TRANSIENT_ERROR_CODES.includes(error.name) ||\n TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) || 0);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLDRCQUE0QixHQUM3QixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLEtBQWUsSUFBSyxPQUFBLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUE5QixDQUE4QixDQUFDO0FBRXRGLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLFVBQUMsS0FBZSxJQUFLLE9BQUEsc0JBQXNCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBM0MsQ0FBMkMsQ0FBQztBQUVqRyxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLEtBQWU7O0lBQy9DLE9BQUEsT0FBQSxLQUFLLENBQUMsU0FBUywwQ0FBRSxjQUFjLE1BQUssR0FBRztRQUN2QyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMzQyxPQUFBLEtBQUssQ0FBQyxVQUFVLDBDQUFFLFVBQVUsS0FBSSxJQUFJLENBQUE7Q0FBQSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLFVBQUMsS0FBZTs7SUFDOUMsT0FBQSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsT0FBQSxLQUFLLENBQUMsU0FBUywwQ0FBRSxjQUFjLEtBQUksQ0FBQyxDQUFDLENBQUE7Q0FBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2RrRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvc21pdGh5LWNsaWVudFwiO1xuXG5pbXBvcnQge1xuICBDTE9DS19TS0VXX0VSUk9SX0NPREVTLFxuICBUSFJPVFRMSU5HX0VSUk9SX0NPREVTLFxuICBUUkFOU0lFTlRfRVJST1JfQ09ERVMsXG4gIFRSQU5TSUVOVF9FUlJPUl9TVEFUVVNfQ09ERVMsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgY29uc3QgaXNSZXRyeWFibGVCeVRyYWl0ID0gKGVycm9yOiBTZGtFcnJvcikgPT4gZXJyb3IuJHJldHJ5YWJsZSAhPT0gdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3QgaXNDbG9ja1NrZXdFcnJvciA9IChlcnJvcjogU2RrRXJyb3IpID0+IENMT0NLX1NLRVdfRVJST1JfQ09ERVMuaW5jbHVkZXMoZXJyb3IubmFtZSk7XG5cbmV4cG9ydCBjb25zdCBpc1Rocm90dGxpbmdFcnJvciA9IChlcnJvcjogU2RrRXJyb3IpID0+XG4gIGVycm9yLiRtZXRhZGF0YT8uaHR0cFN0YXR1c0NvZGUgPT09IDQyOSB8fFxuICBUSFJPVFRMSU5HX0VSUk9SX0NPREVTLmluY2x1ZGVzKGVycm9yLm5hbWUpIHx8XG4gIGVycm9yLiRyZXRyeWFibGU/LnRocm90dGxpbmcgPT0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGlzVHJhbnNpZW50RXJyb3IgPSAoZXJyb3I6IFNka0Vycm9yKSA9PlxuICBUUkFOU0lFTlRfRVJST1JfQ09ERVMuaW5jbHVkZXMoZXJyb3IubmFtZSkgfHxcbiAgVFJBTlNJRU5UX0VSUk9SX1NUQVRVU19DT0RFUy5pbmNsdWRlcyhlcnJvci4kbWV0YWRhdGE/Lmh0dHBTdGF0dXNDb2RlIHx8IDApO1xuIl19","/**\n * The base number of milliseconds to use in calculating a suitable cool-down\n * time when a retryable error is encountered.\n */\nexport var DEFAULT_RETRY_DELAY_BASE = 100;\n/**\n * The maximum amount of time (in milliseconds) that will be used as a delay\n * between retry attempts.\n */\nexport var MAXIMUM_RETRY_DELAY = 20 * 1000;\n/**\n * The retry delay base (in milliseconds) to use when a throttling error is\n * encountered.\n */\nexport var THROTTLING_RETRY_DELAY_BASE = 500;\n/**\n * Initial number of retry tokens in Retry Quota\n */\nexport var INITIAL_RETRY_TOKENS = 500;\n/**\n * The total amount of retry tokens to be decremented from retry token balance.\n */\nexport var RETRY_COST = 5;\n/**\n * The total amount of retry tokens to be decremented from retry token balance\n * when a throttling error is encountered.\n */\nexport var TIMEOUT_RETRY_COST = 10;\n/**\n * The total amount of retry token to be incremented from retry token balance\n * if an SDK operation invocation succeeds without requiring a retry request.\n */\nexport var NO_RETRY_INCREMENT = 1;\n/**\n * Header name for SDK invocation ID\n */\nexport var INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\n/**\n * Header name for request retry information.\n */\nexport var REQUEST_HEADER = \"amz-sdk-request\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFNUM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUU3Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSwyQkFBMkIsR0FBRyxHQUFHLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBRTVCOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FBQztBQUU1RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGJhc2UgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB1c2UgaW4gY2FsY3VsYXRpbmcgYSBzdWl0YWJsZSBjb29sLWRvd25cbiAqIHRpbWUgd2hlbiBhIHJldHJ5YWJsZSBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVUUllfREVMQVlfQkFTRSA9IDEwMDtcblxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZSAoaW4gbWlsbGlzZWNvbmRzKSB0aGF0IHdpbGwgYmUgdXNlZCBhcyBhIGRlbGF5XG4gKiBiZXR3ZWVuIHJldHJ5IGF0dGVtcHRzLlxuICovXG5leHBvcnQgY29uc3QgTUFYSU1VTV9SRVRSWV9ERUxBWSA9IDIwICogMTAwMDtcblxuLyoqXG4gKiBUaGUgcmV0cnkgZGVsYXkgYmFzZSAoaW4gbWlsbGlzZWNvbmRzKSB0byB1c2Ugd2hlbiBhIHRocm90dGxpbmcgZXJyb3IgaXNcbiAqIGVuY291bnRlcmVkLlxuICovXG5leHBvcnQgY29uc3QgVEhST1RUTElOR19SRVRSWV9ERUxBWV9CQVNFID0gNTAwO1xuXG4vKipcbiAqIEluaXRpYWwgbnVtYmVyIG9mIHJldHJ5IHRva2VucyBpbiBSZXRyeSBRdW90YVxuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9SRVRSWV9UT0tFTlMgPSA1MDA7XG5cbi8qKlxuICogVGhlIHRvdGFsIGFtb3VudCBvZiByZXRyeSB0b2tlbnMgdG8gYmUgZGVjcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlLlxuICovXG5leHBvcnQgY29uc3QgUkVUUllfQ09TVCA9IDU7XG5cbi8qKlxuICogVGhlIHRvdGFsIGFtb3VudCBvZiByZXRyeSB0b2tlbnMgdG8gYmUgZGVjcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlXG4gKiB3aGVuIGEgdGhyb3R0bGluZyBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFRJTUVPVVRfUkVUUllfQ09TVCA9IDEwO1xuXG4vKipcbiAqIFRoZSB0b3RhbCBhbW91bnQgb2YgcmV0cnkgdG9rZW4gdG8gYmUgaW5jcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlXG4gKiBpZiBhbiBTREsgb3BlcmF0aW9uIGludm9jYXRpb24gc3VjY2VlZHMgd2l0aG91dCByZXF1aXJpbmcgYSByZXRyeSByZXF1ZXN0LlxuICovXG5leHBvcnQgY29uc3QgTk9fUkVUUllfSU5DUkVNRU5UID0gMTtcblxuLyoqXG4gKiBIZWFkZXIgbmFtZSBmb3IgU0RLIGludm9jYXRpb24gSURcbiAqL1xuZXhwb3J0IGNvbnN0IElOVk9DQVRJT05fSURfSEVBREVSID0gXCJhbXotc2RrLWludm9jYXRpb24taWRcIjtcblxuLyoqXG4gKiBIZWFkZXIgbmFtZSBmb3IgcmVxdWVzdCByZXRyeSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVFU1RfSEVBREVSID0gXCJhbXotc2RrLXJlcXVlc3RcIjtcbiJdfQ==","import { NO_RETRY_INCREMENT, RETRY_COST, TIMEOUT_RETRY_COST } from \"./constants\";\nexport var getDefaultRetryQuota = function (initialRetryTokens) {\n var MAX_CAPACITY = initialRetryTokens;\n var availableCapacity = initialRetryTokens;\n var getCapacityAmount = function (error) { return (error.name === \"TimeoutError\" ? TIMEOUT_RETRY_COST : RETRY_COST); };\n var hasRetryTokens = function (error) { return getCapacityAmount(error) <= availableCapacity; };\n var retrieveRetryTokens = function (error) {\n if (!hasRetryTokens(error)) {\n // retryStrategy should stop retrying, and return last error\n throw new Error(\"No retry token available\");\n }\n var capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n var releaseRetryTokens = function (capacityReleaseAmount) {\n availableCapacity += capacityReleaseAmount !== null && capacityReleaseAmount !== void 0 ? capacityReleaseAmount : NO_RETRY_INCREMENT;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens: hasRetryTokens,\n retrieveRetryTokens: retrieveRetryTokens,\n releaseRetryTokens: releaseRetryTokens,\n });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFJldHJ5UXVvdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdFJldHJ5UXVvdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdqRixNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLGtCQUEwQjtJQUM3RCxJQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztJQUN4QyxJQUFJLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0lBRTNDLElBQU0saUJBQWlCLEdBQUcsVUFBQyxLQUFlLElBQUssT0FBQSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQWpFLENBQWlFLENBQUM7SUFFakgsSUFBTSxjQUFjLEdBQUcsVUFBQyxLQUFlLElBQUssT0FBQSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsRUFBN0MsQ0FBNkMsQ0FBQztJQUUxRixJQUFNLG1CQUFtQixHQUFHLFVBQUMsS0FBZTtRQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFCLDREQUE0RDtZQUM1RCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxpQkFBaUIsSUFBSSxjQUFjLENBQUM7UUFDcEMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUYsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLHFCQUE4QjtRQUN4RCxpQkFBaUIsSUFBSSxxQkFBcUIsYUFBckIscUJBQXFCLGNBQXJCLHFCQUFxQixHQUFJLGtCQUFrQixDQUFDO1FBQ2pFLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ25CLGNBQWMsZ0JBQUE7UUFDZCxtQkFBbUIscUJBQUE7UUFDbkIsa0JBQWtCLG9CQUFBO0tBQ25CLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNka0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NtaXRoeS1jbGllbnRcIjtcblxuaW1wb3J0IHsgTk9fUkVUUllfSU5DUkVNRU5ULCBSRVRSWV9DT1NULCBUSU1FT1VUX1JFVFJZX0NPU1QgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJldHJ5UXVvdGEgfSBmcm9tIFwiLi9kZWZhdWx0U3RyYXRlZ3lcIjtcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRSZXRyeVF1b3RhID0gKGluaXRpYWxSZXRyeVRva2VuczogbnVtYmVyKTogUmV0cnlRdW90YSA9PiB7XG4gIGNvbnN0IE1BWF9DQVBBQ0lUWSA9IGluaXRpYWxSZXRyeVRva2VucztcbiAgbGV0IGF2YWlsYWJsZUNhcGFjaXR5ID0gaW5pdGlhbFJldHJ5VG9rZW5zO1xuXG4gIGNvbnN0IGdldENhcGFjaXR5QW1vdW50ID0gKGVycm9yOiBTZGtFcnJvcikgPT4gKGVycm9yLm5hbWUgPT09IFwiVGltZW91dEVycm9yXCIgPyBUSU1FT1VUX1JFVFJZX0NPU1QgOiBSRVRSWV9DT1NUKTtcblxuICBjb25zdCBoYXNSZXRyeVRva2VucyA9IChlcnJvcjogU2RrRXJyb3IpID0+IGdldENhcGFjaXR5QW1vdW50KGVycm9yKSA8PSBhdmFpbGFibGVDYXBhY2l0eTtcblxuICBjb25zdCByZXRyaWV2ZVJldHJ5VG9rZW5zID0gKGVycm9yOiBTZGtFcnJvcikgPT4ge1xuICAgIGlmICghaGFzUmV0cnlUb2tlbnMoZXJyb3IpKSB7XG4gICAgICAvLyByZXRyeVN0cmF0ZWd5IHNob3VsZCBzdG9wIHJldHJ5aW5nLCBhbmQgcmV0dXJuIGxhc3QgZXJyb3JcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIHJldHJ5IHRva2VuIGF2YWlsYWJsZVwiKTtcbiAgICB9XG4gICAgY29uc3QgY2FwYWNpdHlBbW91bnQgPSBnZXRDYXBhY2l0eUFtb3VudChlcnJvcik7XG4gICAgYXZhaWxhYmxlQ2FwYWNpdHkgLT0gY2FwYWNpdHlBbW91bnQ7XG4gICAgcmV0dXJuIGNhcGFjaXR5QW1vdW50O1xuICB9O1xuXG4gIGNvbnN0IHJlbGVhc2VSZXRyeVRva2VucyA9IChjYXBhY2l0eVJlbGVhc2VBbW91bnQ/OiBudW1iZXIpID0+IHtcbiAgICBhdmFpbGFibGVDYXBhY2l0eSArPSBjYXBhY2l0eVJlbGVhc2VBbW91bnQgPz8gTk9fUkVUUllfSU5DUkVNRU5UO1xuICAgIGF2YWlsYWJsZUNhcGFjaXR5ID0gTWF0aC5taW4oYXZhaWxhYmxlQ2FwYWNpdHksIE1BWF9DQVBBQ0lUWSk7XG4gIH07XG5cbiAgcmV0dXJuIE9iamVjdC5mcmVlemUoe1xuICAgIGhhc1JldHJ5VG9rZW5zLFxuICAgIHJldHJpZXZlUmV0cnlUb2tlbnMsXG4gICAgcmVsZWFzZVJldHJ5VG9rZW5zLFxuICB9KTtcbn07XG4iXX0=","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\n/**\n * Calculate a capped, fully-jittered exponential backoff time.\n */\nexport var defaultDelayDecider = function (delayBase, attempts) {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * Math.pow(2, attempts) * delayBase));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXlEZWNpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlbGF5RGVjaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxVQUFDLFNBQWlCLEVBQUUsUUFBZ0I7SUFDckUsT0FBQSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFNBQUEsQ0FBQyxFQUFJLFFBQVEsQ0FBQSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0FBQXBGLENBQW9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNQVhJTVVNX1JFVFJZX0RFTEFZIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQ2FsY3VsYXRlIGEgY2FwcGVkLCBmdWxseS1qaXR0ZXJlZCBleHBvbmVudGlhbCBiYWNrb2ZmIHRpbWUuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0RGVsYXlEZWNpZGVyID0gKGRlbGF5QmFzZTogbnVtYmVyLCBhdHRlbXB0czogbnVtYmVyKSA9PlxuICBNYXRoLmZsb29yKE1hdGgubWluKE1BWElNVU1fUkVUUllfREVMQVksIE1hdGgucmFuZG9tKCkgKiAyICoqIGF0dGVtcHRzICogZGVsYXlCYXNlKSk7XG4iXX0=","import { isClockSkewError, isRetryableByTrait, isThrottlingError, isTransientError, } from \"@aws-sdk/service-error-classification\";\nexport var defaultRetryDecider = function (error) {\n if (!error) {\n return false;\n }\n return isRetryableByTrait(error) || isClockSkewError(error) || isThrottlingError(error) || isTransientError(error);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlEZWNpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JldHJ5RGVjaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLE1BQU0sdUNBQXVDLENBQUM7QUFHL0MsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxLQUFlO0lBQ2pELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNySCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpc0Nsb2NrU2tld0Vycm9yLFxuICBpc1JldHJ5YWJsZUJ5VHJhaXQsXG4gIGlzVGhyb3R0bGluZ0Vycm9yLFxuICBpc1RyYW5zaWVudEVycm9yLFxufSBmcm9tIFwiQGF3cy1zZGsvc2VydmljZS1lcnJvci1jbGFzc2lmaWNhdGlvblwiO1xuaW1wb3J0IHsgU2RrRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvc21pdGh5LWNsaWVudFwiO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFJldHJ5RGVjaWRlciA9IChlcnJvcjogU2RrRXJyb3IpID0+IHtcbiAgaWYgKCFlcnJvcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBpc1JldHJ5YWJsZUJ5VHJhaXQoZXJyb3IpIHx8IGlzQ2xvY2tTa2V3RXJyb3IoZXJyb3IpIHx8IGlzVGhyb3R0bGluZ0Vycm9yKGVycm9yKSB8fCBpc1RyYW5zaWVudEVycm9yKGVycm9yKTtcbn07XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nimport { v4 } from \"uuid\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, INVOCATION_ID_HEADER, REQUEST_HEADER, THROTTLING_RETRY_DELAY_BASE, } from \"./constants\";\nimport { getDefaultRetryQuota } from \"./defaultRetryQuota\";\nimport { defaultDelayDecider } from \"./delayDecider\";\nimport { defaultRetryDecider } from \"./retryDecider\";\n/**\n * The default value for how many HTTP requests an SDK should make for a\n * single SDK operation invocation before giving up\n */\nexport var DEFAULT_MAX_ATTEMPTS = 3;\n/**\n * The default retry algorithm to use.\n */\nexport var DEFAULT_RETRY_MODE = \"standard\";\nvar StandardRetryStrategy = /** @class */ (function () {\n function StandardRetryStrategy(maxAttemptsProvider, options) {\n var _a, _b, _c;\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = DEFAULT_RETRY_MODE;\n this.retryDecider = (_a = options === null || options === void 0 ? void 0 : options.retryDecider) !== null && _a !== void 0 ? _a : defaultRetryDecider;\n this.delayDecider = (_b = options === null || options === void 0 ? void 0 : options.delayDecider) !== null && _b !== void 0 ? _b : defaultDelayDecider;\n this.retryQuota = (_c = options === null || options === void 0 ? void 0 : options.retryQuota) !== null && _c !== void 0 ? _c : getDefaultRetryQuota(INITIAL_RETRY_TOKENS);\n }\n StandardRetryStrategy.prototype.shouldRetry = function (error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n };\n StandardRetryStrategy.prototype.getMaxAttempts = function () {\n return __awaiter(this, void 0, void 0, function () {\n var maxAttempts, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.maxAttemptsProvider()];\n case 1:\n maxAttempts = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_1 = _a.sent();\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/, maxAttempts];\n }\n });\n });\n };\n StandardRetryStrategy.prototype.retry = function (next, args) {\n return __awaiter(this, void 0, void 0, function () {\n var retryTokenAmount, attempts, totalDelay, maxAttempts, request, _loop_1, this_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempts = 0;\n totalDelay = 0;\n return [4 /*yield*/, this.getMaxAttempts()];\n case 1:\n maxAttempts = _a.sent();\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n _loop_1 = function () {\n var _a, response, output, err_1, delay_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 5]);\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = \"attempt=\" + (attempts + 1) + \"; max=\" + maxAttempts;\n }\n return [4 /*yield*/, next(args)];\n case 1:\n _a = _b.sent(), response = _a.response, output = _a.output;\n this_1.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return [2 /*return*/, { value: { response: response, output: output } }];\n case 2:\n err_1 = _b.sent();\n attempts++;\n if (!this_1.shouldRetry(err_1, attempts, maxAttempts)) return [3 /*break*/, 4];\n retryTokenAmount = this_1.retryQuota.retrieveRetryTokens(err_1);\n delay_1 = this_1.delayDecider(isThrottlingError(err_1) ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE, attempts);\n totalDelay += delay_1;\n return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, delay_1); })];\n case 3:\n _b.sent();\n return [2 /*return*/, \"continue\"];\n case 4:\n if (!err_1.$metadata) {\n err_1.$metadata = {};\n }\n err_1.$metadata.attempts = attempts;\n err_1.$metadata.totalRetryDelay = totalDelay;\n throw err_1;\n case 5: return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _a.label = 2;\n case 2:\n if (!true) return [3 /*break*/, 4];\n return [5 /*yield**/, _loop_1()];\n case 3:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n return [3 /*break*/, 2];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n return StandardRetryStrategy;\n}());\nexport { StandardRetryStrategy };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlZmF1bHRTdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCwyQkFBMkIsR0FDNUIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBb0Q3QztJQU1FLCtCQUE2QixtQkFBcUMsRUFBRSxPQUFzQzs7UUFBN0Usd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFrQjtRQUZsRCxTQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFHeEMsSUFBSSxDQUFDLFlBQVksU0FBRyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsWUFBWSxtQ0FBSSxtQkFBbUIsQ0FBQztRQUNqRSxJQUFJLENBQUMsWUFBWSxTQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFZLG1DQUFJLG1CQUFtQixDQUFDO1FBQ2pFLElBQUksQ0FBQyxVQUFVLFNBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxD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IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGlzVGhyb3R0bGluZ0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NlcnZpY2UtZXJyb3ItY2xhc3NpZmljYXRpb25cIjtcbmltcG9ydCB7IFNka0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IEZpbmFsaXplSGFuZGxlciwgRmluYWxpemVIYW5kbGVyQXJndW1lbnRzLCBNZXRhZGF0YUJlYXJlciwgUHJvdmlkZXIsIFJldHJ5U3RyYXRlZ3kgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHY0IH0gZnJvbSBcInV1aWRcIjtcblxuaW1wb3J0IHtcbiAgREVGQVVMVF9SRVRSWV9ERUxBWV9CQVNFLFxuICBJTklUSUFMX1JFVFJZX1RPS0VOUyxcbiAgSU5WT0NBVElPTl9JRF9IRUFERVIsXG4gIFJFUVVFU1RfSEVBREVSLFxuICBUSFJPVFRMSU5HX1JFVFJZX0RFTEFZX0JBU0UsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdFJldHJ5UXVvdGEgfSBmcm9tIFwiLi9kZWZhdWx0UmV0cnlRdW90YVwiO1xuaW1wb3J0IHsgZGVmYXVsdERlbGF5RGVjaWRlciB9IGZyb20gXCIuL2RlbGF5RGVjaWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdFJldHJ5RGVjaWRlciB9IGZyb20gXCIuL3JldHJ5RGVjaWRlclwiO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IHZhbHVlIGZvciBob3cgbWFueSBIVFRQIHJlcXVlc3RzIGFuIFNESyBzaG91bGQgbWFrZSBmb3IgYVxuICogc2luZ2xlIFNESyBvcGVyYXRpb24gaW52b2NhdGlvbiBiZWZvcmUgZ2l2aW5nIHVwXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9BVFRFTVBUUyA9IDM7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcmV0cnkgYWxnb3JpdGhtIHRvIHVzZS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVUUllfTU9ERSA9IFwic3RhbmRhcmRcIjtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW4gZXJyb3IgaXMgcmV0cnlhYmxlIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgcmV0cmllc1xuICogYWxyZWFkeSBhdHRlbXB0ZWQsIHRoZSBIVFRQIHN0YXR1cyBjb2RlLCBhbmQgdGhlIGVycm9yIHJlY2VpdmVkIChpZiBhbnkpLlxuICpcbiAqIEBwYXJhbSBlcnJvciAgICAgICAgIFRoZSBlcnJvciBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeURlY2lkZXIge1xuICAoZXJyb3I6IFNka0Vycm9yKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIHJldHJ5aW5nIGFuIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gZGVsYXlCYXNlIFRoZSBiYXNlIGRlbGF5IChpbiBtaWxsaXNlY29uZHMpLlxuICogQHBhcmFtIGF0dGVtcHRzICBUaGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBhY3Rpb24gaGFzIGFscmVhZHkgYmVlbiB0cmllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxheURlY2lkZXIge1xuICAoZGVsYXlCYXNlOiBudW1iZXIsIGF0dGVtcHRzOiBudW1iZXIpOiBudW1iZXI7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIHRoZSByZXRyeSBxdW90YSBiZWhhdmlvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeVF1b3RhIHtcbiAgLyoqXG4gICAqIHJldHVybnMgdHJ1ZSBpZiByZXRyeSB0b2tlbnMgYXJlIGF2YWlsYWJsZSBmcm9tIHRoZSByZXRyeSBxdW90YSBidWNrZXQuXG4gICAqL1xuICBoYXNSZXRyeVRva2VuczogKGVycm9yOiBTZGtFcnJvcikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogcmV0dXJucyB0b2tlbiBhbW91bnQgZnJvbSB0aGUgcmV0cnkgcXVvdGEgYnVja2V0LlxuICAgKiB0aHJvd3MgZXJyb3IgaXMgcmV0cnkgdG9rZW5zIGFyZSBub3QgYXZhaWxhYmxlLlxuICAgKi9cbiAgcmV0cmlldmVSZXRyeVRva2VuczogKGVycm9yOiBTZGtFcnJvcikgPT4gbnVtYmVyO1xuXG4gIC8qKlxuICAgKiByZWxlYXNlcyB0b2tlbnMgYmFjayB0byB0aGUgcmV0cnkgcXVvdGEuXG4gICAqL1xuICByZWxlYXNlUmV0cnlUb2tlbnM6IChyZWxlYXNlQ2FwYWNpdHlBbW91bnQ/OiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogU3RyYXRlZ3kgb3B0aW9ucyB0byBiZSBwYXNzZWQgdG8gU3RhbmRhcmRSZXRyeVN0cmF0ZWd5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRSZXRyeVN0cmF0ZWd5T3B0aW9ucyB7XG4gIHJldHJ5RGVjaWRlcj86IFJldHJ5RGVjaWRlcjtcbiAgZGVsYXlEZWNpZGVyPzogRGVsYXlEZWNpZGVyO1xuICByZXRyeVF1b3RhPzogUmV0cnlRdW90YTtcbn1cblxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkUmV0cnlTdHJhdGVneSBpbXBsZW1lbnRzIFJldHJ5U3RyYXRlZ3kge1xuICBwcml2YXRlIHJldHJ5RGVjaWRlcjogUmV0cnlEZWNpZGVyO1xuICBwcml2YXRlIGRlbGF5RGVjaWRlcjogRGVsYXlEZWNpZGVyO1xuICBwcml2YXRlIHJldHJ5UXVvdGE6IFJldHJ5UXVvdGE7XG4gIHB1YmxpYyByZWFkb25seSBtb2RlID0gREVGQVVMVF9SRVRSWV9NT0RFO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWF4QXR0ZW1wdHNQcm92aWRlcjogUHJvdmlkZXI8bnVtYmVyPiwgb3B0aW9ucz86IFN0YW5kYXJkUmV0cnlTdHJhdGVneU9wdGlvbnMpIHtcbiAgICB0aGlzLnJldHJ5RGVjaWRlciA9IG9wdGlvbnM/LnJldHJ5RGVjaWRlciA/PyBkZWZhdWx0UmV0cnlEZWNpZGVyO1xuICAgIHRoaXMuZGVsYXlEZWNpZGVyID0gb3B0aW9ucz8uZGVsYXlEZWNpZGVyID8/IGRlZmF1bHREZWxheURlY2lkZXI7XG4gICAgdGhpcy5yZXRyeVF1b3RhID0gb3B0aW9ucz8ucmV0cnlRdW90YSA/PyBnZXREZWZhdWx0UmV0cnlRdW90YShJTklUSUFMX1JFVFJZX1RPS0VOUyk7XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFJldHJ5KGVycm9yOiBTZGtFcnJvciwgYXR0ZW1wdHM6IG51bWJlciwgbWF4QXR0ZW1wdHM6IG51bWJlcikge1xuICAgIHJldHVybiBhdHRlbXB0cyA8IG1heEF0dGVtcHRzICYmIHRoaXMucmV0cnlEZWNpZGVyKGVycm9yKSAmJiB0aGlzLnJldHJ5UXVvdGEuaGFzUmV0cnlUb2tlbnMoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRNYXhBdHRlbXB0cygpIHtcbiAgICBsZXQgbWF4QXR0ZW1wdHM6IG51bWJlcjtcbiAgICB0cnkge1xuICAgICAgbWF4QXR0ZW1wdHMgPSBhd2FpdCB0aGlzLm1heEF0dGVtcHRzUHJvdmlkZXIoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbWF4QXR0ZW1wdHMgPSBERUZBVUxUX01BWF9BVFRFTVBUUztcbiAgICB9XG4gICAgcmV0dXJuIG1heEF0dGVtcHRzO1xuICB9XG5cbiAgYXN5bmMgcmV0cnk8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KFxuICAgIG5leHQ6IEZpbmFsaXplSGFuZGxlcjxJbnB1dCwgT3VwdXQ+LFxuICAgIGFyZ3M6IEZpbmFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD5cbiAgKSB7XG4gICAgbGV0IHJldHJ5VG9rZW5BbW91bnQ7XG4gICAgbGV0IGF0dGVtcHRzID0gMDtcbiAgICBsZXQgdG90YWxEZWxheSA9IDA7XG5cbiAgICBjb25zdCBtYXhBdHRlbXB0cyA9IGF3YWl0IHRoaXMuZ2V0TWF4QXR0ZW1wdHMoKTtcblxuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW0lOVk9DQVRJT05fSURfSEVBREVSXSA9IHY0KCk7XG4gICAgfVxuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChIdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1JFUVVFU1RfSEVBREVSXSA9IGBhdHRlbXB0PSR7YXR0ZW1wdHMgKyAxfTsgbWF4PSR7bWF4QXR0ZW1wdHN9YDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHJlc3BvbnNlLCBvdXRwdXQgfSA9IGF3YWl0IG5leHQoYXJncyk7XG5cbiAgICAgICAgdGhpcy5yZXRyeVF1b3RhLnJlbGVhc2VSZXRyeVRva2VucyhyZXRyeVRva2VuQW1vdW50KTtcbiAgICAgICAgb3V0cHV0LiRtZXRhZGF0YS5hdHRlbXB0cyA9IGF0dGVtcHRzICsgMTtcbiAgICAgICAgb3V0cHV0LiRtZXRhZGF0YS50b3RhbFJldHJ5RGVsYXkgPSB0b3RhbERlbGF5O1xuXG4gICAgICAgIHJldHVybiB7IHJlc3BvbnNlLCBvdXRwdXQgfTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhdHRlbXB0cysrO1xuICAgICAgICBpZiAodGhpcy5zaG91bGRSZXRyeShlcnIgYXMgU2RrRXJyb3IsIGF0dGVtcHRzLCBtYXhBdHRlbXB0cykpIHtcbiAgICAgICAgICByZXRyeVRva2VuQW1vdW50ID0gdGhpcy5yZXRyeVF1b3RhLnJldHJpZXZlUmV0cnlUb2tlbnMoZXJyKTtcbiAgICAgICAgICBjb25zdCBkZWxheSA9IHRoaXMuZGVsYXlEZWNpZGVyKFxuICAgICAgICAgICAgaXNUaHJvdHRsaW5nRXJyb3IoZXJyKSA/IFRIUk9UVExJTkdfUkVUUllfREVMQVlfQkFTRSA6IERFRkFVTFRfUkVUUllfREVMQVlfQkFTRSxcbiAgICAgICAgICAgIGF0dGVtcHRzXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0b3RhbERlbGF5ICs9IGRlbGF5O1xuXG4gICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZXJyLiRtZXRhZGF0YSkge1xuICAgICAgICAgIGVyci4kbWV0YWRhdGEgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVyci4kbWV0YWRhdGEuYXR0ZW1wdHMgPSBhdHRlbXB0cztcbiAgICAgICAgZXJyLiRtZXRhZGF0YS50b3RhbFJldHJ5RGVsYXkgPSB0b3RhbERlbGF5O1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=","import { __assign } from \"tslib\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, StandardRetryStrategy } from \"./defaultStrategy\";\nexport var ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport var CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n var value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Environment variable \" + ENV_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n return maxAttempt;\n },\n configFileSelector: function (profile) {\n var value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Shared config file entry \" + CONFIG_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS,\n};\nexport var resolveRetryConfig = function (input) {\n var maxAttempts = normalizeMaxAttempts(input.maxAttempts);\n return __assign(__assign({}, input), { maxAttempts: maxAttempts, retryStrategy: input.retryStrategy || new StandardRetryStrategy(maxAttempts) });\n};\nvar normalizeMaxAttempts = function (maxAttempts) {\n if (maxAttempts === void 0) { maxAttempts = DEFAULT_MAX_ATTEMPTS; }\n if (typeof maxAttempts === \"number\") {\n var promisified_1 = Promise.resolve(maxAttempts);\n return function () { return promisified_1; };\n }\n return maxAttempts;\n};\nexport var ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport var CONFIG_RETRY_MODE = \"retry_mode\";\nexport var NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) { return env[ENV_RETRY_MODE]; },\n configFileSelector: function (profile) { return profile[CONFIG_RETRY_MODE]; },\n default: DEFAULT_RETRY_MODE,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUdBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBHLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSwrQkFBK0IsR0FBa0M7SUFDNUUsMkJBQTJCLEVBQUUsVUFBQyxHQUFHO1FBQy9CLElBQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDN0IsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUF3QixnQkFBZ0IsaUNBQTJCLEtBQUssT0FBRyxDQUFDLENBQUM7U0FDOUY7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsVUFBQyxPQUFPO1FBQzFCLElBQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDN0IsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE0QixtQkFBbUIsaUNBQTJCLEtBQUssT0FBRyxDQUFDLENBQUM7U0FDckc7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsT0FBTyxFQUFFLG9CQUFvQjtDQUM5QixDQUFDO0FBbUJGLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLFVBQUksS0FBZ0Q7SUFDcEYsSUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELDZCQUNLLEtBQUssS0FDUixXQUFXLGFBQUEsRUFDWCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxJQUM1RTtBQUNKLENBQUMsQ0FBQztBQUVGLElBQU0sb0JBQW9CLEdBQUcsVUFBQyxXQUE2RDtJQUE3RCw0QkFBQSxFQUFBLGtDQUE2RDtJQUN6RixJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUM7QUFDL0MsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLDhCQUE4QixHQUFrQztJQUMzRSwyQkFBMkIsRUFBRSxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBbkIsQ0FBbUI7SUFDekQsa0JBQWtCLEVBQUUsVUFBQyxPQUFPLElBQUssT0FBQSxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBMUIsQ0FBMEI7SUFDM0QsT0FBTyxFQUFFLGtCQUFrQjtDQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9hZGVkQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSBcIkBhd3Mtc2RrL25vZGUtY29uZmlnLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBQcm92aWRlciwgUmV0cnlTdHJhdGVneSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBERUZBVUxUX01BWF9BVFRFTVBUUywgREVGQVVMVF9SRVRSWV9NT0RFLCBTdGFuZGFyZFJldHJ5U3RyYXRlZ3kgfSBmcm9tIFwiLi9kZWZhdWx0U3RyYXRlZ3lcIjtcblxuZXhwb3J0IGNvbnN0IEVOVl9NQVhfQVRURU1QVFMgPSBcIkFXU19NQVhfQVRURU1QVFNcIjtcbmV4cG9ydCBjb25zdCBDT05GSUdfTUFYX0FUVEVNUFRTID0gXCJtYXhfYXR0ZW1wdHNcIjtcblxuZXhwb3J0IGNvbnN0IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlM6IExvYWRlZENvbmZpZ1NlbGVjdG9yczxudW1iZXI+ID0ge1xuICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGVudltFTlZfTUFYX0FUVEVNUFRTXTtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1heEF0dGVtcHQgPSBwYXJzZUludCh2YWx1ZSk7XG4gICAgaWYgKE51bWJlci5pc05hTihtYXhBdHRlbXB0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbnZpcm9ubWVudCB2YXJpYWJsZSAke0VOVl9NQVhfQVRURU1QVFN9IG1hc3QgYmUgYSBudW1iZXIsIGdvdCBcIiR7dmFsdWV9XCJgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1heEF0dGVtcHQ7XG4gIH0sXG4gIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHByb2ZpbGVbQ09ORklHX01BWF9BVFRFTVBUU107XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBtYXhBdHRlbXB0ID0gcGFyc2VJbnQodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obWF4QXR0ZW1wdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2hhcmVkIGNvbmZpZyBmaWxlIGVudHJ5ICR7Q09ORklHX01BWF9BVFRFTVBUU30gbWFzdCBiZSBhIG51bWJlciwgZ290IFwiJHt2YWx1ZX1cImApO1xuICAgIH1cbiAgICByZXR1cm4gbWF4QXR0ZW1wdDtcbiAgfSxcbiAgZGVmYXVsdDogREVGQVVMVF9NQVhfQVRURU1QVFMsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5SW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIHJlcXVlc3RzIHRoYXQgZW5jb3VudGVyIHJldHJ5YWJsZSBmYWlsdXJlcyBzaG91bGQgYmUgYXR0ZW1wdGVkLlxuICAgKi9cbiAgbWF4QXR0ZW1wdHM/OiBudW1iZXIgfCBQcm92aWRlcjxudW1iZXI+O1xuICAvKipcbiAgICogVGhlIHN0cmF0ZWd5IHRvIHJldHJ5IHRoZSByZXF1ZXN0LiBVc2luZyBidWlsdC1pbiBleHBvbmVudGlhbCBiYWNrb2ZmIHN0cmF0ZWd5IGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZXRyeVN0cmF0ZWd5PzogUmV0cnlTdHJhdGVneTtcbn1cblxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7fVxuZXhwb3J0IGludGVyZmFjZSBSZXRyeVJlc29sdmVkQ29uZmlnIHtcbiAgbWF4QXR0ZW1wdHM6IFByb3ZpZGVyPG51bWJlcj47XG4gIHJldHJ5U3RyYXRlZ3k6IFJldHJ5U3RyYXRlZ3k7XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUmV0cnlDb25maWcgPSA8VD4oaW5wdXQ6IFQgJiBQcmV2aW91c2x5UmVzb2x2ZWQgJiBSZXRyeUlucHV0Q29uZmlnKTogVCAmIFJldHJ5UmVzb2x2ZWRDb25maWcgPT4ge1xuICBjb25zdCBtYXhBdHRlbXB0cyA9IG5vcm1hbGl6ZU1heEF0dGVtcHRzKGlucHV0Lm1heEF0dGVtcHRzKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBtYXhBdHRlbXB0cyxcbiAgICByZXRyeVN0cmF0ZWd5OiBpbnB1dC5yZXRyeVN0cmF0ZWd5IHx8IG5ldyBTdGFuZGFyZFJldHJ5U3RyYXRlZ3kobWF4QXR0ZW1wdHMpLFxuICB9O1xufTtcblxuY29uc3Qgbm9ybWFsaXplTWF4QXR0ZW1wdHMgPSAobWF4QXR0ZW1wdHM6IG51bWJlciB8IFByb3ZpZGVyPG51bWJlcj4gPSBERUZBVUxUX01BWF9BVFRFTVBUUyk6IFByb3ZpZGVyPG51bWJlcj4gPT4ge1xuICBpZiAodHlwZW9mIG1heEF0dGVtcHRzID09PSBcIm51bWJlclwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUobWF4QXR0ZW1wdHMpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfVxuICByZXR1cm4gbWF4QXR0ZW1wdHM7XG59O1xuXG5leHBvcnQgY29uc3QgRU5WX1JFVFJZX01PREUgPSBcIkFXU19SRVRSWV9NT0RFXCI7XG5leHBvcnQgY29uc3QgQ09ORklHX1JFVFJZX01PREUgPSBcInJldHJ5X21vZGVcIjtcblxuZXhwb3J0IGNvbnN0IE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUzogTG9hZGVkQ29uZmlnU2VsZWN0b3JzPHN0cmluZz4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudikgPT4gZW52W0VOVl9SRVRSWV9NT0RFXSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gcHJvZmlsZVtDT05GSUdfUkVUUllfTU9ERV0sXG4gIGRlZmF1bHQ6IERFRkFVTFRfUkVUUllfTU9ERSxcbn07XG4iXX0=","export function calculateBodyLength(body) {\n if (typeof body === \"string\") {\n var len = body.length;\n for (var i = len - 1; i >= 0; i--) {\n var code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n // handles Uint8Array, ArrayBuffer, Buffer, and ArrayBufferView\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n // handles browser File object\n return body.size;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQVM7SUFDM0MsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUV0QixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSztnQkFBRSxHQUFHLEVBQUUsQ0FBQztpQkFDbkMsSUFBSSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNO2dCQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLEdBQUcsQ0FBQztLQUNaO1NBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO1FBQzlDLCtEQUErRDtRQUMvRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7S0FDeEI7U0FBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDeEMsOEJBQThCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztLQUNsQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQm9keUxlbmd0aChib2R5OiBhbnkpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIGJvZHkgPT09IFwic3RyaW5nXCIpIHtcbiAgICBsZXQgbGVuID0gYm9keS5sZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGNvZGUgPSBib2R5LmNoYXJDb2RlQXQoaSk7XG4gICAgICBpZiAoY29kZSA+IDB4N2YgJiYgY29kZSA8PSAweDdmZikgbGVuKys7XG4gICAgICBlbHNlIGlmIChjb2RlID4gMHg3ZmYgJiYgY29kZSA8PSAweGZmZmYpIGxlbiArPSAyO1xuICAgIH1cblxuICAgIHJldHVybiBsZW47XG4gIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkuYnl0ZUxlbmd0aCA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIGhhbmRsZXMgVWludDhBcnJheSwgQXJyYXlCdWZmZXIsIEJ1ZmZlciwgYW5kIEFycmF5QnVmZmVyVmlld1xuICAgIHJldHVybiBib2R5LmJ5dGVMZW5ndGg7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkuc2l6ZSA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIGhhbmRsZXMgYnJvd3NlciBGaWxlIG9iamVjdFxuICAgIHJldHVybiBib2R5LnNpemU7XG4gIH1cbn1cbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport bowser from \"bowser\";\n/**\n * Default provider to the user agent in browsers. It's a best effort to infer\n * the device information. It uses bowser library to detect the browser and virsion\n */\nexport var defaultUserAgent = function (_a) {\n var serviceId = _a.serviceId, clientVersion = _a.clientVersion;\n return function () { return __awaiter(void 0, void 0, void 0, function () {\n var parsedUA, sections;\n var _a, _b, _c, _d, _e, _f, _g;\n return __generator(this, function (_h) {\n parsedUA = ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) ? bowser.parse(window.navigator.userAgent) : undefined;\n sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // os-metadata\n [\"os/\" + (((_b = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _b === void 0 ? void 0 : _b.name) || \"other\"), (_c = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _c === void 0 ? void 0 : _c.version],\n // language-metadata\n // ECMAScript edition doesn't matter in JS.\n [\"lang/js\"],\n // browser vendor and version.\n [\"md/browser\", ((_e = (_d = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : \"unknown\") + \"_\" + ((_g = (_f = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _f === void 0 ? void 0 : _f.version) !== null && _g !== void 0 ? _g : \"unknown\")],\n ];\n if (serviceId) {\n // api-metadata\n // service Id may not appear in non-AWS clients\n sections.push([\"api/\" + serviceId, clientVersion]);\n }\n return [2 /*return*/, sections];\n });\n }); };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUk1Qjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxVQUFDLEVBR1A7UUFGeEIsU0FBUyxlQUFBLEVBQ1QsYUFBYSxtQkFBQTtJQUNxQyxPQUFBOzs7O1lBQzVDLFFBQVEsR0FBRyxPQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLDBDQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0YsUUFBUSxHQUFjO2dCQUMxQixlQUFlO2dCQUNmLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztnQkFDN0IsY0FBYztnQkFDZCxDQUFDLFNBQU0sT0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsRUFBRSwwQ0FBRSxJQUFJLEtBQUksT0FBTyxDQUFFLFFBQUUsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLEVBQUUsMENBQUUsT0FBTyxDQUFDO2dCQUM5RCxvQkFBb0I7Z0JBQ3BCLDJDQUEyQztnQkFDM0MsQ0FBQyxTQUFTLENBQUM7Z0JBQ1gsOEJBQThCO2dCQUM5QixDQUFDLFlBQVksRUFBRSxhQUFHLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLDBDQUFFLElBQUksbUNBQUksU0FBUyx1QkFBSSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTywwQ0FBRSxPQUFPLG1DQUFJLFNBQVMsQ0FBRSxDQUFDO2FBQ3JHLENBQUM7WUFFRixJQUFJLFNBQVMsRUFBRTtnQkFDYixlQUFlO2dCQUNmLCtDQUErQztnQkFDL0MsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQU8sU0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDcEQ7WUFFRCxzQkFBTyxRQUFRLEVBQUM7O1NBQ2pCO0FBckJtRCxDQXFCbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyLCBVc2VyQWdlbnQgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCBib3dzZXIgZnJvbSBcImJvd3NlclwiO1xuXG5pbXBvcnQgeyBEZWZhdWx0VXNlckFnZW50T3B0aW9ucyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5cbi8qKlxuICogRGVmYXVsdCBwcm92aWRlciB0byB0aGUgdXNlciBhZ2VudCBpbiBicm93c2Vycy4gSXQncyBhIGJlc3QgZWZmb3J0IHRvIGluZmVyXG4gKiB0aGUgZGV2aWNlIGluZm9ybWF0aW9uLiBJdCB1c2VzIGJvd3NlciBsaWJyYXJ5IHRvIGRldGVjdCB0aGUgYnJvd3NlciBhbmQgdmlyc2lvblxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9ICh7XG4gIHNlcnZpY2VJZCxcbiAgY2xpZW50VmVyc2lvbixcbn06IERlZmF1bHRVc2VyQWdlbnRPcHRpb25zKTogUHJvdmlkZXI8VXNlckFnZW50PiA9PiBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHBhcnNlZFVBID0gd2luZG93Py5uYXZpZ2F0b3I/LnVzZXJBZ2VudCA/IGJvd3Nlci5wYXJzZSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHNlY3Rpb25zOiBVc2VyQWdlbnQgPSBbXG4gICAgLy8gc2RrLW1ldGFkYXRhXG4gICAgW1wiYXdzLXNkay1qc1wiLCBjbGllbnRWZXJzaW9uXSxcbiAgICAvLyBvcy1tZXRhZGF0YVxuICAgIFtgb3MvJHtwYXJzZWRVQT8ub3M/Lm5hbWUgfHwgXCJvdGhlclwifWAsIHBhcnNlZFVBPy5vcz8udmVyc2lvbl0sXG4gICAgLy8gbGFuZ3VhZ2UtbWV0YWRhdGFcbiAgICAvLyBFQ01BU2NyaXB0IGVkaXRpb24gZG9lc24ndCBtYXR0ZXIgaW4gSlMuXG4gICAgW1wibGFuZy9qc1wiXSxcbiAgICAvLyBicm93c2VyIHZlbmRvciBhbmQgdmVyc2lvbi5cbiAgICBbXCJtZC9icm93c2VyXCIsIGAke3BhcnNlZFVBPy5icm93c2VyPy5uYW1lID8/IFwidW5rbm93blwifV8ke3BhcnNlZFVBPy5icm93c2VyPy52ZXJzaW9uID8/IFwidW5rbm93blwifWBdLFxuICBdO1xuXG4gIGlmIChzZXJ2aWNlSWQpIHtcbiAgICAvLyBhcGktbWV0YWRhdGFcbiAgICAvLyBzZXJ2aWNlIElkIG1heSBub3QgYXBwZWFyIGluIG5vbi1BV1MgY2xpZW50c1xuICAgIHNlY3Rpb25zLnB1c2goW2BhcGkvJHtzZXJ2aWNlSWR9YCwgY2xpZW50VmVyc2lvbl0pO1xuICB9XG5cbiAgcmV0dXJuIHNlY3Rpb25zO1xufTtcbiJdfQ==","import { __assign } from \"tslib\";\n// Partition default templates\nvar AWS_TEMPLATE = \"cognito-identity.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"cognito-identity.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"cognito-identity.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"cognito-identity.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"cognito-identity.{region}.amazonaws.com\";\n// Partition regions\nvar AWS_REGIONS = new Set([\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n]);\nvar AWS_CN_REGIONS = new Set([\"cn-north-1\", \"cn-northwest-1\"]);\nvar AWS_ISO_REGIONS = new Set([\"us-iso-east-1\"]);\nvar AWS_ISO_B_REGIONS = new Set([\"us-isob-east-1\"]);\nvar AWS_US_GOV_REGIONS = new Set([\"us-gov-east-1\", \"us-gov-west-1\"]);\nexport var defaultRegionInfoProvider = function (region, options) {\n var regionInfo = undefined;\n switch (region) {\n // First, try to match exact region names.\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"cognito-identity.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-north-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-3.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"fips-us-east-1\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-east-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"fips-us-east-2\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-east-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-2\",\n };\n break;\n case \"fips-us-gov-west-1\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\",\n };\n break;\n case \"fips-us-west-2\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-west-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-2\",\n };\n break;\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.sa-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-2\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-west-2\":\n regionInfo = {\n hostname: \"cognito-identity.us-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n // Next, try to match partition endpoints.\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n if (AWS_CN_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_CN_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-cn\",\n };\n }\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\",\n };\n }\n if (AWS_ISO_B_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_B_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso-b\",\n };\n }\n if (AWS_US_GOV_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_US_GOV_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-us-gov\",\n };\n }\n // Finally, assume it's an AWS partition endpoint.\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n }\n return Promise.resolve(__assign({ signingService: \"cognito-identity\" }, regionInfo));\n};\n//# sourceMappingURL=endpoints.js.map","import { __read, __values } from \"tslib\";\nexport function parseQueryString(querystring) {\n var e_1, _a;\n var query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n try {\n for (var _b = __values(querystring.split(\"&\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n var _d = __read(pair.split(\"=\"), 2), key = _d[0], _e = _d[1], value = _e === void 0 ? null : _e;\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return query;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxXQUFtQjs7SUFDbEQsSUFBTSxLQUFLLEdBQXNCLEVBQUUsQ0FBQztJQUNwQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFN0MsSUFBSSxXQUFXLEVBQUU7O1lBQ2YsS0FBbUIsSUFBQSxLQUFBLFNBQUEsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBdEMsSUFBTSxJQUFJLFdBQUE7Z0JBQ1QsSUFBQSxLQUFBLE9BQXNCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUEsRUFBcEMsR0FBRyxRQUFBLEVBQUUsVUFBWSxFQUFaLEtBQUssbUJBQUcsSUFBSSxLQUFtQixDQUFDO2dCQUMxQyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLElBQUksS0FBSyxFQUFFO29CQUNULEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFO29CQUNuQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUNwQjtxQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ25DLEtBQUssQ0FBQyxHQUFHLENBQW1CLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDO2lCQUNyRDtxQkFBTTtvQkFDTCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFXLEVBQUUsS0FBZSxDQUFDLENBQUM7aUJBQ3REO2FBQ0Y7Ozs7Ozs7OztLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlQYXJhbWV0ZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUXVlcnlTdHJpbmcocXVlcnlzdHJpbmc6IHN0cmluZyk6IFF1ZXJ5UGFyYW1ldGVyQmFnIHtcbiAgY29uc3QgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnID0ge307XG4gIHF1ZXJ5c3RyaW5nID0gcXVlcnlzdHJpbmcucmVwbGFjZSgvXlxcPy8sIFwiXCIpO1xuXG4gIGlmIChxdWVyeXN0cmluZykge1xuICAgIGZvciAoY29uc3QgcGFpciBvZiBxdWVyeXN0cmluZy5zcGxpdChcIiZcIikpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZSA9IG51bGxdID0gcGFpci5zcGxpdChcIj1cIik7XG4gICAgICBrZXkgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5KTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAoIShrZXkgaW4gcXVlcnkpKSB7XG4gICAgICAgIHF1ZXJ5W2tleV0gPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShxdWVyeVtrZXldKSkge1xuICAgICAgICAocXVlcnlba2V5XSBhcyBBcnJheTxzdHJpbmc+KS5wdXNoKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeVtrZXldID0gW3F1ZXJ5W2tleV0gYXMgc3RyaW5nLCB2YWx1ZSBhcyBzdHJpbmddO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBxdWVyeTtcbn1cbiJdfQ==","import { parseQueryString } from \"@aws-sdk/querystring-parser\";\nexport var parseUrl = function (url) {\n var _a = new URL(url), hostname = _a.hostname, pathname = _a.pathname, port = _a.port, protocol = _a.protocol, search = _a.search;\n var query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname: hostname,\n port: port ? parseInt(port) : undefined,\n protocol: protocol,\n path: pathname,\n query: query,\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHL0QsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUFjLFVBQUMsR0FBVztJQUN2QyxJQUFBLEtBQWlELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUEzRCxRQUFRLGNBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxJQUFJLFVBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxNQUFNLFlBQWlCLENBQUM7SUFFcEUsSUFBSSxLQUFvQyxDQUFDO0lBQ3pDLElBQUksTUFBTSxFQUFFO1FBQ1YsS0FBSyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2xDO0lBRUQsT0FBTztRQUNMLFFBQVEsVUFBQTtRQUNSLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUN2QyxRQUFRLFVBQUE7UUFDUixJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssT0FBQTtLQUNOLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVF1ZXJ5U3RyaW5nIH0gZnJvbSBcIkBhd3Mtc2RrL3F1ZXJ5c3RyaW5nLXBhcnNlclwiO1xuaW1wb3J0IHsgRW5kcG9pbnQsIFF1ZXJ5UGFyYW1ldGVyQmFnLCBVcmxQYXJzZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVXJsOiBVcmxQYXJzZXIgPSAodXJsOiBzdHJpbmcpOiBFbmRwb2ludCA9PiB7XG4gIGNvbnN0IHsgaG9zdG5hbWUsIHBhdGhuYW1lLCBwb3J0LCBwcm90b2NvbCwgc2VhcmNoIH0gPSBuZXcgVVJMKHVybCk7XG5cbiAgbGV0IHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyB8IHVuZGVmaW5lZDtcbiAgaWYgKHNlYXJjaCkge1xuICAgIHF1ZXJ5ID0gcGFyc2VRdWVyeVN0cmluZyhzZWFyY2gpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBob3N0bmFtZSxcbiAgICBwb3J0OiBwb3J0ID8gcGFyc2VJbnQocG9ydCkgOiB1bmRlZmluZWQsXG4gICAgcHJvdG9jb2wsXG4gICAgcGF0aDogcGF0aG5hbWUsXG4gICAgcXVlcnksXG4gIH07XG59O1xuIl19","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\nexport var ClientSharedValues = {\n apiVersion: \"2014-06-30\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"Cognito Identity\",\n urlParser: parseUrl,\n};\n//# sourceMappingURL=runtimeConfig.shared.js.map","import { __assign } from \"tslib\";\nimport packageInfo from \"./package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { FetchHttpHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { DEFAULT_MAX_ATTEMPTS } from \"@aws-sdk/middleware-retry\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64-browser\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { ClientSharedValues } from \"./runtimeConfig.shared\";\n/**\n * @internal\n */\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), { runtime: \"browser\", base64Decoder: fromBase64, base64Encoder: toBase64, bodyLengthChecker: calculateBodyLength, credentialDefaultProvider: function (_) { return function () { return Promise.reject(new Error(\"Credential is missing\")); }; }, defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version,\n }), maxAttempts: DEFAULT_MAX_ATTEMPTS, region: invalidProvider(\"Region is missing\"), requestHandler: new FetchHttpHandler(), sha256: Sha256, streamCollector: streamCollector, utf8Decoder: fromUtf8, utf8Encoder: toUtf8 });\n//# sourceMappingURL=runtimeConfig.browser.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var resolveEndpointsConfig = function (input) {\n var _a;\n return (__assign(__assign({}, input), { tls: (_a = input.tls) !== null && _a !== void 0 ? _a : true, endpoint: input.endpoint ? normalizeEndpoint(input) : function () { return getEndPointFromRegion(input); }, isCustomEndpoint: input.endpoint ? true : false }));\n};\nvar normalizeEndpoint = function (input) {\n var endpoint = input.endpoint, urlParser = input.urlParser;\n if (typeof endpoint === \"string\") {\n var promisified_1 = Promise.resolve(urlParser(endpoint));\n return function () { return promisified_1; };\n }\n else if (typeof endpoint === \"object\") {\n var promisified_2 = Promise.resolve(endpoint);\n return function () { return promisified_2; };\n }\n return endpoint;\n};\nvar getEndPointFromRegion = function (input) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, tls, region, dnsHostRegex, hostname;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = input.tls, tls = _a === void 0 ? true : _a;\n return [4 /*yield*/, input.region()];\n case 1:\n region = _c.sent();\n dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n return [4 /*yield*/, input.regionInfoProvider(region)];\n case 2:\n hostname = ((_b = (_c.sent())) !== null && _b !== void 0 ? _b : {}).hostname;\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return [2 /*return*/, input.urlParser((tls ? \"https:\" : \"http:\") + \"//\" + hostname)];\n }\n });\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5kcG9pbnRzQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0VuZHBvaW50c0NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBeUJBLE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLFVBQ3BDLEtBQW9EOztJQUNwQixPQUFBLHVCQUM3QixLQUFLLEtBQ1IsR0FBRyxRQUFFLEtBQUssQ0FBQyxHQUFHLG1DQUFJLElBQUksRUFDdEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFNLE9BQUEscUJBQXFCLENBQUMsS0FBSyxDQUFDLEVBQTVCLENBQTRCLEVBQ3hGLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUMvQyxDQUFBO0NBQUEsQ0FBQztBQUVILElBQU0saUJBQWlCLEdBQUcsVUFBQyxLQUFnRDtJQUNqRSxJQUFBLFFBQVEsR0FBZ0IsS0FBSyxTQUFyQixFQUFFLFNBQVMsR0FBSyxLQUFLLFVBQVYsQ0FBVztJQUN0QyxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUNoQyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7U0FBTSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUN2QyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLFFBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixJQUFNLHFCQUFxQixHQUFHLFVBQU8sS0FBZ0Q7Ozs7OztnQkFDM0UsS0FBZSxLQUFLLElBQVYsRUFBVixHQUFHLG1CQUFHLElBQUksS0FBQSxDQUFXO2dCQUNkLHFCQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBQTs7Z0JBQTdCLE1BQU0sR0FBRyxTQUFvQjtnQkFFN0IsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7Z0JBQzVGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7aUJBQ3BEO2dCQUVxQixxQkFBTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUE7O2dCQUFwRCxRQUFRLFVBQUssQ0FBQyxTQUFzQyxDQUFDLG1DQUFJLEVBQUUsVUFBbkQ7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO2lCQUMvRDtnQkFFRCxzQkFBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sV0FBSyxRQUFVLENBQUMsRUFBQzs7O0tBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCwgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciwgVXJsUGFyc2VyIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnRzSW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIGZ1bGx5IHF1YWxpZmllZCBlbmRwb2ludCBvZiB0aGUgd2Vic2VydmljZS4gVGhpcyBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgYSBjdXN0b20gZW5kcG9pbnQgKGZvciBleGFtcGxlLCB3aGVuIHVzaW5nIGEgbG9jYWwgdmVyc2lvbiBvZiBTMykuXG4gICAqL1xuICBlbmRwb2ludD86IHN0cmluZyB8IEVuZHBvaW50IHwgUHJvdmlkZXI8RW5kcG9pbnQ+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIFRMUyBpcyBlbmFibGVkIGZvciByZXF1ZXN0cy5cbiAgICovXG4gIHRscz86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICByZWdpb25JbmZvUHJvdmlkZXI6IFJlZ2lvbkluZm9Qcm92aWRlcjtcbiAgdXJsUGFyc2VyOiBVcmxQYXJzZXI7XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludHNSZXNvbHZlZENvbmZpZyBleHRlbmRzIFJlcXVpcmVkPEVuZHBvaW50c0lucHV0Q29uZmlnPiB7XG4gIGVuZHBvaW50OiBQcm92aWRlcjxFbmRwb2ludD47XG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlRW5kcG9pbnRzQ29uZmlnID0gPFQ+KFxuICBpbnB1dDogVCAmIEVuZHBvaW50c0lucHV0Q29uZmlnICYgUHJldmlvdXNseVJlc29sdmVkXG4pOiBUICYgRW5kcG9pbnRzUmVzb2x2ZWRDb25maWcgPT4gKHtcbiAgLi4uaW5wdXQsXG4gIHRsczogaW5wdXQudGxzID8/IHRydWUsXG4gIGVuZHBvaW50OiBpbnB1dC5lbmRwb2ludCA/IG5vcm1hbGl6ZUVuZHBvaW50KGlucHV0KSA6ICgpID0+IGdldEVuZFBvaW50RnJvbVJlZ2lvbihpbnB1dCksXG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGlucHV0LmVuZHBvaW50ID8gdHJ1ZSA6IGZhbHNlLFxufSk7XG5cbmNvbnN0IG5vcm1hbGl6ZUVuZHBvaW50ID0gKGlucHV0OiBFbmRwb2ludHNJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCk6IFByb3ZpZGVyPEVuZHBvaW50PiA9PiB7XG4gIGNvbnN0IHsgZW5kcG9pbnQsIHVybFBhcnNlciB9ID0gaW5wdXQ7XG4gIGlmICh0eXBlb2YgZW5kcG9pbnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBwcm9taXNpZmllZCA9IFByb21pc2UucmVzb2x2ZSh1cmxQYXJzZXIoZW5kcG9pbnQpKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVuZHBvaW50ID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoZW5kcG9pbnQpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfVxuICByZXR1cm4gZW5kcG9pbnQhO1xufTtcblxuY29uc3QgZ2V0RW5kUG9pbnRGcm9tUmVnaW9uID0gYXN5bmMgKGlucHV0OiBFbmRwb2ludHNJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCkgPT4ge1xuICBjb25zdCB7IHRscyA9IHRydWUgfSA9IGlucHV0O1xuICBjb25zdCByZWdpb24gPSBhd2FpdCBpbnB1dC5yZWdpb24oKTtcblxuICBjb25zdCBkbnNIb3N0UmVnZXggPSBuZXcgUmVnRXhwKC9eKFthLXpBLVowLTldfFthLXpBLVowLTldW2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pJC8pO1xuICBpZiAoIWRuc0hvc3RSZWdleC50ZXN0KHJlZ2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHJlZ2lvbiBpbiBjbGllbnQgY29uZmlnXCIpO1xuICB9XG5cbiAgY29uc3QgeyBob3N0bmFtZSB9ID0gKGF3YWl0IGlucHV0LnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24pKSA/PyB7fTtcbiAgaWYgKCFob3N0bmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCByZXNvbHZlIGhvc3RuYW1lIGZyb20gY2xpZW50IGNvbmZpZ1wiKTtcbiAgfVxuXG4gIHJldHVybiBpbnB1dC51cmxQYXJzZXIoYCR7dGxzID8gXCJodHRwczpcIiA6IFwiaHR0cDpcIn0vLyR7aG9zdG5hbWV9YCk7XG59O1xuIl19","import { __assign } from \"tslib\";\nexport var REGION_ENV_NAME = \"AWS_REGION\";\nexport var REGION_INI_NAME = \"region\";\nexport var NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) { return env[REGION_ENV_NAME]; },\n configFileSelector: function (profile) { return profile[REGION_INI_NAME]; },\n default: function () {\n throw new Error(\"Region is missing\");\n },\n};\nexport var NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\",\n};\nexport var resolveRegionConfig = function (input) {\n if (!input.region) {\n throw new Error(\"Region is missing\");\n }\n return __assign(__assign({}, input), { region: normalizeRegion(input.region) });\n};\nvar normalizeRegion = function (region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () { return promisified_1; };\n }\n return region;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaW9uQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JlZ2lvbkNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFlBQVksQ0FBQztBQUM1QyxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxJQUFNLDBCQUEwQixHQUFrQztJQUN2RSwyQkFBMkIsRUFBRSxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBcEIsQ0FBb0I7SUFDMUQsa0JBQWtCLEVBQUUsVUFBQyxPQUFPLElBQUssT0FBQSxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQXhCLENBQXdCO0lBQ3pELE9BQU8sRUFBRTtRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLCtCQUErQixHQUF1QjtJQUNqRSxhQUFhLEVBQUUsYUFBYTtDQUM3QixDQUFDO0FBZUYsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBSSxLQUFpRDtJQUN0RixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDdEM7SUFDRCw2QkFDSyxLQUFLLEtBQ1IsTUFBTSxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTyxDQUFDLElBQ3RDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxlQUFlLEdBQUcsVUFBQyxNQUFpQztJQUN4RCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLE1BQTBCLENBQUM7QUFDcEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9hZGVkQ29uZmlnU2VsZWN0b3JzLCBMb2NhbENvbmZpZ09wdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvbm9kZS1jb25maWctcHJvdmlkZXJcIjtcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBSRUdJT05fRU5WX05BTUUgPSBcIkFXU19SRUdJT05cIjtcbmV4cG9ydCBjb25zdCBSRUdJT05fSU5JX05BTUUgPSBcInJlZ2lvblwiO1xuXG5leHBvcnQgY29uc3QgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlM6IExvYWRlZENvbmZpZ1NlbGVjdG9yczxzdHJpbmc+ID0ge1xuICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltSRUdJT05fRU5WX05BTUVdLFxuICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiBwcm9maWxlW1JFR0lPTl9JTklfTkFNRV0sXG4gIGRlZmF1bHQ6ICgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gaXMgbWlzc2luZ1wiKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TOiBMb2NhbENvbmZpZ09wdGlvbnMgPSB7XG4gIHByZWZlcnJlZEZpbGU6IFwiY3JlZGVudGlhbHNcIixcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uSW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gdG8gd2hpY2ggdGhpcyBjbGllbnQgd2lsbCBzZW5kIHJlcXVlc3RzXG4gICAqL1xuICByZWdpb24/OiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+O1xufVxuXG5pbnRlcmZhY2UgUHJldmlvdXNseVJlc29sdmVkIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uUmVzb2x2ZWRDb25maWcge1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUmVnaW9uQ29uZmlnID0gPFQ+KGlucHV0OiBUICYgUmVnaW9uSW5wdXRDb25maWcgJiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBUICYgUmVnaW9uUmVzb2x2ZWRDb25maWcgPT4ge1xuICBpZiAoIWlucHV0LnJlZ2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlJlZ2lvbiBpcyBtaXNzaW5nXCIpO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQsXG4gICAgcmVnaW9uOiBub3JtYWxpemVSZWdpb24oaW5wdXQucmVnaW9uISksXG4gIH07XG59O1xuXG5jb25zdCBub3JtYWxpemVSZWdpb24gPSAocmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+KTogUHJvdmlkZXI8c3RyaW5nPiA9PiB7XG4gIGlmICh0eXBlb2YgcmVnaW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUocmVnaW9uKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH1cbiAgcmV0dXJuIHJlZ2lvbiBhcyBQcm92aWRlcjxzdHJpbmc+O1xufTtcbiJdfQ==","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var request, body, headers, length;\n var _a;\n return __generator(this, function (_b) {\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n body = request.body, headers = request.headers;\n if (body &&\n Object.keys(headers)\n .map(function (str) { return str.toLowerCase(); })\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n length = bodyLengthChecker(body);\n if (length !== undefined) {\n request.headers = __assign(__assign({}, request.headers), (_a = {}, _a[CONTENT_LENGTH_HEADER] = String(length), _a));\n }\n }\n }\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n });\n }); }; };\n}\nexport var contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nexport var getContentLengthPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVlyRCxJQUFNLHFCQUFxQixHQUFHLGdCQUFnQixDQUFDO0FBRS9DLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxpQkFBdUM7SUFBL0UsaUJBNEJDO0lBM0JDLE9BQU8sVUFBZ0MsSUFBK0IsSUFBZ0MsT0FBQSxVQUNwRyxJQUFnQzs7OztZQUUxQixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM3QixJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzNCLElBQUksR0FBYyxPQUFPLEtBQXJCLEVBQUUsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFhO2dCQUNsQyxJQUNFLElBQUk7b0JBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7eUJBQ2pCLEdBQUcsQ0FBQyxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBakIsQ0FBaUIsQ0FBQzt5QkFDL0IsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3hDO29CQUNNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO3dCQUN4QixPQUFPLENBQUMsT0FBTyx5QkFDVixPQUFPLENBQUMsT0FBTyxnQkFDakIscUJBQXFCLElBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUN4QyxDQUFDO3FCQUNIO2lCQUNGO2FBQ0Y7WUFFRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOztTQUNKLEVBMUJxRyxDQTBCckcsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsSUFBTSw4QkFBOEIsR0FBd0I7SUFDakUsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUM5QyxJQUFJLEVBQUUseUJBQXlCO0lBQy9CLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLFVBQUMsT0FBb0QsSUFBMEIsT0FBQSxDQUFDO0lBQ3BILFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRixDQUFDLEVBSm1ILENBSW5ILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBCb2R5TGVuZ3RoQ2FsY3VsYXRvcixcbiAgQnVpbGRIYW5kbGVyLFxuICBCdWlsZEhhbmRsZXJBcmd1bWVudHMsXG4gIEJ1aWxkSGFuZGxlck9wdGlvbnMsXG4gIEJ1aWxkSGFuZGxlck91dHB1dCxcbiAgQnVpbGRNaWRkbGV3YXJlLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuY29uc3QgQ09OVEVOVF9MRU5HVEhfSEVBREVSID0gXCJjb250ZW50LWxlbmd0aFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudExlbmd0aE1pZGRsZXdhcmUoYm9keUxlbmd0aENoZWNrZXI6IEJvZHlMZW5ndGhDYWxjdWxhdG9yKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4pOiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgICBhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55PlxuICApOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgY29uc3QgeyBib2R5LCBoZWFkZXJzIH0gPSByZXF1ZXN0O1xuICAgICAgaWYgKFxuICAgICAgICBib2R5ICYmXG4gICAgICAgIE9iamVjdC5rZXlzKGhlYWRlcnMpXG4gICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAuaW5kZXhPZihDT05URU5UX0xFTkdUSF9IRUFERVIpID09PSAtMVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGJvZHlMZW5ndGhDaGVja2VyKGJvZHkpO1xuICAgICAgICBpZiAobGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgICAgICAuLi5yZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgICAgICBbQ09OVEVOVF9MRU5HVEhfSEVBREVSXTogU3RyaW5nKGxlbmd0aCksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHtcbiAgICAgIC4uLmFyZ3MsXG4gICAgICByZXF1ZXN0LFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgY29udGVudExlbmd0aE1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHRhZ3M6IFtcIlNFVF9DT05URU5UX0xFTkdUSFwiLCBcIkNPTlRFTlRfTEVOR1RIXCJdLFxuICBuYW1lOiBcImNvbnRlbnRMZW5ndGhNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gPSAob3B0aW9uczogeyBib2R5TGVuZ3RoQ2hlY2tlcjogQm9keUxlbmd0aENhbGN1bGF0b3IgfSk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQoY29udGVudExlbmd0aE1pZGRsZXdhcmUob3B0aW9ucy5ib2R5TGVuZ3RoQ2hlY2tlciksIGNvbnRlbnRMZW5ndGhNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport var hostHeaderMiddleware = function (options) { return function (next) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, _a, handlerProtocol;\n return __generator(this, function (_b) {\n if (!HttpRequest.isInstance(args.request))\n return [2 /*return*/, next(args)];\n request = args.request;\n _a = (options.requestHandler.metadata || {}).handlerProtocol, handlerProtocol = _a === void 0 ? \"\" : _a;\n //For H2 request, remove 'host' header and use ':authority' header instead\n //reference: https://nodejs.org/dist/latest-v13.x/docs/api/errors.html#ERR_HTTP2_INVALID_CONNECTION_HEADERS\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n //non-H2 request and 'host' header is not set, set the 'host' header to request's hostname.\n }\n else if (!request.headers[\"host\"]) {\n request.headers[\"host\"] = request.hostname;\n }\n return [2 /*return*/, next(args)];\n });\n}); }; }; };\nexport var hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport var getHostHeaderPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVVyRCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLEtBQXFEO0lBRXJELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLFVBQ2xDLE9BQWlDLElBQ0UsT0FBQSxVQUFDLElBQUksSUFBSyxPQUFBLFVBQU8sSUFBSTs7O1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxzQkFBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUM7UUFDckQsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO1FBQ2pCLEtBQXlCLENBQUEsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFBLGdCQUExQyxFQUFwQixlQUFlLG1CQUFHLEVBQUUsS0FBQSxDQUEyQztRQUN2RSwwRUFBMEU7UUFDMUUsMkdBQTJHO1FBQzNHLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNuQywyRkFBMkY7U0FDNUY7YUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDNUM7UUFDRCxzQkFBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUM7O0tBQ25CLEVBZDhDLENBYzlDLEVBZG9DLENBY3BDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSwyQkFBMkIsR0FBMkM7SUFDakYsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QixJQUFJLEVBQUUsT0FBTztJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ2QsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxPQUFpQyxJQUEwQixPQUFBLENBQUM7SUFDOUYsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGLENBQUMsRUFKNkYsQ0FJN0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IEFic29sdXRlTG9jYXRpb24sIEJ1aWxkSGFuZGxlck9wdGlvbnMsIEJ1aWxkTWlkZGxld2FyZSwgUGx1Z2dhYmxlLCBSZXF1ZXN0SGFuZGxlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJJbnB1dENvbmZpZyB7fVxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxhbnksIGFueT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZyB7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxhbnksIGFueT47XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgSG9zdEhlYWRlcklucHV0Q29uZmlnXG4pOiBUICYgSG9zdEhlYWRlclJlc29sdmVkQ29uZmlnIHtcbiAgcmV0dXJuIGlucHV0O1xufVxuXG5leHBvcnQgY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmUgPSA8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCBleHRlbmRzIG9iamVjdD4oXG4gIG9wdGlvbnM6IEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZ1xuKTogQnVpbGRNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+ID0+IChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoYXJncy5yZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgY29uc3QgeyBoYW5kbGVyUHJvdG9jb2wgPSBcIlwiIH0gPSBvcHRpb25zLnJlcXVlc3RIYW5kbGVyLm1ldGFkYXRhIHx8IHt9O1xuICAvL0ZvciBIMiByZXF1ZXN0LCByZW1vdmUgJ2hvc3QnIGhlYWRlciBhbmQgdXNlICc6YXV0aG9yaXR5JyBoZWFkZXIgaW5zdGVhZFxuICAvL3JlZmVyZW5jZTogaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvbGF0ZXN0LXYxMy54L2RvY3MvYXBpL2Vycm9ycy5odG1sI0VSUl9IVFRQMl9JTlZBTElEX0NPTk5FQ1RJT05fSEVBREVSU1xuICBpZiAoaGFuZGxlclByb3RvY29sLmluZGV4T2YoXCJoMlwiKSA+PSAwICYmICFyZXF1ZXN0LmhlYWRlcnNbXCI6YXV0aG9yaXR5XCJdKSB7XG4gICAgZGVsZXRlIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl07XG4gICAgcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSA9IFwiXCI7XG4gICAgLy9ub24tSDIgcmVxdWVzdCBhbmQgJ2hvc3QnIGhlYWRlciBpcyBub3Qgc2V0LCBzZXQgdGhlICdob3N0JyBoZWFkZXIgdG8gcmVxdWVzdCdzIGhvc3RuYW1lLlxuICB9IGVsc2UgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXSA9IHJlcXVlc3QuaG9zdG5hbWU7XG4gIH1cbiAgcmV0dXJuIG5leHQoYXJncyk7XG59O1xuXG5leHBvcnQgY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHByaW9yaXR5OiBcImxvd1wiLFxuICB0YWdzOiBbXCJIT1NUXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIb3N0SGVhZGVyUGx1Z2luID0gKG9wdGlvbnM6IEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQoaG9zdEhlYWRlck1pZGRsZXdhcmUob3B0aW9ucyksIGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","import { __awaiter, __generator, __rest } from \"tslib\";\nexport var loggerMiddleware = function () { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var clientName, commandName, inputFilterSensitiveLog, logger, outputFilterSensitiveLog, response, _a, $metadata, outputWithoutMetadata;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientName = context.clientName, commandName = context.commandName, inputFilterSensitiveLog = context.inputFilterSensitiveLog, logger = context.logger, outputFilterSensitiveLog = context.outputFilterSensitiveLog;\n return [4 /*yield*/, next(args)];\n case 1:\n response = _b.sent();\n if (!logger) {\n return [2 /*return*/, response];\n }\n if (typeof logger.info === \"function\") {\n _a = response.output, $metadata = _a.$metadata, outputWithoutMetadata = __rest(_a, [\"$metadata\"]);\n logger.info({\n clientName: clientName,\n commandName: commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n }\n return [2 /*return*/, response];\n }\n });\n}); }; }; };\nexport var loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport var getLoggerPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dnZXJNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFZQSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxjQUFNLE9BQUEsVUFDcEMsSUFBb0MsRUFDcEMsT0FBZ0MsSUFDRyxPQUFBLFVBQ25DLElBQXFDOzs7OztnQkFFN0IsVUFBVSxHQUE2RSxPQUFPLFdBQXBGLEVBQUUsV0FBVyxHQUFnRSxPQUFPLFlBQXZFLEVBQUUsdUJBQXVCLEdBQXVDLE9BQU8sd0JBQTlDLEVBQUUsTUFBTSxHQUErQixPQUFPLE9BQXRDLEVBQUUsd0JBQXdCLEdBQUssT0FBTyx5QkFBWixDQUFhO2dCQUV0RixxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUE7O2dCQUEzQixRQUFRLEdBQUcsU0FBZ0I7Z0JBRWpDLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ1gsc0JBQU8sUUFBUSxFQUFDO2lCQUNqQjtnQkFFRCxJQUFJLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUU7b0JBQy9CLEtBQTBDLFFBQVEsQ0FBQyxNQUFNLEVBQXZELFNBQVMsZUFBQSxFQUFLLHFCQUFxQixjQUFyQyxhQUF1QyxDQUFGLENBQXFCO29CQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNWLFVBQVUsWUFBQTt3QkFDVixXQUFXLGFBQUE7d0JBQ1gsS0FBSyxFQUFFLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7d0JBQzFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDdkQsUUFBUSxFQUFFLFNBQVM7cUJBQ3BCLENBQUMsQ0FBQztpQkFDSjtnQkFFRCxzQkFBTyxRQUFRLEVBQUM7OztLQUNqQixFQXZCb0MsQ0F1QnBDLEVBMUJxQyxDQTBCckMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLHVCQUF1QixHQUFnRDtJQUNsRixJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUNoQixJQUFJLEVBQUUsWUFBWTtJQUNsQixRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRiw2REFBNkQ7QUFDN0QsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFVBQUMsT0FBWSxJQUEwQixPQUFBLENBQUM7SUFDckUsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YsQ0FBQyxFQUpvRSxDQUlwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEFic29sdXRlTG9jYXRpb24sXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBJbml0aWFsaXplSGFuZGxlcixcbiAgSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgbG9nZ2VyTWlkZGxld2FyZSA9ICgpID0+IDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciA9IE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+LFxuICBjb250ZXh0OiBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dFxuKTogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgYXJnczogSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHM8YW55PlxuKTogUHJvbWlzZTxJbml0aWFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nLCBsb2dnZXIsIG91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gY29udGV4dDtcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG5leHQoYXJncyk7XG5cbiAgaWYgKCFsb2dnZXIpIHtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIGxvZ2dlci5pbmZvID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBjb25zdCB7ICRtZXRhZGF0YSwgLi4ub3V0cHV0V2l0aG91dE1ldGFkYXRhIH0gPSByZXNwb25zZS5vdXRwdXQ7XG4gICAgbG9nZ2VyLmluZm8oe1xuICAgICAgY2xpZW50TmFtZSxcbiAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgb3V0cHV0OiBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cob3V0cHV0V2l0aG91dE1ldGFkYXRhKSxcbiAgICAgIG1ldGFkYXRhOiAkbWV0YWRhdGEsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5leHBvcnQgY29uc3QgbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnM6IEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyAmIEFic29sdXRlTG9jYXRpb24gPSB7XG4gIG5hbWU6IFwibG9nZ2VyTWlkZGxld2FyZVwiLFxuICB0YWdzOiBbXCJMT0dHRVJcIl0sXG4gIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmV4cG9ydCBjb25zdCBnZXRMb2dnZXJQbHVnaW4gPSAob3B0aW9uczogYW55KTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChsb2dnZXJNaWRkbGV3YXJlKCksIGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","export var ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport var CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport var AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport var SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport var EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport var SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport var TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport var AUTH_HEADER = \"authorization\";\nexport var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport var DATE_HEADER = \"date\";\nexport var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport var SHA256_HEADER = \"x-amz-content-sha256\";\nexport var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport var HOST_HEADER = \"host\";\nexport var ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexport var PROXY_HEADER_PATTERN = /^proxy-/;\nexport var SEC_HEADER_PATTERN = /^sec-/;\nexport var UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport var ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport var EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport var UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport var MAX_CACHE_SIZE = 50;\nexport var KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQztBQUN2RCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQztBQUN6RCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFDakQsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDaEUsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBRXhELE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDM0MsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUQsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUVsQyxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRztJQUN2QyxhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsSUFBSTtJQUNyQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsWUFBWSxFQUFFLElBQUk7SUFDbEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsWUFBWSxFQUFFLElBQUk7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUUxQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUUxRCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztBQUVyRSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfUVVFUllfUEFSQU0gPSBcIlgtQW16LVNpZ25hdHVyZVwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1FVRVJZX1BBUkFNID0gXCJYLUFtei1TZWN1cml0eS1Ub2tlblwiO1xuXG5leHBvcnQgY29uc3QgQVVUSF9IRUFERVIgPSBcImF1dGhvcml6YXRpb25cIjtcbmV4cG9ydCBjb25zdCBBTVpfREFURV9IRUFERVIgPSBBTVpfREFURV9RVUVSWV9QQVJBTS50b0xvd2VyQ2FzZSgpO1xuZXhwb3J0IGNvbnN0IERBVEVfSEVBREVSID0gXCJkYXRlXCI7XG5leHBvcnQgY29uc3QgR0VORVJBVEVEX0hFQURFUlMgPSBbQVVUSF9IRUFERVIsIEFNWl9EQVRFX0hFQURFUiwgREFURV9IRUFERVJdO1xuZXhwb3J0IGNvbnN0IFNJR05BVFVSRV9IRUFERVIgPSBTSUdOQVRVUkVfUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmV4cG9ydCBjb25zdCBTSEEyNTZfSEVBREVSID0gXCJ4LWFtei1jb250ZW50LXNoYTI1NlwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX0hFQURFUiA9IFRPS0VOX1FVRVJZX1BBUkFNLnRvTG93ZXJDYXNlKCk7XG5leHBvcnQgY29uc3QgSE9TVF9IRUFERVIgPSBcImhvc3RcIjtcblxuZXhwb3J0IGNvbnN0IEFMV0FZU19VTlNJR05BQkxFX0hFQURFUlMgPSB7XG4gIGF1dGhvcml6YXRpb246IHRydWUsXG4gIFwiY2FjaGUtY29udHJvbFwiOiB0cnVlLFxuICBjb25uZWN0aW9uOiB0cnVlLFxuICBleHBlY3Q6IHRydWUsXG4gIGZyb206IHRydWUsXG4gIFwia2VlcC1hbGl2ZVwiOiB0cnVlLFxuICBcIm1heC1mb3J3YXJkc1wiOiB0cnVlLFxuICBwcmFnbWE6IHRydWUsXG4gIHJlZmVyZXI6IHRydWUsXG4gIHRlOiB0cnVlLFxuICB0cmFpbGVyOiB0cnVlLFxuICBcInRyYW5zZmVyLWVuY29kaW5nXCI6IHRydWUsXG4gIHVwZ3JhZGU6IHRydWUsXG4gIFwidXNlci1hZ2VudFwiOiB0cnVlLFxuICBcIngtYW16bi10cmFjZS1pZFwiOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFBST1hZX0hFQURFUl9QQVRURVJOID0gL15wcm94eS0vO1xuXG5leHBvcnQgY29uc3QgU0VDX0hFQURFUl9QQVRURVJOID0gL15zZWMtLztcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkFCTEVfUEFUVEVSTlMgPSBbL15wcm94eS0vaSwgL15zZWMtL2ldO1xuXG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX0lERU5USUZJRVIgPSBcIkFXUzQtSE1BQy1TSEEyNTZcIjtcblxuZXhwb3J0IGNvbnN0IEVWRU5UX0FMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2LVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1BBWUxPQUQgPSBcIlVOU0lHTkVELVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IE1BWF9DQUNIRV9TSVpFID0gNTA7XG5leHBvcnQgY29uc3QgS0VZX1RZUEVfSURFTlRJRklFUiA9IFwiYXdzNF9yZXF1ZXN0XCI7XG5cbmV4cG9ydCBjb25zdCBNQVhfUFJFU0lHTkVEX1RUTCA9IDYwICogNjAgKiAyNCAqIDc7XG4iXX0=","import { __awaiter, __generator, __values } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nvar signingKeyCache = {};\nvar cacheQueue = [];\n/**\n * Create a string describing the scope of credentials used to sign a request.\n *\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being sent.\n */\nexport function createScope(shortDate, region, service) {\n return shortDate + \"/\" + region + \"/\" + service + \"/\" + KEY_TYPE_IDENTIFIER;\n}\n/**\n * Derive a signing key from its composite parts\n *\n * @param sha256Constructor A constructor function that can instantiate SHA-256\n * hash objects.\n * @param credentials The credentials with which the request will be\n * signed.\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being\n * sent.\n */\nexport var getSigningKey = function (sha256Constructor, credentials, shortDate, region, service) { return __awaiter(void 0, void 0, void 0, function () {\n var credsHash, cacheKey, key, _a, _b, signable, e_1_1;\n var e_1, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId)];\n case 1:\n credsHash = _d.sent();\n cacheKey = shortDate + \":\" + region + \":\" + service + \":\" + toHex(credsHash) + \":\" + credentials.sessionToken;\n if (cacheKey in signingKeyCache) {\n return [2 /*return*/, signingKeyCache[cacheKey]];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n key = \"AWS4\" + credentials.secretAccessKey;\n _d.label = 2;\n case 2:\n _d.trys.push([2, 7, 8, 9]);\n _a = __values([shortDate, region, service, KEY_TYPE_IDENTIFIER]), _b = _a.next();\n _d.label = 3;\n case 3:\n if (!!_b.done) return [3 /*break*/, 6];\n signable = _b.value;\n return [4 /*yield*/, hmac(sha256Constructor, key, signable)];\n case 4:\n key = _d.sent();\n _d.label = 5;\n case 5:\n _b = _a.next();\n return [3 /*break*/, 3];\n case 6: return [3 /*break*/, 9];\n case 7:\n e_1_1 = _d.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 9];\n case 8:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 9: return [2 /*return*/, (signingKeyCache[cacheKey] = key)];\n }\n });\n}); };\n/**\n * @internal\n */\nexport function clearCredentialCache() {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach(function (cacheKey) {\n delete signingKeyCache[cacheKey];\n });\n}\nfunction hmac(ctor, secret, data) {\n var hash = new ctor(secret);\n hash.update(data);\n return hash.digest();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbERlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlZGVudGlhbERlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxFLElBQU0sZUFBZSxHQUFrQyxFQUFFLENBQUM7QUFDMUQsSUFBTSxVQUFVLEdBQWtCLEVBQUUsQ0FBQztBQUVyQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLE9BQWU7SUFDNUUsT0FBVSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxtQkFBcUIsQ0FBQztBQUNwRSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsVUFDM0IsaUJBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hCLFNBQWlCLEVBQ2pCLE1BQWMsRUFDZCxPQUFlOzs7OztvQkFFRyxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUE7O2dCQUEvRixTQUFTLEdBQUcsU0FBbUY7Z0JBQy9GLFFBQVEsR0FBTSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQUksV0FBVyxDQUFDLFlBQWMsQ0FBQztnQkFDckcsSUFBSSxRQUFRLElBQUksZUFBZSxFQUFFO29CQUMvQixzQkFBTyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUM7aUJBQ2xDO2dCQUVELFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxjQUFjLEVBQUU7b0JBQ3pDLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQVksQ0FBQyxDQUFDO2lCQUN0RDtnQkFFRyxHQUFHLEdBQWUsU0FBTyxXQUFXLENBQUMsZUFBaUIsQ0FBQzs7OztnQkFDcEMsS0FBQSxTQUFBLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTs7OztnQkFBN0QsUUFBUTtnQkFDWCxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFBOztnQkFBbEQsR0FBRyxHQUFHLFNBQTRDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBRXJELHNCQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQWlCLENBQUMsRUFBQzs7O0tBQ3hELENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxRQUFRO1FBQzVDLE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLElBQXFCLEVBQUUsTUFBa0IsRUFBRSxJQUFnQjtJQUN2RSxJQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVkZW50aWFscywgSGFzaENvbnN0cnVjdG9yLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBLRVlfVFlQRV9JREVOVElGSUVSLCBNQVhfQ0FDSEVfU0laRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jb25zdCBzaWduaW5nS2V5Q2FjaGU6IHsgW2tleTogc3RyaW5nXTogVWludDhBcnJheSB9ID0ge307XG5jb25zdCBjYWNoZVF1ZXVlOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbi8qKlxuICogQ3JlYXRlIGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHNjb3BlIG9mIGNyZWRlbnRpYWxzIHVzZWQgdG8gc2lnbiBhIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHNob3J0RGF0ZSBUaGUgY3VycmVudCBjYWxlbmRhciBkYXRlIGluIHRoZSBmb3JtIFlZWVlNTURELlxuICogQHBhcmFtIHJlZ2lvbiAgICBUaGUgQVdTIHJlZ2lvbiBpbiB3aGljaCB0aGUgc2VydmljZSByZXNpZGVzLlxuICogQHBhcmFtIHNlcnZpY2UgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmcgc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjb3BlKHNob3J0RGF0ZTogc3RyaW5nLCByZWdpb246IHN0cmluZywgc2VydmljZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3Nob3J0RGF0ZX0vJHtyZWdpb259LyR7c2VydmljZX0vJHtLRVlfVFlQRV9JREVOVElGSUVSfWA7XG59XG5cbi8qKlxuICogRGVyaXZlIGEgc2lnbmluZyBrZXkgZnJvbSBpdHMgY29tcG9zaXRlIHBhcnRzXG4gKlxuICogQHBhcmFtIHNoYTI1NkNvbnN0cnVjdG9yIEEgY29uc3RydWN0b3IgZnVuY3Rpb24gdGhhdCBjYW4gaW5zdGFudGlhdGUgU0hBLTI1NlxuICogICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2ggb2JqZWN0cy5cbiAqIEBwYXJhbSBjcmVkZW50aWFscyAgICAgICBUaGUgY3JlZGVudGlhbHMgd2l0aCB3aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkLlxuICogQHBhcmFtIHNob3J0RGF0ZSAgICAgICAgIFRoZSBjdXJyZW50IGNhbGVuZGFyIGRhdGUgaW4gdGhlIGZvcm0gWVlZWU1NREQuXG4gKiBAcGFyYW0gcmVnaW9uICAgICAgICAgICAgVGhlIEFXUyByZWdpb24gaW4gd2hpY2ggdGhlIHNlcnZpY2UgcmVzaWRlcy5cbiAqIEBwYXJhbSBzZXJ2aWNlICAgICAgICAgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmdcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50LlxuICovXG5leHBvcnQgY29uc3QgZ2V0U2lnbmluZ0tleSA9IGFzeW5jIChcbiAgc2hhMjU2Q29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvcixcbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzLFxuICBzaG9ydERhdGU6IHN0cmluZyxcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIHNlcnZpY2U6IHN0cmluZ1xuKTogUHJvbWlzZTxVaW50OEFycmF5PiA9PiB7XG4gIGNvbnN0IGNyZWRzSGFzaCA9IGF3YWl0IGhtYWMoc2hhMjU2Q29uc3RydWN0b3IsIGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSwgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQpO1xuICBjb25zdCBjYWNoZUtleSA9IGAke3Nob3J0RGF0ZX06JHtyZWdpb259OiR7c2VydmljZX06JHt0b0hleChjcmVkc0hhc2gpfToke2NyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbn1gO1xuICBpZiAoY2FjaGVLZXkgaW4gc2lnbmluZ0tleUNhY2hlKSB7XG4gICAgcmV0dXJuIHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV07XG4gIH1cblxuICBjYWNoZVF1ZXVlLnB1c2goY2FjaGVLZXkpO1xuICB3aGlsZSAoY2FjaGVRdWV1ZS5sZW5ndGggPiBNQVhfQ0FDSEVfU0laRSkge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVRdWV1ZS5zaGlmdCgpIGFzIHN0cmluZ107XG4gIH1cblxuICBsZXQga2V5OiBTb3VyY2VEYXRhID0gYEFXUzQke2NyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleX1gO1xuICBmb3IgKGNvbnN0IHNpZ25hYmxlIG9mIFtzaG9ydERhdGUsIHJlZ2lvbiwgc2VydmljZSwgS0VZX1RZUEVfSURFTlRJRklFUl0pIHtcbiAgICBrZXkgPSBhd2FpdCBobWFjKHNoYTI1NkNvbnN0cnVjdG9yLCBrZXksIHNpZ25hYmxlKTtcbiAgfVxuICByZXR1cm4gKHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV0gPSBrZXkgYXMgVWludDhBcnJheSk7XG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDcmVkZW50aWFsQ2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlUXVldWUubGVuZ3RoID0gMDtcbiAgT2JqZWN0LmtleXMoc2lnbmluZ0tleUNhY2hlKS5mb3JFYWNoKChjYWNoZUtleSkgPT4ge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaG1hYyhjdG9yOiBIYXNoQ29uc3RydWN0b3IsIHNlY3JldDogU291cmNlRGF0YSwgZGF0YTogU291cmNlRGF0YSk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBoYXNoID0gbmV3IGN0b3Ioc2VjcmV0KTtcbiAgaGFzaC51cGRhdGUoZGF0YSk7XG4gIHJldHVybiBoYXNoLmRpZ2VzdCgpO1xufVxuIl19","import { __values } from \"tslib\";\nimport { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\n/**\n * @internal\n */\nexport function getCanonicalHeaders(_a, unsignableHeaders, signableHeaders) {\n var e_1, _b;\n var headers = _a.headers;\n var canonical = {};\n try {\n for (var _c = __values(Object.keys(headers).sort()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerName = _d.value;\n var canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return canonical;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsSGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDYW5vbmljYWxIZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEc7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEVBQXdCLEVBQ3hCLGlCQUErQixFQUMvQixlQUE2Qjs7UUFGM0IsT0FBTyxhQUFBO0lBSVQsSUFBTSxTQUFTLEdBQWMsRUFBRSxDQUFDOztRQUNoQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBLGdCQUFBLDRCQUFFO1lBQWpELElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JELElBQ0UsbUJBQW1CLElBQUkseUJBQXlCLEtBQ2hELGlCQUFpQixhQUFqQixpQkFBaUIsdUJBQWpCLGlCQUFpQixDQUFFLEdBQUcsQ0FBQyxtQkFBbUIsRUFBQztnQkFDM0Msb0JBQW9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUM5QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFDNUM7Z0JBQ0EsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFO29CQUN0RixTQUFTO2lCQUNWO2FBQ0Y7WUFFRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsRjs7Ozs7Ozs7O0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRlckJhZywgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUywgUFJPWFlfSEVBREVSX1BBVFRFUk4sIFNFQ19IRUFERVJfUEFUVEVSTiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2Fub25pY2FsSGVhZGVycyhcbiAgeyBoZWFkZXJzIH06IEh0dHBSZXF1ZXN0LFxuICB1bnNpZ25hYmxlSGVhZGVycz86IFNldDxzdHJpbmc+LFxuICBzaWduYWJsZUhlYWRlcnM/OiBTZXQ8c3RyaW5nPlxuKTogSGVhZGVyQmFnIHtcbiAgY29uc3QgY2Fub25pY2FsOiBIZWFkZXJCYWcgPSB7fTtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKSkge1xuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlck5hbWUgPSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKFxuICAgICAgY2Fub25pY2FsSGVhZGVyTmFtZSBpbiBBTFdBWVNfVU5TSUdOQUJMRV9IRUFERVJTIHx8XG4gICAgICB1bnNpZ25hYmxlSGVhZGVycz8uaGFzKGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBQUk9YWV9IRUFERVJfUEFUVEVSTi50ZXN0KGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBTRUNfSEVBREVSX1BBVFRFUk4udGVzdChjYW5vbmljYWxIZWFkZXJOYW1lKVxuICAgICkge1xuICAgICAgaWYgKCFzaWduYWJsZUhlYWRlcnMgfHwgKHNpZ25hYmxlSGVhZGVycyAmJiAhc2lnbmFibGVIZWFkZXJzLmhhcyhjYW5vbmljYWxIZWFkZXJOYW1lKSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2Fub25pY2FsW2Nhbm9uaWNhbEhlYWRlck5hbWVdID0gaGVhZGVyc1toZWFkZXJOYW1lXS50cmltKCkucmVwbGFjZSgvXFxzKy9nLCBcIiBcIik7XG4gIH1cblxuICByZXR1cm4gY2Fub25pY2FsO1xufVxuIl19","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\n/**\n * @internal\n */\nexport function getCanonicalQuery(_a) {\n var e_1, _b;\n var _c = _a.query, query = _c === void 0 ? {} : _c;\n var keys = [];\n var serialized = {};\n var _loop_1 = function (key) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n return \"continue\";\n }\n keys.push(key);\n var value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = escapeUri(key) + \"=\" + escapeUri(value);\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(function (encoded, value) { return encoded.concat([escapeUri(key) + \"=\" + escapeUri(value)]); }, [])\n .join(\"&\");\n }\n };\n try {\n for (var _d = __values(Object.keys(query).sort()), _e = _d.next(); !_e.done; _e = _d.next()) {\n var key = _e.value;\n _loop_1(key);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return keys\n .map(function (key) { return serialized[key]; })\n .filter(function (serialized) { return serialized; }) // omit any falsy values\n .join(\"&\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0Q2Fub25pY2FsUXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBMkI7O1FBQXpCLGFBQVUsRUFBVixLQUFLLG1CQUFHLEVBQUUsS0FBQTtJQUM1QyxJQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQy9CLElBQU0sVUFBVSxHQUE4QixFQUFFLENBQUM7NEJBQ3RDLEdBQUc7UUFDWixJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRTs7U0FFM0M7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBTSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLO2lCQUNwQixLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNSLElBQUksRUFBRTtpQkFDTixNQUFNLENBQ0wsVUFBQyxPQUFzQixFQUFFLEtBQWEsSUFBSyxPQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDLENBQUMsRUFBekQsQ0FBeUQsRUFDcEcsRUFBRSxDQUNIO2lCQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkOzs7UUFsQkgsS0FBa0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQTtZQUF0QyxJQUFNLEdBQUcsV0FBQTtvQkFBSCxHQUFHO1NBbUJiOzs7Ozs7Ozs7SUFFRCxPQUFPLElBQUk7U0FDUixHQUFHLENBQUMsVUFBQyxHQUFHLElBQUssT0FBQSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQWYsQ0FBZSxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxVQUFDLFVBQVUsSUFBSyxPQUFBLFVBQVUsRUFBVixDQUFVLENBQUMsQ0FBQyx3QkFBd0I7U0FDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmltcG9ydCB7IFNJR05BVFVSRV9IRUFERVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbm9uaWNhbFF1ZXJ5KHsgcXVlcnkgPSB7fSB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gIGNvbnN0IGtleXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgY29uc3Qgc2VyaWFsaXplZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhxdWVyeSkuc29ydCgpKSB7XG4gICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSBTSUdOQVRVUkVfSEVBREVSKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBrZXlzLnB1c2goa2V5KTtcbiAgICBjb25zdCB2YWx1ZSA9IHF1ZXJ5W2tleV07XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc2VyaWFsaXplZFtrZXldID0gYCR7ZXNjYXBlVXJpKGtleSl9PSR7ZXNjYXBlVXJpKHZhbHVlKX1gO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHNlcmlhbGl6ZWRba2V5XSA9IHZhbHVlXG4gICAgICAgIC5zbGljZSgwKVxuICAgICAgICAuc29ydCgpXG4gICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgKGVuY29kZWQ6IEFycmF5PHN0cmluZz4sIHZhbHVlOiBzdHJpbmcpID0+IGVuY29kZWQuY29uY2F0KFtgJHtlc2NhcGVVcmkoa2V5KX09JHtlc2NhcGVVcmkodmFsdWUpfWBdKSxcbiAgICAgICAgICBbXVxuICAgICAgICApXG4gICAgICAgIC5qb2luKFwiJlwiKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2V5c1xuICAgIC5tYXAoKGtleSkgPT4gc2VyaWFsaXplZFtrZXldKVxuICAgIC5maWx0ZXIoKHNlcmlhbGl6ZWQpID0+IHNlcmlhbGl6ZWQpIC8vIG9taXQgYW55IGZhbHN5IHZhbHVlc1xuICAgIC5qb2luKFwiJlwiKTtcbn1cbiJdfQ==","export var isArrayBuffer = function (arg) {\n return (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQU0sYUFBYSxHQUFHLFVBQUMsR0FBUTtJQUNwQyxPQUFBLENBQUMsT0FBTyxXQUFXLEtBQUssVUFBVSxJQUFJLEdBQUcsWUFBWSxXQUFXLENBQUM7UUFDakUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLHNCQUFzQjtBQUQ5RCxDQUM4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzQXJyYXlCdWZmZXIgPSAoYXJnOiBhbnkpOiBhcmcgaXMgQXJyYXlCdWZmZXIgPT5cbiAgKHR5cGVvZiBBcnJheUJ1ZmZlciA9PT0gXCJmdW5jdGlvblwiICYmIGFyZyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB8fFxuICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJnKSA9PT0gXCJbb2JqZWN0IEFycmF5QnVmZmVyXVwiO1xuIl19","import { __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayBuffer } from \"@aws-sdk/is-array-buffer\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\n/**\n * @internal\n */\nexport function getPayloadHash(_a, hashConstructor) {\n var headers = _a.headers, body = _a.body;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c, headerName, hashCtor, _d;\n var e_1, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n try {\n for (_b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n headerName = _c.value;\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return [2 /*return*/, headers[headerName]];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_e = _b.return)) _e.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!(body == undefined)) return [3 /*break*/, 1];\n return [2 /*return*/, \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"];\n case 1:\n if (!(typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body))) return [3 /*break*/, 3];\n hashCtor = new hashConstructor();\n hashCtor.update(body);\n _d = toHex;\n return [4 /*yield*/, hashCtor.digest()];\n case 2: return [2 /*return*/, _d.apply(void 0, [_f.sent()])];\n case 3: \n // As any defined body that is not a string or binary data is a stream, this\n // body is unsignable. Attempt to send the request with an unsigned payload,\n // which may or may not be accepted by the service.\n return [2 /*return*/, UNSIGNED_PAYLOAD];\n }\n });\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGF5bG9hZEhhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0UGF5bG9hZEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sVUFBZ0IsY0FBYyxDQUNsQyxFQUE4QixFQUM5QixlQUFnQztRQUQ5QixPQUFPLGFBQUEsRUFBRSxJQUFJLFVBQUE7Ozs7Ozs7O3dCQUdmLEtBQXlCLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLDRDQUFFOzRCQUFwQyxVQUFVOzRCQUNuQixJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxhQUFhLEVBQUU7Z0NBQzlDLHNCQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBQzs2QkFDNUI7eUJBQ0Y7Ozs7Ozs7Ozt5QkFFRyxDQUFBLElBQUksSUFBSSxTQUFTLENBQUEsRUFBakIsd0JBQWlCO29CQUNuQixzQkFBTyxrRUFBa0UsRUFBQzs7eUJBQ2pFLENBQUEsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBLEVBQTNFLHdCQUEyRTtvQkFDOUUsUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3ZDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2YsS0FBQSxLQUFLLENBQUE7b0JBQUMscUJBQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFBO3dCQUFwQyxzQkFBTyxrQkFBTSxTQUF1QixFQUFDLEVBQUM7O2dCQUd4Qyw0RUFBNEU7Z0JBQzVFLDRFQUE0RTtnQkFDNUUsbURBQW1EO2dCQUNuRCxzQkFBTyxnQkFBZ0IsRUFBQzs7OztDQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXJyYXlCdWZmZXIgfSBmcm9tIFwiQGF3cy1zZGsvaXMtYXJyYXktYnVmZmVyXCI7XG5pbXBvcnQgeyBIYXNoQ29uc3RydWN0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBTSEEyNTZfSEVBREVSLCBVTlNJR05FRF9QQVlMT0FEIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQYXlsb2FkSGFzaChcbiAgeyBoZWFkZXJzLCBib2R5IH06IEh0dHBSZXF1ZXN0LFxuICBoYXNoQ29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvclxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgaWYgKGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKSA9PT0gU0hBMjU2X0hFQURFUikge1xuICAgICAgcmV0dXJuIGhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgaWYgKGJvZHkgPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFwiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NVwiO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBib2R5ID09PSBcInN0cmluZ1wiIHx8IEFycmF5QnVmZmVyLmlzVmlldyhib2R5KSB8fCBpc0FycmF5QnVmZmVyKGJvZHkpKSB7XG4gICAgY29uc3QgaGFzaEN0b3IgPSBuZXcgaGFzaENvbnN0cnVjdG9yKCk7XG4gICAgaGFzaEN0b3IudXBkYXRlKGJvZHkpO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoQ3Rvci5kaWdlc3QoKSk7XG4gIH1cblxuICAvLyBBcyBhbnkgZGVmaW5lZCBib2R5IHRoYXQgaXMgbm90IGEgc3RyaW5nIG9yIGJpbmFyeSBkYXRhIGlzIGEgc3RyZWFtLCB0aGlzXG4gIC8vIGJvZHkgaXMgdW5zaWduYWJsZS4gQXR0ZW1wdCB0byBzZW5kIHRoZSByZXF1ZXN0IHdpdGggYW4gdW5zaWduZWQgcGF5bG9hZCxcbiAgLy8gd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgdGhlIHNlcnZpY2UuXG4gIHJldHVybiBVTlNJR05FRF9QQVlMT0FEO1xufVxuIl19","import { __values } from \"tslib\";\nexport function hasHeader(soughtHeader, headers) {\n var e_1, _a;\n soughtHeader = soughtHeader.toLowerCase();\n try {\n for (var _b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhc0hlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsTUFBTSxVQUFVLFNBQVMsQ0FBQyxZQUFvQixFQUFFLE9BQWtCOztJQUNoRSxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDOztRQUMxQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQTFDLElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQUksWUFBWSxLQUFLLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDN0MsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0hlYWRlcihzb3VnaHRIZWFkZXI6IHN0cmluZywgaGVhZGVyczogSGVhZGVyQmFnKTogYm9vbGVhbiB7XG4gIHNvdWdodEhlYWRlciA9IHNvdWdodEhlYWRlci50b0xvd2VyQ2FzZSgpO1xuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICBpZiAoc291Z2h0SGVhZGVyID09PSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==","import { __assign, __read, __rest, __spread } from \"tslib\";\n/**\n * @internal\n */\nexport function cloneRequest(_a) {\n var headers = _a.headers, query = _a.query, rest = __rest(_a, [\"headers\", \"query\"]);\n return __assign(__assign({}, rest), { headers: __assign({}, headers), query: query ? cloneQuery(query) : undefined });\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spread(param) : param, _a));\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmVSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb25lUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEVBQXdDO0lBQXRDLElBQUEsT0FBTyxhQUFBLEVBQUUsS0FBSyxXQUFBLEVBQUssSUFBSSxjQUF6QixvQkFBMkIsQ0FBRjtJQUNwRCw2QkFDSyxJQUFJLEtBQ1AsT0FBTyxlQUFPLE9BQU8sR0FDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQzVDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQXdCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUMzRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQ3REO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVSZXF1ZXN0KHsgaGVhZGVycywgcXVlcnksIC4uLnJlc3QgfTogSHR0cFJlcXVlc3QpOiBIdHRwUmVxdWVzdCB7XG4gIHJldHVybiB7XG4gICAgLi4ucmVzdCxcbiAgICBoZWFkZXJzOiB7IC4uLmhlYWRlcnMgfSxcbiAgICBxdWVyeTogcXVlcnkgPyBjbG9uZVF1ZXJ5KHF1ZXJ5KSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xvbmVRdWVyeShxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcpOiBRdWVyeVBhcmFtZXRlckJhZyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeSkucmVkdWNlKChjYXJyeTogUXVlcnlQYXJhbWV0ZXJCYWcsIHBhcmFtTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBxdWVyeVtwYXJhbU5hbWVdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIFtwYXJhbU5hbWVdOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IFsuLi5wYXJhbV0gOiBwYXJhbSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=","import { __assign, __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\n/**\n * @internal\n */\nexport function moveHeadersToQuery(request, options) {\n var e_1, _a;\n var _b;\n if (options === void 0) { options = {}; }\n var _c = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request), headers = _c.headers, _d = _c.query, query = _d === void 0 ? {} : _d;\n try {\n for (var _e = __values(Object.keys(headers)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var name = _f.value;\n var lname = name.toLowerCase();\n if (lname.substr(0, 6) === \"x-amz-\" && !((_b = options.unhoistableHeaders) === null || _b === void 0 ? void 0 : _b.has(lname))) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return __assign(__assign({}, request), { headers: headers,\n query: query });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUhlYWRlcnNUb1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vdmVIZWFkZXJzVG9RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxPQUFvQixFQUNwQixPQUFrRDs7O0lBQWxELHdCQUFBLEVBQUEsWUFBa0Q7SUFFNUMsSUFBQSxLQUNKLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUR6RixPQUFPLGFBQUEsRUFBRSxhQUErQixFQUEvQixLQUFLLG1CQUFHLEVBQXVCLEtBQ2lELENBQUM7O1FBQ2xHLEtBQW1CLElBQUEsS0FBQSxTQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBcEMsSUFBTSxJQUFJLFdBQUE7WUFDYixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksUUFBQyxPQUFPLENBQUMsa0JBQWtCLDBDQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUMsRUFBRTtnQkFDOUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEI7U0FDRjs7Ozs7Ozs7O0lBRUQsNkJBQ0ssT0FBTyxLQUNWLE9BQU8sU0FBQTtRQUNQLEtBQUssT0FBQSxJQUNMO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdmVIZWFkZXJzVG9RdWVyeShcbiAgcmVxdWVzdDogSHR0cFJlcXVlc3QsXG4gIG9wdGlvbnM6IHsgdW5ob2lzdGFibGVIZWFkZXJzPzogU2V0PHN0cmluZz4gfSA9IHt9XG4pOiBIdHRwUmVxdWVzdCAmIHsgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnIH0ge1xuICBjb25zdCB7IGhlYWRlcnMsIHF1ZXJ5ID0ge30gYXMgUXVlcnlQYXJhbWV0ZXJCYWcgfSA9XG4gICAgdHlwZW9mIChyZXF1ZXN0IGFzIGFueSkuY2xvbmUgPT09IFwiZnVuY3Rpb25cIiA/IChyZXF1ZXN0IGFzIGFueSkuY2xvbmUoKSA6IGNsb25lUmVxdWVzdChyZXF1ZXN0KTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgY29uc3QgbG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxuYW1lLnN1YnN0cigwLCA2KSA9PT0gXCJ4LWFtei1cIiAmJiAhb3B0aW9ucy51bmhvaXN0YWJsZUhlYWRlcnM/LmhhcyhsbmFtZSkpIHtcbiAgICAgIHF1ZXJ5W25hbWVdID0gaGVhZGVyc1tuYW1lXTtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVxdWVzdCxcbiAgICBoZWFkZXJzLFxuICAgIHF1ZXJ5LFxuICB9O1xufVxuIl19","import { __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\n/**\n * @internal\n */\nexport function prepareRequest(request) {\n var e_1, _a;\n // Create a clone of the request object that does not clone the body\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n try {\n for (var _b = __values(Object.keys(request.headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return request;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZVJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlcGFyZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQW9COztJQUNqRCxvRUFBb0U7SUFDcEUsT0FBTyxHQUFHLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztRQUUxRyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtZQUFsRCxJQUFNLFVBQVUsV0FBQTtZQUNuQixJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDNUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7Ozs7Ozs7OztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcbmltcG9ydCB7IEdFTkVSQVRFRF9IRUFERVJTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdCk6IEh0dHBSZXF1ZXN0IHtcbiAgLy8gQ3JlYXRlIGEgY2xvbmUgb2YgdGhlIHJlcXVlc3Qgb2JqZWN0IHRoYXQgZG9lcyBub3QgY2xvbmUgdGhlIGJvZHlcbiAgcmVxdWVzdCA9IHR5cGVvZiAocmVxdWVzdCBhcyBhbnkpLmNsb25lID09PSBcImZ1bmN0aW9uXCIgPyAocmVxdWVzdCBhcyBhbnkpLmNsb25lKCkgOiBjbG9uZVJlcXVlc3QocmVxdWVzdCk7XG5cbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKHJlcXVlc3QuaGVhZGVycykpIHtcbiAgICBpZiAoR0VORVJBVEVEX0hFQURFUlMuaW5kZXhPZihoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpID4gLTEpIHtcbiAgICAgIGRlbGV0ZSByZXF1ZXN0LmhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcXVlc3Q7XG59XG4iXX0=","export function iso8601(time) {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\n}\nexport function toDate(time) {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbERhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUE0QjtJQUNsRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDaEIsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUE0QjtJQUNqRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc284NjAxKHRpbWU6IG51bWJlciB8IHN0cmluZyB8IERhdGUpOiBzdHJpbmcge1xuICByZXR1cm4gdG9EYXRlKHRpbWUpXG4gICAgLnRvSVNPU3RyaW5nKClcbiAgICAucmVwbGFjZSgvXFwuXFxkezN9WiQvLCBcIlpcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUodGltZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IERhdGUge1xuICBpZiAodHlwZW9mIHRpbWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGltZSAqIDEwMDApO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0aW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKE51bWJlcih0aW1lKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcih0aW1lKSAqIDEwMDApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodGltZSk7XG4gIH1cblxuICByZXR1cm4gdGltZTtcbn1cbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM, } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { hasHeader } from \"./hasHeader\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\nvar SignatureV4 = /** @class */ (function () {\n function SignatureV4(_a) {\n var applyChecksum = _a.applyChecksum, credentials = _a.credentials, region = _a.region, service = _a.service, sha256 = _a.sha256, _b = _a.uriEscapePath, uriEscapePath = _b === void 0 ? true : _b;\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n // default to true if applyChecksum isn't set\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeRegionProvider(region);\n this.credentialProvider = normalizeCredentialsProvider(credentials);\n }\n SignatureV4.prototype.presign = function (originalRequest, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, signingDate, _b, expiresIn, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, credentials, region, _c, _d, longDate, shortDate, scope, request, canonicalHeaders, _e, _f, _g, _h, _j, _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = options.signingDate, signingDate = _a === void 0 ? new Date() : _a, _b = options.expiresIn, expiresIn = _b === void 0 ? 3600 : _b, unsignableHeaders = options.unsignableHeaders, unhoistableHeaders = options.unhoistableHeaders, signableHeaders = options.signableHeaders, signingRegion = options.signingRegion, signingService = options.signingService;\n return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _l.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _c = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _c = (_l.sent());\n _l.label = 4;\n case 4:\n region = _c;\n _d = formatDate(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return [2 /*return*/, Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\")];\n }\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders: unhoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = credentials.accessKeyId + \"/\" + scope;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n _e = request.query;\n _f = SIGNATURE_QUERY_PARAM;\n _g = this.getSignature;\n _h = [longDate,\n scope,\n this.getSigningKey(credentials, region, shortDate, signingService)];\n _j = this.createCanonicalRequest;\n _k = [request, canonicalHeaders];\n return [4 /*yield*/, getPayloadHash(originalRequest, this.sha256)];\n case 5: return [4 /*yield*/, _g.apply(this, _h.concat([_j.apply(this, _k.concat([_l.sent()]))]))];\n case 6:\n _e[_f] = _l.sent();\n return [2 /*return*/, request];\n }\n });\n });\n };\n SignatureV4.prototype.sign = function (toSign, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (typeof toSign === \"string\") {\n return [2 /*return*/, this.signString(toSign, options)];\n }\n else if (toSign.headers && toSign.payload) {\n return [2 /*return*/, this.signEvent(toSign, options)];\n }\n else {\n return [2 /*return*/, this.signRequest(toSign, options)];\n }\n return [2 /*return*/];\n });\n });\n };\n SignatureV4.prototype.signEvent = function (_a, _b) {\n var headers = _a.headers, payload = _a.payload;\n var _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, priorSignature = _b.priorSignature, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var region, _d, _e, shortDate, longDate, scope, hashedPayload, hash, hashedHeaders, _f, stringToSign;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 1];\n _d = signingRegion;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.regionProvider()];\n case 2:\n _d = (_g.sent());\n _g.label = 3;\n case 3:\n region = _d;\n _e = formatDate(signingDate), shortDate = _e.shortDate, longDate = _e.longDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n return [4 /*yield*/, getPayloadHash({ headers: {}, body: payload }, this.sha256)];\n case 4:\n hashedPayload = _g.sent();\n hash = new this.sha256();\n hash.update(headers);\n _f = toHex;\n return [4 /*yield*/, hash.digest()];\n case 5:\n hashedHeaders = _f.apply(void 0, [_g.sent()]);\n stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return [2 /*return*/, this.signString(stringToSign, { signingDate: signingDate, signingRegion: region, signingService: signingService })];\n }\n });\n });\n };\n SignatureV4.prototype.signString = function (stringToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, shortDate, hash, _e, _f, _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0: return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _h.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _d = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _d = (_h.sent());\n _h.label = 4;\n case 4:\n region = _d;\n shortDate = formatDate(signingDate).shortDate;\n _f = (_e = this.sha256).bind;\n return [4 /*yield*/, this.getSigningKey(credentials, region, shortDate, signingService)];\n case 5:\n hash = new (_f.apply(_e, [void 0, _h.sent()]))();\n hash.update(stringToSign);\n _g = toHex;\n return [4 /*yield*/, hash.digest()];\n case 6: return [2 /*return*/, _g.apply(void 0, [_h.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.signRequest = function (requestToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signableHeaders = _b.signableHeaders, unsignableHeaders = _b.unsignableHeaders, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, request, _e, longDate, shortDate, scope, payloadHash, canonicalHeaders, signature;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _f.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _d = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _d = (_f.sent());\n _f.label = 4;\n case 4:\n region = _d;\n request = prepareRequest(requestToSign);\n _e = formatDate(signingDate), longDate = _e.longDate, shortDate = _e.shortDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n return [4 /*yield*/, getPayloadHash(request, this.sha256)];\n case 5:\n payloadHash = _f.sent();\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n return [4 /*yield*/, this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash))];\n case 6:\n signature = _f.sent();\n request.headers[AUTH_HEADER] =\n ALGORITHM_IDENTIFIER + \" \" +\n (\"Credential=\" + credentials.accessKeyId + \"/\" + scope + \", \") +\n (\"SignedHeaders=\" + getCanonicalHeaderList(canonicalHeaders) + \", \") +\n (\"Signature=\" + signature);\n return [2 /*return*/, request];\n }\n });\n });\n };\n SignatureV4.prototype.createCanonicalRequest = function (request, canonicalHeaders, payloadHash) {\n var sortedHeaders = Object.keys(canonicalHeaders).sort();\n return request.method + \"\\n\" + this.getCanonicalPath(request) + \"\\n\" + getCanonicalQuery(request) + \"\\n\" + sortedHeaders.map(function (name) { return name + \":\" + canonicalHeaders[name]; }).join(\"\\n\") + \"\\n\\n\" + sortedHeaders.join(\";\") + \"\\n\" + payloadHash;\n };\n SignatureV4.prototype.createStringToSign = function (longDate, credentialScope, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var hash, hashedRequest;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hash = new this.sha256();\n hash.update(canonicalRequest);\n return [4 /*yield*/, hash.digest()];\n case 1:\n hashedRequest = _a.sent();\n return [2 /*return*/, ALGORITHM_IDENTIFIER + \"\\n\" + longDate + \"\\n\" + credentialScope + \"\\n\" + toHex(hashedRequest)];\n }\n });\n });\n };\n SignatureV4.prototype.getCanonicalPath = function (_a) {\n var path = _a.path;\n if (this.uriEscapePath) {\n var doubleEncoded = encodeURIComponent(path.replace(/^\\//, \"\"));\n return \"/\" + doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n };\n SignatureV4.prototype.getSignature = function (longDate, credentialScope, keyPromise, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var stringToSign, hash, _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this.createStringToSign(longDate, credentialScope, canonicalRequest)];\n case 1:\n stringToSign = _d.sent();\n _b = (_a = this.sha256).bind;\n return [4 /*yield*/, keyPromise];\n case 2:\n hash = new (_b.apply(_a, [void 0, _d.sent()]))();\n hash.update(stringToSign);\n _c = toHex;\n return [4 /*yield*/, hash.digest()];\n case 3: return [2 /*return*/, _c.apply(void 0, [_d.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.getSigningKey = function (credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n };\n return SignatureV4;\n}());\nexport { SignatureV4 };\nvar formatDate = function (now) {\n var longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate: longDate,\n shortDate: longDate.substr(0, 8),\n };\n};\nvar getCanonicalHeaderList = function (headers) { return Object.keys(headers).sort().join(\";\"); };\nvar normalizeRegionProvider = function (region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () { return promisified_1; };\n }\n else {\n return region;\n }\n};\nvar normalizeCredentialsProvider = function (credentials) {\n if (typeof credentials === \"object\") {\n var promisified_2 = Promise.resolve(credentials);\n return function () { return promisified_2; };\n }\n else {\n return credentials;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmF0dXJlVjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmF0dXJlVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWlCQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQWtEckM7SUFRRSxxQkFBWSxFQU84QjtZQU54QyxhQUFhLG1CQUFBLEVBQ2IsV0FBVyxpQkFBQSxFQUNYLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQSxFQUNQLE1BQU0sWUFBQSxFQUNOLHFCQUFvQixFQUFwQixhQUFhLG1CQUFHLElBQUksS0FBQTtRQUVwQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJ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YztJQUNoQyxJQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxPQUFPO1FBQ0wsUUFBUSxVQUFBO1FBQ1IsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNqQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxzQkFBc0IsR0FBRyxVQUFDLE9BQWUsSUFBYSxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFyQyxDQUFxQyxDQUFDO0FBRWxHLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxNQUFpQztJQUNoRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFNLDRCQUE0QixHQUFHLFVBQUMsV0FBZ0Q7SUFDcEYsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7UUFDbkMsSUFBTSxhQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxPQUFPLGNBQU0sT0FBQSxhQUFXLEVBQVgsQ0FBVyxDQUFDO0tBQzFCO1NBQU07UUFDTCxPQUFPLFdBQVcsQ0FBQztLQUNwQjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENyZWRlbnRpYWxzLFxuICBEYXRlSW5wdXQsXG4gIEV2ZW50U2lnbmVyLFxuICBFdmVudFNpZ25pbmdBcmd1bWVudHMsXG4gIEZvcm1hdHRlZEV2ZW50LFxuICBIYXNoQ29uc3RydWN0b3IsXG4gIEhlYWRlckJhZyxcbiAgSHR0cFJlcXVlc3QsXG4gIFByb3ZpZGVyLFxuICBSZXF1ZXN0UHJlc2lnbmVyLFxuICBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyxcbiAgUmVxdWVzdFNpZ25lcixcbiAgUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMsXG4gIFNpZ25pbmdBcmd1bWVudHMsXG4gIFN0cmluZ1NpZ25lcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQge1xuICBBTEdPUklUSE1fSURFTlRJRklFUixcbiAgQUxHT1JJVEhNX1FVRVJZX1BBUkFNLFxuICBBTVpfREFURV9IRUFERVIsXG4gIEFNWl9EQVRFX1FVRVJZX1BBUkFNLFxuICBBVVRIX0hFQURFUixcbiAgQ1JFREVOVElBTF9RVUVSWV9QQVJBTSxcbiAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gIEVYUElSRVNfUVVFUllfUEFSQU0sXG4gIE1BWF9QUkVTSUdORURfVFRMLFxuICBTSEEyNTZfSEVBREVSLFxuICBTSUdOQVRVUkVfUVVFUllfUEFSQU0sXG4gIFNJR05FRF9IRUFERVJTX1FVRVJZX1BBUkFNLFxuICBUT0tFTl9IRUFERVIsXG4gIFRPS0VOX1FVRVJZX1BBUkFNLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNyZWF0ZVNjb3BlLCBnZXRTaWduaW5nS2V5IH0gZnJvbSBcIi4vY3JlZGVudGlhbERlcml2YXRpb25cIjtcbmltcG9ydCB7IGdldENhbm9uaWNhbEhlYWRlcnMgfSBmcm9tIFwiLi9nZXRDYW5vbmljYWxIZWFkZXJzXCI7XG5pbXBvcnQgeyBnZXRDYW5vbmljYWxRdWVyeSB9IGZyb20gXCIuL2dldENhbm9uaWNhbFF1ZXJ5XCI7XG5pbXBvcnQgeyBnZXRQYXlsb2FkSGFzaCB9IGZyb20gXCIuL2dldFBheWxvYWRIYXNoXCI7XG5pbXBvcnQgeyBoYXNIZWFkZXIgfSBmcm9tIFwiLi9oYXNIZWFkZXJcIjtcbmltcG9ydCB7IG1vdmVIZWFkZXJzVG9RdWVyeSB9IGZyb20gXCIuL21vdmVIZWFkZXJzVG9RdWVyeVwiO1xuaW1wb3J0IHsgcHJlcGFyZVJlcXVlc3QgfSBmcm9tIFwiLi9wcmVwYXJlUmVxdWVzdFwiO1xuaW1wb3J0IHsgaXNvODYwMSB9IGZyb20gXCIuL3V0aWxEYXRlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHNpZ25pbmcgbmFtZS5cbiAgICovXG4gIHNlcnZpY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBuYW1lIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgYmVcbiAgICogcmVzb2x2ZWQgd2l0aCB0aGUgcmVnaW9uIG5hbWUuXG4gICAqL1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyB3aXRoIHdoaWNoIHRoZSByZXF1ZXN0IHNob3VsZCBiZSBzaWduZWQgb3IgYSBmdW5jdGlvblxuICAgKiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCB3aXRoIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzIHwgUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuXG4gIC8qKlxuICAgKiBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciBhIGhhc2ggb2JqZWN0IHRoYXQgd2lsbCBjYWxjdWxhdGUgU0hBLTI1NiBITUFDXG4gICAqIGNoZWNrc3Vtcy5cbiAgICovXG4gIHNoYTI1Nj86IEhhc2hDb25zdHJ1Y3RvcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1cmktZXNjYXBlIHRoZSByZXF1ZXN0IFVSSSBwYXRoIGFzIHBhcnQgb2YgY29tcHV0aW5nIHRoZVxuICAgKiBjYW5vbmljYWwgcmVxdWVzdCBzdHJpbmcuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGV2ZXJ5IEFXUyBzZXJ2aWNlLCBleGNlcHRcbiAgICogQW1hem9uIFMzLCBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgdXJpRXNjYXBlUGF0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2FsY3VsYXRlIGEgY2hlY2tzdW0gb2YgdGhlIHJlcXVlc3QgYm9keSBhbmQgaW5jbHVkZSBpdCBhc1xuICAgKiBlaXRoZXIgYSByZXF1ZXN0IGhlYWRlciAod2hlbiBzaWduaW5nKSBvciBhcyBhIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJcbiAgICogKHdoZW4gcHJlc2lnbmluZykuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIEFXUyBHbGFjaWVyIGFuZCBBbWF6b24gUzMgYW5kIG9wdGlvbmFsIGZvclxuICAgKiBldmVyeSBvdGhlciBBV1Mgc2VydmljZSBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgYXBwbHlDaGVja3N1bT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRDcnlwdG9Jbml0IHtcbiAgc2hhMjU2OiBIYXNoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBjbGFzcyBTaWduYXR1cmVWNCBpbXBsZW1lbnRzIFJlcXVlc3RQcmVzaWduZXIsIFJlcXVlc3RTaWduZXIsIFN0cmluZ1NpZ25lciwgRXZlbnRTaWduZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb25Qcm92aWRlcjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXI6IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBzaGEyNTY6IEhhc2hDb25zdHJ1Y3RvcjtcbiAgcHJpdmF0ZSByZWFkb25seSB1cmlFc2NhcGVQYXRoOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGx5Q2hlY2tzdW06IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGFwcGx5Q2hlY2tzdW0sXG4gICAgY3JlZGVudGlhbHMsXG4gICAgcmVnaW9uLFxuICAgIHNlcnZpY2UsXG4gICAgc2hhMjU2LFxuICAgIHVyaUVzY2FwZVBhdGggPSB0cnVlLFxuICB9OiBTaWduYXR1cmVWNEluaXQgJiBTaWduYXR1cmVWNENyeXB0b0luaXQpIHtcbiAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgIHRoaXMuc2hhMjU2ID0gc2hhMjU2O1xuICAgIHRoaXMudXJpRXNjYXBlUGF0aCA9IHVyaUVzY2FwZVBhdGg7XG4gICAgLy8gZGVmYXVsdCB0byB0cnVlIGlmIGFwcGx5Q2hlY2tzdW0gaXNuJ3Qgc2V0XG4gICAgdGhpcy5hcHBseUNoZWNrc3VtID0gdHlwZW9mIGFwcGx5Q2hlY2tzdW0gPT09IFwiYm9vbGVhblwiID8gYXBwbHlDaGVja3N1bSA6IHRydWU7XG4gICAgdGhpcy5yZWdpb25Qcm92aWRlciA9IG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyKHJlZ2lvbik7XG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIgPSBub3JtYWxpemVDcmVkZW50aWFsc1Byb3ZpZGVyKGNyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKG9yaWdpbmFsUmVxdWVzdDogSHR0cFJlcXVlc3QsIG9wdGlvbnM6IFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzID0ge30pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3Qge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgZXhwaXJlc0luID0gMzYwMCxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5ob2lzdGFibGVIZWFkZXJzLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlLFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuXG4gICAgY29uc3QgeyBsb25nRGF0ZSwgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcbiAgICBpZiAoZXhwaXJlc0luID4gTUFYX1BSRVNJR05FRF9UVEwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgXCJTaWduYXR1cmUgdmVyc2lvbiA0IHByZXNpZ25lZCBVUkxzXCIgKyBcIiBtdXN0IGhhdmUgYW4gZXhwaXJhdGlvbiBkYXRlIGxlc3MgdGhhbiBvbmUgd2VlayBpblwiICsgXCIgdGhlIGZ1dHVyZVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IG1vdmVIZWFkZXJzVG9RdWVyeShwcmVwYXJlUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QpLCB7IHVuaG9pc3RhYmxlSGVhZGVycyB9KTtcblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHJlcXVlc3QucXVlcnlbVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICByZXF1ZXN0LnF1ZXJ5W0FMR09SSVRITV9RVUVSWV9QQVJBTV0gPSBBTEdPUklUSE1fSURFTlRJRklFUjtcbiAgICByZXF1ZXN0LnF1ZXJ5W0NSRURFTlRJQUxfUVVFUllfUEFSQU1dID0gYCR7Y3JlZGVudGlhbHMuYWNjZXNzS2V5SWR9LyR7c2NvcGV9YDtcbiAgICByZXF1ZXN0LnF1ZXJ5W0FNWl9EQVRFX1FVRVJZX1BBUkFNXSA9IGxvbmdEYXRlO1xuICAgIHJlcXVlc3QucXVlcnlbRVhQSVJFU19RVUVSWV9QQVJBTV0gPSBleHBpcmVzSW4udG9TdHJpbmcoMTApO1xuXG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVycyA9IGdldENhbm9uaWNhbEhlYWRlcnMocmVxdWVzdCwgdW5zaWduYWJsZUhlYWRlcnMsIHNpZ25hYmxlSGVhZGVycyk7XG4gICAgcmVxdWVzdC5xdWVyeVtTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTV0gPSBnZXRDYW5vbmljYWxIZWFkZXJMaXN0KGNhbm9uaWNhbEhlYWRlcnMpO1xuXG4gICAgcmVxdWVzdC5xdWVyeVtTSUdOQVRVUkVfUVVFUllfUEFSQU1dID0gYXdhaXQgdGhpcy5nZXRTaWduYXR1cmUoXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpLFxuICAgICAgdGhpcy5jcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3QsIGNhbm9uaWNhbEhlYWRlcnMsIGF3YWl0IGdldFBheWxvYWRIYXNoKG9yaWdpbmFsUmVxdWVzdCwgdGhpcy5zaGEyNTYpKVxuICAgICk7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaWduKHN0cmluZ1RvU2lnbjogc3RyaW5nLCBvcHRpb25zPzogU2lnbmluZ0FyZ3VtZW50cyk6IFByb21pc2U8c3RyaW5nPjtcbiAgcHVibGljIGFzeW5jIHNpZ24oZXZlbnQ6IEZvcm1hdHRlZEV2ZW50LCBvcHRpb25zOiBFdmVudFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPHN0cmluZz47XG4gIHB1YmxpYyBhc3luYyBzaWduKHJlcXVlc3RUb1NpZ246IEh0dHBSZXF1ZXN0LCBvcHRpb25zPzogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPEh0dHBSZXF1ZXN0PjtcbiAgcHVibGljIGFzeW5jIHNpZ24odG9TaWduOiBhbnksIG9wdGlvbnM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHR5cGVvZiB0b1NpZ24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25TdHJpbmcodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHRvU2lnbi5oZWFkZXJzICYmIHRvU2lnbi5wYXlsb2FkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaWduRXZlbnQodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc2lnblJlcXVlc3QodG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25FdmVudChcbiAgICB7IGhlYWRlcnMsIHBheWxvYWQgfTogRm9ybWF0dGVkRXZlbnQsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHByaW9yU2lnbmF0dXJlLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9OiBFdmVudFNpZ25pbmdBcmd1bWVudHNcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlLCBsb25nRGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcbiAgICBjb25zdCBoYXNoZWRQYXlsb2FkID0gYXdhaXQgZ2V0UGF5bG9hZEhhc2goeyBoZWFkZXJzOiB7fSwgYm9keTogcGF5bG9hZCB9IGFzIGFueSwgdGhpcy5zaGEyNTYpO1xuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoKTtcbiAgICBoYXNoLnVwZGF0ZShoZWFkZXJzKTtcbiAgICBjb25zdCBoYXNoZWRIZWFkZXJzID0gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gICAgY29uc3Qgc3RyaW5nVG9TaWduID0gW1xuICAgICAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgcHJpb3JTaWduYXR1cmUsXG4gICAgICBoYXNoZWRIZWFkZXJzLFxuICAgICAgaGFzaGVkUGF5bG9hZCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgcmV0dXJuIHRoaXMuc2lnblN0cmluZyhzdHJpbmdUb1NpZ24sIHsgc2lnbmluZ0RhdGUsIHNpZ25pbmdSZWdpb246IHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25TdHJpbmcoXG4gICAgc3RyaW5nVG9TaWduOiBzdHJpbmcsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH06IFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcblxuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoYXdhaXQgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2lnblJlcXVlc3QoXG4gICAgcmVxdWVzdFRvU2lnbjogSHR0cFJlcXVlc3QsXG4gICAge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgc2lnbmluZ1NlcnZpY2UsXG4gICAgfTogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxQcm92aWRlcigpO1xuICAgIGNvbnN0IHJlZ2lvbiA9IHNpZ25pbmdSZWdpb24gPz8gKGF3YWl0IHRoaXMucmVnaW9uUHJvdmlkZXIoKSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHByZXBhcmVSZXF1ZXN0KHJlcXVlc3RUb1NpZ24pO1xuICAgIGNvbnN0IHsgbG9uZ0RhdGUsIHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcblxuICAgIHJlcXVlc3QuaGVhZGVyc1tBTVpfREFURV9IRUFERVJdID0gbG9uZ0RhdGU7XG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW1RPS0VOX0hFQURFUl0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgY29uc3QgcGF5bG9hZEhhc2ggPSBhd2FpdCBnZXRQYXlsb2FkSGFzaChyZXF1ZXN0LCB0aGlzLnNoYTI1Nik7XG4gICAgaWYgKCFoYXNIZWFkZXIoU0hBMjU2X0hFQURFUiwgcmVxdWVzdC5oZWFkZXJzKSAmJiB0aGlzLmFwcGx5Q2hlY2tzdW0pIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVyc1tTSEEyNTZfSEVBREVSXSA9IHBheWxvYWRIYXNoO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlcnMgPSBnZXRDYW5vbmljYWxIZWFkZXJzKHJlcXVlc3QsIHVuc2lnbmFibGVIZWFkZXJzLCBzaWduYWJsZUhlYWRlcnMpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHRoaXMuZ2V0U2lnbmF0dXJlKFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSxcbiAgICAgIHRoaXMuY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzLCBwYXlsb2FkSGFzaClcbiAgICApO1xuXG4gICAgcmVxdWVzdC5oZWFkZXJzW0FVVEhfSEVBREVSXSA9XG4gICAgICBgJHtBTEdPUklUSE1fSURFTlRJRklFUn0gYCArXG4gICAgICBgQ3JlZGVudGlhbD0ke2NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkfS8ke3Njb3BlfSwgYCArXG4gICAgICBgU2lnbmVkSGVhZGVycz0ke2dldENhbm9uaWNhbEhlYWRlckxpc3QoY2Fub25pY2FsSGVhZGVycyl9LCBgICtcbiAgICAgIGBTaWduYXR1cmU9JHtzaWduYXR1cmV9YDtcblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzOiBIZWFkZXJCYWcsIHBheWxvYWRIYXNoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNvcnRlZEhlYWRlcnMgPSBPYmplY3Qua2V5cyhjYW5vbmljYWxIZWFkZXJzKS5zb3J0KCk7XG4gICAgcmV0dXJuIGAke3JlcXVlc3QubWV0aG9kfVxuJHt0aGlzLmdldENhbm9uaWNhbFBhdGgocmVxdWVzdCl9XG4ke2dldENhbm9uaWNhbFF1ZXJ5KHJlcXVlc3QpfVxuJHtzb3J0ZWRIZWFkZXJzLm1hcCgobmFtZSkgPT4gYCR7bmFtZX06JHtjYW5vbmljYWxIZWFkZXJzW25hbWVdfWApLmpvaW4oXCJcXG5cIil9XG5cbiR7c29ydGVkSGVhZGVycy5qb2luKFwiO1wiKX1cbiR7cGF5bG9hZEhhc2h9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlU3RyaW5nVG9TaWduKFxuICAgIGxvbmdEYXRlOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbFNjb3BlOiBzdHJpbmcsXG4gICAgY2Fub25pY2FsUmVxdWVzdDogc3RyaW5nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1NigpO1xuICAgIGhhc2gudXBkYXRlKGNhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGNvbnN0IGhhc2hlZFJlcXVlc3QgPSBhd2FpdCBoYXNoLmRpZ2VzdCgpO1xuXG4gICAgcmV0dXJuIGAke0FMR09SSVRITV9JREVOVElGSUVSfVxuJHtsb25nRGF0ZX1cbiR7Y3JlZGVudGlhbFNjb3BlfVxuJHt0b0hleChoYXNoZWRSZXF1ZXN0KX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYW5vbmljYWxQYXRoKHsgcGF0aCB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXJpRXNjYXBlUGF0aCkge1xuICAgICAgY29uc3QgZG91YmxlRW5jb2RlZCA9IGVuY29kZVVSSUNvbXBvbmVudChwYXRoLnJlcGxhY2UoL15cXC8vLCBcIlwiKSk7XG4gICAgICByZXR1cm4gYC8ke2RvdWJsZUVuY29kZWQucmVwbGFjZSgvJTJGL2csIFwiL1wiKX1gO1xuICAgIH1cblxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRTaWduYXR1cmUoXG4gICAgbG9uZ0RhdGU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsU2NvcGU6IHN0cmluZyxcbiAgICBrZXlQcm9taXNlOiBQcm9taXNlPFVpbnQ4QXJyYXk+LFxuICAgIGNhbm9uaWNhbFJlcXVlc3Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHN0cmluZ1RvU2lnbiA9IGF3YWl0IHRoaXMuY3JlYXRlU3RyaW5nVG9TaWduKGxvbmdEYXRlLCBjcmVkZW50aWFsU2NvcGUsIGNhbm9uaWNhbFJlcXVlc3QpO1xuXG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1Nihhd2FpdCBrZXlQcm9taXNlKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2lnbmluZ0tleShcbiAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgc2hvcnREYXRlOiBzdHJpbmcsXG4gICAgc2VydmljZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gZ2V0U2lnbmluZ0tleSh0aGlzLnNoYTI1NiwgY3JlZGVudGlhbHMsIHNob3J0RGF0ZSwgcmVnaW9uLCBzZXJ2aWNlIHx8IHRoaXMuc2VydmljZSk7XG4gIH1cbn1cblxuY29uc3QgZm9ybWF0RGF0ZSA9IChub3c6IERhdGVJbnB1dCk6IHsgbG9uZ0RhdGU6IHN0cmluZzsgc2hvcnREYXRlOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IGxvbmdEYXRlID0gaXNvODYwMShub3cpLnJlcGxhY2UoL1tcXC06XS9nLCBcIlwiKTtcbiAgcmV0dXJuIHtcbiAgICBsb25nRGF0ZSxcbiAgICBzaG9ydERhdGU6IGxvbmdEYXRlLnN1YnN0cigwLCA4KSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldENhbm9uaWNhbEhlYWRlckxpc3QgPSAoaGVhZGVyczogb2JqZWN0KTogc3RyaW5nID0+IE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKS5qb2luKFwiO1wiKTtcblxuY29uc3Qgbm9ybWFsaXplUmVnaW9uUHJvdmlkZXIgPSAocmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+KTogUHJvdmlkZXI8c3RyaW5nPiA9PiB7XG4gIGlmICh0eXBlb2YgcmVnaW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUocmVnaW9uKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlZ2lvbjtcbiAgfVxufTtcblxuY29uc3Qgbm9ybWFsaXplQ3JlZGVudGlhbHNQcm92aWRlciA9IChjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgfCBQcm92aWRlcjxDcmVkZW50aWFscz4pOiBQcm92aWRlcjxDcmVkZW50aWFscz4gPT4ge1xuICBpZiAodHlwZW9mIGNyZWRlbnRpYWxzID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cbn07XG4iXX0=","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nexport function resolveAwsAuthConfig(input) {\n var _this = this;\n var credentials = input.credentials || input.credentialDefaultProvider(input);\n var normalizedCreds = normalizeProvider(credentials);\n var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;\n var signer;\n if (input.signer) {\n //if signer is supplied by user, normalize it to a function returning a promise for signer.\n signer = normalizeProvider(input.signer);\n }\n else {\n //construct a provider inferring signing from region.\n signer = function () {\n return normalizeProvider(input.region)()\n .then(function (region) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, input.regionInfoProvider(region)];\n case 1: return [2 /*return*/, [(_a.sent()) || {}, region]];\n }\n }); }); })\n .then(function (_a) {\n var _b = __read(_a, 2), regionInfo = _b[0], region = _b[1];\n var signingRegion = regionInfo.signingRegion, signingService = regionInfo.signingService;\n //update client's singing region and signing service config if they are resolved.\n //signing region resolving order: user supplied signingRegion -> endpoints.json inferred region -> client region\n input.signingRegion = input.signingRegion || signingRegion || region;\n //signing name resolving order:\n //user supplied signingName -> endpoints.json inferred (credential scope -> model arnNamespace) -> model service id\n input.signingName = input.signingName || signingService || input.serviceId;\n return new SignatureV4({\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256: sha256,\n uriEscapePath: signingEscapePath,\n });\n });\n };\n }\n return __assign(__assign({}, input), { systemClockOffset: systemClockOffset,\n signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });\n}\nfunction normalizeProvider(input) {\n if (typeof input === \"object\") {\n var promisified_1 = Promise.resolve(input);\n return function () { return promisified_1; };\n }\n return input;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQTRDcEQsTUFBTSxVQUFVLG9CQUFvQixDQUFJLEtBQWtEO0lBQTFGLGlCQXVDQztJQXRDQyxJQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxLQUFZLENBQUMsQ0FBQztJQUN2RixJQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxJQUFBLEtBQXVGLEtBQUssa0JBQXBFLEVBQXhCLGlCQUFpQixtQkFBRyxJQUFJLEtBQUEsRUFBRSxLQUE2RCxLQUFLLGtCQUFsQixFQUFoRCxpQkFBaUIsbUJBQUcsS0FBSyxDQUFDLGlCQUFpQixJQUFJLENBQUMsS0FBQSxFQUFFLE1BQU0sR0FBSyxLQUFLLE9BQVYsQ0FBVztJQUNyRyxJQUFJLE1BQStCLENBQUM7SUFDcEMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2hCLDJGQUEyRjtRQUMzRixNQUFNLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzFDO1NBQU07UUFDTCxxREFBcUQ7UUFDckQsTUFBTSxHQUFHO1lBQ1AsT0FBQSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7aUJBQzlCLElBQUksQ0FBQyxVQUFPLE1BQU07OzRCQUFPLHFCQUFNLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBQTs0QkFBeEMsc0JBQUEsQ0FBQyxDQUFDLFNBQXNDLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxDQUF5QixFQUFBOztxQkFBQSxDQUFDO2lCQUN4RyxJQUFJLENBQUMsVUFBQyxFQUFvQjtvQkFBcEIsS0FBQSxhQUFvQixFQUFuQixVQUFVLFFBQUEsRUFBRSxNQUFNLFFBQUE7Z0JBQ2hCLElBQUEsYUFBYSxHQUFxQixVQUFVLGNBQS9CLEVBQUUsY0FBYyxHQUFLLFVBQVUsZUFBZixDQUFnQjtnQkFDckQsaUZBQWlGO2dCQUNqRixnSEFBZ0g7Z0JBQ2hILEtBQUssQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSxhQUFhLElBQUksTUFBTSxDQUFDO2dCQUNyRSwrQkFBK0I7Z0JBQy9CLG1IQUFtSDtnQkFDbkgsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJLGNBQWMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUUzRSxPQUFPLElBQUksV0FBVyxDQUFDO29CQUNyQixXQUFXLEVBQUUsZUFBZTtvQkFDNUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxhQUFhO29CQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzFCLE1BQU0sUUFBQTtvQkFDTixhQUFhLEVBQUUsaUJBQWlCO2lCQUNqQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUM7UUFsQkosQ0FrQkksQ0FBQztLQUNSO0lBRUQsNkJBQ0ssS0FBSyxLQUNSLGlCQUFpQixtQkFBQTtRQUNqQixpQkFBaUIsbUJBQUEsRUFDakIsV0FBVyxFQUFFLGVBQWUsRUFDNUIsTUFBTSxRQUFBLElBQ047QUFDSixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxLQUFzQjtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLEtBQW9CLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hdHVyZVY0IH0gZnJvbSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NFwiO1xuaW1wb3J0IHsgQ3JlZGVudGlhbHMsIEhhc2hDb25zdHJ1Y3RvciwgUHJvdmlkZXIsIFJlZ2lvbkluZm8sIFJlZ2lvbkluZm9Qcm92aWRlciwgUmVxdWVzdFNpZ25lciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0F1dGhJbnB1dENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgY3JlZGVudGlhbHMgdXNlZCB0byBzaWduIHJlcXVlc3RzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM/OiBDcmVkZW50aWFscyB8IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcblxuICAvKipcbiAgICogVGhlIHNpZ25lciB0byB1c2Ugd2hlbiBzaWduaW5nIHJlcXVlc3RzLlxuICAgKi9cbiAgc2lnbmVyPzogUmVxdWVzdFNpZ25lciB8IFByb3ZpZGVyPFJlcXVlc3RTaWduZXI+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVzY2FwZSByZXF1ZXN0IHBhdGggd2hlbiBzaWduaW5nIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgc2lnbmluZ0VzY2FwZVBhdGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbiBvZmZzZXQgdmFsdWUgaW4gbWlsbGlzZWNvbmRzIHRvIGFwcGx5IHRvIGFsbCBzaWduaW5nIHRpbWVzLlxuICAgKi9cbiAgc3lzdGVtQ2xvY2tPZmZzZXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gd2hlcmUgeW91IHdhbnQgdG8gc2lnbiB5b3VyIHJlcXVlc3QgYWdhaW5zdC4gVGhpc1xuICAgKiBjYW4gYmUgZGlmZmVyZW50IHRvIHRoZSByZWdpb24gaW4gdGhlIGVuZHBvaW50LlxuICAgKi9cbiAgc2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbn1cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiAoaW5wdXQ6IGFueSkgPT4gUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xuICBzaWduaW5nTmFtZT86IHN0cmluZztcbiAgc2VydmljZUlkOiBzdHJpbmc7XG4gIHNoYTI1NjogSGFzaENvbnN0cnVjdG9yO1xufVxuZXhwb3J0IGludGVyZmFjZSBBd3NBdXRoUmVzb2x2ZWRDb25maWcge1xuICBjcmVkZW50aWFsczogUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuICBzaWduZXI6IFByb3ZpZGVyPFJlcXVlc3RTaWduZXI+O1xuICBzaWduaW5nRXNjYXBlUGF0aDogYm9vbGVhbjtcbiAgc3lzdGVtQ2xvY2tPZmZzZXQ6IG51bWJlcjtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQXdzQXV0aENvbmZpZzxUPihpbnB1dDogVCAmIEF3c0F1dGhJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCk6IFQgJiBBd3NBdXRoUmVzb2x2ZWRDb25maWcge1xuICBjb25zdCBjcmVkZW50aWFscyA9IGlucHV0LmNyZWRlbnRpYWxzIHx8IGlucHV0LmNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoaW5wdXQgYXMgYW55KTtcbiAgY29uc3Qgbm9ybWFsaXplZENyZWRzID0gbm9ybWFsaXplUHJvdmlkZXIoY3JlZGVudGlhbHMpO1xuICBjb25zdCB7IHNpZ25pbmdFc2NhcGVQYXRoID0gdHJ1ZSwgc3lzdGVtQ2xvY2tPZmZzZXQgPSBpbnB1dC5zeXN0ZW1DbG9ja09mZnNldCB8fCAwLCBzaGEyNTYgfSA9IGlucHV0O1xuICBsZXQgc2lnbmVyOiBQcm92aWRlcjxSZXF1ZXN0U2lnbmVyPjtcbiAgaWYgKGlucHV0LnNpZ25lcikge1xuICAgIC8vaWYgc2lnbmVyIGlzIHN1cHBsaWVkIGJ5IHVzZXIsIG5vcm1hbGl6ZSBpdCB0byBhIGZ1bmN0aW9uIHJldHVybmluZyBhIHByb21pc2UgZm9yIHNpZ25lci5cbiAgICBzaWduZXIgPSBub3JtYWxpemVQcm92aWRlcihpbnB1dC5zaWduZXIpO1xuICB9IGVsc2Uge1xuICAgIC8vY29uc3RydWN0IGEgcHJvdmlkZXIgaW5mZXJyaW5nIHNpZ25pbmcgZnJvbSByZWdpb24uXG4gICAgc2lnbmVyID0gKCkgPT5cbiAgICAgIG5vcm1hbGl6ZVByb3ZpZGVyKGlucHV0LnJlZ2lvbikoKVxuICAgICAgICAudGhlbihhc3luYyAocmVnaW9uKSA9PiBbKGF3YWl0IGlucHV0LnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24pKSB8fCB7fSwgcmVnaW9uXSBhcyBbUmVnaW9uSW5mbywgc3RyaW5nXSlcbiAgICAgICAgLnRoZW4oKFtyZWdpb25JbmZvLCByZWdpb25dKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9ID0gcmVnaW9uSW5mbztcbiAgICAgICAgICAvL3VwZGF0ZSBjbGllbnQncyBzaW5naW5nIHJlZ2lvbiBhbmQgc2lnbmluZyBzZXJ2aWNlIGNvbmZpZyBpZiB0aGV5IGFyZSByZXNvbHZlZC5cbiAgICAgICAgICAvL3NpZ25pbmcgcmVnaW9uIHJlc29sdmluZyBvcmRlcjogdXNlciBzdXBwbGllZCBzaWduaW5nUmVnaW9uIC0+IGVuZHBvaW50cy5qc29uIGluZmVycmVkIHJlZ2lvbiAtPiBjbGllbnQgcmVnaW9uXG4gICAgICAgICAgaW5wdXQuc2lnbmluZ1JlZ2lvbiA9IGlucHV0LnNpZ25pbmdSZWdpb24gfHwgc2lnbmluZ1JlZ2lvbiB8fCByZWdpb247XG4gICAgICAgICAgLy9zaWduaW5nIG5hbWUgcmVzb2x2aW5nIG9yZGVyOlxuICAgICAgICAgIC8vdXNlciBzdXBwbGllZCBzaWduaW5nTmFtZSAtPiBlbmRwb2ludHMuanNvbiBpbmZlcnJlZCAoY3JlZGVudGlhbCBzY29wZSAtPiBtb2RlbCBhcm5OYW1lc3BhY2UpIC0+IG1vZGVsIHNlcnZpY2UgaWRcbiAgICAgICAgICBpbnB1dC5zaWduaW5nTmFtZSA9IGlucHV0LnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGlucHV0LnNlcnZpY2VJZDtcblxuICAgICAgICAgIHJldHVybiBuZXcgU2lnbmF0dXJlVjQoe1xuICAgICAgICAgICAgY3JlZGVudGlhbHM6IG5vcm1hbGl6ZWRDcmVkcyxcbiAgICAgICAgICAgIHJlZ2lvbjogaW5wdXQuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgIHNlcnZpY2U6IGlucHV0LnNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgdXJpRXNjYXBlUGF0aDogc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBzeXN0ZW1DbG9ja09mZnNldCxcbiAgICBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICBjcmVkZW50aWFsczogbm9ybWFsaXplZENyZWRzLFxuICAgIHNpZ25lcixcbiAgfTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplUHJvdmlkZXI8VD4oaW5wdXQ6IFQgfCBQcm92aWRlcjxUPik6IFByb3ZpZGVyPFQ+IHtcbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIikge1xuICAgIGNvbnN0IHByb21pc2lmaWVkID0gUHJvbWlzZS5yZXNvbHZlKGlucHV0KTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH1cbiAgcmV0dXJuIGlucHV0IGFzIFByb3ZpZGVyPFQ+O1xufVxuIl19","import { __assign } from \"tslib\";\nexport function resolveUserAgentConfig(input) {\n return __assign(__assign({}, input), { customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWdCQSxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLEtBQW9EO0lBRXBELDZCQUNLLEtBQUssS0FDUixlQUFlLEVBQUUsT0FBTyxLQUFLLENBQUMsZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUM5RztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciwgVXNlckFnZW50IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBZ2VudElucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gdXNlciBhZ2VudCBoZWFkZXIgdGhhdCB3b3VsZCBiZSBhcHBlbmRlZCB0byBkZWZhdWx0IG9uZVxuICAgKi9cbiAgY3VzdG9tVXNlckFnZW50Pzogc3RyaW5nIHwgVXNlckFnZW50O1xufVxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogUHJvdmlkZXI8VXNlckFnZW50PjtcbiAgcnVudGltZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyB7XG4gIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogUHJvdmlkZXI8VXNlckFnZW50PjtcbiAgY3VzdG9tVXNlckFnZW50PzogVXNlckFnZW50O1xuICBydW50aW1lOiBzdHJpbmc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZzxUPihcbiAgaW5wdXQ6IFQgJiBQcmV2aW91c2x5UmVzb2x2ZWQgJiBVc2VyQWdlbnRJbnB1dENvbmZpZ1xuKTogVCAmIFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBjdXN0b21Vc2VyQWdlbnQ6IHR5cGVvZiBpbnB1dC5jdXN0b21Vc2VyQWdlbnQgPT09IFwic3RyaW5nXCIgPyBbW2lucHV0LmN1c3RvbVVzZXJBZ2VudF1dIDogaW5wdXQuY3VzdG9tVXNlckFnZW50LFxuICB9O1xufVxuIl19","export var USER_AGENT = \"user-agent\";\nexport var X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport var SPACE = \" \";\nexport var UA_ESCAPE_REGEX = /[^\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxJQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFFekIsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFVTRVJfQUdFTlQgPSBcInVzZXItYWdlbnRcIjtcblxuZXhwb3J0IGNvbnN0IFhfQU1aX1VTRVJfQUdFTlQgPSBcIngtYW16LXVzZXItYWdlbnRcIjtcblxuZXhwb3J0IGNvbnN0IFNQQUNFID0gXCIgXCI7XG5cbmV4cG9ydCBjb25zdCBVQV9FU0NBUEVfUkVHRVggPSAvW15cXCFcXCNcXCRcXCVcXCZcXCdcXCpcXCtcXC1cXC5cXF5cXF9cXGBcXHxcXH5cXGRcXHddL2c7XG4iXX0=","import { __assign, __awaiter, __generator, __read, __spread } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { SPACE, UA_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT } from \"./constants\";\n/**\n * Build user agent header sections from:\n * 1. runtime-specific default user agent provider;\n * 2. custom user agent from `customUserAgent` client config;\n * 3. handler execution context set by internal SDK components;\n * The built user agent will be set to `x-amz-user-agent` header for ALL the\n * runtimes.\n * Please note that any override to the `user-agent` or `x-amz-user-agent` header\n * in the HTTP request is discouraged. Please use `customUserAgent` client\n * config or middleware setting the `userAgent` context to generate desired user\n * agent.\n */\nexport var userAgentMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, headers, userAgent, defaultUserAgent, customUserAgent, normalUAValue;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request))\n return [2 /*return*/, next(args)];\n headers = request.headers;\n userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];\n return [4 /*yield*/, options.defaultUserAgentProvider()];\n case 1:\n defaultUserAgent = (_c.sent()).map(escapeUserAgent);\n customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];\n // Set value to AWS-specific user agent header\n headers[X_AMZ_USER_AGENT] = __spread(defaultUserAgent, userAgent, customUserAgent).join(SPACE);\n normalUAValue = __spread(defaultUserAgent.filter(function (section) { return section.startsWith(\"aws-sdk-\"); }), customUserAgent).join(SPACE);\n if (options.runtime !== \"browser\" && normalUAValue) {\n headers[USER_AGENT] = headers[USER_AGENT] ? headers[USER_AGENT] + \" \" + normalUAValue : normalUAValue;\n }\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n}); }; }; };\n/**\n * Escape the each pair according to https://tools.ietf.org/html/rfc5234 and join the pair with pattern `name/version`.\n * User agent name may include prefix like `md/`, `api/`, `os/` etc., we should not escape the `/` after the prefix.\n * @private\n */\nvar escapeUserAgent = function (_a) {\n var _b = __read(_a, 2), name = _b[0], version = _b[1];\n var prefixSeparatorIndex = name.indexOf(\"/\");\n var prefix = name.substring(0, prefixSeparatorIndex); // If no prefix, prefix is just \"\"\n var uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter(function (item) { return item && item.length > 0; })\n .map(function (item) { return item === null || item === void 0 ? void 0 : item.replace(UA_ESCAPE_REGEX, \"_\"); })\n .join(\"/\");\n};\nexport var getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport var getUserAgentPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZXItYWdlbnQtbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBY3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLFVBQUMsT0FBZ0MsSUFBSyxPQUFBLFVBQ3ZFLElBQTRCLEVBQzVCLE9BQWdDLElBQ0wsT0FBQSxVQUFPLElBQWdDOzs7Ozs7Z0JBQzFELE9BQU8sR0FBSyxJQUFJLFFBQVQsQ0FBVTtnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO29CQUFFLHNCQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQztnQkFDaEQsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFhO2dCQUN0QixTQUFTLEdBQUcsT0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsU0FBUywwQ0FBRSxHQUFHLENBQUMsZUFBZSxNQUFLLEVBQUUsQ0FBQztnQkFDdkMscUJBQU0sT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUE7O2dCQUE1RCxnQkFBZ0IsR0FBRyxDQUFDLFNBQXdDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUNsRixlQUFlLEdBQUcsT0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZUFBZSwwQ0FBRSxHQUFHLENBQUMsZUFBZSxNQUFLLEVBQUUsQ0FBQztnQkFDN0UsOENBQThDO2dCQUM5QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxTQUFJLGdCQUFnQixFQUFLLFNBQVMsRUFBSyxlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUUxRixhQUFhLEdBQUcsU0FDakIsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQyxFQUNwRSxlQUFlLEVBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDZCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLGFBQWEsRUFBRTtvQkFDbEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFJLGFBQWUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2lCQUN2RztnQkFFRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOzs7S0FDSixFQXRCNEIsQ0FzQjVCLEVBekJ3RSxDQXlCeEUsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxJQUFNLGVBQWUsR0FBRyxVQUFDLEVBQThCO1FBQTlCLEtBQUEsYUFBOEIsRUFBN0IsSUFBSSxRQUFBLEVBQUUsT0FBTyxRQUFBO0lBQ3JDLElBQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsa0NBQWtDO0lBQzFGLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1FBQ3BCLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7S0FDL0I7SUFDRCxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7U0FDN0IsTUFBTSxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUF2QixDQUF1QixDQUFDO1NBQ3pDLEdBQUcsQ0FBQyxVQUFDLElBQUksV0FBSyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLElBQUMsQ0FBQztTQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSw2QkFBNkIsR0FBMkM7SUFDbkYsSUFBSSxFQUFFLHdCQUF3QjtJQUM5QixJQUFJLEVBQUUsT0FBTztJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQ3RDLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLFVBQUMsTUFBK0IsSUFBMEIsT0FBQSxDQUFDO0lBQzNGLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRixDQUFDLEVBSjBGLENBSTFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBBYnNvbHV0ZUxvY2F0aW9uLFxuICBCdWlsZEhhbmRsZXIsXG4gIEJ1aWxkSGFuZGxlckFyZ3VtZW50cyxcbiAgQnVpbGRIYW5kbGVyT3B0aW9ucyxcbiAgQnVpbGRIYW5kbGVyT3V0cHV0LFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgVXNlckFnZW50UGFpcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcbmltcG9ydCB7IFNQQUNFLCBVQV9FU0NBUEVfUkVHRVgsIFVTRVJfQUdFTlQsIFhfQU1aX1VTRVJfQUdFTlQgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBCdWlsZCB1c2VyIGFnZW50IGhlYWRlciBzZWN0aW9ucyBmcm9tOlxuICogMS4gcnVudGltZS1zcGVjaWZpYyBkZWZhdWx0IHVzZXIgYWdlbnQgcHJvdmlkZXI7XG4gKiAyLiBjdXN0b20gdXNlciBhZ2VudCBmcm9tIGBjdXN0b21Vc2VyQWdlbnRgIGNsaWVudCBjb25maWc7XG4gKiAzLiBoYW5kbGVyIGV4ZWN1dGlvbiBjb250ZXh0IHNldCBieSBpbnRlcm5hbCBTREsgY29tcG9uZW50cztcbiAqIFRoZSBidWlsdCB1c2VyIGFnZW50IHdpbGwgYmUgc2V0IHRvIGB4LWFtei11c2VyLWFnZW50YCBoZWFkZXIgZm9yIEFMTCB0aGVcbiAqIHJ1bnRpbWVzLlxuICogUGxlYXNlIG5vdGUgdGhhdCBhbnkgb3ZlcnJpZGUgdG8gdGhlIGB1c2VyLWFnZW50YCBvciBgeC1hbXotdXNlci1hZ2VudGAgaGVhZGVyXG4gKiBpbiB0aGUgSFRUUCByZXF1ZXN0IGlzIGRpc2NvdXJhZ2VkLiBQbGVhc2UgdXNlIGBjdXN0b21Vc2VyQWdlbnRgIGNsaWVudFxuICogY29uZmlnIG9yIG1pZGRsZXdhcmUgc2V0dGluZyB0aGUgYHVzZXJBZ2VudGAgY29udGV4dCB0byBnZW5lcmF0ZSBkZXNpcmVkIHVzZXJcbiAqIGFnZW50LlxuICovXG5leHBvcnQgY29uc3QgdXNlckFnZW50TWlkZGxld2FyZSA9IChvcHRpb25zOiBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZykgPT4gPE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogQnVpbGRIYW5kbGVyPGFueSwgYW55PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IEJ1aWxkSGFuZGxlcjxhbnksIGFueT4gPT4gYXN5bmMgKGFyZ3M6IEJ1aWxkSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxCdWlsZEhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gIGNvbnN0IHsgaGVhZGVycyB9ID0gcmVxdWVzdDtcbiAgY29uc3QgdXNlckFnZW50ID0gY29udGV4dD8udXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9IChhd2FpdCBvcHRpb25zLmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcigpKS5tYXAoZXNjYXBlVXNlckFnZW50KTtcbiAgY29uc3QgY3VzdG9tVXNlckFnZW50ID0gb3B0aW9ucz8uY3VzdG9tVXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgLy8gU2V0IHZhbHVlIHRvIEFXUy1zcGVjaWZpYyB1c2VyIGFnZW50IGhlYWRlclxuICBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdID0gWy4uLmRlZmF1bHRVc2VyQWdlbnQsIC4uLnVzZXJBZ2VudCwgLi4uY3VzdG9tVXNlckFnZW50XS5qb2luKFNQQUNFKTtcbiAgLy8gR2V0IHZhbHVlIHRvIGJlIHNlbnQgd2l0aCBub24tQVdTLXNwZWNpZmljIHVzZXIgYWdlbnQgaGVhZGVyLlxuICBjb25zdCBub3JtYWxVQVZhbHVlID0gW1xuICAgIC4uLmRlZmF1bHRVc2VyQWdlbnQuZmlsdGVyKChzZWN0aW9uKSA9PiBzZWN0aW9uLnN0YXJ0c1dpdGgoXCJhd3Mtc2RrLVwiKSksXG4gICAgLi4uY3VzdG9tVXNlckFnZW50LFxuICBdLmpvaW4oU1BBQ0UpO1xuICBpZiAob3B0aW9ucy5ydW50aW1lICE9PSBcImJyb3dzZXJcIiAmJiBub3JtYWxVQVZhbHVlKSB7XG4gICAgaGVhZGVyc1tVU0VSX0FHRU5UXSA9IGhlYWRlcnNbVVNFUl9BR0VOVF0gPyBgJHtoZWFkZXJzW1VTRVJfQUdFTlRdfSAke25vcm1hbFVBVmFsdWV9YCA6IG5vcm1hbFVBVmFsdWU7XG4gIH1cblxuICByZXR1cm4gbmV4dCh7XG4gICAgLi4uYXJncyxcbiAgICByZXF1ZXN0LFxuICB9KTtcbn07XG5cbi8qKlxuICogRXNjYXBlIHRoZSBlYWNoIHBhaXIgYWNjb3JkaW5nIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjM0IGFuZCBqb2luIHRoZSBwYWlyIHdpdGggcGF0dGVybiBgbmFtZS92ZXJzaW9uYC5cbiAqIFVzZXIgYWdlbnQgbmFtZSBtYXkgaW5jbHVkZSBwcmVmaXggbGlrZSBgbWQvYCwgYGFwaS9gLCBgb3MvYCBldGMuLCB3ZSBzaG91bGQgbm90IGVzY2FwZSB0aGUgYC9gIGFmdGVyIHRoZSBwcmVmaXguXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBlc2NhcGVVc2VyQWdlbnQgPSAoW25hbWUsIHZlcnNpb25dOiBVc2VyQWdlbnRQYWlyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgcHJlZml4U2VwYXJhdG9ySW5kZXggPSBuYW1lLmluZGV4T2YoXCIvXCIpO1xuICBjb25zdCBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhTZXBhcmF0b3JJbmRleCk7IC8vIElmIG5vIHByZWZpeCwgcHJlZml4IGlzIGp1c3QgXCJcIlxuICBsZXQgdWFOYW1lID0gbmFtZS5zdWJzdHJpbmcocHJlZml4U2VwYXJhdG9ySW5kZXggKyAxKTtcbiAgaWYgKHByZWZpeCA9PT0gXCJhcGlcIikge1xuICAgIHVhTmFtZSA9IHVhTmFtZS50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIHJldHVybiBbcHJlZml4LCB1YU5hbWUsIHZlcnNpb25dXG4gICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAmJiBpdGVtLmxlbmd0aCA+IDApXG4gICAgLm1hcCgoaXRlbSkgPT4gaXRlbT8ucmVwbGFjZShVQV9FU0NBUEVfUkVHRVgsIFwiX1wiKSlcbiAgICAuam9pbihcIi9cIik7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnM6IEJ1aWxkSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uID0ge1xuICBuYW1lOiBcImdldFVzZXJBZ2VudE1pZGRsZXdhcmVcIixcbiAgc3RlcDogXCJidWlsZFwiLFxuICBwcmlvcml0eTogXCJsb3dcIixcbiAgdGFnczogW1wiU0VUX1VTRVJfQUdFTlRcIiwgXCJVU0VSX0FHRU5UXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVc2VyQWdlbnRQbHVnaW4gPSAoY29uZmlnOiBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQodXNlckFnZW50TWlkZGxld2FyZShjb25maWcpLCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","import { __assign, __extends } from \"tslib\";\nimport { ClientDefaultValues as __ClientDefaultValues } from \"./runtimeConfig\";\nimport { resolveEndpointsConfig, resolveRegionConfig, } from \"@aws-sdk/config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { resolveAwsAuthConfig } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\n/**\n * Amazon Cognito Federated Identities\n *

Amazon Cognito Federated Identities is a web service that delivers scoped temporary\n * credentials to mobile devices and other untrusted environments. It uniquely identifies a\n * device and supplies the user with a consistent identity over the lifetime of an\n * application.

\n *

Using Amazon Cognito Federated Identities, you can enable authentication with one or\n * more third-party identity providers (Facebook, Google, or Login with Amazon) or an Amazon\n * Cognito user pool, and you can also choose to support unauthenticated access from your app.\n * Cognito delivers a unique identifier for each user and acts as an OpenID token provider\n * trusted by AWS Security Token Service (STS) to access temporary, limited-privilege AWS\n * credentials.

\n *

For a description of the authentication flow from the Amazon Cognito Developer Guide\n * see Authentication Flow.

\n *

For more information see Amazon Cognito Federated Identities.

\n */\nvar CognitoIdentityClient = /** @class */ (function (_super) {\n __extends(CognitoIdentityClient, _super);\n function CognitoIdentityClient(configuration) {\n var _this = this;\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n var _config_1 = resolveRegionConfig(_config_0);\n var _config_2 = resolveEndpointsConfig(_config_1);\n var _config_3 = resolveAwsAuthConfig(_config_2);\n var _config_4 = resolveRetryConfig(_config_3);\n var _config_5 = resolveHostHeaderConfig(_config_4);\n var _config_6 = resolveUserAgentConfig(_config_5);\n _this = _super.call(this, _config_6) || this;\n _this.config = _config_6;\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n CognitoIdentityClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CognitoIdentityClient;\n}(__Client));\nexport { CognitoIdentityClient };\n//# sourceMappingURL=CognitoIdentityClient.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { CognitoIdentityClient, } from '@aws-sdk/client-cognito-identity';\nimport { getAmplifyUserAgent } from '../Platform';\n/**\n * Returns a CognitoIdentityClient with middleware\n * @param {CognitoIdentityClientConfig} config\n * @return {CognitoIdentityClient}\n */\nexport function createCognitoIdentityClient(config) {\n var client = new CognitoIdentityClient({\n region: config.region,\n customUserAgent: getAmplifyUserAgent(),\n });\n client.middlewareStack.add(function (next, _) { return function (args) {\n return next(middlewareArgs(args));\n }; }, {\n step: 'build',\n name: 'cacheControlMiddleWare',\n });\n return client;\n}\nexport function middlewareArgs(args) {\n return __assign(__assign({}, args), { request: __assign(__assign({}, args.request), { headers: __assign(__assign({}, args.request.headers), { 'cache-control': 'no-store' }) }) });\n}\n//# sourceMappingURL=CognitoIdentityClient.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { ConsoleLogger as Logger } from './Logger';\nimport { StorageHelper } from './StorageHelper';\nimport { makeQuerablePromise } from './JS';\nimport { FacebookOAuth, GoogleOAuth } from './OAuthHelper';\nimport { jitteredExponentialRetry } from './Util';\nimport { Amplify } from './Amplify';\nimport { fromCognitoIdentity, fromCognitoIdentityPool, } from '@aws-sdk/credential-provider-cognito-identity';\nimport { GetIdCommand, GetCredentialsForIdentityCommand, } from '@aws-sdk/client-cognito-identity';\nimport { createCognitoIdentityClient } from './Util/CognitoIdentityClient';\nvar logger = new Logger('Credentials');\nvar CREDENTIALS_TTL = 50 * 60 * 1000; // 50 min, can be modified on config if required in the future\nvar COGNITO_IDENTITY_KEY_PREFIX = 'CognitoIdentityId-';\nvar CredentialsClass = /** @class */ (function () {\n function CredentialsClass(config) {\n this._gettingCredPromise = null;\n this._refreshHandlers = {};\n // Allow `Auth` to be injected for SSR, but Auth isn't a required dependency for Credentials\n this.Auth = undefined;\n this.configure(config);\n this._refreshHandlers['google'] = GoogleOAuth.refreshGoogleToken;\n this._refreshHandlers['facebook'] = FacebookOAuth.refreshFacebookToken;\n }\n CredentialsClass.prototype.getModuleName = function () {\n return 'Credentials';\n };\n CredentialsClass.prototype.getCredSource = function () {\n return this._credentials_source;\n };\n CredentialsClass.prototype.configure = function (config) {\n if (!config)\n return this._config || {};\n this._config = Object.assign({}, this._config, config);\n var refreshHandlers = this._config.refreshHandlers;\n // If the developer has provided an object of refresh handlers,\n // then we can merge the provided handlers with the current handlers.\n if (refreshHandlers) {\n this._refreshHandlers = __assign(__assign({}, this._refreshHandlers), refreshHandlers);\n }\n this._storage = this._config.storage;\n if (!this._storage) {\n this._storage = new StorageHelper().getStorage();\n }\n this._storageSync = Promise.resolve();\n if (typeof this._storage['sync'] === 'function') {\n this._storageSync = this._storage['sync']();\n }\n return this._config;\n };\n CredentialsClass.prototype.get = function () {\n logger.debug('getting credentials');\n return this._pickupCredentials();\n };\n // currently we only store the guest identity in local storage\n CredentialsClass.prototype._getCognitoIdentityIdStorageKey = function (identityPoolId) {\n return \"\" + COGNITO_IDENTITY_KEY_PREFIX + identityPoolId;\n };\n CredentialsClass.prototype._pickupCredentials = function () {\n logger.debug('picking up credentials');\n if (!this._gettingCredPromise || !this._gettingCredPromise.isPending()) {\n logger.debug('getting new cred promise');\n this._gettingCredPromise = makeQuerablePromise(this._keepAlive());\n }\n else {\n logger.debug('getting old cred promise');\n }\n return this._gettingCredPromise;\n };\n CredentialsClass.prototype._keepAlive = function () {\n return __awaiter(this, void 0, void 0, function () {\n var cred, _a, Auth, user_1, session, refreshToken_1, refreshRequest, err_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger.debug('checking if credentials exists and not expired');\n cred = this._credentials;\n if (cred && !this._isExpired(cred) && !this._isPastTTL()) {\n logger.debug('credentials not changed and not expired, directly return');\n return [2 /*return*/, Promise.resolve(cred)];\n }\n logger.debug('need to get a new credential or refresh the existing one');\n _a = this.Auth, Auth = _a === void 0 ? Amplify.Auth : _a;\n if (!Auth || typeof Auth.currentUserCredentials !== 'function') {\n return [2 /*return*/, Promise.reject('No Auth module registered in Amplify')];\n }\n if (!(!this._isExpired(cred) && this._isPastTTL())) return [3 /*break*/, 6];\n logger.debug('ttl has passed but token is not yet expired');\n _b.label = 1;\n case 1:\n _b.trys.push([1, 5, , 6]);\n return [4 /*yield*/, Auth.currentUserPoolUser()];\n case 2:\n user_1 = _b.sent();\n return [4 /*yield*/, Auth.currentSession()];\n case 3:\n session = _b.sent();\n refreshToken_1 = session.refreshToken;\n refreshRequest = new Promise(function (res, rej) {\n user_1.refreshSession(refreshToken_1, function (err, data) {\n return err ? rej(err) : res(data);\n });\n });\n return [4 /*yield*/, refreshRequest];\n case 4:\n _b.sent(); // note that rejections will be caught and handled in the catch block.\n return [3 /*break*/, 6];\n case 5:\n err_1 = _b.sent();\n // should not throw because user might just be on guest access or is authenticated through federation\n logger.debug('Error attempting to refreshing the session', err_1);\n return [3 /*break*/, 6];\n case 6: return [2 /*return*/, Auth.currentUserCredentials()];\n }\n });\n });\n };\n CredentialsClass.prototype.refreshFederatedToken = function (federatedInfo) {\n logger.debug('Getting federated credentials');\n var provider = federatedInfo.provider, user = federatedInfo.user, token = federatedInfo.token, identity_id = federatedInfo.identity_id;\n var expires_at = federatedInfo.expires_at;\n // Make sure expires_at is in millis\n expires_at =\n new Date(expires_at).getFullYear() === 1970\n ? expires_at * 1000\n : expires_at;\n var that = this;\n logger.debug('checking if federated jwt token expired');\n if (expires_at > new Date().getTime()) {\n // if not expired\n logger.debug('token not expired');\n return this._setCredentialsFromFederation({\n provider: provider,\n token: token,\n user: user,\n identity_id: identity_id,\n expires_at: expires_at,\n });\n }\n else {\n // if refresh handler exists\n if (that._refreshHandlers[provider] &&\n typeof that._refreshHandlers[provider] === 'function') {\n logger.debug('getting refreshed jwt token from federation provider');\n return this._providerRefreshWithRetry({\n refreshHandler: that._refreshHandlers[provider],\n provider: provider,\n user: user,\n });\n }\n else {\n logger.debug('no refresh handler for provider:', provider);\n this.clear();\n return Promise.reject('no refresh handler for provider');\n }\n }\n };\n CredentialsClass.prototype._providerRefreshWithRetry = function (_a) {\n var _this = this;\n var refreshHandler = _a.refreshHandler, provider = _a.provider, user = _a.user;\n var MAX_DELAY_MS = 10 * 1000;\n // refreshHandler will retry network errors, otherwise it will\n // return NonRetryableError to break out of jitteredExponentialRetry\n return jitteredExponentialRetry(refreshHandler, [], MAX_DELAY_MS)\n .then(function (data) {\n logger.debug('refresh federated token sucessfully', data);\n return _this._setCredentialsFromFederation({\n provider: provider,\n token: data.token,\n user: user,\n identity_id: data.identity_id,\n expires_at: data.expires_at,\n });\n })\n .catch(function (e) {\n var isNetworkError = typeof e === 'string' &&\n e.toLowerCase().lastIndexOf('network error', e.length) === 0;\n if (!isNetworkError) {\n _this.clear();\n }\n logger.debug('refresh federated token failed', e);\n return Promise.reject('refreshing federation token failed: ' + e);\n });\n };\n CredentialsClass.prototype._isExpired = function (credentials) {\n if (!credentials) {\n logger.debug('no credentials for expiration check');\n return true;\n }\n logger.debug('are these credentials expired?', credentials);\n var ts = Date.now();\n /* returns date object.\n https://github.com/aws/aws-sdk-js-v3/blob/v1.0.0-beta.1/packages/types/src/credentials.ts#L26\n */\n var expiration = credentials.expiration;\n return expiration.getTime() <= ts;\n };\n CredentialsClass.prototype._isPastTTL = function () {\n return this._nextCredentialsRefresh <= Date.now();\n };\n CredentialsClass.prototype._setCredentialsForGuest = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, identityPoolId, region, mandatorySignIn, identityId, _b, cognitoClient, credentials, cognitoIdentityParams, credentialsProvider;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n logger.debug('setting credentials for guest');\n _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region, mandatorySignIn = _a.mandatorySignIn;\n if (mandatorySignIn) {\n return [2 /*return*/, Promise.reject('cannot get guest credentials when mandatory signin enabled')];\n }\n if (!identityPoolId) {\n logger.debug('No Cognito Identity pool provided for unauthenticated access');\n return [2 /*return*/, Promise.reject('No Cognito Identity pool provided for unauthenticated access')];\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return [2 /*return*/, Promise.reject('region is not configured for getting the credentials')];\n }\n _b = this;\n return [4 /*yield*/, this._getGuestIdentityId()];\n case 1:\n identityId = (_b._identityId = _c.sent());\n cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n credentials = undefined;\n if (identityId) {\n cognitoIdentityParams = {\n identityId: identityId,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n }\n else {\n credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n }))];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n cognitoIdentityParams = {\n client: cognitoClient,\n identityId: IdentityId,\n };\n credentialsFromCognitoIdentity = fromCognitoIdentity(cognitoIdentityParams);\n return [2 /*return*/, credentialsFromCognitoIdentity()];\n }\n });\n }); };\n credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n }\n return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null)\n .then(function (res) {\n return res;\n })\n .catch(function (e) { return __awaiter(_this, void 0, void 0, function () {\n var credentialsProvider;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(e.name === 'ResourceNotFoundException' &&\n e.message === \"Identity '\" + identityId + \"' not found.\")) return [3 /*break*/, 2];\n logger.debug('Failed to load guest credentials');\n return [4 /*yield*/, this._removeGuestIdentityId()];\n case 1:\n _a.sent();\n credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n }))];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n cognitoIdentityParams = {\n client: cognitoClient,\n identityId: IdentityId,\n };\n credentialsFromCognitoIdentity = fromCognitoIdentity(cognitoIdentityParams);\n return [2 /*return*/, credentialsFromCognitoIdentity()];\n }\n });\n }); };\n credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null)];\n case 2: return [2 /*return*/, e];\n }\n });\n }); })];\n }\n });\n });\n };\n CredentialsClass.prototype._setCredentialsFromFederation = function (params) {\n var provider = params.provider, token = params.token, identity_id = params.identity_id;\n var domains = {\n google: 'accounts.google.com',\n facebook: 'graph.facebook.com',\n amazon: 'www.amazon.com',\n developer: 'cognito-identity.amazonaws.com',\n };\n // Use custom provider url instead of the predefined ones\n var domain = domains[provider] || provider;\n if (!domain) {\n return Promise.reject('You must specify a federated provider');\n }\n var logins = {};\n logins[domain] = token;\n var _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region;\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return Promise.reject('region is not configured for getting the credentials');\n }\n var cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n var credentials = undefined;\n if (identity_id) {\n var cognitoIdentityParams = {\n identityId: identity_id,\n logins: logins,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n }\n else {\n var cognitoIdentityParams = {\n logins: logins,\n identityPoolId: identityPoolId,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentityPool(cognitoIdentityParams)();\n }\n return this._loadCredentials(credentials, 'federated', true, params);\n };\n CredentialsClass.prototype._setCredentialsFromSession = function (session) {\n var _this = this;\n logger.debug('set credentials from session');\n var idToken = session.getIdToken().getJwtToken();\n var _a = this._config, region = _a.region, userPoolId = _a.userPoolId, identityPoolId = _a.identityPoolId;\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return Promise.reject('region is not configured for getting the credentials');\n }\n var key = 'cognito-idp.' + region + '.amazonaws.com/' + userPoolId;\n var logins = {};\n logins[key] = idToken;\n var cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n /*\n Retreiving identityId with GetIdCommand to mimic the behavior in the following code in aws-sdk-v3:\n https://git.io/JeDxU\n\n Note: Retreive identityId from CredentialsProvider once aws-sdk-js v3 supports this.\n */\n var credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var guestIdentityId, generatedOrRetrievedIdentityId, IdentityId, _a, _b, AccessKeyId, Expiration, SecretKey, SessionToken, primaryIdentityId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._getGuestIdentityId()];\n case 1:\n guestIdentityId = _c.sent();\n if (!!guestIdentityId) return [3 /*break*/, 3];\n return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n Logins: logins,\n }))];\n case 2:\n IdentityId = (_c.sent()).IdentityId;\n generatedOrRetrievedIdentityId = IdentityId;\n _c.label = 3;\n case 3: return [4 /*yield*/, cognitoClient.send(new GetCredentialsForIdentityCommand({\n IdentityId: guestIdentityId || generatedOrRetrievedIdentityId,\n Logins: logins,\n }))];\n case 4:\n _a = _c.sent(), _b = _a.Credentials, AccessKeyId = _b.AccessKeyId, Expiration = _b.Expiration, SecretKey = _b.SecretKey, SessionToken = _b.SessionToken, primaryIdentityId = _a.IdentityId;\n this._identityId = primaryIdentityId;\n if (!guestIdentityId) return [3 /*break*/, 6];\n // if guestIdentity is found and used by GetCredentialsForIdentity\n // it will be linked to the logins provided, and disqualified as an unauth identity\n logger.debug(\"The guest identity \" + guestIdentityId + \" has been successfully linked to the logins\");\n if (guestIdentityId === primaryIdentityId) {\n logger.debug(\"The guest identity \" + guestIdentityId + \" has become the primary identity\");\n }\n // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n return [4 /*yield*/, this._removeGuestIdentityId()];\n case 5:\n // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n _c.sent();\n _c.label = 6;\n case 6: \n // https://github.com/aws/aws-sdk-js-v3/blob/main/packages/credential-provider-cognito-identity/src/fromCognitoIdentity.ts#L40\n return [2 /*return*/, {\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n identityId: primaryIdentityId,\n }];\n }\n });\n }); };\n var credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return this._loadCredentials(credentials, 'userPool', true, null);\n };\n CredentialsClass.prototype._loadCredentials = function (credentials, source, authenticated, info) {\n var _this = this;\n var that = this;\n return new Promise(function (res, rej) {\n credentials\n .then(function (credentials) { return __awaiter(_this, void 0, void 0, function () {\n var user, provider, token, expires_at, identity_id;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('Load credentials successfully', credentials);\n if (this._identityId && !credentials.identityId) {\n credentials['identityId'] = this._identityId;\n }\n that._credentials = credentials;\n that._credentials.authenticated = authenticated;\n that._credentials_source = source;\n that._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL;\n if (source === 'federated') {\n user = Object.assign({ id: this._credentials.identityId }, info.user);\n provider = info.provider, token = info.token, expires_at = info.expires_at, identity_id = info.identity_id;\n try {\n this._storage.setItem('aws-amplify-federatedInfo', JSON.stringify({\n provider: provider,\n token: token,\n user: user,\n expires_at: expires_at,\n identity_id: identity_id,\n }));\n }\n catch (e) {\n logger.debug('Failed to put federated info into auth storage', e);\n }\n }\n if (!(source === 'guest')) return [3 /*break*/, 2];\n return [4 /*yield*/, this._setGuestIdentityId(credentials.identityId)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n res(that._credentials);\n return [2 /*return*/];\n }\n });\n }); })\n .catch(function (err) {\n if (err) {\n logger.debug('Failed to load credentials', credentials);\n logger.debug('Error loading credentials', err);\n rej(err);\n return;\n }\n });\n });\n };\n CredentialsClass.prototype.set = function (params, source) {\n if (source === 'session') {\n return this._setCredentialsFromSession(params);\n }\n else if (source === 'federation') {\n return this._setCredentialsFromFederation(params);\n }\n else if (source === 'guest') {\n return this._setCredentialsForGuest();\n }\n else {\n logger.debug('no source specified for setting credentials');\n return Promise.reject('invalid source');\n }\n };\n CredentialsClass.prototype.clear = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this._credentials = null;\n this._credentials_source = null;\n logger.debug('removing aws-amplify-federatedInfo from storage');\n this._storage.removeItem('aws-amplify-federatedInfo');\n return [2 /*return*/];\n });\n });\n };\n /* operations on local stored guest identity */\n CredentialsClass.prototype._getGuestIdentityId = function () {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n identityPoolId = this._config.identityPoolId;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [2 /*return*/, this._storage.getItem(this._getCognitoIdentityIdStorageKey(identityPoolId))];\n case 3:\n e_1 = _a.sent();\n logger.debug('Failed to get the cached guest identityId', e_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CredentialsClass.prototype._setGuestIdentityId = function (identityId) {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n identityPoolId = this._config.identityPoolId;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n this._storage.setItem(this._getCognitoIdentityIdStorageKey(identityPoolId), identityId);\n return [3 /*break*/, 4];\n case 3:\n e_2 = _a.sent();\n logger.debug('Failed to cache guest identityId', e_2);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CredentialsClass.prototype._removeGuestIdentityId = function () {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId;\n return __generator(this, function (_a) {\n identityPoolId = this._config.identityPoolId;\n logger.debug(\"removing \" + this._getCognitoIdentityIdStorageKey(identityPoolId) + \" from storage\");\n this._storage.removeItem(this._getCognitoIdentityIdStorageKey(identityPoolId));\n return [2 /*return*/];\n });\n });\n };\n /**\n * Compact version of credentials\n * @param {Object} credentials\n * @return {Object} - Credentials\n */\n CredentialsClass.prototype.shear = function (credentials) {\n return {\n accessKeyId: credentials.accessKeyId,\n sessionToken: credentials.sessionToken,\n secretAccessKey: credentials.secretAccessKey,\n identityId: credentials.identityId,\n authenticated: credentials.authenticated,\n };\n };\n return CredentialsClass;\n}());\nexport { CredentialsClass };\nexport var Credentials = new CredentialsClass(null);\nAmplify.register(Credentials);\n/**\n * @deprecated use named import\n */\nexport default Credentials;\n//# sourceMappingURL=Credentials.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Hub');\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&\n typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nfunction isLegacyCallback(callback) {\n return callback.onHubCapsule !== undefined;\n}\nvar HubClass = /** @class */ (function () {\n function HubClass(name) {\n this.listeners = [];\n this.patterns = [];\n this.protectedChannels = [\n 'core',\n 'auth',\n 'api',\n 'analytics',\n 'interactions',\n 'pubsub',\n 'storage',\n 'ui',\n 'xr',\n ];\n this.name = name;\n }\n // Note - Need to pass channel as a reference for removal to work and not anonymous function\n HubClass.prototype.remove = function (channel, listener) {\n if (channel instanceof RegExp) {\n var pattern_1 = this.patterns.find(function (_a) {\n var pattern = _a.pattern;\n return pattern.source === channel.source;\n });\n if (!pattern_1) {\n logger.warn(\"No listeners for \" + channel);\n return;\n }\n this.patterns = __spread(this.patterns.filter(function (x) { return x !== pattern_1; }));\n }\n else {\n var holder = this.listeners[channel];\n if (!holder) {\n logger.warn(\"No listeners for \" + channel);\n return;\n }\n this.listeners[channel] = __spread(holder.filter(function (_a) {\n var callback = _a.callback;\n return callback !== listener;\n }));\n }\n };\n HubClass.prototype.dispatch = function (channel, payload, source, ampSymbol) {\n if (source === void 0) { source = ''; }\n if (this.protectedChannels.indexOf(channel) > -1) {\n var hasAccess = ampSymbol === AMPLIFY_SYMBOL;\n if (!hasAccess) {\n logger.warn(\"WARNING: \" + channel + \" is protected and dispatching on it can have unintended consequences\");\n }\n }\n var capsule = {\n channel: channel,\n payload: __assign({}, payload),\n source: source,\n patternInfo: [],\n };\n try {\n this._toListeners(capsule);\n }\n catch (e) {\n logger.error(e);\n }\n };\n HubClass.prototype.listen = function (channel, callback, listenerName) {\n var _this = this;\n if (listenerName === void 0) { listenerName = 'noname'; }\n var cb;\n // Check for legacy onHubCapsule callback for backwards compatability\n if (isLegacyCallback(callback)) {\n logger.warn(\"WARNING onHubCapsule is Deprecated. Please pass in a callback.\");\n cb = callback.onHubCapsule.bind(callback);\n }\n else if (typeof callback !== 'function') {\n throw new Error('No callback supplied to Hub');\n }\n else {\n cb = callback;\n }\n if (channel instanceof RegExp) {\n this.patterns.push({\n pattern: channel,\n callback: cb,\n });\n }\n else {\n var holder = this.listeners[channel];\n if (!holder) {\n holder = [];\n this.listeners[channel] = holder;\n }\n holder.push({\n name: listenerName,\n callback: cb,\n });\n }\n return function () {\n _this.remove(channel, cb);\n };\n };\n HubClass.prototype._toListeners = function (capsule) {\n var channel = capsule.channel, payload = capsule.payload;\n var holder = this.listeners[channel];\n if (holder) {\n holder.forEach(function (listener) {\n logger.debug(\"Dispatching to \" + channel + \" with \", payload);\n try {\n listener.callback(capsule);\n }\n catch (e) {\n logger.error(e);\n }\n });\n }\n if (this.patterns.length > 0) {\n if (!payload.message) {\n logger.warn(\"Cannot perform pattern matching without a message key\");\n return;\n }\n var payloadStr_1 = payload.message;\n this.patterns.forEach(function (pattern) {\n var match = payloadStr_1.match(pattern.pattern);\n if (match) {\n var _a = __read(match), groups = _a.slice(1);\n var dispatchingCapsule = __assign(__assign({}, capsule), { patternInfo: groups });\n try {\n pattern.callback(dispatchingCapsule);\n }\n catch (e) {\n logger.error(e);\n }\n }\n });\n }\n };\n return HubClass;\n}());\nexport { HubClass };\n/*We export a __default__ instance of HubClass to use it as a\npseudo Singleton for the main messaging bus, however you can still create\nyour own instance of HubClass() for a separate \"private bus\" of events.*/\nexport var Hub = new HubClass('__default__');\n/**\n * @deprecated use named import\n */\nexport default Hub;\n//# sourceMappingURL=Hub.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar MIME_MAP = [\n { type: 'text/plain', ext: 'txt' },\n { type: 'text/html', ext: 'html' },\n { type: 'text/javascript', ext: 'js' },\n { type: 'text/css', ext: 'css' },\n { type: 'text/csv', ext: 'csv' },\n { type: 'text/yaml', ext: 'yml' },\n { type: 'text/yaml', ext: 'yaml' },\n { type: 'text/calendar', ext: 'ics' },\n { type: 'text/calendar', ext: 'ical' },\n { type: 'image/apng', ext: 'apng' },\n { type: 'image/bmp', ext: 'bmp' },\n { type: 'image/gif', ext: 'gif' },\n { type: 'image/x-icon', ext: 'ico' },\n { type: 'image/x-icon', ext: 'cur' },\n { type: 'image/jpeg', ext: 'jpg' },\n { type: 'image/jpeg', ext: 'jpeg' },\n { type: 'image/jpeg', ext: 'jfif' },\n { type: 'image/jpeg', ext: 'pjp' },\n { type: 'image/jpeg', ext: 'pjpeg' },\n { type: 'image/png', ext: 'png' },\n { type: 'image/svg+xml', ext: 'svg' },\n { type: 'image/tiff', ext: 'tif' },\n { type: 'image/tiff', ext: 'tiff' },\n { type: 'image/webp', ext: 'webp' },\n { type: 'application/json', ext: 'json' },\n { type: 'application/xml', ext: 'xml' },\n { type: 'application/x-sh', ext: 'sh' },\n { type: 'application/zip', ext: 'zip' },\n { type: 'application/x-rar-compressed', ext: 'rar' },\n { type: 'application/x-tar', ext: 'tar' },\n { type: 'application/x-bzip', ext: 'bz' },\n { type: 'application/x-bzip2', ext: 'bz2' },\n { type: 'application/pdf', ext: 'pdf' },\n { type: 'application/java-archive', ext: 'jar' },\n { type: 'application/msword', ext: 'doc' },\n { type: 'application/vnd.ms-excel', ext: 'xls' },\n { type: 'application/vnd.ms-excel', ext: 'xlsx' },\n { type: 'message/rfc822', ext: 'eml' },\n];\nexport var isEmpty = function (obj) {\n if (obj === void 0) { obj = {}; }\n return Object.keys(obj).length === 0;\n};\nexport var sortByField = function (list, field, dir) {\n if (!list || !list.sort) {\n return false;\n }\n var dirX = dir && dir === 'desc' ? -1 : 1;\n list.sort(function (a, b) {\n var a_val = a[field];\n var b_val = b[field];\n if (typeof b_val === 'undefined') {\n return typeof a_val === 'undefined' ? 0 : 1 * dirX;\n }\n if (typeof a_val === 'undefined') {\n return -1 * dirX;\n }\n if (a_val < b_val) {\n return -1 * dirX;\n }\n if (a_val > b_val) {\n return 1 * dirX;\n }\n return 0;\n });\n return true;\n};\nexport var objectLessAttributes = function (obj, less) {\n var ret = Object.assign({}, obj);\n if (less) {\n if (typeof less === 'string') {\n delete ret[less];\n }\n else {\n less.forEach(function (attr) {\n delete ret[attr];\n });\n }\n }\n return ret;\n};\nexport var filenameToContentType = function (filename, defVal) {\n if (defVal === void 0) { defVal = 'application/octet-stream'; }\n var name = filename.toLowerCase();\n var filtered = MIME_MAP.filter(function (mime) { return name.endsWith('.' + mime.ext); });\n return filtered.length > 0 ? filtered[0].type : defVal;\n};\nexport var isTextFile = function (contentType) {\n var type = contentType.toLowerCase();\n if (type.startsWith('text/')) {\n return true;\n }\n return ('application/json' === type ||\n 'application/xml' === type ||\n 'application/sh' === type);\n};\nexport var generateRandomString = function () {\n var result = '';\n var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (var i = 32; i > 0; i -= 1) {\n result += chars[Math.floor(Math.random() * chars.length)];\n }\n return result;\n};\nexport var makeQuerablePromise = function (promise) {\n if (promise.isResolved)\n return promise;\n var isPending = true;\n var isRejected = false;\n var isFullfilled = false;\n var result = promise.then(function (data) {\n isFullfilled = true;\n isPending = false;\n return data;\n }, function (e) {\n isRejected = true;\n isPending = false;\n throw e;\n });\n result.isFullfilled = function () { return isFullfilled; };\n result.isPending = function () { return isPending; };\n result.isRejected = function () { return isRejected; };\n return result;\n};\nexport var isWebWorker = function () {\n if (typeof self === 'undefined') {\n return false;\n }\n var selfContext = self;\n return typeof selfContext.WorkerGlobalScope !== 'undefined' &&\n self instanceof selfContext.WorkerGlobalScope;\n};\nexport var browserOrNode = function () {\n var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var isNode = typeof process !== 'undefined' &&\n process.versions != null &&\n process.versions.node != null;\n return {\n isBrowser: isBrowser,\n isNode: isNode,\n };\n};\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport var transferKeyToLowerCase = function (obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) { whiteListForItself = []; }\n if (whiteListForChildren === void 0) { whiteListForChildren = []; }\n if (!isStrictObject(obj))\n return obj;\n var ret = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferedKey = whiteListForItself.includes(key)\n ? key\n : key[0].toLowerCase() + key.slice(1);\n ret[transferedKey] = whiteListForChildren.includes(key)\n ? obj[key]\n : transferKeyToLowerCase(obj[key], whiteListForItself, whiteListForChildren);\n }\n }\n return ret;\n};\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport var transferKeyToUpperCase = function (obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) { whiteListForItself = []; }\n if (whiteListForChildren === void 0) { whiteListForChildren = []; }\n if (!isStrictObject(obj))\n return obj;\n var ret = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferredKey = whiteListForItself.includes(key)\n ? key\n : key[0].toUpperCase() + key.slice(1);\n ret[transferredKey] = whiteListForChildren.includes(key)\n ? obj[key]\n : transferKeyToUpperCase(obj[key], whiteListForItself, whiteListForChildren);\n }\n }\n return ret;\n};\n/**\n * Return true if the object is a strict object\n * which means it's not Array, Function, Number, String, Boolean or Null\n * @param obj the Object\n */\nexport var isStrictObject = function (obj) {\n return (obj instanceof Object &&\n !(obj instanceof Array) &&\n !(obj instanceof Function) &&\n !(obj instanceof Number) &&\n !(obj instanceof String) &&\n !(obj instanceof Boolean));\n};\n/**\n * @deprecated use per-function imports\n */\nvar JS = /** @class */ (function () {\n function JS() {\n }\n JS.isEmpty = isEmpty;\n JS.sortByField = sortByField;\n JS.objectLessAttributes = objectLessAttributes;\n JS.filenameToContentType = filenameToContentType;\n JS.isTextFile = isTextFile;\n JS.generateRandomString = generateRandomString;\n JS.makeQuerablePromise = makeQuerablePromise;\n JS.isWebWorker = isWebWorker;\n JS.browserOrNode = browserOrNode;\n JS.transferKeyToLowerCase = transferKeyToLowerCase;\n JS.transferKeyToUpperCase = transferKeyToUpperCase;\n JS.isStrictObject = isStrictObject;\n return JS;\n}());\nexport { JS };\n/**\n * @deprecated use per-function imports\n */\nexport default JS;\n//# sourceMappingURL=JS.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n// Logging constants\nvar AWS_CLOUDWATCH_BASE_BUFFER_SIZE = 26;\nvar AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE = 1048576;\nvar AWS_CLOUDWATCH_MAX_EVENT_SIZE = 256000;\nvar AWS_CLOUDWATCH_CATEGORY = 'Logging';\nvar AWS_CLOUDWATCH_PROVIDER_NAME = 'AWSCloudWatch';\nvar NO_CREDS_ERROR_STRING = 'No credentials';\nvar RETRY_ERROR_CODES = [\n 'ResourceNotFoundException',\n 'InvalidSequenceTokenException',\n];\nexport { AWS_CLOUDWATCH_BASE_BUFFER_SIZE, AWS_CLOUDWATCH_CATEGORY, AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE, AWS_CLOUDWATCH_MAX_EVENT_SIZE, AWS_CLOUDWATCH_PROVIDER_NAME, NO_CREDS_ERROR_STRING, RETRY_ERROR_CODES, };\n//# sourceMappingURL=Constants.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { AWS_CLOUDWATCH_CATEGORY } from '../Util/Constants';\nvar LOG_LEVELS = {\n VERBOSE: 1,\n DEBUG: 2,\n INFO: 3,\n WARN: 4,\n ERROR: 5,\n};\nexport var LOG_TYPE;\n(function (LOG_TYPE) {\n LOG_TYPE[\"DEBUG\"] = \"DEBUG\";\n LOG_TYPE[\"ERROR\"] = \"ERROR\";\n LOG_TYPE[\"INFO\"] = \"INFO\";\n LOG_TYPE[\"WARN\"] = \"WARN\";\n LOG_TYPE[\"VERBOSE\"] = \"VERBOSE\";\n})(LOG_TYPE || (LOG_TYPE = {}));\n/**\n * Write logs\n * @class Logger\n */\nvar ConsoleLogger = /** @class */ (function () {\n /**\n * @constructor\n * @param {string} name - Name of the logger\n */\n function ConsoleLogger(name, level) {\n if (level === void 0) { level = LOG_TYPE.WARN; }\n this.name = name;\n this.level = level;\n this._pluggables = [];\n }\n ConsoleLogger.prototype._padding = function (n) {\n return n < 10 ? '0' + n : '' + n;\n };\n ConsoleLogger.prototype._ts = function () {\n var dt = new Date();\n return ([this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(':') +\n '.' +\n dt.getMilliseconds());\n };\n ConsoleLogger.prototype.configure = function (config) {\n if (!config)\n return this._config;\n this._config = config;\n return this._config;\n };\n /**\n * Write log\n * @method\n * @memeberof Logger\n * @param {LOG_TYPE|string} type - log type, default INFO\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype._log = function (type) {\n var e_1, _a;\n var msg = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n msg[_i - 1] = arguments[_i];\n }\n var logger_level_name = this.level;\n if (ConsoleLogger.LOG_LEVEL) {\n logger_level_name = ConsoleLogger.LOG_LEVEL;\n }\n if (typeof window !== 'undefined' && window.LOG_LEVEL) {\n logger_level_name = window.LOG_LEVEL;\n }\n var logger_level = LOG_LEVELS[logger_level_name];\n var type_level = LOG_LEVELS[type];\n if (!(type_level >= logger_level)) {\n // Do nothing if type is not greater than or equal to logger level (handle undefined)\n return;\n }\n var log = console.log.bind(console);\n if (type === LOG_TYPE.ERROR && console.error) {\n log = console.error.bind(console);\n }\n if (type === LOG_TYPE.WARN && console.warn) {\n log = console.warn.bind(console);\n }\n var prefix = \"[\" + type + \"] \" + this._ts() + \" \" + this.name;\n var message = '';\n if (msg.length === 1 && typeof msg[0] === 'string') {\n message = prefix + \" - \" + msg[0];\n log(message);\n }\n else if (msg.length === 1) {\n message = prefix + \" \" + msg[0];\n log(prefix, msg[0]);\n }\n else if (typeof msg[0] === 'string') {\n var obj = msg.slice(1);\n if (obj.length === 1) {\n obj = obj[0];\n }\n message = prefix + \" - \" + msg[0] + \" \" + obj;\n log(prefix + \" - \" + msg[0], obj);\n }\n else {\n message = prefix + \" \" + msg;\n log(prefix, msg);\n }\n try {\n for (var _b = __values(this._pluggables), _c = _b.next(); !_c.done; _c = _b.next()) {\n var plugin = _c.value;\n var logEvent = { message: message, timestamp: Date.now() };\n plugin.pushLogs([logEvent]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Write General log. Default to INFO\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.log = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.INFO], msg));\n };\n /**\n * Write INFO log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.info = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.INFO], msg));\n };\n /**\n * Write WARN log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.warn = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.WARN], msg));\n };\n /**\n * Write ERROR log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.error = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.ERROR], msg));\n };\n /**\n * Write DEBUG log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.debug = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.DEBUG], msg));\n };\n /**\n * Write VERBOSE log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.verbose = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.VERBOSE], msg));\n };\n ConsoleLogger.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategoryName() === AWS_CLOUDWATCH_CATEGORY) {\n this._pluggables.push(pluggable);\n pluggable.configure(this._config);\n }\n };\n ConsoleLogger.prototype.listPluggables = function () {\n return this._pluggables;\n };\n ConsoleLogger.LOG_LEVEL = null;\n return ConsoleLogger;\n}());\nexport { ConsoleLogger };\n//# sourceMappingURL=ConsoleLogger.js.map","// generated by genversion\nexport var version = '4.7.14';\n//# sourceMappingURL=version.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { version } from './version';\nvar BASE_USER_AGENT = \"aws-amplify/\" + version;\nexport var Platform = {\n userAgent: BASE_USER_AGENT + \" js\",\n product: '',\n navigator: null,\n isReactNative: false,\n};\nif (typeof navigator !== 'undefined' && navigator.product) {\n Platform.product = navigator.product || '';\n Platform.navigator = navigator || null;\n switch (navigator.product) {\n case 'ReactNative':\n Platform.userAgent = BASE_USER_AGENT + \" react-native\";\n Platform.isReactNative = true;\n break;\n default:\n Platform.userAgent = BASE_USER_AGENT + \" js\";\n Platform.isReactNative = false;\n break;\n }\n}\nexport var getAmplifyUserAgent = function (content) {\n return \"\" + Platform.userAgent + (content ? content : '');\n};\n/**\n * @deprecated use named import\n */\nexport default Platform;\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar dataMemory = {};\n/** @class */\nvar MemoryStorage = /** @class */ (function () {\n function MemoryStorage() {\n }\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n MemoryStorage.setItem = function (key, value) {\n dataMemory[key] = value;\n return dataMemory[key];\n };\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */\n MemoryStorage.getItem = function (key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key)\n ? dataMemory[key]\n : undefined;\n };\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {string} value - value that was deleted\n */\n MemoryStorage.removeItem = function (key) {\n return delete dataMemory[key];\n };\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n MemoryStorage.clear = function () {\n dataMemory = {};\n return dataMemory;\n };\n return MemoryStorage;\n}());\nexport { MemoryStorage };\nvar StorageHelper = /** @class */ (function () {\n /**\n * This is used to get a storage object\n * @returns {object} the storage\n */\n function StorageHelper() {\n try {\n this.storageWindow = window.localStorage;\n this.storageWindow.setItem('aws.amplify.test-ls', 1);\n this.storageWindow.removeItem('aws.amplify.test-ls');\n }\n catch (exception) {\n this.storageWindow = MemoryStorage;\n }\n }\n /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n StorageHelper.prototype.getStorage = function () {\n return this.storageWindow;\n };\n return StorageHelper;\n}());\nexport { StorageHelper };\n/**\n * @deprecated use named import\n */\nexport default StorageHelper;\n//# sourceMappingURL=index.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { ConsoleLogger as Logger } from '../Logger/ConsoleLogger';\nvar logger = new Logger('Util');\nvar NonRetryableError = /** @class */ (function (_super) {\n __extends(NonRetryableError, _super);\n function NonRetryableError(message) {\n var _this = _super.call(this, message) || this;\n _this.nonRetryable = true;\n return _this;\n }\n return NonRetryableError;\n}(Error));\nexport { NonRetryableError };\nvar isNonRetryableError = function (obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function retry(functionToRetry, args, delayFn, onTerminate) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\n return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {\n var attempt, terminated, timeout, wakeUp, lastError, _loop_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempt = 0;\n terminated = false;\n wakeUp = function () { };\n onTerminate &&\n onTerminate.then(function () {\n // signal not to try anymore.\n terminated = true;\n // stop sleeping if we're sleeping.\n clearTimeout(timeout);\n wakeUp();\n });\n _loop_1 = function () {\n var _a, _b, err_1, retryIn_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n attempt++;\n logger.debug(functionToRetry.name + \" attempt #\" + attempt + \" with this vars: \" + JSON.stringify(args));\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 7]);\n _a = {};\n _b = resolve;\n return [4 /*yield*/, functionToRetry.apply(void 0, __spread(args))];\n case 2: return [2 /*return*/, (_a.value = _b.apply(void 0, [_c.sent()]), _a)];\n case 3:\n err_1 = _c.sent();\n lastError = err_1;\n logger.debug(\"error on \" + functionToRetry.name, err_1);\n if (isNonRetryableError(err_1)) {\n logger.debug(functionToRetry.name + \" non retryable error\", err_1);\n return [2 /*return*/, { value: reject(err_1) }];\n }\n retryIn_1 = delayFn(attempt, args, err_1);\n logger.debug(functionToRetry.name + \" retrying in \" + retryIn_1 + \" ms\");\n if (!(retryIn_1 === false || terminated)) return [3 /*break*/, 4];\n return [2 /*return*/, { value: reject(err_1) }];\n case 4: return [4 /*yield*/, new Promise(function (r) {\n wakeUp = r; // export wakeUp for onTerminate handling\n timeout = setTimeout(wakeUp, retryIn_1);\n })];\n case 5:\n _c.sent();\n _c.label = 6;\n case 6: return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n };\n _a.label = 1;\n case 1:\n if (!!terminated) return [3 /*break*/, 3];\n return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n return [3 /*break*/, 1];\n case 3:\n // reached if terminated while waiting for a timer.\n reject(lastError);\n return [2 /*return*/];\n }\n });\n }); })];\n });\n });\n}\nvar MAX_DELAY_MS = 5 * 60 * 1000;\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function jitteredBackoff(maxDelayMs) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\n/**\n * @private\n * Internal use of Amplify only\n */\nexport var jitteredExponentialRetry = function (functionToRetry, args, maxDelayMs, onTerminate) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs), onTerminate);\n};\n//# sourceMappingURL=Retry.js.map","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=CryptoOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Key.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=KeyOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=MsSubtleCrypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsWindow = void 0;\nvar msSubtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction quacksLikeAnMsWindow(window) {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\n/**\n * Determines if the provided window is (or is like) the window object one would\n * expect to encounter in Internet Explorer 11.\n */\nfunction isMsWindow(window) {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n var _a = window.msCrypto, getRandomValues = _a.getRandomValues, subtle_1 = _a.subtle;\n return msSubtleCryptoMethods\n .map(function (methodName) { return subtle_1[methodName]; })\n .concat(getRandomValues)\n .every(function (method) { return typeof method === \"function\"; });\n }\n return false;\n}\nexports.isMsWindow = isMsWindow;\n//# sourceMappingURL=MsWindow.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CryptoOperation\"), exports);\ntslib_1.__exportStar(require(\"./Key\"), exports);\ntslib_1.__exportStar(require(\"./KeyOperation\"), exports);\ntslib_1.__exportStar(require(\"./MsSubtleCrypto\"), exports);\ntslib_1.__exportStar(require(\"./MsWindow\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_DATA_SHA_256 = exports.SHA_256_HMAC_ALGO = exports.SHA_256_HASH = void 0;\nexports.SHA_256_HASH = { name: \"SHA-256\" };\nexports.SHA_256_HMAC_ALGO = {\n name: \"HMAC\",\n hash: exports.SHA_256_HASH\n};\nexports.EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLFlBQVksR0FBd0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFFeEQsUUFBQSxpQkFBaUIsR0FBZ0Q7SUFDNUUsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsb0JBQVk7Q0FDbkIsQ0FBQztBQUVXLFFBQUEsa0JBQWtCLEdBQUcsSUFBSSxVQUFVLENBQUM7SUFDL0MsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEVBQUU7SUFDRixHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEVBQUU7SUFDRixHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxFQUFFO0lBQ0YsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxFQUFFO0lBQ0YsR0FBRztJQUNILEVBQUU7Q0FDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU0hBXzI1Nl9IQVNIOiB7IG5hbWU6IFwiU0hBLTI1NlwiIH0gPSB7IG5hbWU6IFwiU0hBLTI1NlwiIH07XG5cbmV4cG9ydCBjb25zdCBTSEFfMjU2X0hNQUNfQUxHTzogeyBuYW1lOiBcIkhNQUNcIjsgaGFzaDogeyBuYW1lOiBcIlNIQS0yNTZcIiB9IH0gPSB7XG4gIG5hbWU6IFwiSE1BQ1wiLFxuICBoYXNoOiBTSEFfMjU2X0hBU0hcbn07XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9EQVRBX1NIQV8yNTYgPSBuZXcgVWludDhBcnJheShbXG4gIDIyNyxcbiAgMTc2LFxuICAxOTYsXG4gIDY2LFxuICAxNTIsXG4gIDI1MixcbiAgMjgsXG4gIDIwLFxuICAxNTQsXG4gIDI1MSxcbiAgMjQ0LFxuICAyMDAsXG4gIDE1MyxcbiAgMTExLFxuICAxODUsXG4gIDM2LFxuICAzOSxcbiAgMTc0LFxuICA2NSxcbiAgMjI4LFxuICAxMDAsXG4gIDE1NSxcbiAgMTQ3LFxuICA3NixcbiAgMTY0LFxuICAxNDksXG4gIDE1MyxcbiAgMjcsXG4gIDEyMCxcbiAgODIsXG4gIDE4NCxcbiAgODVcbl0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nvar sha256_js_1 = require(\"@aws-crypto/sha256-js\");\nvar supports_web_crypto_1 = require(\"@aws-crypto/supports-web-crypto\");\nvar ie11_detection_1 = require(\"@aws-crypto/ie11-detection\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if ((0, supports_web_crypto_1.supportsWebCrypto)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new webCryptoSha256_1.Sha256(secret);\n }\n else if ((0, ie11_detection_1.isMsWindow)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new ie11Sha256_1.Sha256(secret);\n }\n else {\n this.hash = new sha256_js_1.Sha256(secret);\n }\n }\n Sha256.prototype.update = function (data, encoding) {\n this.hash.update(data, encoding);\n };\n Sha256.prototype.digest = function () {\n return this.hash.digest();\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NQbGF0Zm9ybVNoYTI1Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jcm9zc1BsYXRmb3JtU2hhMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFvRDtBQUNwRCxxREFBOEQ7QUFDOUQsbURBQTJEO0FBRTNELHVFQUFvRTtBQUNwRSw2REFBd0Q7QUFDeEQsa0VBQTJEO0FBRTNEO0lBR0UsZ0JBQVksTUFBbUI7UUFDN0IsSUFBSSxJQUFBLHVDQUFpQixFQUFDLElBQUEsaUNBQVksR0FBRSxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHdCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekM7YUFBTSxJQUFJLElBQUEsMkJBQVUsRUFBQyxJQUFBLGlDQUFZLEdBQUUsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxtQkFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksa0JBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCx1QkFBTSxHQUFOLFVBQU8sSUFBZ0IsRUFBRSxRQUFzQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHVCQUFNLEdBQU47UUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBcEJELElBb0JDO0FBcEJZLHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hhMjU2IGFzIEllMTFTaGEyNTYgfSBmcm9tIFwiLi9pZTExU2hhMjU2XCI7XG5pbXBvcnQgeyBTaGEyNTYgYXMgV2ViQ3J5cHRvU2hhMjU2IH0gZnJvbSBcIi4vd2ViQ3J5cHRvU2hhMjU2XCI7XG5pbXBvcnQgeyBTaGEyNTYgYXMgSnNTaGEyNTYgfSBmcm9tIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWpzXCI7XG5pbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBzdXBwb3J0c1dlYkNyeXB0byB9IGZyb20gXCJAYXdzLWNyeXB0by9zdXBwb3J0cy13ZWItY3J5cHRvXCI7XG5pbXBvcnQgeyBpc01zV2luZG93IH0gZnJvbSBcIkBhd3MtY3J5cHRvL2llMTEtZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBsb2NhdGVXaW5kb3cgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1sb2NhdGUtd2luZG93XCI7XG5cbmV4cG9ydCBjbGFzcyBTaGEyNTYgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSByZWFkb25seSBoYXNoOiBIYXNoO1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc3VwcG9ydHNXZWJDcnlwdG8obG9jYXRlV2luZG93KCkpKSB7XG4gICAgICB0aGlzLmhhc2ggPSBuZXcgV2ViQ3J5cHRvU2hhMjU2KHNlY3JldCk7XG4gICAgfSBlbHNlIGlmIChpc01zV2luZG93KGxvY2F0ZVdpbmRvdygpKSkge1xuICAgICAgdGhpcy5oYXNoID0gbmV3IEllMTFTaGEyNTYoc2VjcmV0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNoID0gbmV3IEpzU2hhMjU2KHNlY3JldCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKGRhdGE6IFNvdXJjZURhdGEsIGVuY29kaW5nPzogXCJ1dGY4XCIgfCBcImFzY2lpXCIgfCBcImxhdGluMVwiKTogdm9pZCB7XG4gICAgdGhpcy5oYXNoLnVwZGF0ZShkYXRhLCBlbmNvZGluZyk7XG4gIH1cblxuICBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzaC5kaWdlc3QoKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar isEmptyData_1 = require(\"./isEmptyData\");\nvar constants_1 = require(\"./constants\");\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if (secret) {\n this.operation = getKeyPromise(secret).then(function (keyData) {\n return (0, util_locate_window_1.locateWindow)().msCrypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, keyData);\n });\n this.operation.catch(function () { });\n }\n else {\n this.operation = Promise.resolve((0, util_locate_window_1.locateWindow)().msCrypto.subtle.digest(\"SHA-256\"));\n }\n }\n Sha256.prototype.update = function (toHash) {\n var _this = this;\n if ((0, isEmptyData_1.isEmptyData)(toHash)) {\n return;\n }\n this.operation = this.operation.then(function (operation) {\n operation.onerror = function () {\n _this.operation = Promise.reject(new Error(\"Error encountered updating hash\"));\n };\n operation.process(toArrayBufferView(toHash));\n return operation;\n });\n this.operation.catch(function () { });\n };\n Sha256.prototype.digest = function () {\n return this.operation.then(function (operation) {\n return new Promise(function (resolve, reject) {\n operation.onerror = function () {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = function () {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.finish();\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction getKeyPromise(secret) {\n return new Promise(function (resolve, reject) {\n var keyOperation = (0, util_locate_window_1.locateWindow)().msCrypto.subtle.importKey(\"raw\", toArrayBufferView(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"]);\n keyOperation.oncomplete = function () {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = function () {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\nfunction toArrayBufferView(data) {\n if (typeof data === \"string\") {\n return (0, util_utf8_browser_1.fromUtf8)(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWUxMVNoYTI1Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pZTExU2hhMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUM1Qyx5Q0FBZ0Q7QUFFaEQsZ0VBQXNEO0FBRXRELGtFQUEyRDtBQUUzRDtJQUdFLGdCQUFZLE1BQW1CO1FBQzdCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsT0FBTztnQkFDakQsT0FBQyxJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDL0MsNkJBQWlCLEVBQ2pCLE9BQU8sQ0FDUjtZQUhELENBR0MsQ0FDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsY0FBTyxDQUFDLENBQUMsQ0FBQztTQUNoQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUM3QixJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FDL0QsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELHVCQUFNLEdBQU4sVUFBTyxNQUFrQjtRQUF6QixpQkFnQkM7UUFmQyxJQUFJLElBQUEseUJBQVcsRUFBQyxNQUFNLENBQUMsRUFBRTtZQUN2QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQUEsU0FBUztZQUM1QyxTQUFTLENBQUMsT0FBTyxHQUFHO2dCQUNsQixLQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQzdCLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQzdDLENBQUM7WUFDSixDQUFDLENBQUM7WUFDRixTQUFTLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFFN0MsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCx1QkFBTSxHQUFOO1FBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDeEIsVUFBQSxTQUFTO1lBQ1AsT0FBQSxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO2dCQUMxQixTQUFTLENBQUMsT0FBTyxHQUFHO29CQUNsQixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLENBQUM7Z0JBQ0YsU0FBUyxDQUFDLFVBQVUsR0FBRztvQkFDckIsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFO3dCQUNwQixPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7cUJBQzNDO29CQUNELE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pELENBQUMsQ0FBQztnQkFFRixTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDO1FBWkYsQ0FZRSxDQUNMLENBQUM7SUFDSixDQUFDO0lBQ0gsYUFBQztBQUFELENBQUMsQUF2REQsSUF1REM7QUF2RFksd0JBQU07QUF5RG5CLFNBQVMsYUFBYSxDQUFDLE1BQWtCO0lBQ3ZDLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTTtRQUNqQyxJQUFNLFlBQVksR0FBSSxJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDekUsS0FBSyxFQUNMLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUN6Qiw2QkFBaUIsRUFDakIsS0FBSyxFQUNMLENBQUMsTUFBTSxDQUFDLENBQ1QsQ0FBQztRQUVGLFlBQVksQ0FBQyxVQUFVLEdBQUc7WUFDeEIsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUN2QixPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzlCO1lBRUQsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxHQUFHO1lBQ3JCLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxJQUFnQjtJQUN6QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUEsNEJBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQy9DLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRW1wdHlEYXRhIH0gZnJvbSBcIi4vaXNFbXB0eURhdGFcIjtcbmltcG9ydCB7IFNIQV8yNTZfSE1BQ19BTEdPIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tVXRmOCB9IGZyb20gXCJAYXdzLXNkay91dGlsLXV0ZjgtYnJvd3NlclwiO1xuaW1wb3J0IHsgQ3J5cHRvT3BlcmF0aW9uLCBLZXksIE1zV2luZG93IH0gZnJvbSBcIkBhd3MtY3J5cHRvL2llMTEtZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBsb2NhdGVXaW5kb3cgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1sb2NhdGUtd2luZG93XCI7XG5cbmV4cG9ydCBjbGFzcyBTaGEyNTYgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSBvcGVyYXRpb246IFByb21pc2U8Q3J5cHRvT3BlcmF0aW9uPjtcblxuICBjb25zdHJ1Y3RvcihzZWNyZXQ/OiBTb3VyY2VEYXRhKSB7XG4gICAgaWYgKHNlY3JldCkge1xuICAgICAgdGhpcy5vcGVyYXRpb24gPSBnZXRLZXlQcm9taXNlKHNlY3JldCkudGhlbihrZXlEYXRhID0+XG4gICAgICAgIChsb2NhdGVXaW5kb3coKSBhcyBNc1dpbmRvdykubXNDcnlwdG8uc3VidGxlLnNpZ24oXG4gICAgICAgICAgU0hBXzI1Nl9ITUFDX0FMR08sXG4gICAgICAgICAga2V5RGF0YVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgdGhpcy5vcGVyYXRpb24uY2F0Y2goKCkgPT4ge30pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZXJhdGlvbiA9IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgKGxvY2F0ZVdpbmRvdygpIGFzIE1zV2luZG93KS5tc0NyeXB0by5zdWJ0bGUuZGlnZXN0KFwiU0hBLTI1NlwiKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUodG9IYXNoOiBTb3VyY2VEYXRhKTogdm9pZCB7XG4gICAgaWYgKGlzRW1wdHlEYXRhKHRvSGFzaCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZXJhdGlvbiA9IHRoaXMub3BlcmF0aW9uLnRoZW4ob3BlcmF0aW9uID0+IHtcbiAgICAgIG9wZXJhdGlvbi5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm9wZXJhdGlvbiA9IFByb21pc2UucmVqZWN0KFxuICAgICAgICAgIG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIHVwZGF0aW5nIGhhc2hcIilcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBvcGVyYXRpb24ucHJvY2Vzcyh0b0FycmF5QnVmZmVyVmlldyh0b0hhc2gpKTtcblxuICAgICAgcmV0dXJuIG9wZXJhdGlvbjtcbiAgICB9KTtcbiAgICB0aGlzLm9wZXJhdGlvbi5jYXRjaCgoKSA9PiB7fSk7XG4gIH1cblxuICBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uLnRoZW48VWludDhBcnJheT4oXG4gICAgICBvcGVyYXRpb24gPT5cbiAgICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIG9wZXJhdGlvbi5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIGZpbmFsaXppbmcgaGFzaFwiKSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBvcGVyYXRpb24ub25jb21wbGV0ZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChvcGVyYXRpb24ucmVzdWx0KSB7XG4gICAgICAgICAgICAgIHJlc29sdmUobmV3IFVpbnQ4QXJyYXkob3BlcmF0aW9uLnJlc3VsdCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIGZpbmFsaXppbmcgaGFzaFwiKSk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIG9wZXJhdGlvbi5maW5pc2goKTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEtleVByb21pc2Uoc2VjcmV0OiBTb3VyY2VEYXRhKTogUHJvbWlzZTxLZXk+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBrZXlPcGVyYXRpb24gPSAobG9jYXRlV2luZG93KCkgYXMgTXNXaW5kb3cpLm1zQ3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgICBcInJhd1wiLFxuICAgICAgdG9BcnJheUJ1ZmZlclZpZXcoc2VjcmV0KSxcbiAgICAgIFNIQV8yNTZfSE1BQ19BTEdPLFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJzaWduXCJdXG4gICAgKTtcblxuICAgIGtleU9wZXJhdGlvbi5vbmNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgaWYgKGtleU9wZXJhdGlvbi5yZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZShrZXlPcGVyYXRpb24ucmVzdWx0KTtcbiAgICAgIH1cblxuICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkltcG9ydEtleSBjb21wbGV0ZWQgd2l0aG91dCBpbXBvcnRpbmcga2V5LlwiKSk7XG4gICAgfTtcbiAgICBrZXlPcGVyYXRpb24ub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoXCJJbXBvcnRLZXkgZmFpbGVkIHRvIGltcG9ydCBrZXkuXCIpKTtcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdG9BcnJheUJ1ZmZlclZpZXcoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFxuICAgICAgZGF0YS5idWZmZXIsXG4gICAgICBkYXRhLmJ5dGVPZmZzZXQsXG4gICAgICBkYXRhLmJ5dGVMZW5ndGggLyBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebCryptoSha256 = exports.Ie11Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./crossPlatformSha256\"), exports);\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nObject.defineProperty(exports, \"Ie11Sha256\", { enumerable: true, get: function () { return ie11Sha256_1.Sha256; } });\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nObject.defineProperty(exports, \"WebCryptoSha256\", { enumerable: true, get: function () { return webCryptoSha256_1.Sha256; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFFQUFzQztBQUN0QywyQ0FBb0Q7QUFBM0Msd0dBQUEsTUFBTSxPQUFjO0FBQzdCLHFEQUE4RDtBQUFyRCxrSEFBQSxNQUFNLE9BQW1CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY3Jvc3NQbGF0Zm9ybVNoYTI1NlwiO1xuZXhwb3J0IHsgU2hhMjU2IGFzIEllMTFTaGEyNTYgfSBmcm9tIFwiLi9pZTExU2hhMjU2XCI7XG5leHBvcnQgeyBTaGEyNTYgYXMgV2ViQ3J5cHRvU2hhMjU2IH0gZnJvbSBcIi4vd2ViQ3J5cHRvU2hhMjU2XCI7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNFbXB0eURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaXNFbXB0eURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsV0FBVyxDQUFDLElBQWdCO0lBQzFDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7S0FDMUI7SUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFORCxrQ0FNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlEYXRhKGRhdGE6IFNvdXJjZURhdGEpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGRhdGEubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuYnl0ZUxlbmd0aCA9PT0gMDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar util_1 = require(\"@aws-crypto/util\");\nvar constants_1 = require(\"./constants\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.toHash = new Uint8Array(0);\n if (secret !== void 0) {\n this.key = new Promise(function (resolve, reject) {\n (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.importKey(\"raw\", (0, util_1.convertToBuffer)(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"])\n .then(resolve, reject);\n });\n this.key.catch(function () { });\n }\n }\n Sha256.prototype.update = function (data) {\n if ((0, util_1.isEmptyData)(data)) {\n return;\n }\n var update = (0, util_1.convertToBuffer)(data);\n var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n };\n Sha256.prototype.digest = function () {\n var _this = this;\n if (this.key) {\n return this.key.then(function (key) {\n return (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, key, _this.toHash)\n .then(function (data) { return new Uint8Array(data); });\n });\n }\n if ((0, util_1.isEmptyData)(this.toHash)) {\n return Promise.resolve(constants_1.EMPTY_DATA_SHA_256);\n }\n return Promise.resolve()\n .then(function () {\n return (0, util_locate_window_1.locateWindow)().crypto.subtle.digest(constants_1.SHA_256_HASH, _this.toHash);\n })\n .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViQ3J5cHRvU2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dlYkNyeXB0b1NoYTI1Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBZ0U7QUFDaEUseUNBSXFCO0FBQ3JCLGtFQUEyRDtBQUUzRDtJQUlFLGdCQUFZLE1BQW1CO1FBRnZCLFdBQU0sR0FBZSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUc3QyxJQUFJLE1BQU0sS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07Z0JBQ3JDLElBQUEsaUNBQVksR0FBRTtxQkFDWCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDdEIsS0FBSyxFQUNMLElBQUEsc0JBQWUsRUFBQyxNQUFNLENBQUMsRUFDdkIsNkJBQWlCLEVBQ2pCLEtBQUssRUFDTCxDQUFDLE1BQU0sQ0FBQyxDQUNUO3FCQUNBLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELHVCQUFNLEdBQU4sVUFBTyxJQUFnQjtRQUNyQixJQUFJLElBQUEsa0JBQVcsRUFBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFFRCxJQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFlLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQzNDLENBQUM7UUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsdUJBQU0sR0FBTjtRQUFBLGlCQWtCQztRQWpCQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRztnQkFDdkIsT0FBQSxJQUFBLGlDQUFZLEdBQUU7cUJBQ1gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQWlCLEVBQUUsR0FBRyxFQUFFLEtBQUksQ0FBQyxNQUFNLENBQUM7cUJBQ3ZELElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFwQixDQUFvQixDQUFDO1lBRnZDLENBRXVDLENBQ3hDLENBQUM7U0FDSDtRQUVELElBQUksSUFBQSxrQkFBVyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsOEJBQWtCLENBQUMsQ0FBQztTQUM1QztRQUVELE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRTthQUNyQixJQUFJLENBQUM7WUFDSixPQUFBLElBQUEsaUNBQVksR0FBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHdCQUFZLEVBQUUsS0FBSSxDQUFDLE1BQU0sQ0FBQztRQUE5RCxDQUE4RCxDQUMvRDthQUNBLElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBckMsQ0FBcUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDSCxhQUFDO0FBQUQsQ0FBQyxBQXRERCxJQXNEQztBQXREWSx3QkFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhc2gsIFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGlzRW1wdHlEYXRhLCBjb252ZXJ0VG9CdWZmZXIgfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuaW1wb3J0IHtcbiAgRU1QVFlfREFUQV9TSEFfMjU2LFxuICBTSEFfMjU2X0hBU0gsXG4gIFNIQV8yNTZfSE1BQ19BTEdPLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGxvY2F0ZVdpbmRvdyB9IGZyb20gXCJAYXdzLXNkay91dGlsLWxvY2F0ZS13aW5kb3dcIjtcblxuZXhwb3J0IGNsYXNzIFNoYTI1NiBpbXBsZW1lbnRzIEhhc2gge1xuICBwcml2YXRlIHJlYWRvbmx5IGtleTogUHJvbWlzZTxDcnlwdG9LZXk+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHRvSGFzaDogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDApO1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc2VjcmV0ICE9PSB2b2lkIDApIHtcbiAgICAgIHRoaXMua2V5ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsb2NhdGVXaW5kb3coKVxuICAgICAgICAgIC5jcnlwdG8uc3VidGxlLmltcG9ydEtleShcbiAgICAgICAgICAgIFwicmF3XCIsXG4gICAgICAgICAgICBjb252ZXJ0VG9CdWZmZXIoc2VjcmV0KSxcbiAgICAgICAgICAgIFNIQV8yNTZfSE1BQ19BTEdPLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBbXCJzaWduXCJdXG4gICAgICAgICAgKVxuICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMua2V5LmNhdGNoKCgpID0+IHt9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUoZGF0YTogU291cmNlRGF0YSk6IHZvaWQge1xuICAgIGlmIChpc0VtcHR5RGF0YShkYXRhKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZSA9IGNvbnZlcnRUb0J1ZmZlcihkYXRhKTtcbiAgICBjb25zdCB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoXG4gICAgICB0aGlzLnRvSGFzaC5ieXRlTGVuZ3RoICsgdXBkYXRlLmJ5dGVMZW5ndGhcbiAgICApO1xuICAgIHR5cGVkQXJyYXkuc2V0KHRoaXMudG9IYXNoLCAwKTtcbiAgICB0eXBlZEFycmF5LnNldCh1cGRhdGUsIHRoaXMudG9IYXNoLmJ5dGVMZW5ndGgpO1xuICAgIHRoaXMudG9IYXNoID0gdHlwZWRBcnJheTtcbiAgfVxuXG4gIGRpZ2VzdCgpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBpZiAodGhpcy5rZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLmtleS50aGVuKChrZXkpID0+XG4gICAgICAgIGxvY2F0ZVdpbmRvdygpXG4gICAgICAgICAgLmNyeXB0by5zdWJ0bGUuc2lnbihTSEFfMjU2X0hNQUNfQUxHTywga2V5LCB0aGlzLnRvSGFzaClcbiAgICAgICAgICAudGhlbigoZGF0YSkgPT4gbmV3IFVpbnQ4QXJyYXkoZGF0YSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChpc0VtcHR5RGF0YSh0aGlzLnRvSGFzaCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoRU1QVFlfREFUQV9TSEFfMjU2KTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgIC50aGVuKCgpID0+XG4gICAgICAgIGxvY2F0ZVdpbmRvdygpLmNyeXB0by5zdWJ0bGUuZGlnZXN0KFNIQV8yNTZfSEFTSCwgdGhpcy50b0hhc2gpXG4gICAgICApXG4gICAgICAudGhlbigoZGF0YSkgPT4gUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KGRhdGEpKSk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RawSha256 = void 0;\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(constants_1.INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexports.RawSha256 = RawSha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmF3U2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1Jhd1NoYTI1Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FNcUI7QUFFckI7O0dBRUc7QUFDSDtJQUFBO1FBQ1UsVUFBSyxHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQUksQ0FBQyxDQUFDO1FBQzFDLFNBQUksR0FBZSxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxXQUFNLEdBQWUsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxhQUFRLEdBQVksS0FBSyxDQUFDO0lBOEk1QixDQUFDO0lBNUlDLDBCQUFNLEdBQU4sVUFBTyxJQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBQSxVQUFVLEdBQUssSUFBSSxXQUFULENBQVU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRywrQkFBbUIsRUFBRTtZQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwRCxVQUFVLEVBQUUsQ0FBQztZQUViLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxzQkFBVSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsVUFB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LENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFFbkUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixJQUFNLElBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUVqRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDVixDQUFDLENBQUMsSUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ2xFO1lBRUQsSUFBTSxFQUFFLEdBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDLENBQUM7Z0JBQ0YsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsZUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDLENBQUM7WUFFSixJQUFNLEVBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlELENBQUMsQ0FBQztZQUVKLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUVELEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0gsZ0JBQUM7QUFBRCxDQUFDLEFBeEpELElBd0pDO0FBeEpZLDhCQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQkxPQ0tfU0laRSxcbiAgRElHRVNUX0xFTkdUSCxcbiAgSU5JVCxcbiAgS0VZLFxuICBNQVhfSEFTSEFCTEVfTEVOR1RIXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgUmF3U2hhMjU2IHtcbiAgcHJpdmF0ZSBzdGF0ZTogSW50MzJBcnJheSA9IEludDMyQXJyYXkuZnJvbShJTklUKTtcbiAgcHJpdmF0ZSB0ZW1wOiBJbnQzMkFycmF5ID0gbmV3IEludDMyQXJyYXkoNjQpO1xuICBwcml2YXRlIGJ1ZmZlcjogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDY0KTtcbiAgcHJpdmF0ZSBidWZmZXJMZW5ndGg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgYnl0ZXNIYXNoZWQ6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZmluaXNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB1cGRhdGUoZGF0YTogVWludDhBcnJheSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbmlzaGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0ZWQgdG8gdXBkYXRlIGFuIGFscmVhZHkgZmluaXNoZWQgaGFzaC5cIik7XG4gICAgfVxuXG4gICAgbGV0IHBvc2l0aW9uID0gMDtcbiAgICBsZXQgeyBieXRlTGVuZ3RoIH0gPSBkYXRhO1xuICAgIHRoaXMuYnl0ZXNIYXNoZWQgKz0gYnl0ZUxlbmd0aDtcblxuICAgIGlmICh0aGlzLmJ5dGVzSGFzaGVkICogOCA+IE1BWF9IQVNIQUJMRV9MRU5HVEgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBoYXNoIG1vcmUgdGhhbiAyXjUzIC0gMSBiaXRzXCIpO1xuICAgIH1cblxuICAgIHdoaWxlIChieXRlTGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW3Bvc2l0aW9uKytdO1xuICAgICAgYnl0ZUxlbmd0aC0tO1xuXG4gICAgICBpZiAodGhpcy5idWZmZXJMZW5ndGggPT09IEJMT0NLX1NJWkUpIHtcbiAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaWdlc3QoKTogVWludDhBcnJheSB7XG4gICAgaWYgKCF0aGlzLmZpbmlzaGVkKSB7XG4gICAgICBjb25zdCBiaXRzSGFzaGVkID0gdGhpcy5ieXRlc0hhc2hlZCAqIDg7XG4gICAgICBjb25zdCBidWZmZXJWaWV3ID0gbmV3IERhdGFWaWV3KFxuICAgICAgICB0aGlzLmJ1ZmZlci5idWZmZXIsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVMZW5ndGhcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHVuZGVjb3JhdGVkTGVuZ3RoID0gdGhpcy5idWZmZXJMZW5ndGg7XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQ4KHRoaXMuYnVmZmVyTGVuZ3RoKyssIDB4ODApO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGZpbmFsIGJsb2NrIGhhcyBlbm91Z2ggcm9vbSBmb3IgdGhlIGhhc2hlZCBsZW5ndGhcbiAgICAgIGlmICh1bmRlY29yYXRlZExlbmd0aCAlIEJMT0NLX1NJWkUgPj0gQkxPQ0tfU0laRSAtIDgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuYnVmZmVyTGVuZ3RoOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICAgICAgYnVmZmVyVmlldy5zZXRVaW50OChpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFIC0gODsgaSsrKSB7XG4gICAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDgoaSwgMCk7XG4gICAgICB9XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQzMihcbiAgICAgICAgQkxPQ0tfU0laRSAtIDgsXG4gICAgICAgIE1hdGguZmxvb3IoYml0c0hhc2hlZCAvIDB4MTAwMDAwMDAwKSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDMyKEJMT0NLX1NJWkUgLSA0LCBiaXRzSGFzaGVkKTtcblxuICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG5cbiAgICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIFRoZSB2YWx1ZSBpbiBzdGF0ZSBpcyBsaXR0bGUtZW5kaWFuIHJhdGhlciB0aGFuIGJpZy1lbmRpYW4sIHNvIGZsaXBcbiAgICAvLyBlYWNoIHdvcmQgaW50byBhIG5ldyBVaW50OEFycmF5XG4gICAgY29uc3Qgb3V0ID0gbmV3IFVpbnQ4QXJyYXkoRElHRVNUX0xFTkdUSCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHtcbiAgICAgIG91dFtpICogNF0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgIG91dFtpICogNCArIDFdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAyXSA9ICh0aGlzLnN0YXRlW2ldID4+PiA4KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAzXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAwKSAmIDB4ZmY7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIHByaXZhdGUgaGFzaEJ1ZmZlcigpOiB2b2lkIHtcbiAgICBjb25zdCB7IGJ1ZmZlciwgc3RhdGUgfSA9IHRoaXM7XG5cbiAgICBsZXQgc3RhdGUwID0gc3RhdGVbMF0sXG4gICAgICBzdGF0ZTEgPSBzdGF0ZVsxXSxcbiAgICAgIHN0YXRlMiA9IHN0YXRlWzJdLFxuICAgICAgc3RhdGUzID0gc3RhdGVbM10sXG4gICAgICBzdGF0ZTQgPSBzdGF0ZVs0XSxcbiAgICAgIHN0YXRlNSA9IHN0YXRlWzVdLFxuICAgICAgc3RhdGU2ID0gc3RhdGVbNl0sXG4gICAgICBzdGF0ZTcgPSBzdGF0ZVs3XTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIHRoaXMudGVtcFtpXSA9XG4gICAgICAgICAgKChidWZmZXJbaSAqIDRdICYgMHhmZikgPDwgMjQpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDFdICYgMHhmZikgPDwgMTYpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDJdICYgMHhmZikgPDwgOCkgfFxuICAgICAgICAgIChidWZmZXJbaSAqIDQgKyAzXSAmIDB4ZmYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHUgPSB0aGlzLnRlbXBbaSAtIDJdO1xuICAgICAgICBjb25zdCB0MSA9XG4gICAgICAgICAgKCh1ID4+PiAxNykgfCAodSA8PCAxNSkpIF4gKCh1ID4+PiAxOSkgfCAodSA8PCAxMykpIF4gKHUgPj4+IDEwKTtcblxuICAgICAgICB1ID0gdGhpcy50ZW1wW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IHQyID1cbiAgICAgICAgICAoKHUgPj4+IDcpIHwgKHUgPDwgMjUpKSBeICgodSA+Pj4gMTgpIHwgKHUgPDwgMTQpKSBeICh1ID4+PiAzKTtcblxuICAgICAgICB0aGlzLnRlbXBbaV0gPVxuICAgICAgICAgICgodDEgKyB0aGlzLnRlbXBbaSAtIDddKSB8IDApICsgKCh0MiArIHRoaXMudGVtcFtpIC0gMTZdKSB8IDApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0MSA9XG4gICAgICAgICgoKCgoKHN0YXRlNCA+Pj4gNikgfCAoc3RhdGU0IDw8IDI2KSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAxMSkgfCAoc3RhdGU0IDw8IDIxKSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAyNSkgfCAoc3RhdGU0IDw8IDcpKSkgK1xuICAgICAgICAgICgoc3RhdGU0ICYgc3RhdGU1KSBeICh+c3RhdGU0ICYgc3RhdGU2KSkpIHxcbiAgICAgICAgICAwKSArXG4gICAgICAgICAgKChzdGF0ZTcgKyAoKEtFWVtpXSArIHRoaXMudGVtcFtpXSkgfCAwKSkgfCAwKSkgfFxuICAgICAgICAwO1xuXG4gICAgICBjb25zdCB0MiA9XG4gICAgICAgICgoKChzdGF0ZTAgPj4+IDIpIHwgKHN0YXRlMCA8PCAzMCkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMTMpIHwgKHN0YXRlMCA8PCAxOSkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMjIpIHwgKHN0YXRlMCA8PCAxMCkpKSArXG4gICAgICAgICAgKChzdGF0ZTAgJiBzdGF0ZTEpIF4gKHN0YXRlMCAmIHN0YXRlMikgXiAoc3RhdGUxICYgc3RhdGUyKSkpIHxcbiAgICAgICAgMDtcblxuICAgICAgc3RhdGU3ID0gc3RhdGU2O1xuICAgICAgc3RhdGU2ID0gc3RhdGU1O1xuICAgICAgc3RhdGU1ID0gc3RhdGU0O1xuICAgICAgc3RhdGU0ID0gKHN0YXRlMyArIHQxKSB8IDA7XG4gICAgICBzdGF0ZTMgPSBzdGF0ZTI7XG4gICAgICBzdGF0ZTIgPSBzdGF0ZTE7XG4gICAgICBzdGF0ZTEgPSBzdGF0ZTA7XG4gICAgICBzdGF0ZTAgPSAodDEgKyB0MikgfCAwO1xuICAgIH1cblxuICAgIHN0YXRlWzBdICs9IHN0YXRlMDtcbiAgICBzdGF0ZVsxXSArPSBzdGF0ZTE7XG4gICAgc3RhdGVbMl0gKz0gc3RhdGUyO1xuICAgIHN0YXRlWzNdICs9IHN0YXRlMztcbiAgICBzdGF0ZVs0XSArPSBzdGF0ZTQ7XG4gICAgc3RhdGVbNV0gKz0gc3RhdGU1O1xuICAgIHN0YXRlWzZdICs9IHN0YXRlNjtcbiAgICBzdGF0ZVs3XSArPSBzdGF0ZTc7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\n/**\n * @internal\n */\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexports.KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexports.INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNVLFFBQUEsVUFBVSxHQUFXLEVBQUUsQ0FBQztBQUVyQzs7R0FFRztBQUNVLFFBQUEsYUFBYSxHQUFXLEVBQUUsQ0FBQztBQUV4Qzs7R0FFRztBQUNVLFFBQUEsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDO0lBQ2pDLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7Q0FDWCxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNVLFFBQUEsSUFBSSxHQUFHO0lBQ2xCLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0NBQ1gsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxTQUFBLENBQUMsRUFBSSxFQUFFLENBQUEsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgQkxPQ0tfU0laRTogbnVtYmVyID0gNjQ7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBESUdFU1RfTEVOR1RIOiBudW1iZXIgPSAzMjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IEtFWSA9IG5ldyBVaW50MzJBcnJheShbXG4gIDB4NDI4YTJmOTgsXG4gIDB4NzEzNzQ0OTEsXG4gIDB4YjVjMGZiY2YsXG4gIDB4ZTliNWRiYTUsXG4gIDB4Mzk1NmMyNWIsXG4gIDB4NTlmMTExZjEsXG4gIDB4OTIzZjgyYTQsXG4gIDB4YWIxYzVlZDUsXG4gIDB4ZDgwN2FhOTgsXG4gIDB4MTI4MzViMDEsXG4gIDB4MjQzMTg1YmUsXG4gIDB4NTUwYzdkYzMsXG4gIDB4NzJiZTVkNzQsXG4gIDB4ODBkZWIxZmUsXG4gIDB4OWJkYzA2YTcsXG4gIDB4YzE5YmYxNzQsXG4gIDB4ZTQ5YjY5YzEsXG4gIDB4ZWZiZTQ3ODYsXG4gIDB4MGZjMTlkYzYsXG4gIDB4MjQwY2ExY2MsXG4gIDB4MmRlOTJjNmYsXG4gIDB4NGE3NDg0YWEsXG4gIDB4NWNiMGE5ZGMsXG4gIDB4NzZmOTg4ZGEsXG4gIDB4OTgzZTUxNTIsXG4gIDB4YTgzMWM2NmQsXG4gIDB4YjAwMzI3YzgsXG4gIDB4YmY1OTdmYzcsXG4gIDB4YzZlMDBiZjMsXG4gIDB4ZDVhNzkxNDcsXG4gIDB4MDZjYTYzNTEsXG4gIDB4MTQyOTI5NjcsXG4gIDB4MjdiNzBhODUsXG4gIDB4MmUxYjIxMzgsXG4gIDB4NGQyYzZkZmMsXG4gIDB4NTMzODBkMTMsXG4gIDB4NjUwYTczNTQsXG4gIDB4NzY2YTBhYmIsXG4gIDB4ODFjMmM5MmUsXG4gIDB4OTI3MjJjODUsXG4gIDB4YTJiZmU4YTEsXG4gIDB4YTgxYTY2NGIsXG4gIDB4YzI0YjhiNzAsXG4gIDB4Yzc2YzUxYTMsXG4gIDB4ZDE5MmU4MTksXG4gIDB4ZDY5OTA2MjQsXG4gIDB4ZjQwZTM1ODUsXG4gIDB4MTA2YWEwNzAsXG4gIDB4MTlhNGMxMTYsXG4gIDB4MWUzNzZjMDgsXG4gIDB4Mjc0ODc3NGMsXG4gIDB4MzRiMGJjYjUsXG4gIDB4MzkxYzBjYjMsXG4gIDB4NGVkOGFhNGEsXG4gIDB4NWI5Y2NhNGYsXG4gIDB4NjgyZTZmZjMsXG4gIDB4NzQ4ZjgyZWUsXG4gIDB4NzhhNTYzNmYsXG4gIDB4ODRjODc4MTQsXG4gIDB4OGNjNzAyMDgsXG4gIDB4OTBiZWZmZmEsXG4gIDB4YTQ1MDZjZWIsXG4gIDB4YmVmOWEzZjcsXG4gIDB4YzY3MTc4ZjJcbl0pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgSU5JVCA9IFtcbiAgMHg2YTA5ZTY2NyxcbiAgMHhiYjY3YWU4NSxcbiAgMHgzYzZlZjM3MixcbiAgMHhhNTRmZjUzYSxcbiAgMHg1MTBlNTI3ZixcbiAgMHg5YjA1Njg4YyxcbiAgMHgxZjgzZDlhYixcbiAgMHg1YmUwY2QxOVxuXTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9IQVNIQUJMRV9MRU5HVEggPSAyICoqIDUzIC0gMTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./jsSha256\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vanNTaGEyNTZcIjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n if (secret) {\n this.outer = new RawSha256_1.RawSha256();\n var inner = bufferFromSecret(secret);\n var outer = new Uint8Array(constants_1.BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n Sha256.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update((0, util_1.convertToBuffer)(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {\n return (0, tslib_1.__generator)(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction bufferFromSecret(secret) {\n var input = (0, util_1.convertToBuffer)(secret);\n if (input.byteLength > constants_1.BLOCK_SIZE) {\n var bufferHash = new RawSha256_1.RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNTaGEyNTYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvanNTaGEyNTYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlDQUF5QztBQUN6Qyx5Q0FBd0M7QUFFeEMseUNBQWdFO0FBRWhFO0lBS0UsZ0JBQVksTUFBbUI7UUFKZCxTQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7UUFLdEMsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQzdCLElBQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLHNCQUFVLENBQUMsQ0FBQztZQUN6QyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxzQkFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNuQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUNqQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2FBQ2xCO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFekIscUNBQXFDO1lBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2Q7U0FDRjtJQUNILENBQUM7SUFFRCx1QkFBTSxHQUFOLFVBQU8sTUFBa0I7UUFDdkIsSUFBSSxJQUFBLGtCQUFXLEVBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFFRCxJQUFJO1lBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBQSxzQkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDM0M7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsMkJBQVUsR0FBVjtRQUNFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNsQjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZDO1lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVCO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0csdUJBQU0sR0FBWjs7O2dCQUNFLHNCQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBQzs7O0tBQzFCO0lBQ0gsYUFBQztBQUFELENBQUMsQUFsRUQsSUFrRUM7QUFsRVksd0JBQU07QUFvRW5CLFNBQVMsZ0JBQWdCLENBQUMsTUFBa0I7SUFDMUMsSUFBSSxLQUFLLEdBQUcsSUFBQSxzQkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBDLElBQUksS0FBSyxDQUFDLFVBQVUsR0FBRyxzQkFBVSxFQUFFO1FBQ2pDLElBQU0sVUFBVSxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1FBQ25DLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUM3QjtJQUVELElBQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLHNCQUFVLENBQUMsQ0FBQztJQUMxQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCTE9DS19TSVpFIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBSYXdTaGEyNTYgfSBmcm9tIFwiLi9SYXdTaGEyNTZcIjtcbmltcG9ydCB7IEhhc2gsIFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGlzRW1wdHlEYXRhLCBjb252ZXJ0VG9CdWZmZXIgfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuXG5leHBvcnQgY2xhc3MgU2hhMjU2IGltcGxlbWVudHMgSGFzaCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGFzaCA9IG5ldyBSYXdTaGEyNTYoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvdXRlcj86IFJhd1NoYTI1NjtcbiAgcHJpdmF0ZSBlcnJvcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc2VjcmV0KSB7XG4gICAgICB0aGlzLm91dGVyID0gbmV3IFJhd1NoYTI1NigpO1xuICAgICAgY29uc3QgaW5uZXIgPSBidWZmZXJGcm9tU2VjcmV0KHNlY3JldCk7XG4gICAgICBjb25zdCBvdXRlciA9IG5ldyBVaW50OEFycmF5KEJMT0NLX1NJWkUpO1xuICAgICAgb3V0ZXIuc2V0KGlubmVyKTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBCTE9DS19TSVpFOyBpKyspIHtcbiAgICAgICAgaW5uZXJbaV0gXj0gMHgzNjtcbiAgICAgICAgb3V0ZXJbaV0gXj0gMHg1YztcbiAgICAgIH1cblxuICAgICAgdGhpcy5oYXNoLnVwZGF0ZShpbm5lcik7XG4gICAgICB0aGlzLm91dGVyLnVwZGF0ZShvdXRlcik7XG5cbiAgICAgIC8vIG92ZXJ3cml0ZSB0aGUgY29waWVkIGtleSBpbiBtZW1vcnlcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5uZXIuYnl0ZUxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlubmVyW2ldID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGUodG9IYXNoOiBTb3VyY2VEYXRhKTogdm9pZCB7XG4gICAgaWYgKGlzRW1wdHlEYXRhKHRvSGFzaCkgfHwgdGhpcy5lcnJvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmhhc2gudXBkYXRlKGNvbnZlcnRUb0J1ZmZlcih0b0hhc2gpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmVycm9yID0gZTtcbiAgICB9XG4gIH1cblxuICAvKiBUaGlzIHN5bmNocm9ub3VzIG1ldGhvZCBrZWVwcyBjb21wYXRpYmlsaXR5XG4gICAqIHdpdGggdGhlIHYyIGF3cy1zZGsuXG4gICAqL1xuICBkaWdlc3RTeW5jKCk6IFVpbnQ4QXJyYXkge1xuICAgIGlmICh0aGlzLmVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLmVycm9yO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm91dGVyKSB7XG4gICAgICBpZiAoIXRoaXMub3V0ZXIuZmluaXNoZWQpIHtcbiAgICAgICAgdGhpcy5vdXRlci51cGRhdGUodGhpcy5oYXNoLmRpZ2VzdCgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMub3V0ZXIuZGlnZXN0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFzaC5kaWdlc3QoKTtcbiAgfVxuXG4gIC8qIFRoZSB1bmRlcmx5aW5nIGRpZ2VzdCBtZXRob2QgaGVyZSBpcyBzeW5jaHJvbm91cy5cbiAgICogVG8ga2VlcCB0aGUgc2FtZSBpbnRlcmZhY2Ugd2l0aCB0aGUgb3RoZXIgaGFzaCBmdW5jdGlvbnNcbiAgICogdGhlIGRlZmF1bHQgaXMgdG8gZXhwb3NlIHRoaXMgYXMgYW4gYXN5bmMgbWV0aG9kLlxuICAgKiBIb3dldmVyLCBpdCBjYW4gc29tZXRpbWVzIGJlIHVzZWZ1bCB0byBoYXZlIGEgc3luYyBtZXRob2QuXG4gICAqL1xuICBhc3luYyBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuZGlnZXN0U3luYygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1ZmZlckZyb21TZWNyZXQoc2VjcmV0OiBTb3VyY2VEYXRhKTogVWludDhBcnJheSB7XG4gIGxldCBpbnB1dCA9IGNvbnZlcnRUb0J1ZmZlcihzZWNyZXQpO1xuXG4gIGlmIChpbnB1dC5ieXRlTGVuZ3RoID4gQkxPQ0tfU0laRSkge1xuICAgIGNvbnN0IGJ1ZmZlckhhc2ggPSBuZXcgUmF3U2hhMjU2KCk7XG4gICAgYnVmZmVySGFzaC51cGRhdGUoaW5wdXQpO1xuICAgIGlucHV0ID0gYnVmZmVySGFzaC5kaWdlc3QoKTtcbiAgfVxuXG4gIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KEJMT0NLX1NJWkUpO1xuICBidWZmZXIuc2V0KGlucHV0KTtcbiAgcmV0dXJuIGJ1ZmZlcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(constants_1.INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexports.RawSha256 = RawSha256;\n//# sourceMappingURL=RawSha256.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @internal\n */\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexports.KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexports.INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n//# sourceMappingURL=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./jsSha256\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n if (secret) {\n this.outer = new RawSha256_1.RawSha256();\n var inner = bufferFromSecret(secret);\n var outer = new Uint8Array(constants_1.BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n Sha256.prototype.update = function (toHash) {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update(convertToBuffer(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction bufferFromSecret(secret) {\n var input = convertToBuffer(secret);\n if (input.byteLength > constants_1.BLOCK_SIZE) {\n var bufferHash = new RawSha256_1.RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return util_utf8_browser_1.fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=jsSha256.js.map","/**\n * Converts a JS string from its native UCS-2/UTF-16 representation into a\n * Uint8Array of the bytes used to represent the equivalent characters in UTF-8.\n *\n * Cribbed from the `goog.crypt.stringToUtf8ByteArray` function in the Google\n * Closure library, though updated to use typed arrays.\n */\nexport var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\n/**\n * Converts a typed array of bytes containing UTF-8 data into a native JS\n * string.\n *\n * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the\n * Google Closure library, though updated to use typed arrays and to better\n * handle astral plane code points.\n */\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZUpzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1cmVKcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFhO0lBQ3BDLElBQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxHQUFHLElBQUksRUFBRTtZQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25CO2FBQU0sSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFO1lBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBVSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FBQyxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxFQUFFO1lBQy9HLElBQU0sYUFBYSxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQVksQ0FBQyxDQUFDO1lBQ3hHLEtBQUssQ0FBQyxJQUFJLENBQ1IsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBVSxFQUNsQyxDQUFDLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFDL0MsQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLEVBQzlDLENBQUMsYUFBYSxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FDeEMsQ0FBQztTQUNIO2FBQU07WUFDTCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLENBQUMsQ0FBQztTQUNqSDtLQUNGO0lBRUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsSUFBTSxNQUFNLEdBQUcsVUFBQyxLQUFpQjtJQUN0QyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFO1lBQ2YsT0FBTyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVUsRUFBRTtZQUNsRCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEVBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakY7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVcsRUFBRTtZQUNuRCxJQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQU0sT0FBTyxHQUFHLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQUMsU0FBUyxJQUFLLE9BQUEsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RixPQUFPLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUM1QixDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxDQUNuRixDQUFDO1NBQ0g7S0FDRjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udmVydHMgYSBKUyBzdHJpbmcgZnJvbSBpdHMgbmF0aXZlIFVDUy0yL1VURi0xNiByZXByZXNlbnRhdGlvbiBpbnRvIGFcbiAqIFVpbnQ4QXJyYXkgb2YgdGhlIGJ5dGVzIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBlcXVpdmFsZW50IGNoYXJhY3RlcnMgaW4gVVRGLTguXG4gKlxuICogQ3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC5zdHJpbmdUb1V0ZjhCeXRlQXJyYXlgIGZ1bmN0aW9uIGluIHRoZSBHb29nbGVcbiAqIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cy5cbiAqL1xuZXhwb3J0IGNvbnN0IGZyb21VdGY4ID0gKGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5ID0+IHtcbiAgY29uc3QgYnl0ZXM6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGlucHV0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dC5jaGFyQ29kZUF0KGkpO1xuICAgIGlmICh2YWx1ZSA8IDB4ODApIHtcbiAgICAgIGJ5dGVzLnB1c2godmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPCAweDgwMCkge1xuICAgICAgYnl0ZXMucHVzaCgodmFsdWUgPj4gNikgfCAwYjExMDAwMDAwLCAodmFsdWUgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwKTtcbiAgICB9IGVsc2UgaWYgKGkgKyAxIDwgaW5wdXQubGVuZ3RoICYmICh2YWx1ZSAmIDB4ZmMwMCkgPT09IDB4ZDgwMCAmJiAoaW5wdXQuY2hhckNvZGVBdChpICsgMSkgJiAweGZjMDApID09PSAweGRjMDApIHtcbiAgICAgIGNvbnN0IHN1cnJvZ2F0ZVBhaXIgPSAweDEwMDAwICsgKCh2YWx1ZSAmIDBiMTExMTExMTExMSkgPDwgMTApICsgKGlucHV0LmNoYXJDb2RlQXQoKytpKSAmIDBiMTExMTExMTExMSk7XG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICAoc3Vycm9nYXRlUGFpciA+PiAxOCkgfCAwYjExMTEwMDAwLFxuICAgICAgICAoKHN1cnJvZ2F0ZVBhaXIgPj4gMTIpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKChzdXJyb2dhdGVQYWlyID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKHN1cnJvZ2F0ZVBhaXIgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBieXRlcy5wdXNoKCh2YWx1ZSA+PiAxMikgfCAwYjExMTAwMDAwLCAoKHZhbHVlID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCwgKHZhbHVlICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShieXRlcyk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgdHlwZWQgYXJyYXkgb2YgYnl0ZXMgY29udGFpbmluZyBVVEYtOCBkYXRhIGludG8gYSBuYXRpdmUgSlNcbiAqIHN0cmluZy5cbiAqXG4gKiBQYXJ0bHkgY3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC51dGY4Qnl0ZUFycmF5VG9TdHJpbmdgIGZ1bmN0aW9uIGluIHRoZVxuICogR29vZ2xlIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cyBhbmQgdG8gYmV0dGVyXG4gKiBoYW5kbGUgYXN0cmFsIHBsYW5lIGNvZGUgcG9pbnRzLlxuICovXG5leHBvcnQgY29uc3QgdG9VdGY4ID0gKGlucHV0OiBVaW50OEFycmF5KTogc3RyaW5nID0+IHtcbiAgbGV0IGRlY29kZWQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW5wdXQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gaW5wdXRbaV07XG4gICAgaWYgKGJ5dGUgPCAweDgwKSB7XG4gICAgICBkZWNvZGVkICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZSk7XG4gICAgfSBlbHNlIGlmICgwYjExMDAwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTExMDAwMDApIHtcbiAgICAgIGNvbnN0IG5leHRCeXRlID0gaW5wdXRbKytpXTtcbiAgICAgIGRlY29kZWQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGJ5dGUgJiAwYjExMTExKSA8PCA2KSB8IChuZXh0Qnl0ZSAmIDBiMTExMTExKSk7XG4gICAgfSBlbHNlIGlmICgwYjExMTEwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTAxMTAxMTAxKSB7XG4gICAgICBjb25zdCBzdXJyb2dhdGVQYWlyID0gW2J5dGUsIGlucHV0WysraV0sIGlucHV0WysraV0sIGlucHV0WysraV1dO1xuICAgICAgY29uc3QgZW5jb2RlZCA9IFwiJVwiICsgc3Vycm9nYXRlUGFpci5tYXAoKGJ5dGVWYWx1ZSkgPT4gYnl0ZVZhbHVlLnRvU3RyaW5nKDE2KSkuam9pbihcIiVcIik7XG4gICAgICBkZWNvZGVkICs9IGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb2RlZCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFxuICAgICAgICAoKGJ5dGUgJiAwYjExMTEpIDw8IDEyKSB8ICgoaW5wdXRbKytpXSAmIDBiMTExMTExKSA8PCA2KSB8IChpbnB1dFsrK2ldICYgMGIxMTExMTEpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWNvZGVkO1xufTtcbiJdfQ==","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hhdHdnRW5jb2RpbmdBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2hhdHdnRW5jb2RpbmdBcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUNBLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBYTtJQUNwQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQWlCO0lBQ3RDLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZGVjbGFyYXRpb24gb2YgdGhlIGdsb2JhbCBUZXh0RW5jb2RlciBhbmQgVGV4dERlY29kZXIgY29uc3RydWN0b3JzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG5uYW1lc3BhY2UgRW5jb2Rpbmcge1xuICBpbnRlcmZhY2UgVGV4dERlY29kZXJPcHRpb25zIHtcbiAgICBmYXRhbD86IGJvb2xlYW47XG4gICAgaWdub3JlQk9NPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlT3B0aW9ucyB7XG4gICAgc3RyZWFtPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlciB7XG4gICAgcmVhZG9ubHkgZW5jb2Rpbmc6IHN0cmluZztcbiAgICByZWFkb25seSBmYXRhbDogYm9vbGVhbjtcbiAgICByZWFkb25seSBpZ25vcmVCT006IGJvb2xlYW47XG4gICAgZGVjb2RlKGlucHV0PzogQXJyYXlCdWZmZXIgfCBBcnJheUJ1ZmZlclZpZXcsIG9wdGlvbnM/OiBUZXh0RGVjb2RlT3B0aW9ucyk6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVGV4dERlY29kZXJDb25zdHJ1Y3RvciB7XG4gICAgbmV3IChsYWJlbD86IHN0cmluZywgb3B0aW9ucz86IFRleHREZWNvZGVyT3B0aW9ucyk6IFRleHREZWNvZGVyO1xuICB9XG5cbiAgaW50ZXJmYWNlIFRleHRFbmNvZGVyIHtcbiAgICByZWFkb25seSBlbmNvZGluZzogXCJ1dGYtOFwiO1xuICAgIGVuY29kZShpbnB1dD86IHN0cmluZyk6IFVpbnQ4QXJyYXk7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFRleHRFbmNvZGVyQ29uc3RydWN0b3Ige1xuICAgIG5ldyAoKTogVGV4dEVuY29kZXI7XG4gIH1cbn1cblxuZGVjbGFyZSBjb25zdCBUZXh0RGVjb2RlcjogRW5jb2RpbmcuVGV4dERlY29kZXJDb25zdHJ1Y3RvcjtcblxuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRW5jb2RpbmcuVGV4dEVuY29kZXJDb25zdHJ1Y3RvcjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21VdGY4KGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShpbnB1dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1V0ZjgoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICByZXR1cm4gbmV3IFRleHREZWNvZGVyKFwidXRmLThcIikuZGVjb2RlKGlucHV0KTtcbn1cbiJdfQ==","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsSUFBSSxVQUFVLEVBQUUsTUFBTSxJQUFJLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxJQUFJLG1CQUFtQixFQUFFLE1BQU0sSUFBSSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS25HLE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRyxVQUFDLEtBQWE7SUFDcEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0FBQWxGLENBQWtGLENBQUM7QUFFckYsTUFBTSxDQUFDLElBQU0sTUFBTSxHQUFHLFVBQUMsS0FBaUI7SUFDdEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0FBQTlFLENBQThFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tVXRmOCBhcyBqc0Zyb21VdGY4LCB0b1V0ZjggYXMganNUb1V0ZjggfSBmcm9tIFwiLi9wdXJlSnNcIjtcbmltcG9ydCB7IGZyb21VdGY4IGFzIHRleHRFbmNvZGVyRnJvbVV0ZjgsIHRvVXRmOCBhcyB0ZXh0RW5jb2RlclRvVXRmOCB9IGZyb20gXCIuL3doYXR3Z0VuY29kaW5nQXBpXCI7XG5cbmRlY2xhcmUgY29uc3QgVGV4dERlY29kZXI6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBmcm9tVXRmOCA9IChpbnB1dDogc3RyaW5nKTogVWludDhBcnJheSA9PlxuICB0eXBlb2YgVGV4dEVuY29kZXIgPT09IFwiZnVuY3Rpb25cIiA/IHRleHRFbmNvZGVyRnJvbVV0ZjgoaW5wdXQpIDoganNGcm9tVXRmOChpbnB1dCk7XG5cbmV4cG9ydCBjb25zdCB0b1V0ZjggPSAoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcgPT5cbiAgdHlwZW9mIFRleHREZWNvZGVyID09PSBcImZ1bmN0aW9uXCIgPyB0ZXh0RW5jb2RlclRvVXRmOChpbnB1dCkgOiBqc1RvVXRmOChpbnB1dCk7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./supportsWebCrypto\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3VwcG9ydHNXZWJDcnlwdG9cIjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportsZeroByteGCM = exports.supportsSubtleCrypto = exports.supportsSecureRandom = exports.supportsWebCrypto = void 0;\nvar tslib_1 = require(\"tslib\");\nvar subtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction supportsWebCrypto(window) {\n if (supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\") {\n var subtle = window.crypto.subtle;\n return supportsSubtleCrypto(subtle);\n }\n return false;\n}\nexports.supportsWebCrypto = supportsWebCrypto;\nfunction supportsSecureRandom(window) {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n var getRandomValues = window.crypto.getRandomValues;\n return typeof getRandomValues === \"function\";\n }\n return false;\n}\nexports.supportsSecureRandom = supportsSecureRandom;\nfunction supportsSubtleCrypto(subtle) {\n return (subtle &&\n subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === \"function\"; }));\n}\nexports.supportsSubtleCrypto = supportsSubtleCrypto;\nfunction supportsZeroByteGCM(subtle) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var key, zeroByteAuthTag, _a;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!supportsSubtleCrypto(subtle))\n return [2 /*return*/, false];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, subtle.generateKey({ name: \"AES-GCM\", length: 128 }, false, [\"encrypt\"])];\n case 2:\n key = _b.sent();\n return [4 /*yield*/, subtle.encrypt({\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n }, key, new Uint8Array(0))];\n case 3:\n zeroByteAuthTag = _b.sent();\n return [2 /*return*/, zeroByteAuthTag.byteLength === 16];\n case 4:\n _a = _b.sent();\n return [2 /*return*/, false];\n case 5: return [2 /*return*/];\n }\n });\n });\n}\nexports.supportsZeroByteGCM = supportsZeroByteGCM;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydHNXZWJDcnlwdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3VwcG9ydHNXZWJDcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVVBLElBQU0sbUJBQW1CLEdBQThCO0lBQ3JELFNBQVM7SUFDVCxRQUFRO0lBQ1IsU0FBUztJQUNULFdBQVc7SUFDWCxhQUFhO0lBQ2IsV0FBVztJQUNYLE1BQU07SUFDTixRQUFRO0NBQ1QsQ0FBQztBQUVGLFNBQWdCLGlCQUFpQixDQUFDLE1BQWM7SUFDOUMsSUFDRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQ3hDO1FBQ1EsSUFBQSxNQUFNLEdBQUssTUFBTSxDQUFDLE1BQU0sT0FBbEIsQ0FBbUI7UUFFakMsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNyQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVhELDhDQVdDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsTUFBYztJQUNqRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQzNELElBQUEsZUFBZSxHQUFLLE1BQU0sQ0FBQyxNQUFNLGdCQUFsQixDQUFtQjtRQUUxQyxPQUFPLE9BQU8sZUFBZSxLQUFLLFVBQVUsQ0FBQztLQUM5QztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVJELG9EQVFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsTUFBb0I7SUFDdkQsT0FBTyxDQUNMLE1BQU07UUFDTixtQkFBbUIsQ0FBQyxLQUFLLENBQ3ZCLFVBQUEsVUFBVSxJQUFJLE9BQUEsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssVUFBVSxFQUF4QyxDQUF3QyxDQUN2RCxDQUNGLENBQUM7QUFDSixDQUFDO0FBUEQsb0RBT0M7QUFFRCxTQUFzQixtQkFBbUIsQ0FBQyxNQUFvQjs7Ozs7O29CQUM1RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO3dCQUFFLHNCQUFPLEtBQUssRUFBQzs7OztvQkFFbEMscUJBQU0sTUFBTSxDQUFDLFdBQVcsQ0FDbEMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFDaEMsS0FBSyxFQUNMLENBQUMsU0FBUyxDQUFDLENBQ1osRUFBQTs7b0JBSkssR0FBRyxHQUFHLFNBSVg7b0JBQ3VCLHFCQUFNLE1BQU0sQ0FBQyxPQUFPLENBQzFDOzRCQUNFLElBQUksRUFBRSxTQUFTOzRCQUNmLEVBQUUsRUFBRSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQzdCLGNBQWMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3pDLFNBQVMsRUFBRSxHQUFHO3lCQUNmLEVBQ0QsR0FBRyxFQUNILElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUNsQixFQUFBOztvQkFUSyxlQUFlLEdBQUcsU0FTdkI7b0JBQ0Qsc0JBQU8sZUFBZSxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUM7OztvQkFFekMsc0JBQU8sS0FBSyxFQUFDOzs7OztDQUVoQjtBQXRCRCxrREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFN1YnRsZUNyeXB0b01ldGhvZCA9XG4gIHwgXCJkZWNyeXB0XCJcbiAgfCBcImRpZ2VzdFwiXG4gIHwgXCJlbmNyeXB0XCJcbiAgfCBcImV4cG9ydEtleVwiXG4gIHwgXCJnZW5lcmF0ZUtleVwiXG4gIHwgXCJpbXBvcnRLZXlcIlxuICB8IFwic2lnblwiXG4gIHwgXCJ2ZXJpZnlcIjtcblxuY29uc3Qgc3VidGxlQ3J5cHRvTWV0aG9kczogQXJyYXk8U3VidGxlQ3J5cHRvTWV0aG9kPiA9IFtcbiAgXCJkZWNyeXB0XCIsXG4gIFwiZGlnZXN0XCIsXG4gIFwiZW5jcnlwdFwiLFxuICBcImV4cG9ydEtleVwiLFxuICBcImdlbmVyYXRlS2V5XCIsXG4gIFwiaW1wb3J0S2V5XCIsXG4gIFwic2lnblwiLFxuICBcInZlcmlmeVwiXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNXZWJDcnlwdG8od2luZG93OiBXaW5kb3cpOiBib29sZWFuIHtcbiAgaWYgKFxuICAgIHN1cHBvcnRzU2VjdXJlUmFuZG9tKHdpbmRvdykgJiZcbiAgICB0eXBlb2Ygd2luZG93LmNyeXB0by5zdWJ0bGUgPT09IFwib2JqZWN0XCJcbiAgKSB7XG4gICAgY29uc3QgeyBzdWJ0bGUgfSA9IHdpbmRvdy5jcnlwdG87XG5cbiAgICByZXR1cm4gc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlKTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRzU2VjdXJlUmFuZG9tKHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiB3aW5kb3cuY3J5cHRvID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgeyBnZXRSYW5kb21WYWx1ZXMgfSA9IHdpbmRvdy5jcnlwdG87XG5cbiAgICByZXR1cm4gdHlwZW9mIGdldFJhbmRvbVZhbHVlcyA9PT0gXCJmdW5jdGlvblwiO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlOiBTdWJ0bGVDcnlwdG8pIHtcbiAgcmV0dXJuIChcbiAgICBzdWJ0bGUgJiZcbiAgICBzdWJ0bGVDcnlwdG9NZXRob2RzLmV2ZXJ5KFxuICAgICAgbWV0aG9kTmFtZSA9PiB0eXBlb2Ygc3VidGxlW21ldGhvZE5hbWVdID09PSBcImZ1bmN0aW9uXCJcbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdXBwb3J0c1plcm9CeXRlR0NNKHN1YnRsZTogU3VidGxlQ3J5cHRvKSB7XG4gIGlmICghc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlKSkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHN1YnRsZS5nZW5lcmF0ZUtleShcbiAgICAgIHsgbmFtZTogXCJBRVMtR0NNXCIsIGxlbmd0aDogMTI4IH0sXG4gICAgICBmYWxzZSxcbiAgICAgIFtcImVuY3J5cHRcIl1cbiAgICApO1xuICAgIGNvbnN0IHplcm9CeXRlQXV0aFRhZyA9IGF3YWl0IHN1YnRsZS5lbmNyeXB0KFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkFFUy1HQ01cIixcbiAgICAgICAgaXY6IG5ldyBVaW50OEFycmF5KEFycmF5KDEyKSksXG4gICAgICAgIGFkZGl0aW9uYWxEYXRhOiBuZXcgVWludDhBcnJheShBcnJheSgxNikpLFxuICAgICAgICB0YWdMZW5ndGg6IDEyOFxuICAgICAgfSxcbiAgICAgIGtleSxcbiAgICAgIG5ldyBVaW50OEFycmF5KDApXG4gICAgKTtcbiAgICByZXR1cm4gemVyb0J5dGVBdXRoVGFnLmJ5dGVMZW5ndGggPT09IDE2O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydFRvQnVmZmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnZlcnRUb0J1ZmZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQzs7O0FBR3RDLGdFQUF5RTtBQUV6RSxpQkFBaUI7QUFDakIsSUFBTSxRQUFRLEdBQ1osT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJO0lBQzFDLENBQUMsQ0FBQyxVQUFDLEtBQWEsSUFBSyxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUExQixDQUEwQjtJQUMvQyxDQUFDLENBQUMsNEJBQWUsQ0FBQztBQUV0QixTQUFnQixlQUFlLENBQUMsSUFBZ0I7SUFDOUMsOEJBQThCO0lBQzlCLElBQUksSUFBSSxZQUFZLFVBQVU7UUFBRSxPQUFPLElBQUksQ0FBQztJQUU1QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQy9DLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQWpCRCwwQ0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgU291cmNlRGF0YSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgZnJvbVV0ZjggYXMgZnJvbVV0ZjhCcm93c2VyIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXRmOC1icm93c2VyXCI7XG5cbi8vIFF1aWNrIHBvbHlmaWxsXG5jb25zdCBmcm9tVXRmOCA9XG4gIHR5cGVvZiBCdWZmZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgQnVmZmVyLmZyb21cbiAgICA/IChpbnB1dDogc3RyaW5nKSA9PiBCdWZmZXIuZnJvbShpbnB1dCwgXCJ1dGY4XCIpXG4gICAgOiBmcm9tVXRmOEJyb3dzZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9CdWZmZXIoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICAvLyBBbHJlYWR5IGEgVWludDgsIGRvIG5vdGhpbmdcbiAgaWYgKGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSByZXR1cm4gZGF0YTtcblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFxuICAgICAgZGF0YS5idWZmZXIsXG4gICAgICBkYXRhLmJ5dGVPZmZzZXQsXG4gICAgICBkYXRhLmJ5dGVMZW5ndGggLyBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhKTtcbn1cbiJdfQ==","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7OztBQUV0QyxxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkNBQTBDO0FBQWpDLHdHQUFBLFVBQVUsT0FBQTtBQUNuQixxREFBa0Q7QUFBMUMsa0hBQUEsZUFBZSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCB7IGNvbnZlcnRUb0J1ZmZlciB9IGZyb20gXCIuL2NvbnZlcnRUb0J1ZmZlclwiO1xuZXhwb3J0IHsgaXNFbXB0eURhdGEgfSBmcm9tIFwiLi9pc0VtcHR5RGF0YVwiO1xuZXhwb3J0IHsgbnVtVG9VaW50OCB9IGZyb20gXCIuL251bVRvVWludDhcIjtcbmV4cG9ydCB7dWludDMyQXJyYXlGcm9tfSBmcm9tICcuL3VpbnQzMkFycmF5RnJvbSc7XG4iXX0=","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNFbXB0eURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaXNFbXB0eURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7OztBQUl0QyxTQUFnQixXQUFXLENBQUMsSUFBZ0I7SUFDMUMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztLQUMxQjtJQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQU5ELGtDQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlEYXRhKGRhdGE6IFNvdXJjZURhdGEpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGRhdGEubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuYnl0ZUxlbmd0aCA9PT0gMDtcbn1cbiJdfQ==","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtVG9VaW50OC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9udW1Ub1VpbnQ4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDOzs7QUFFdEMsU0FBZ0IsVUFBVSxDQUFDLEdBQVc7SUFDcEMsT0FBTyxJQUFJLFVBQVUsQ0FBQztRQUNwQixDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFO1FBQ3hCLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUU7UUFDeEIsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUN2QixHQUFHLEdBQUcsVUFBVTtLQUNqQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBUEQsZ0NBT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuZXhwb3J0IGZ1bmN0aW9uIG51bVRvVWludDgobnVtOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFtcbiAgICAobnVtICYgMHhmZjAwMDAwMCkgPj4gMjQsXG4gICAgKG51bSAmIDB4MDBmZjAwMDApID4+IDE2LFxuICAgIChudW0gJiAweDAwMDBmZjAwKSA+PiA4LFxuICAgIG51bSAmIDB4MDAwMDAwZmYsXG4gIF0pO1xufVxuIl19","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWludDMyQXJyYXlGcm9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3VpbnQzMkFycmF5RnJvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQzs7O0FBRXRDLDBEQUEwRDtBQUMxRCxTQUFnQixlQUFlLENBQUMsYUFBNEI7SUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7UUFDZixJQUFNLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDMUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFBO1FBQ2YsT0FBTyxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQy9DO1FBQ0QsT0FBTyxZQUFZLENBQUE7S0FDcEI7SUFDRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDeEMsQ0FBQztBQVZELDBDQVVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8vIElFIDExIGRvZXMgbm90IHN1cHBvcnQgQXJyYXkuZnJvbSwgc28gd2UgZG8gaXQgbWFudWFsbHlcbmV4cG9ydCBmdW5jdGlvbiB1aW50MzJBcnJheUZyb20oYV9sb29rVXBUYWJsZTogQXJyYXk8bnVtYmVyPik6IFVpbnQzMkFycmF5IHtcbiAgaWYgKCFBcnJheS5mcm9tKSB7XG4gICAgY29uc3QgcmV0dXJuX2FycmF5ID0gbmV3IFVpbnQzMkFycmF5KGFfbG9va1VwVGFibGUubGVuZ3RoKVxuICAgIGxldCBhX2luZGV4ID0gMFxuICAgIHdoaWxlIChhX2luZGV4IDwgYV9sb29rVXBUYWJsZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybl9hcnJheVthX2luZGV4XSA9IGFfbG9va1VwVGFibGVbYV9pbmRleF1cbiAgICB9XG4gICAgcmV0dXJuIHJldHVybl9hcnJheVxuICB9XG4gIHJldHVybiBVaW50MzJBcnJheS5mcm9tKGFfbG9va1VwVGFibGUpXG59XG4iXX0=","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","var SHORT_TO_HEX = {};\nvar HEX_TO_SHORT = {};\nfor (var i = 0; i < 256; i++) {\n var encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = \"0\" + encodedByte;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\n/**\n * Converts a hexadecimal encoded string to a Uint8Array of bytes.\n *\n * @param encoded The hexadecimal encoded string\n */\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n var out = new Uint8Array(encoded.length / 2);\n for (var i = 0; i < encoded.length; i += 2) {\n var encodedByte = encoded.substr(i, 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(\"Cannot decode unrecognized sequence \" + encodedByte + \" as hexadecimal\");\n }\n }\n return out;\n}\n/**\n * Converts a Uint8Array of binary data to a hexadecimal encoded string.\n *\n * @param bytes The binary data to encode\n */\nexport function toHex(bytes) {\n var out = \"\";\n for (var i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTSxZQUFZLEdBQThCLEVBQUUsQ0FBQztBQUNuRCxJQUFNLFlBQVksR0FBOEIsRUFBRSxDQUFDO0FBRW5ELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDNUIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzVCLFdBQVcsR0FBRyxNQUFJLFdBQWEsQ0FBQztLQUNqQztJQUVELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7SUFDOUIsWUFBWSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUMvQjtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQWU7SUFDckMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQsSUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzFDLElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELElBQUksV0FBVyxJQUFJLFlBQVksRUFBRTtZQUMvQixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBdUMsV0FBVyxvQkFBaUIsQ0FBQyxDQUFDO1NBQ3RGO0tBQ0Y7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxLQUFpQjtJQUNyQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN6QyxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9CO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU0hPUlRfVE9fSEVYOiB7IFtrZXk6IG51bWJlcl06IHN0cmluZyB9ID0ge307XG5jb25zdCBIRVhfVE9fU0hPUlQ6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcblxuZm9yIChsZXQgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuICBsZXQgZW5jb2RlZEJ5dGUgPSBpLnRvU3RyaW5nKDE2KS50b0xvd2VyQ2FzZSgpO1xuICBpZiAoZW5jb2RlZEJ5dGUubGVuZ3RoID09PSAxKSB7XG4gICAgZW5jb2RlZEJ5dGUgPSBgMCR7ZW5jb2RlZEJ5dGV9YDtcbiAgfVxuXG4gIFNIT1JUX1RPX0hFWFtpXSA9IGVuY29kZWRCeXRlO1xuICBIRVhfVE9fU0hPUlRbZW5jb2RlZEJ5dGVdID0gaTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGhleGFkZWNpbWFsIGVuY29kZWQgc3RyaW5nIHRvIGEgVWludDhBcnJheSBvZiBieXRlcy5cbiAqXG4gKiBAcGFyYW0gZW5jb2RlZCBUaGUgaGV4YWRlY2ltYWwgZW5jb2RlZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21IZXgoZW5jb2RlZDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGlmIChlbmNvZGVkLmxlbmd0aCAlIDIgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJIZXggZW5jb2RlZCBzdHJpbmdzIG11c3QgaGF2ZSBhbiBldmVuIG51bWJlciBsZW5ndGhcIik7XG4gIH1cblxuICBjb25zdCBvdXQgPSBuZXcgVWludDhBcnJheShlbmNvZGVkLmxlbmd0aCAvIDIpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGVuY29kZWQubGVuZ3RoOyBpICs9IDIpIHtcbiAgICBjb25zdCBlbmNvZGVkQnl0ZSA9IGVuY29kZWQuc3Vic3RyKGksIDIpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGVuY29kZWRCeXRlIGluIEhFWF9UT19TSE9SVCkge1xuICAgICAgb3V0W2kgLyAyXSA9IEhFWF9UT19TSE9SVFtlbmNvZGVkQnl0ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGRlY29kZSB1bnJlY29nbml6ZWQgc2VxdWVuY2UgJHtlbmNvZGVkQnl0ZX0gYXMgaGV4YWRlY2ltYWxgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgVWludDhBcnJheSBvZiBiaW5hcnkgZGF0YSB0byBhIGhleGFkZWNpbWFsIGVuY29kZWQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBieXRlcyBUaGUgYmluYXJ5IGRhdGEgdG8gZW5jb2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0hleChieXRlczogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGxldCBvdXQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVzLmJ5dGVMZW5ndGg7IGkrKykge1xuICAgIG91dCArPSBTSE9SVF9UT19IRVhbYnl0ZXNbaV1dO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn1cbiJdfQ==","const fallbackWindow = {};\nexport function locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n else if (typeof self !== \"undefined\") {\n return self;\n }\n return fallbackWindow;\n}\n","/**\n * Converts a JS string from its native UCS-2/UTF-16 representation into a\n * Uint8Array of the bytes used to represent the equivalent characters in UTF-8.\n *\n * Cribbed from the `goog.crypt.stringToUtf8ByteArray` function in the Google\n * Closure library, though updated to use typed arrays.\n */\nexport var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\n/**\n * Converts a typed array of bytes containing UTF-8 data into a native JS\n * string.\n *\n * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the\n * Google Closure library, though updated to use typed arrays and to better\n * handle astral plane code points.\n */\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZUpzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1cmVKcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFhO0lBQ3BDLElBQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxHQUFHLElBQUksRUFBRTtZQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25CO2FBQU0sSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFO1lBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBVSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FBQyxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxFQUFFO1lBQy9HLElBQU0sYUFBYSxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQVksQ0FBQyxDQUFDO1lBQ3hHLEtBQUssQ0FBQyxJQUFJLENBQ1IsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBVSxFQUNsQyxDQUFDLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFDL0MsQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLEVBQzlDLENBQUMsYUFBYSxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FDeEMsQ0FBQztTQUNIO2FBQU07WUFDTCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLENBQUMsQ0FBQztTQUNqSDtLQUNGO0lBRUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsSUFBTSxNQUFNLEdBQUcsVUFBQyxLQUFpQjtJQUN0QyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFO1lBQ2YsT0FBTyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVUsRUFBRTtZQUNsRCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEVBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakY7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVcsRUFBRTtZQUNuRCxJQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQU0sT0FBTyxHQUFHLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQUMsU0FBUyxJQUFLLE9BQUEsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RixPQUFPLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUM1QixDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxDQUNuRixDQUFDO1NBQ0g7S0FDRjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udmVydHMgYSBKUyBzdHJpbmcgZnJvbSBpdHMgbmF0aXZlIFVDUy0yL1VURi0xNiByZXByZXNlbnRhdGlvbiBpbnRvIGFcbiAqIFVpbnQ4QXJyYXkgb2YgdGhlIGJ5dGVzIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBlcXVpdmFsZW50IGNoYXJhY3RlcnMgaW4gVVRGLTguXG4gKlxuICogQ3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC5zdHJpbmdUb1V0ZjhCeXRlQXJyYXlgIGZ1bmN0aW9uIGluIHRoZSBHb29nbGVcbiAqIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cy5cbiAqL1xuZXhwb3J0IGNvbnN0IGZyb21VdGY4ID0gKGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5ID0+IHtcbiAgY29uc3QgYnl0ZXM6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGlucHV0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dC5jaGFyQ29kZUF0KGkpO1xuICAgIGlmICh2YWx1ZSA8IDB4ODApIHtcbiAgICAgIGJ5dGVzLnB1c2godmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPCAweDgwMCkge1xuICAgICAgYnl0ZXMucHVzaCgodmFsdWUgPj4gNikgfCAwYjExMDAwMDAwLCAodmFsdWUgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwKTtcbiAgICB9IGVsc2UgaWYgKGkgKyAxIDwgaW5wdXQubGVuZ3RoICYmICh2YWx1ZSAmIDB4ZmMwMCkgPT09IDB4ZDgwMCAmJiAoaW5wdXQuY2hhckNvZGVBdChpICsgMSkgJiAweGZjMDApID09PSAweGRjMDApIHtcbiAgICAgIGNvbnN0IHN1cnJvZ2F0ZVBhaXIgPSAweDEwMDAwICsgKCh2YWx1ZSAmIDBiMTExMTExMTExMSkgPDwgMTApICsgKGlucHV0LmNoYXJDb2RlQXQoKytpKSAmIDBiMTExMTExMTExMSk7XG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICAoc3Vycm9nYXRlUGFpciA+PiAxOCkgfCAwYjExMTEwMDAwLFxuICAgICAgICAoKHN1cnJvZ2F0ZVBhaXIgPj4gMTIpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKChzdXJyb2dhdGVQYWlyID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKHN1cnJvZ2F0ZVBhaXIgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBieXRlcy5wdXNoKCh2YWx1ZSA+PiAxMikgfCAwYjExMTAwMDAwLCAoKHZhbHVlID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCwgKHZhbHVlICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShieXRlcyk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgdHlwZWQgYXJyYXkgb2YgYnl0ZXMgY29udGFpbmluZyBVVEYtOCBkYXRhIGludG8gYSBuYXRpdmUgSlNcbiAqIHN0cmluZy5cbiAqXG4gKiBQYXJ0bHkgY3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC51dGY4Qnl0ZUFycmF5VG9TdHJpbmdgIGZ1bmN0aW9uIGluIHRoZVxuICogR29vZ2xlIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cyBhbmQgdG8gYmV0dGVyXG4gKiBoYW5kbGUgYXN0cmFsIHBsYW5lIGNvZGUgcG9pbnRzLlxuICovXG5leHBvcnQgY29uc3QgdG9VdGY4ID0gKGlucHV0OiBVaW50OEFycmF5KTogc3RyaW5nID0+IHtcbiAgbGV0IGRlY29kZWQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW5wdXQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gaW5wdXRbaV07XG4gICAgaWYgKGJ5dGUgPCAweDgwKSB7XG4gICAgICBkZWNvZGVkICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZSk7XG4gICAgfSBlbHNlIGlmICgwYjExMDAwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTExMDAwMDApIHtcbiAgICAgIGNvbnN0IG5leHRCeXRlID0gaW5wdXRbKytpXTtcbiAgICAgIGRlY29kZWQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGJ5dGUgJiAwYjExMTExKSA8PCA2KSB8IChuZXh0Qnl0ZSAmIDBiMTExMTExKSk7XG4gICAgfSBlbHNlIGlmICgwYjExMTEwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTAxMTAxMTAxKSB7XG4gICAgICBjb25zdCBzdXJyb2dhdGVQYWlyID0gW2J5dGUsIGlucHV0WysraV0sIGlucHV0WysraV0sIGlucHV0WysraV1dO1xuICAgICAgY29uc3QgZW5jb2RlZCA9IFwiJVwiICsgc3Vycm9nYXRlUGFpci5tYXAoKGJ5dGVWYWx1ZSkgPT4gYnl0ZVZhbHVlLnRvU3RyaW5nKDE2KSkuam9pbihcIiVcIik7XG4gICAgICBkZWNvZGVkICs9IGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb2RlZCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFxuICAgICAgICAoKGJ5dGUgJiAwYjExMTEpIDw8IDEyKSB8ICgoaW5wdXRbKytpXSAmIDBiMTExMTExKSA8PCA2KSB8IChpbnB1dFsrK2ldICYgMGIxMTExMTEpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWNvZGVkO1xufTtcbiJdfQ==","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hhdHdnRW5jb2RpbmdBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2hhdHdnRW5jb2RpbmdBcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUNBLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBYTtJQUNwQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQWlCO0lBQ3RDLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZGVjbGFyYXRpb24gb2YgdGhlIGdsb2JhbCBUZXh0RW5jb2RlciBhbmQgVGV4dERlY29kZXIgY29uc3RydWN0b3JzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG5uYW1lc3BhY2UgRW5jb2Rpbmcge1xuICBpbnRlcmZhY2UgVGV4dERlY29kZXJPcHRpb25zIHtcbiAgICBmYXRhbD86IGJvb2xlYW47XG4gICAgaWdub3JlQk9NPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlT3B0aW9ucyB7XG4gICAgc3RyZWFtPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlciB7XG4gICAgcmVhZG9ubHkgZW5jb2Rpbmc6IHN0cmluZztcbiAgICByZWFkb25seSBmYXRhbDogYm9vbGVhbjtcbiAgICByZWFkb25seSBpZ25vcmVCT006IGJvb2xlYW47XG4gICAgZGVjb2RlKGlucHV0PzogQXJyYXlCdWZmZXIgfCBBcnJheUJ1ZmZlclZpZXcsIG9wdGlvbnM/OiBUZXh0RGVjb2RlT3B0aW9ucyk6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVGV4dERlY29kZXJDb25zdHJ1Y3RvciB7XG4gICAgbmV3IChsYWJlbD86IHN0cmluZywgb3B0aW9ucz86IFRleHREZWNvZGVyT3B0aW9ucyk6IFRleHREZWNvZGVyO1xuICB9XG5cbiAgaW50ZXJmYWNlIFRleHRFbmNvZGVyIHtcbiAgICByZWFkb25seSBlbmNvZGluZzogXCJ1dGYtOFwiO1xuICAgIGVuY29kZShpbnB1dD86IHN0cmluZyk6IFVpbnQ4QXJyYXk7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFRleHRFbmNvZGVyQ29uc3RydWN0b3Ige1xuICAgIG5ldyAoKTogVGV4dEVuY29kZXI7XG4gIH1cbn1cblxuZGVjbGFyZSBjb25zdCBUZXh0RGVjb2RlcjogRW5jb2RpbmcuVGV4dERlY29kZXJDb25zdHJ1Y3RvcjtcblxuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRW5jb2RpbmcuVGV4dEVuY29kZXJDb25zdHJ1Y3RvcjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21VdGY4KGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShpbnB1dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1V0ZjgoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICByZXR1cm4gbmV3IFRleHREZWNvZGVyKFwidXRmLThcIikuZGVjb2RlKGlucHV0KTtcbn1cbiJdfQ==","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsSUFBSSxVQUFVLEVBQUUsTUFBTSxJQUFJLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxJQUFJLG1CQUFtQixFQUFFLE1BQU0sSUFBSSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS25HLE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRyxVQUFDLEtBQWE7SUFDcEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0FBQWxGLENBQWtGLENBQUM7QUFFckYsTUFBTSxDQUFDLElBQU0sTUFBTSxHQUFHLFVBQUMsS0FBaUI7SUFDdEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0FBQTlFLENBQThFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tVXRmOCBhcyBqc0Zyb21VdGY4LCB0b1V0ZjggYXMganNUb1V0ZjggfSBmcm9tIFwiLi9wdXJlSnNcIjtcbmltcG9ydCB7IGZyb21VdGY4IGFzIHRleHRFbmNvZGVyRnJvbVV0ZjgsIHRvVXRmOCBhcyB0ZXh0RW5jb2RlclRvVXRmOCB9IGZyb20gXCIuL3doYXR3Z0VuY29kaW5nQXBpXCI7XG5cbmRlY2xhcmUgY29uc3QgVGV4dERlY29kZXI6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBmcm9tVXRmOCA9IChpbnB1dDogc3RyaW5nKTogVWludDhBcnJheSA9PlxuICB0eXBlb2YgVGV4dEVuY29kZXIgPT09IFwiZnVuY3Rpb25cIiA/IHRleHRFbmNvZGVyRnJvbVV0ZjgoaW5wdXQpIDoganNGcm9tVXRmOChpbnB1dCk7XG5cbmV4cG9ydCBjb25zdCB0b1V0ZjggPSAoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcgPT5cbiAgdHlwZW9mIFRleHREZWNvZGVyID09PSBcImZ1bmN0aW9uXCIgPyB0ZXh0RW5jb2RlclRvVXRmOChpbnB1dCkgOiBqc1RvVXRmOChpbnB1dCk7XG4iXX0=","import { extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit;\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n } else {\n deps[ptr++] = dep;\n }\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = void 0;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n } else {\n cleanupEffect(this);\n }\n return this.fn();\n } finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = void 0;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n if (activeEffect === this) {\n this.deferStop = true;\n } else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect2) {\n const { deps } = effect2;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect2);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep());\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { effect: activeEffect, target, type, key } : void 0;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack2 = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit;\n shouldTrack2 = !wasTracked(dep);\n }\n } else {\n shouldTrack2 = !dep.has(activeEffect);\n }\n if (shouldTrack2) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (!!(process.env.NODE_ENV !== \"production\") && activeEffect.onTrack) {\n activeEffect.onTrack(\n extend(\n {\n effect: activeEffect\n },\n debuggerEventExtraInfo\n )\n );\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { target, type, key, newValue, oldValue, oldTarget } : void 0;\n if (deps.length === 1) {\n if (deps[0]) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(deps[0], eventInfo);\n } else {\n triggerEffects(deps[0]);\n }\n }\n } else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(createDep(effects), eventInfo);\n } else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect2 of effects) {\n if (effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n for (const effect2 of effects) {\n if (!effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect2, debuggerEventExtraInfo) {\n if (effect2 !== activeEffect || effect2.allowRecurse) {\n if (!!(process.env.NODE_ENV !== \"production\") && effect2.onTrigger) {\n effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n if (effect2.scheduler) {\n effect2.scheduler();\n } else {\n effect2.run();\n }\n }\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _shallow = false) {\n this._isReadonly = _isReadonly;\n this._shallow = _shallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, shallow = this._shallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(false, shallow);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._shallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(true, shallow);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref2) {\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n trackEffects(ref2.dep || (ref2.dep = createDep()), {\n target: ref2,\n type: \"get\",\n key: \"value\"\n });\n } else {\n trackEffects(ref2.dep || (ref2.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref2, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(dep, {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n });\n } else {\n triggerEffects(dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst tick = /* @__PURE__ */ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = void 0;\n this._dirty = true;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n } else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(\n true\n /* computedTrigger */\n );\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return this._value = this.effect.run();\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n return toRaw(this)._get();\n }\n}\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, getCurrentScope, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, void 0];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n /* do not include inferred name to avoid breaking existing code */\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else {\n suspense.pendingId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n next(activeBranch),\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n let { anchor: anchor2 } = suspense;\n if (activeBranch) {\n anchor2 = next(activeBranch);\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor2, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n isSVG2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n isSVG,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n document.createElement(\"div\"),\n null,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n /* hydrating */\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = vnode.el = branch.el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n var _a;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = getCurrentScope() === ((_a = currentInstance) == null ? void 0 : _a.scope) ? currentInstance : null;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n } else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow$1(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return traverse(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n const unwatch = () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n } else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) || internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n /* do not throw in dev if user provided error component */\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n isSVG,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, \"\"));\n warn(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn(`Cannot mutate