{"version":3,"file":"customer-experience/cx-main.js","mappings":"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hD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,QAAY,UAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,SAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,SAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,UAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,UAAY,UAChD,WAAY,WAAY,WAAY,WAAY,UAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,UAAY,UAAY,UAChD,WAAY,UAAY,WAAY,UAAY,WAChD,WAAY,SAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,UAAY,UAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,SAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,UAAY,UAAY,WAAY,WAAY,UAChD,WAAY,SAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,UAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,UAAY,WAAY,UAAY,UAAY,UAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,UAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,SAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,UAChD,UAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,SAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,UAAY,UAChD,SAAY,WAAY,WAAY,WAAY,UAChD,UAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,UAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,UAAY,UAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,QAChD,UAAY,UAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,UAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,UAAY,SAAY,WAChD,SAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,SAAY,SAAY,WAAY,WAChD,WAAY,WAAY,UAAY,UAAY,WAChD,UAAY,WAAY,WAAY,SAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,UAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,SAAY,UAAY,WAChD,UAAY,WAAY,WAAY,UAAY,SAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,SAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,UAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,UAAY,WAAY,WAAY,UAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,UAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,SAAY,SAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAQpCC,EAAS,CACT,WAAY,WAAY,WAAY,WAAY,WAChD,YAWJ,SAASC,EAAUC,EAAIpB,EAAKqB,EAAGC,GAC3B,IAAIzJ,EACAr3D,EAAI4gE,EAAGpB,GACP/3C,EAAIm5C,EAAGpB,EAAM,GAgHjB,OA1FAnI,EAAKyJ,GApBL9gE,GAAK6gE,EAAE,MAoBM,IACbxJ,GAAKyJ,EAAE,IAAU9gE,GAAK,GAAM,KAC5Bq3D,GAAKyJ,EAAE,IAAU9gE,GAAK,EAAK,KAG3Bq3D,EAAKyJ,GADLr5C,IADA4vC,GAAKyJ,EAAE,IAAa,IAAJ9gE,IACP6gE,EAAE,MACE,IACbxJ,GAAKyJ,EAAE,IAAUr5C,GAAK,GAAM,KAC5B4vC,GAAKyJ,EAAE,IAAUr5C,GAAK,EAAK,KAI3B4vC,EAAKyJ,GAFL9gE,IADAq3D,GAAKyJ,EAAE,IAAa,IAAJr5C,IACPo5C,EAAE,MAEE,IACbxJ,GAAKyJ,EAAE,IAAU9gE,GAAK,GAAM,KAC5Bq3D,GAAKyJ,EAAE,IAAU9gE,GAAK,EAAK,KAG3Bq3D,EAAKyJ,GADLr5C,IADA4vC,GAAKyJ,EAAE,IAAa,IAAJ9gE,IACP6gE,EAAE,MACE,IACbxJ,GAAKyJ,EAAE,IAAUr5C,GAAK,GAAM,KAC5B4vC,GAAKyJ,EAAE,IAAUr5C,GAAK,EAAK,KAI3B4vC,EAAKyJ,GAFL9gE,IADAq3D,GAAKyJ,EAAE,IAAa,IAAJr5C,IACPo5C,EAAE,MAEE,IACbxJ,GAAKyJ,EAAE,IAAU9gE,GAAK,GAAM,KAC5Bq3D,GAAKyJ,EAAE,IAAU9gE,GAAK,EAAK,KAG3Bq3D,EAAKyJ,GADLr5C,IADA4vC,GAAKyJ,EAAE,IAAa,IAAJ9gE,IACP6gE,EAAE,MACE,IACbxJ,GAAKyJ,EAAE,IAAUr5C,GAAK,GAAM,KAC5B4vC,GAAKyJ,EAAE,IAAUr5C,GAAK,EAAK,KAI3B4vC,EAAKyJ,GAFL9gE,IADAq3D,GAAKyJ,EAAE,IAAa,IAAJr5C,IACPo5C,EAAE,MAEE,IACbxJ,GAAKyJ,EAAE,IAAU9gE,GAAK,GAAM,KAC5Bq3D,GAAKyJ,EAAE,IAAU9gE,GAAK,EAAK,KAG3Bq3D,EAAKyJ,GADLr5C,IADA4vC,GAAKyJ,EAAE,IAAa,IAAJ9gE,IACP6gE,EAAE,MACE,IACbxJ,GAAKyJ,EAAE,IAAUr5C,GAAK,GAAM,KAC5B4vC,GAAKyJ,EAAE,IAAUr5C,GAAK,EAAK,KAI3B4vC,EAAKyJ,GAFL9gE,IADAq3D,GAAKyJ,EAAE,IAAa,IAAJr5C,IACPo5C,EAAE,MAEE,IACbxJ,GAAKyJ,EAAE,IAAU9gE,GAAK,GAAM,KAC5Bq3D,GAAKyJ,EAAE,IAAU9gE,GAAK,EAAK,KAG3Bq3D,EAAKyJ,GADLr5C,IADA4vC,GAAKyJ,EAAE,IAAa,IAAJ9gE,IACP6gE,EAAE,MACE,IACbxJ,GAAKyJ,EAAE,IAAUr5C,GAAK,GAAM,KAC5B4vC,GAAKyJ,EAAE,IAAUr5C,GAAK,EAAK,KAI3B4vC,EAAKyJ,GAFL9gE,IADAq3D,GAAKyJ,EAAE,IAAa,IAAJr5C,IACPo5C,EAAE,OAEE,IACbxJ,GAAKyJ,EAAE,IAAU9gE,GAAK,GAAM,KAC5Bq3D,GAAKyJ,EAAE,IAAU9gE,GAAK,EAAK,KAG3Bq3D,EAAKyJ,GADLr5C,IADA4vC,GAAKyJ,EAAE,IAAa,IAAJ9gE,IACP6gE,EAAE,OACE,IACbxJ,GAAKyJ,EAAE,IAAUr5C,GAAK,GAAM,KAC5B4vC,GAAKyJ,EAAE,IAAUr5C,GAAK,EAAK,KAI3B4vC,EAAKyJ,GAFL9gE,IADAq3D,GAAKyJ,EAAE,IAAa,IAAJr5C,IACPo5C,EAAE,OAEE,IACbxJ,GAAKyJ,EAAE,IAAU9gE,GAAK,GAAM,KAC5Bq3D,GAAKyJ,EAAE,IAAU9gE,GAAK,EAAK,KAG3Bq3D,EAAKyJ,GADLr5C,IADA4vC,GAAKyJ,EAAE,IAAa,IAAJ9gE,IACP6gE,EAAE,OACE,IACbxJ,GAAKyJ,EAAE,IAAUr5C,GAAK,GAAM,KAC5B4vC,GAAKyJ,EAAE,IAAUr5C,GAAK,EAAK,KAI3B4vC,EAAKyJ,GAFL9gE,IADAq3D,GAAKyJ,EAAE,IAAa,IAAJr5C,IACPo5C,EAAE,OAEE,IACbxJ,GAAKyJ,EAAE,IAAU9gE,GAAK,GAAM,KAC5Bq3D,GAAKyJ,EAAE,IAAU9gE,GAAK,EAAK,KAG3Bq3D,EAAKyJ,GADLr5C,IADA4vC,GAAKyJ,EAAE,IAAa,IAAJ9gE,IACP6gE,EAAE,OACE,IACbxJ,GAAKyJ,EAAE,IAAUr5C,GAAK,GAAM,KAC5B4vC,GAAKyJ,EAAE,IAAUr5C,GAAK,EAAK,KAE3BznB,IADAq3D,GAAKyJ,EAAE,IAAa,IAAJr5C,IACPo5C,EAAE,IAEXD,EAAGpB,GAAO/3C,EAAIo5C,EAAEE,IAChBH,EAAGpB,EAAM,GAAKx/D,EACP4gE,EASX,SAASI,EAAcvnE,EAAMwnE,GACzB,IAAK,IAAIlhE,EAAI,EAAGmhE,EAAO,EAAGnhE,EAAI,IAAKA,EAC/BmhE,EAAQA,GAAQ,EAAmB,IAAbznE,EAAKwnE,GAC3BA,GAAQA,EAAO,GAAKxnE,EAAKwG,OAC7B,MAAO,CAAE9C,IAAK+jE,EAAMD,KAAMA,GAS9B,SAASE,EAAKhkE,EAAK0jE,EAAGC,GAMlB,IALA,IAIIM,EAJAC,EAAS,EACTT,EAAK,CAAC,EAAG,GACTU,EAAOT,EAAE5gE,OACT4/D,EAAOiB,EAAE7gE,OAEJF,EAAI,EAAGA,EAAIuhE,EAAMvhE,IAEtBshE,GADAD,EAAKJ,EAAc7jE,EAAKkkE,IACZJ,KACZJ,EAAE9gE,GAAK8gE,EAAE9gE,GAAKqhE,EAAGjkE,IACrB,IAAK4C,EAAI,EAAGA,EAAIuhE,EAAMvhE,GAAK,EACvB6gE,EAAKD,EAAUC,EAAI,EAAGC,EAAGC,GACzBD,EAAE9gE,GAAK6gE,EAAG,GACVC,EAAE9gE,EAAI,GAAK6gE,EAAG,GAClB,IAAK7gE,EAAI,EAAGA,EAAI8/D,EAAM9/D,GAAK,EACvB6gE,EAAKD,EAAUC,EAAI,EAAGC,EAAGC,GACzBA,EAAE/gE,GAAK6gE,EAAG,GACVE,EAAE/gE,EAAI,GAAK6gE,EAAG,GAuDtB,SAASW,EAAO1yD,EAAGuvD,EAAMH,EAAQlyD,EAAU6yD,GACvC,IAEI9mE,EAFA0pE,EAAQd,EAAOj7D,QACfg8D,EAAOD,EAAMvhE,OAIjB,GAAIg+D,EAAS,GAAKA,EAAS,GAAI,CAE3B,GADAnmE,EAAMC,MAAM,oCAAoCkmE,GAC5ClyD,EAEA,YADA0yD,EAAS1yD,EAAS5N,KAAKwB,KAAM7H,IAG7B,MAAMA,EAEd,GAAIsmE,EAAKn+D,SAAWq+D,EAAiB,CAEjC,GADAxmE,EAAKC,MAAM,wBAAwBqmE,EAAKn+D,OAAO,OAAOq+D,GAClDvyD,EAEA,YADA0yD,EAAS1yD,EAAS5N,KAAKwB,KAAM7H,IAG7B,MAAMA,EAEdmmE,EAAU,GAAKA,IAAY,EAE3B,IAAI4C,EAAGC,EAAUxM,EAAPv0D,EAAI,EAkBd,SAAS2hE,IAGL,GAFI9C,GACAA,EAAiB7+D,EAAIk+D,KACrBl+D,EAAIk+D,GASD,CACH,IAAKl+D,EAAI,EAAGA,EAAI,GAAIA,IAChB,IAAKu0D,EAAI,EAAGA,EAAKmN,GAAQ,EAAInN,IACzBqM,EAAUa,EAAOlN,GAAK,EAAGuM,EAAGC,GACpC,IAAIhnD,EAAM,GACV,IAAK/Z,EAAI,EAAGA,EAAI0hE,EAAM1hE,IAClB+Z,EAAItZ,MAAOghE,EAAMzhE,IAAM,GAAM,OAAU,GACvC+Z,EAAItZ,MAAOghE,EAAMzhE,IAAM,GAAM,OAAU,GACvC+Z,EAAItZ,MAAOghE,EAAMzhE,IAAM,EAAK,OAAU,GACtC+Z,EAAItZ,MAAiB,IAAXghE,EAAMzhE,MAAe,GACnC,OAAIgM,OACAA,EAAS,KAAM+N,GAGRA,EArBX,IADA,IAAIohD,EAAQvxD,KAAKO,MACVnK,EAAIk+D,IACPl+D,GAAQ,EACRohE,EAAKtyD,EAAGgyD,EAAGC,GACXK,EAAK/C,EAAMyC,EAAGC,KACVn3D,KAAKO,MAAQgxD,EAzfR,QA4gBbnvD,GACA0yD,EAASiD,GAIjB,GAhDIC,YACAd,EAAI,IAAIc,WAAWnB,GACnBM,EAAI,IAAIa,WAAWlB,KAEnBI,EAAIL,EAAO/6D,QACXq7D,EAAIL,EAAOh7D,SA5EnB,SAAiBhM,EAAM0D,EAAK0jE,EAAGC,GAM3B,IALA,IAIIM,EAJAH,EAAO,EACPL,EAAK,CAAC,EAAG,GACTU,EAAOT,EAAE5gE,OACT4/D,EAAOiB,EAAE7gE,OAEJF,EAAI,EAAGA,EAAIuhE,EAAMvhE,IAEtBkhE,GADAG,EAAKJ,EAAc7jE,EAAK8jE,IACdA,KACVJ,EAAE9gE,GAAK8gE,EAAE9gE,GAAKqhE,EAAGjkE,IAErB,IADA8jE,EAAO,EACFlhE,EAAI,EAAGA,EAAIuhE,EAAMvhE,GAAK,EAEvBkhE,GADAG,EAAKJ,EAAcvnE,EAAMwnE,IACfA,KACVL,EAAG,IAAMQ,EAAGjkE,IAEZ8jE,GADAG,EAAKJ,EAAcvnE,EAAMwnE,IACfA,KACVL,EAAG,IAAMQ,EAAGjkE,IACZyjE,EAAKD,EAAUC,EAAI,EAAGC,EAAGC,GACzBD,EAAE9gE,GAAK6gE,EAAG,GACVC,EAAE9gE,EAAI,GAAK6gE,EAAG,GAClB,IAAK7gE,EAAI,EAAGA,EAAI8/D,EAAM9/D,GAAK,EAEvBkhE,GADAG,EAAKJ,EAAcvnE,EAAMwnE,IACfA,KACVL,EAAG,IAAMQ,EAAGjkE,IAEZ8jE,GADAG,EAAKJ,EAAcvnE,EAAMwnE,IACfA,KACVL,EAAG,IAAMQ,EAAGjkE,IACZyjE,EAAKD,EAAUC,EAAI,EAAGC,EAAGC,GACzBA,EAAE/gE,GAAK6gE,EAAG,GACVE,EAAE/gE,EAAI,GAAK6gE,EAAG,GAiDlBgB,CAAQxD,EAAMvvD,EAAGgyD,EAAGC,QAwCI,IAAb/0D,EACP21D,SAKA,IADA,IAAIjiB,YAE6B,KAAlBA,EAAMiiB,KACb,OAAOjiB,GAAO,GAc9B,SAASkf,EAAM3J,EAAGoJ,EAAMryD,EAAU6yD,GAC9B,IAAI9mE,EAYA+pE,EAAOR,EAXX,GAAiB,iBAANrM,GAAkC,iBAAToJ,EAAmB,CAEnD,GADAtmE,EAAMC,MAAM,uCACRgU,EAEA,YADA0yD,EAAS1yD,EAAS5N,KAAKwB,KAAM7H,IAI7B,MAAMA,EAKd,GAAuB,MAAnBsmE,EAAKhzD,OAAO,IAAiC,MAAnBgzD,EAAKhzD,OAAO,GAAY,CAElD,GADAtT,EAAMC,MAAM,yBAAyBqmE,EAAK92C,UAAU,EAAE,IAClDvb,EAEA,YADA0yD,EAAS1yD,EAAS5N,KAAKwB,KAAM7H,IAI7B,MAAMA,EAEd,GAAuB,MAAnBsmE,EAAKhzD,OAAO,GACZy2D,EAAQnyD,OAAOynD,aAAa,GAC5BkK,EAAS,MACR,CAED,GAAe,OADfQ,EAAQzD,EAAKhzD,OAAO,KACY,MAAVy2D,GAA2B,MAAVA,GAAqC,MAAnBzD,EAAKhzD,OAAO,GAAY,CAE7E,GADAtT,EAAMC,MAAM,0BAA0BqmE,EAAK92C,UAAU,EAAE,IACnDvb,EAEA,YADA0yD,EAAS1yD,EAAS5N,KAAKwB,KAAM7H,IAG7B,MAAMA,EAEdupE,EAAS,EAIb,GAAIjD,EAAKhzD,OAAOi2D,EAAS,GAAK,IAAK,CAE/B,GADAvpE,EAAMC,MAAM,uBACRgU,EAEA,YADA0yD,EAAS1yD,EAAS5N,KAAKwB,KAAM7H,IAG7B,MAAMA,EAEd,IAx7BmBgW,EACfg0D,EACA/hE,EAw7BAk+D,EAFwD,GAAnDp1B,SAASu1B,EAAK92C,UAAU+5C,EAAQA,EAAS,GAAI,IAC7Cx4B,SAASu1B,EAAK92C,UAAU+5C,EAAS,EAAGA,EAAS,GAAI,IAEtDU,EAAY3D,EAAK92C,UAAU+5C,EAAS,EAAGA,EAAS,IAGhDW,GA97Bel0D,EA47BnBknD,GAAK6M,GAAS,IAAM,KAAS,GA37BzBC,EAAM,GACN/hE,EAAI,EACRggE,EAAKkC,mBAAkB,WACnB,OAAIliE,GAAK+N,EAAI7N,OAAe,KACrB6N,EAAIkB,WAAWjP,QACvB,SAAS8O,GACRizD,EAAIthE,KAAKqO,MAENizD,GAs7BHI,EAAQxC,EAAcqC,EAAWzD,GAQrC,SAAS6D,EAAOC,GACZ,IAAI3iB,EAAM,GAWV,OAVAA,EAAIj/C,KAAK,MACLqhE,GAAS,KACTpiB,EAAIj/C,KAAKqhE,GACbpiB,EAAIj/C,KAAK,KACLy9D,EAAS,IACTxe,EAAIj/C,KAAK,KACbi/C,EAAIj/C,KAAKy9D,EAAOv3D,YAChB+4C,EAAIj/C,KAAK,KACTi/C,EAAIj/C,KAAK69D,EAAc6D,EAAOA,EAAMjiE,SACpCw/C,EAAIj/C,KAAK69D,EAAc+D,EAAuB,EAAhB1B,EAAOzgE,OAAa,IAC3Cw/C,EAAIx2C,KAAK,IAIpB,QAAuB,IAAZ8C,EACP,OAAOo2D,EAAOZ,EAAOS,EAAWE,EAAOjE,IAIvCsD,EAAOS,EAAWE,EAAOjE,GAAQ,SAASnmE,EAAKsqE,GACvCtqE,EACAiU,EAASjU,EAAK,MAEdiU,EAAS,KAAMo2D,EAAOC,MAC3BxD,GAwBX,OAZArB,EAAO8E,aAAehE,EAUtBd,EAAO+E,aAAe5C,EAEfnC,IA7zCe,UAAX,IAAW,oDC1BtBvrC,EAAS,EAAQ,OACjBuwC,EAAU,EAAQ,OAClBC,EACiB,mBAAXC,QAAkD,mBAAlBA,OAAY,IAChDA,OAAY,IAAE,8BACd,KAENprE,EAAQ,GAASgV,EAEjBhV,EAAQ,GAAoB,GAE5B,IAAIqrE,EAAe,WAwDnB,SAASC,EAAc1iE,GACrB,GAAIA,EAASyiE,EACX,MAAM,IAAIxC,WAAW,cAAgBjgE,EAAS,kCAGhD,IAAI2iE,EAAM,IAAIx0D,WAAWnO,GAEzB,OADA0D,OAAOk/D,eAAeD,EAAKv2D,EAAO1N,WAC3BikE,EAaT,SAASv2D,EAAQy2D,EAAKC,EAAkB9iE,GAEtC,GAAmB,iBAAR6iE,EAAkB,CAC3B,GAAgC,iBAArBC,EACT,MAAM,IAAItjE,UACR,sEAGJ,OAAOujE,EAAYF,GAErB,OAAOh/D,EAAKg/D,EAAKC,EAAkB9iE,GAKrC,SAAS6D,EAAMvI,EAAOwnE,EAAkB9iE,GACtC,GAAqB,iBAAV1E,EACT,OAuHJ,SAAqBi6D,EAAQyN,GAK3B,GAJwB,iBAAbA,GAAsC,KAAbA,IAClCA,EAAW,SAGR52D,EAAO62D,WAAWD,GACrB,MAAM,IAAIxjE,UAAU,qBAAuBwjE,GAG7C,IAAIhjE,EAAwC,EAA/Bi8D,EAAW1G,EAAQyN,GAC5BL,EAAMD,EAAa1iE,GAEnBkjE,EAASP,EAAIx5D,MAAMosD,EAAQyN,GAS/B,OAPIE,IAAWljE,IAIb2iE,EAAMA,EAAIn9D,MAAM,EAAG09D,IAGdP,EA5IEQ,CAAW7nE,EAAOwnE,GAG3B,GAAIx0D,YAAYC,OAAOjT,GACrB,OAoJJ,SAAwB8nE,GACtB,GAAIC,EAAWD,EAAWj1D,YAAa,CACrC,IAAIm1D,EAAO,IAAIn1D,WAAWi1D,GAC1B,OAAOG,EAAgBD,EAAKt8D,OAAQs8D,EAAKE,WAAYF,EAAKrH,YAE5D,OAAOwH,EAAcL,GAzJZM,CAAcpoE,GAGvB,GAAa,MAATA,EACF,MAAM,IAAIkE,UACR,yHACiDlE,GAIrD,GAAI+nE,EAAW/nE,EAAOgT,cACjBhT,GAAS+nE,EAAW/nE,EAAM0L,OAAQsH,aACrC,OAAOi1D,EAAgBjoE,EAAOwnE,EAAkB9iE,GAGlD,GAAiC,oBAAtB2jE,oBACNN,EAAW/nE,EAAOqoE,oBAClBroE,GAAS+nE,EAAW/nE,EAAM0L,OAAQ28D,oBACrC,OAAOJ,EAAgBjoE,EAAOwnE,EAAkB9iE,GAGlD,GAAqB,iBAAV1E,EACT,MAAM,IAAIkE,UACR,yEAIJ,IAAIokE,EAAUtoE,EAAMsoE,SAAWtoE,EAAMsoE,UACrC,GAAe,MAAXA,GAAmBA,IAAYtoE,EACjC,OAAO8Q,EAAOvI,KAAK+/D,EAASd,EAAkB9iE,GAGhD,IAAI4O,EAoJN,SAAqB3K,GACnB,GAAImI,EAAOzF,SAAS1C,GAAM,CACxB,IAAI04D,EAA4B,EAAtBhmC,EAAQ1yB,EAAIjE,QAClB2iE,EAAMD,EAAa/F,GAEvB,OAAmB,IAAfgG,EAAI3iE,QAIRiE,EAAIq/D,KAAKX,EAAK,EAAG,EAAGhG,GAHXgG,EAOX,YAAmB5lE,IAAfkH,EAAIjE,OACoB,iBAAfiE,EAAIjE,QAAuB6jE,EAAY5/D,EAAIjE,QAC7C0iE,EAAa,GAEfe,EAAcx/D,GAGN,WAAbA,EAAItG,MAAqB2E,MAAMiD,QAAQtB,EAAIzK,MACtCiqE,EAAcx/D,EAAIzK,WAD3B,EAxKQsqE,CAAWxoE,GACnB,GAAIsT,EAAG,OAAOA,EAEd,GAAsB,oBAAX4zD,QAAgD,MAAtBA,OAAOuB,aACH,mBAA9BzoE,EAAMknE,OAAOuB,aACtB,OAAO33D,EAAOvI,KACZvI,EAAMknE,OAAOuB,aAAa,UAAWjB,EAAkB9iE,GAI3D,MAAM,IAAIR,UACR,yHACiDlE,GAqBrD,SAAS0oE,EAAYC,GACnB,GAAoB,iBAATA,EACT,MAAM,IAAIzkE,UAAU,0CACf,GAAIykE,EAAO,EAChB,MAAM,IAAIhE,WAAW,cAAgBgE,EAAO,kCA4BhD,SAASlB,EAAakB,GAEpB,OADAD,EAAWC,GACJvB,EAAauB,EAAO,EAAI,EAAoB,EAAhBttC,EAAQstC,IAwC7C,SAASR,EAAeS,GAGtB,IAFA,IAAIlkE,EAASkkE,EAAMlkE,OAAS,EAAI,EAA4B,EAAxB22B,EAAQutC,EAAMlkE,QAC9C2iE,EAAMD,EAAa1iE,GACdF,EAAI,EAAGA,EAAIE,EAAQF,GAAK,EAC/B6iE,EAAI7iE,GAAgB,IAAXokE,EAAMpkE,GAEjB,OAAO6iE,EAWT,SAASY,EAAiBW,EAAOV,EAAYxjE,GAC3C,GAAIwjE,EAAa,GAAKU,EAAMjI,WAAauH,EACvC,MAAM,IAAIvD,WAAW,wCAGvB,GAAIiE,EAAMjI,WAAauH,GAAcxjE,GAAU,GAC7C,MAAM,IAAIigE,WAAW,wCAGvB,IAAI0C,EAYJ,OAVEA,OADiB5lE,IAAfymE,QAAuCzmE,IAAXiD,EACxB,IAAImO,WAAW+1D,QACDnnE,IAAXiD,EACH,IAAImO,WAAW+1D,EAAOV,GAEtB,IAAIr1D,WAAW+1D,EAAOV,EAAYxjE,GAI1C0D,OAAOk/D,eAAeD,EAAKv2D,EAAO1N,WAE3BikE,EA4BT,SAAShsC,EAAS32B,GAGhB,GAAIA,GAAUyiE,EACZ,MAAM,IAAIxC,WAAW,0DACawC,EAAah8D,SAAS,IAAM,UAEhE,OAAgB,EAATzG,EAsGT,SAASi8D,EAAY1G,EAAQyN,GAC3B,GAAI52D,EAAOzF,SAAS4uD,GAClB,OAAOA,EAAOv1D,OAEhB,GAAIsO,YAAYC,OAAOgnD,IAAW8N,EAAW9N,EAAQjnD,aACnD,OAAOinD,EAAO0G,WAEhB,GAAsB,iBAAX1G,EACT,MAAM,IAAI/1D,UACR,kGAC0B+1D,GAI9B,IAAIoH,EAAMpH,EAAOv1D,OACbmkE,EAAa37D,UAAUxI,OAAS,IAAsB,IAAjBwI,UAAU,GACnD,IAAK27D,GAAqB,IAARxH,EAAW,OAAO,EAIpC,IADA,IAAIyH,GAAc,IAEhB,OAAQpB,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOrG,EACT,IAAK,OACL,IAAK,QACH,OAAO0H,EAAY9O,GAAQv1D,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAAN28D,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAO2H,EAAc/O,GAAQv1D,OAC/B,QACE,GAAIokE,EACF,OAAOD,GAAa,EAAIE,EAAY9O,GAAQv1D,OAE9CgjE,GAAY,GAAKA,GAAU7lE,cAC3BinE,GAAc,GAMtB,SAASG,EAAcvB,EAAU/H,EAAOmC,GACtC,IAAIgH,GAAc,EAclB,SALcrnE,IAAVk+D,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQv7D,KAAKM,OACf,MAAO,GAOT,SAJYjD,IAARqgE,GAAqBA,EAAM19D,KAAKM,UAClCo9D,EAAM19D,KAAKM,QAGTo9D,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTnC,KAAW,GAGT,MAAO,GAKT,IAFK+H,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAOwB,EAAS9kE,KAAMu7D,EAAOmC,GAE/B,IAAK,OACL,IAAK,QACH,OAAOqH,EAAU/kE,KAAMu7D,EAAOmC,GAEhC,IAAK,QACH,OAAOsH,EAAWhlE,KAAMu7D,EAAOmC,GAEjC,IAAK,SACL,IAAK,SACH,OAAOuH,EAAYjlE,KAAMu7D,EAAOmC,GAElC,IAAK,SACH,OAAOwH,EAAYllE,KAAMu7D,EAAOmC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOyH,EAAanlE,KAAMu7D,EAAOmC,GAEnC,QACE,GAAIgH,EAAa,MAAM,IAAI5kE,UAAU,qBAAuBwjE,GAC5DA,GAAYA,EAAW,IAAI7lE,cAC3BinE,GAAc,GAatB,SAASU,EAAMl2D,EAAGwoD,EAAG2N,GACnB,IAAIjlE,EAAI8O,EAAEwoD,GACVxoD,EAAEwoD,GAAKxoD,EAAEm2D,GACTn2D,EAAEm2D,GAAKjlE,EA4IT,SAASklE,EAAsBh+D,EAAQzO,EAAKirE,EAAYR,EAAUiC,GAEhE,GAAsB,IAAlBj+D,EAAOhH,OAAc,OAAQ,EAmBjC,GAhB0B,iBAAfwjE,GACTR,EAAWQ,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAGZK,EADJL,GAAcA,KAGZA,EAAayB,EAAM,EAAKj+D,EAAOhH,OAAS,GAItCwjE,EAAa,IAAGA,EAAax8D,EAAOhH,OAASwjE,GAC7CA,GAAcx8D,EAAOhH,OAAQ,CAC/B,GAAIilE,EAAK,OAAQ,EACZzB,EAAax8D,EAAOhH,OAAS,OAC7B,GAAIwjE,EAAa,EAAG,CACzB,IAAIyB,EACC,OAAQ,EADJzB,EAAa,EAUxB,GALmB,iBAARjrE,IACTA,EAAM6T,EAAOvI,KAAKtL,EAAKyqE,IAIrB52D,EAAOzF,SAASpO,GAElB,OAAmB,IAAfA,EAAIyH,QACE,EAEHklE,EAAal+D,EAAQzO,EAAKirE,EAAYR,EAAUiC,GAClD,GAAmB,iBAAR1sE,EAEhB,OADAA,GAAY,IACgC,mBAAjC4V,WAAWzP,UAAU1C,QAC1BipE,EACK92D,WAAWzP,UAAU1C,QAAQ4E,KAAKoG,EAAQzO,EAAKirE,GAE/Cr1D,WAAWzP,UAAUymE,YAAYvkE,KAAKoG,EAAQzO,EAAKirE,GAGvD0B,EAAal+D,EAAQ,CAACzO,GAAMirE,EAAYR,EAAUiC,GAG3D,MAAM,IAAIzlE,UAAU,wCAGtB,SAAS0lE,EAAcn5D,EAAKxT,EAAKirE,EAAYR,EAAUiC,GACrD,IA0BInlE,EA1BAslE,EAAY,EACZC,EAAYt5D,EAAI/L,OAChBslE,EAAY/sE,EAAIyH,OAEpB,QAAiBjD,IAAbimE,IAEe,UADjBA,EAAWvzD,OAAOuzD,GAAU7lE,gBACY,UAAb6lE,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAIj3D,EAAI/L,OAAS,GAAKzH,EAAIyH,OAAS,EACjC,OAAQ,EAEVolE,EAAY,EACZC,GAAa,EACbC,GAAa,EACb9B,GAAc,EAIlB,SAAS1mE,EAAM6lE,EAAK7iE,GAClB,OAAkB,IAAdslE,EACKzC,EAAI7iE,GAEJ6iE,EAAI4C,aAAazlE,EAAIslE,GAKhC,GAAIH,EAAK,CACP,IAAIO,GAAc,EAClB,IAAK1lE,EAAI0jE,EAAY1jE,EAAIulE,EAAWvlE,IAClC,GAAIhD,EAAKiP,EAAKjM,KAAOhD,EAAKvE,GAAqB,IAAhBitE,EAAoB,EAAI1lE,EAAI0lE,IAEzD,IADoB,IAAhBA,IAAmBA,EAAa1lE,GAChCA,EAAI0lE,EAAa,IAAMF,EAAW,OAAOE,EAAaJ,OAEtC,IAAhBI,IAAmB1lE,GAAKA,EAAI0lE,GAChCA,GAAc,OAKlB,IADIhC,EAAa8B,EAAYD,IAAW7B,EAAa6B,EAAYC,GAC5DxlE,EAAI0jE,EAAY1jE,GAAK,EAAGA,IAAK,CAEhC,IADA,IAAI2lE,GAAQ,EACHpR,EAAI,EAAGA,EAAIiR,EAAWjR,IAC7B,GAAIv3D,EAAKiP,EAAKjM,EAAIu0D,KAAOv3D,EAAKvE,EAAK87D,GAAI,CACrCoR,GAAQ,EACR,MAGJ,GAAIA,EAAO,OAAO3lE,EAItB,OAAQ,EAeV,SAAS4lE,EAAU/C,EAAKpN,EAAQ6L,EAAQphE,GACtCohE,EAASuE,OAAOvE,IAAW,EAC3B,IAAIwE,EAAYjD,EAAI3iE,OAASohE,EACxBphE,GAGHA,EAAS2lE,OAAO3lE,IACH4lE,IACX5lE,EAAS4lE,GAJX5lE,EAAS4lE,EAQX,IAAIC,EAAStQ,EAAOv1D,OAEhBA,EAAS6lE,EAAS,IACpB7lE,EAAS6lE,EAAS,GAEpB,IAAK,IAAI/lE,EAAI,EAAGA,EAAIE,IAAUF,EAAG,CAC/B,IAAIyL,EAASq9B,SAAS2sB,EAAO3pD,OAAW,EAAJ9L,EAAO,GAAI,IAC/C,GAAI+jE,EAAYt4D,GAAS,OAAOzL,EAChC6iE,EAAIvB,EAASthE,GAAKyL,EAEpB,OAAOzL,EAGT,SAASgmE,EAAWnD,EAAKpN,EAAQ6L,EAAQphE,GACvC,OAAO+lE,EAAW1B,EAAY9O,EAAQoN,EAAI3iE,OAASohE,GAASuB,EAAKvB,EAAQphE,GAG3E,SAASgmE,EAAYrD,EAAKpN,EAAQ6L,EAAQphE,GACxC,OAAO+lE,EAk4BT,SAAuBl4D,GAErB,IADA,IAAIo4D,EAAY,GACPnmE,EAAI,EAAGA,EAAI+N,EAAI7N,SAAUF,EAEhCmmE,EAAU1lE,KAAyB,IAApBsN,EAAIkB,WAAWjP,IAEhC,OAAOmmE,EAx4BWC,CAAa3Q,GAASoN,EAAKvB,EAAQphE,GAGvD,SAASmmE,EAAaxD,EAAKpN,EAAQ6L,EAAQphE,GACzC,OAAO+lE,EAAWzB,EAAc/O,GAASoN,EAAKvB,EAAQphE,GAGxD,SAASomE,EAAWzD,EAAKpN,EAAQ6L,EAAQphE,GACvC,OAAO+lE,EAm4BT,SAAyBl4D,EAAKsC,GAG5B,IAFA,IAAIxP,EAAG0lE,EAAIC,EACPL,EAAY,GACPnmE,EAAI,EAAGA,EAAI+N,EAAI7N,WACjBmQ,GAAS,GAAK,KADarQ,EAIhCumE,GADA1lE,EAAIkN,EAAIkB,WAAWjP,KACT,EACVwmE,EAAK3lE,EAAI,IACTslE,EAAU1lE,KAAK+lE,GACfL,EAAU1lE,KAAK8lE,GAGjB,OAAOJ,EAh5BWM,CAAehR,EAAQoN,EAAI3iE,OAASohE,GAASuB,EAAKvB,EAAQphE,GA+E9E,SAAS4kE,EAAajC,EAAK1H,EAAOmC,GAChC,OAAc,IAAVnC,GAAemC,IAAQuF,EAAI3iE,OACtB+xB,EAAO8qC,cAAc8F,GAErB5wC,EAAO8qC,cAAc8F,EAAIn9D,MAAMy1D,EAAOmC,IAIjD,SAASqH,EAAW9B,EAAK1H,EAAOmC,GAC9BA,EAAMj3D,KAAKkM,IAAIswD,EAAI3iE,OAAQo9D,GAI3B,IAHA,IAAI5d,EAAM,GAEN1/C,EAAIm7D,EACDn7D,EAAIs9D,GAAK,CACd,IAWMoJ,EAAYC,EAAWC,EAAYC,EAXrCC,EAAYjE,EAAI7iE,GAChB+mE,EAAY,KACZC,EAAoBF,EAAY,IAChC,EACCA,EAAY,IACT,EACCA,EAAY,IACT,EACA,EAEZ,GAAI9mE,EAAIgnE,GAAoB1J,EAG1B,OAAQ0J,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EAEyB,MAAV,KADlBJ,EAAa7D,EAAI7iE,EAAI,OAEnB6mE,GAA6B,GAAZC,IAAqB,EAAoB,GAAbJ,GACzB,MAClBK,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAa7D,EAAI7iE,EAAI,GACrB2mE,EAAY9D,EAAI7iE,EAAI,GACQ,MAAV,IAAb0mE,IAAsD,MAAV,IAAZC,KACnCE,GAA6B,GAAZC,IAAoB,IAAoB,GAAbJ,IAAsB,EAAmB,GAAZC,GACrD,OAAUE,EAAgB,OAAUA,EAAgB,SACtEE,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAa7D,EAAI7iE,EAAI,GACrB2mE,EAAY9D,EAAI7iE,EAAI,GACpB4mE,EAAa/D,EAAI7iE,EAAI,GACO,MAAV,IAAb0mE,IAAsD,MAAV,IAAZC,IAAsD,MAAV,IAAbC,KAClEC,GAA6B,GAAZC,IAAoB,IAAqB,GAAbJ,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,GAClF,OAAUC,EAAgB,UAC5CE,EAAYF,GAMJ,OAAdE,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbrnB,EAAIj/C,KAAKsmE,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBrnB,EAAIj/C,KAAKsmE,GACT/mE,GAAKgnE,EAGP,OAQF,SAAgCC,GAC9B,IAAIpK,EAAMoK,EAAW/mE,OACrB,GAAI28D,GAAOqK,EACT,OAAOv3D,OAAOynD,aAAa30D,MAAMkN,OAAQs3D,GAM3C,IAFA,IAAIvnB,EAAM,GACN1/C,EAAI,EACDA,EAAI68D,GACTnd,GAAO/vC,OAAOynD,aAAa30D,MACzBkN,OACAs3D,EAAWvhE,MAAM1F,EAAGA,GAAKknE,IAG7B,OAAOxnB,EAvBAynB,CAAsBznB,GA19B/BpzC,EAAO86D,oBAUP,WAEE,IACE,IAAIn7D,EAAM,IAAIoC,WAAW,GACrBg5D,EAAQ,CAAEC,IAAK,WAAc,OAAO,KAGxC,OAFA1jE,OAAOk/D,eAAeuE,EAAOh5D,WAAWzP,WACxCgF,OAAOk/D,eAAe72D,EAAKo7D,GACN,KAAdp7D,EAAIq7D,MACX,MAAOp/D,GACP,OAAO,GAnBkBq/D,GAExBj7D,EAAO86D,qBAA0C,oBAAZ95D,SACb,mBAAlBA,QAAQvK,OACjBuK,QAAQvK,MACN,iJAkBJa,OAAOE,eAAewI,EAAO1N,UAAW,SAAU,CAChD4oE,YAAY,EACZ58C,IAAK,WACH,GAAKte,EAAOzF,SAASjH,MACrB,OAAOA,KAAKsH,UAIhBtD,OAAOE,eAAewI,EAAO1N,UAAW,SAAU,CAChD4oE,YAAY,EACZ58C,IAAK,WACH,GAAKte,EAAOzF,SAASjH,MACrB,OAAOA,KAAK8jE,cAqChBp3D,EAAOm7D,SAAW,KAgElBn7D,EAAOvI,KAAO,SAAUvI,EAAOwnE,EAAkB9iE,GAC/C,OAAO6D,EAAKvI,EAAOwnE,EAAkB9iE,IAKvC0D,OAAOk/D,eAAex2D,EAAO1N,UAAWyP,WAAWzP,WACnDgF,OAAOk/D,eAAex2D,EAAQ+B,YA8B9B/B,EAAOo7D,MAAQ,SAAUvD,EAAMwD,EAAMzE,GACnC,OArBF,SAAgBiB,EAAMwD,EAAMzE,GAE1B,OADAgB,EAAWC,GACPA,GAAQ,EACHvB,EAAauB,QAETlnE,IAAT0qE,EAIyB,iBAAbzE,EACVN,EAAauB,GAAMwD,KAAKA,EAAMzE,GAC9BN,EAAauB,GAAMwD,KAAKA,GAEvB/E,EAAauB,GAQbuD,CAAMvD,EAAMwD,EAAMzE,IAW3B52D,EAAO22D,YAAc,SAAUkB,GAC7B,OAAOlB,EAAYkB,IAKrB73D,EAAOs7D,gBAAkB,SAAUzD,GACjC,OAAOlB,EAAYkB,IA8GrB73D,EAAOzF,SAAW,SAAmBiI,GACnC,OAAY,MAALA,IAA6B,IAAhBA,EAAE+4D,WACpB/4D,IAAMxC,EAAO1N,WAGjB0N,EAAOyyD,QAAU,SAAkBlwD,EAAGC,GAGpC,GAFIy0D,EAAW10D,EAAGR,cAAaQ,EAAIvC,EAAOvI,KAAK8K,EAAGA,EAAEyyD,OAAQzyD,EAAEstD,aAC1DoH,EAAWz0D,EAAGT,cAAaS,EAAIxC,EAAOvI,KAAK+K,EAAGA,EAAEwyD,OAAQxyD,EAAEqtD,cACzD7vD,EAAOzF,SAASgI,KAAOvC,EAAOzF,SAASiI,GAC1C,MAAM,IAAIpP,UACR,yEAIJ,GAAImP,IAAMC,EAAG,OAAO,EAKpB,IAHA,IAAIm4C,EAAIp4C,EAAE3O,OACNgnD,EAAIp4C,EAAE5O,OAEDF,EAAI,EAAG68D,EAAMx2D,KAAKkM,IAAI00C,EAAGC,GAAIlnD,EAAI68D,IAAO78D,EAC/C,GAAI6O,EAAE7O,KAAO8O,EAAE9O,GAAI,CACjBinD,EAAIp4C,EAAE7O,GACNknD,EAAIp4C,EAAE9O,GACN,MAIJ,OAAIinD,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,GAGT36C,EAAO62D,WAAa,SAAqBD,GACvC,OAAQvzD,OAAOuzD,GAAU7lE,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,IAIbiP,EAAO5J,OAAS,SAAiB+gC,EAAMvjC,GACrC,IAAKsC,MAAMiD,QAAQg+B,GACjB,MAAM,IAAI/jC,UAAU,+CAGtB,GAAoB,IAAhB+jC,EAAKvjC,OACP,OAAOoM,EAAOo7D,MAAM,GAGtB,IAAI1nE,EACJ,QAAe/C,IAAXiD,EAEF,IADAA,EAAS,EACJF,EAAI,EAAGA,EAAIyjC,EAAKvjC,SAAUF,EAC7BE,GAAUujC,EAAKzjC,GAAGE,OAItB,IAAIgH,EAASoF,EAAO22D,YAAY/iE,GAC5B4nE,EAAM,EACV,IAAK9nE,EAAI,EAAGA,EAAIyjC,EAAKvjC,SAAUF,EAAG,CAChC,IAAI6iE,EAAMp/B,EAAKzjC,GACf,GAAIujE,EAAWV,EAAKx0D,YACdy5D,EAAMjF,EAAI3iE,OAASgH,EAAOhH,OAC5BoM,EAAOvI,KAAK8+D,GAAKW,KAAKt8D,EAAQ4gE,GAE9Bz5D,WAAWzP,UAAUurB,IAAIrpB,KACvBoG,EACA27D,EACAiF,OAGC,KAAKx7D,EAAOzF,SAASg8D,GAC1B,MAAM,IAAInjE,UAAU,+CAEpBmjE,EAAIW,KAAKt8D,EAAQ4gE,GAEnBA,GAAOjF,EAAI3iE,OAEb,OAAOgH,GAkDToF,EAAO6vD,WAAaA,EA8EpB7vD,EAAO1N,UAAUipE,WAAY,EAQ7Bv7D,EAAO1N,UAAUmpE,OAAS,WACxB,IAAIlL,EAAMj9D,KAAKM,OACf,GAAI28D,EAAM,GAAM,EACd,MAAM,IAAIsD,WAAW,6CAEvB,IAAK,IAAIngE,EAAI,EAAGA,EAAI68D,EAAK78D,GAAK,EAC5BglE,EAAKplE,KAAMI,EAAGA,EAAI,GAEpB,OAAOJ,MAGT0M,EAAO1N,UAAUopE,OAAS,WACxB,IAAInL,EAAMj9D,KAAKM,OACf,GAAI28D,EAAM,GAAM,EACd,MAAM,IAAIsD,WAAW,6CAEvB,IAAK,IAAIngE,EAAI,EAAGA,EAAI68D,EAAK78D,GAAK,EAC5BglE,EAAKplE,KAAMI,EAAGA,EAAI,GAClBglE,EAAKplE,KAAMI,EAAI,EAAGA,EAAI,GAExB,OAAOJ,MAGT0M,EAAO1N,UAAUqpE,OAAS,WACxB,IAAIpL,EAAMj9D,KAAKM,OACf,GAAI28D,EAAM,GAAM,EACd,MAAM,IAAIsD,WAAW,6CAEvB,IAAK,IAAIngE,EAAI,EAAGA,EAAI68D,EAAK78D,GAAK,EAC5BglE,EAAKplE,KAAMI,EAAGA,EAAI,GAClBglE,EAAKplE,KAAMI,EAAI,EAAGA,EAAI,GACtBglE,EAAKplE,KAAMI,EAAI,EAAGA,EAAI,GACtBglE,EAAKplE,KAAMI,EAAI,EAAGA,EAAI,GAExB,OAAOJ,MAGT0M,EAAO1N,UAAU+H,SAAW,WAC1B,IAAIzG,EAASN,KAAKM,OAClB,OAAe,IAAXA,EAAqB,GACA,IAArBwI,UAAUxI,OAAqBykE,EAAU/kE,KAAM,EAAGM,GAC/CukE,EAAahiE,MAAM7C,KAAM8I,YAGlC4D,EAAO1N,UAAUspE,eAAiB57D,EAAO1N,UAAU+H,SAEnD2F,EAAO1N,UAAUupE,OAAS,SAAiBr5D,GACzC,IAAKxC,EAAOzF,SAASiI,GAAI,MAAM,IAAIpP,UAAU,6BAC7C,OAAIE,OAASkP,GACsB,IAA5BxC,EAAOyyD,QAAQn/D,KAAMkP,IAG9BxC,EAAO1N,UAAUwpE,QAAU,WACzB,IAAIr6D,EAAM,GACNs6D,EAAM/wE,EAAQ,GAGlB,OAFAyW,EAAMnO,KAAK+G,SAAS,MAAO,EAAG0hE,GAAKz/D,QAAQ,UAAW,OAAOX,OACzDrI,KAAKM,OAASmoE,IAAKt6D,GAAO,SACvB,WAAaA,EAAM,KAExB00D,IACFn2D,EAAO1N,UAAU6jE,GAAuBn2D,EAAO1N,UAAUwpE,SAG3D97D,EAAO1N,UAAUmgE,QAAU,SAAkBx5D,EAAQ41D,EAAOmC,EAAKgL,EAAWC,GAI1E,GAHIhF,EAAWh+D,EAAQ8I,cACrB9I,EAAS+G,EAAOvI,KAAKwB,EAAQA,EAAO+7D,OAAQ/7D,EAAO42D,cAEhD7vD,EAAOzF,SAAStB,GACnB,MAAM,IAAI7F,UACR,wFAC2B6F,GAiB/B,QAbctI,IAAVk+D,IACFA,EAAQ,QAEEl+D,IAARqgE,IACFA,EAAM/3D,EAASA,EAAOrF,OAAS,QAEfjD,IAAdqrE,IACFA,EAAY,QAEErrE,IAAZsrE,IACFA,EAAU3oE,KAAKM,QAGbi7D,EAAQ,GAAKmC,EAAM/3D,EAAOrF,QAAUooE,EAAY,GAAKC,EAAU3oE,KAAKM,OACtE,MAAM,IAAIigE,WAAW,sBAGvB,GAAImI,GAAaC,GAAWpN,GAASmC,EACnC,OAAO,EAET,GAAIgL,GAAaC,EACf,OAAQ,EAEV,GAAIpN,GAASmC,EACX,OAAO,EAQT,GAAI19D,OAAS2F,EAAQ,OAAO,EAS5B,IAPA,IAAI0hD,GAJJshB,KAAa,IADbD,KAAe,GAMXphB,GAPJoW,KAAS,IADTnC,KAAW,GASP0B,EAAMx2D,KAAKkM,IAAI00C,EAAGC,GAElBshB,EAAW5oE,KAAK8F,MAAM4iE,EAAWC,GACjCE,EAAaljE,EAAOG,MAAMy1D,EAAOmC,GAE5Bt9D,EAAI,EAAGA,EAAI68D,IAAO78D,EACzB,GAAIwoE,EAASxoE,KAAOyoE,EAAWzoE,GAAI,CACjCinD,EAAIuhB,EAASxoE,GACbknD,EAAIuhB,EAAWzoE,GACf,MAIJ,OAAIinD,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,GA4HT36C,EAAO1N,UAAU+c,SAAW,SAAmBljB,EAAKirE,EAAYR,GAC9D,OAAoD,IAA7CtjE,KAAK1D,QAAQzD,EAAKirE,EAAYR,IAGvC52D,EAAO1N,UAAU1C,QAAU,SAAkBzD,EAAKirE,EAAYR,GAC5D,OAAOgC,EAAqBtlE,KAAMnH,EAAKirE,EAAYR,GAAU,IAG/D52D,EAAO1N,UAAUymE,YAAc,SAAsB5sE,EAAKirE,EAAYR,GACpE,OAAOgC,EAAqBtlE,KAAMnH,EAAKirE,EAAYR,GAAU,IA4C/D52D,EAAO1N,UAAUyK,MAAQ,SAAgBosD,EAAQ6L,EAAQphE,EAAQgjE,GAE/D,QAAejmE,IAAXqkE,EACF4B,EAAW,OACXhjE,EAASN,KAAKM,OACdohE,EAAS,OAEJ,QAAerkE,IAAXiD,GAA0C,iBAAXohE,EACxC4B,EAAW5B,EACXphE,EAASN,KAAKM,OACdohE,EAAS,MAEJ,KAAIoH,SAASpH,GAUlB,MAAM,IAAItpE,MACR,2EAVFspE,KAAoB,EAChBoH,SAASxoE,IACXA,KAAoB,OACHjD,IAAbimE,IAAwBA,EAAW,UAEvCA,EAAWhjE,EACXA,OAASjD,GAQb,IAAI6oE,EAAYlmE,KAAKM,OAASohE,EAG9B,SAFerkE,IAAXiD,GAAwBA,EAAS4lE,KAAW5lE,EAAS4lE,GAEpDrQ,EAAOv1D,OAAS,IAAMA,EAAS,GAAKohE,EAAS,IAAOA,EAAS1hE,KAAKM,OACrE,MAAM,IAAIigE,WAAW,0CAGlB+C,IAAUA,EAAW,QAG1B,IADA,IAAIoB,GAAc,IAEhB,OAAQpB,GACN,IAAK,MACH,OAAO0C,EAAShmE,KAAM61D,EAAQ6L,EAAQphE,GAExC,IAAK,OACL,IAAK,QACH,OAAO8lE,EAAUpmE,KAAM61D,EAAQ6L,EAAQphE,GAEzC,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOgmE,EAAWtmE,KAAM61D,EAAQ6L,EAAQphE,GAE1C,IAAK,SAEH,OAAOmmE,EAAYzmE,KAAM61D,EAAQ6L,EAAQphE,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOomE,EAAU1mE,KAAM61D,EAAQ6L,EAAQphE,GAEzC,QACE,GAAIokE,EAAa,MAAM,IAAI5kE,UAAU,qBAAuBwjE,GAC5DA,GAAY,GAAKA,GAAU7lE,cAC3BinE,GAAc,IAKtBh4D,EAAO1N,UAAUwE,OAAS,WACxB,MAAO,CACLvF,KAAM,SACNnE,KAAM8I,MAAM5D,UAAU8G,MAAM5E,KAAKlB,KAAK+oE,MAAQ/oE,KAAM,KA2FxD,IAAIsnE,EAAuB,KAoB3B,SAAStC,EAAY/B,EAAK1H,EAAOmC,GAC/B,IAAIvjD,EAAM,GACVujD,EAAMj3D,KAAKkM,IAAIswD,EAAI3iE,OAAQo9D,GAE3B,IAAK,IAAIt9D,EAAIm7D,EAAOn7D,EAAIs9D,IAAOt9D,EAC7B+Z,GAAOpK,OAAOynD,aAAsB,IAATyL,EAAI7iE,IAEjC,OAAO+Z,EAGT,SAAS8qD,EAAahC,EAAK1H,EAAOmC,GAChC,IAAIvjD,EAAM,GACVujD,EAAMj3D,KAAKkM,IAAIswD,EAAI3iE,OAAQo9D,GAE3B,IAAK,IAAIt9D,EAAIm7D,EAAOn7D,EAAIs9D,IAAOt9D,EAC7B+Z,GAAOpK,OAAOynD,aAAayL,EAAI7iE,IAEjC,OAAO+Z,EAGT,SAAS2qD,EAAU7B,EAAK1H,EAAOmC,GAC7B,IAAIT,EAAMgG,EAAI3iE,SAETi7D,GAASA,EAAQ,KAAGA,EAAQ,KAC5BmC,GAAOA,EAAM,GAAKA,EAAMT,KAAKS,EAAMT,GAGxC,IADA,IAAIkF,EAAM,GACD/hE,EAAIm7D,EAAOn7D,EAAIs9D,IAAOt9D,EAC7B+hE,GAAO6G,EAAoB/F,EAAI7iE,IAEjC,OAAO+hE,EAGT,SAASgD,EAAclC,EAAK1H,EAAOmC,GAIjC,IAHA,IAAI+E,EAAQQ,EAAIn9D,MAAMy1D,EAAOmC,GACzB5d,EAAM,GAED1/C,EAAI,EAAGA,EAAIqiE,EAAMniE,OAAS,EAAGF,GAAK,EACzC0/C,GAAO/vC,OAAOynD,aAAaiL,EAAMriE,GAAqB,IAAfqiE,EAAMriE,EAAI,IAEnD,OAAO0/C,EAkCT,SAASmpB,EAAavH,EAAQwH,EAAK5oE,GACjC,GAAKohE,EAAS,GAAO,GAAKA,EAAS,EAAG,MAAM,IAAInB,WAAW,sBAC3D,GAAImB,EAASwH,EAAM5oE,EAAQ,MAAM,IAAIigE,WAAW,yCAoLlD,SAAS4I,EAAUlG,EAAKrnE,EAAO8lE,EAAQwH,EAAKT,EAAK91D,GAC/C,IAAKjG,EAAOzF,SAASg8D,GAAM,MAAM,IAAInjE,UAAU,+CAC/C,GAAIlE,EAAQ6sE,GAAO7sE,EAAQ+W,EAAK,MAAM,IAAI4tD,WAAW,qCACrD,GAAImB,EAASwH,EAAMjG,EAAI3iE,OAAQ,MAAM,IAAIigE,WAAW,sBAgMtD,SAAS6I,EAAcnG,EAAKrnE,EAAO8lE,EAAQwH,EAAKT,EAAK91D,GACnD,GAAI+uD,EAASwH,EAAMjG,EAAI3iE,OAAQ,MAAM,IAAIigE,WAAW,sBACpD,GAAImB,EAAS,EAAG,MAAM,IAAInB,WAAW,sBAGvC,SAAS8I,EAAYpG,EAAKrnE,EAAO8lE,EAAQ4H,EAAcC,GAOrD,OANA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GACHH,EAAanG,EAAKrnE,EAAO8lE,EAAQ,GAEnCkB,EAAQn5D,MAAMw5D,EAAKrnE,EAAO8lE,EAAQ4H,EAAc,GAAI,GAC7C5H,EAAS,EAWlB,SAAS8H,EAAavG,EAAKrnE,EAAO8lE,EAAQ4H,EAAcC,GAOtD,OANA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GACHH,EAAanG,EAAKrnE,EAAO8lE,EAAQ,GAEnCkB,EAAQn5D,MAAMw5D,EAAKrnE,EAAO8lE,EAAQ4H,EAAc,GAAI,GAC7C5H,EAAS,EAtblBh1D,EAAO1N,UAAU8G,MAAQ,SAAgBy1D,EAAOmC,GAC9C,IAAIT,EAAMj9D,KAAKM,QACfi7D,IAAUA,GAGE,GACVA,GAAS0B,GACG,IAAG1B,EAAQ,GACdA,EAAQ0B,IACjB1B,EAAQ0B,IANVS,OAAcrgE,IAARqgE,EAAoBT,IAAQS,GASxB,GACRA,GAAOT,GACG,IAAGS,EAAM,GACVA,EAAMT,IACfS,EAAMT,GAGJS,EAAMnC,IAAOmC,EAAMnC,GAEvB,IAAIkO,EAASzpE,KAAK0pE,SAASnO,EAAOmC,GAIlC,OAFA15D,OAAOk/D,eAAeuG,EAAQ/8D,EAAO1N,WAE9ByqE,GAWT/8D,EAAO1N,UAAU2qE,WACjBj9D,EAAO1N,UAAU4qE,WAAa,SAAqBlI,EAAQnF,EAAYgN,GACrE7H,KAAoB,EACpBnF,KAA4B,EACvBgN,GAAUN,EAAYvH,EAAQnF,EAAYv8D,KAAKM,QAKpD,IAHA,IAAIzH,EAAMmH,KAAK0hE,GACXmI,EAAM,EACNzpE,EAAI,IACCA,EAAIm8D,IAAesN,GAAO,MACjChxE,GAAOmH,KAAK0hE,EAASthE,GAAKypE,EAG5B,OAAOhxE,GAGT6T,EAAO1N,UAAU8qE,WACjBp9D,EAAO1N,UAAU+qE,WAAa,SAAqBrI,EAAQnF,EAAYgN,GACrE7H,KAAoB,EACpBnF,KAA4B,EACvBgN,GACHN,EAAYvH,EAAQnF,EAAYv8D,KAAKM,QAKvC,IAFA,IAAIzH,EAAMmH,KAAK0hE,IAAWnF,GACtBsN,EAAM,EACHtN,EAAa,IAAMsN,GAAO,MAC/BhxE,GAAOmH,KAAK0hE,IAAWnF,GAAcsN,EAGvC,OAAOhxE,GAGT6T,EAAO1N,UAAUgrE,UACjBt9D,EAAO1N,UAAUirE,UAAY,SAAoBvI,EAAQ6H,GAGvD,OAFA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QACpCN,KAAK0hE,IAGdh1D,EAAO1N,UAAUkrE,aACjBx9D,EAAO1N,UAAUmrE,aAAe,SAAuBzI,EAAQ6H,GAG7D,OAFA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QACpCN,KAAK0hE,GAAW1hE,KAAK0hE,EAAS,IAAM,GAG7Ch1D,EAAO1N,UAAUorE,aACjB19D,EAAO1N,UAAU6mE,aAAe,SAAuBnE,EAAQ6H,GAG7D,OAFA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QACnCN,KAAK0hE,IAAW,EAAK1hE,KAAK0hE,EAAS,IAG7Ch1D,EAAO1N,UAAUqrE,aACjB39D,EAAO1N,UAAUsrE,aAAe,SAAuB5I,EAAQ6H,GAI7D,OAHA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,SAElCN,KAAK0hE,GACT1hE,KAAK0hE,EAAS,IAAM,EACpB1hE,KAAK0hE,EAAS,IAAM,IACD,SAAnB1hE,KAAK0hE,EAAS,IAGrBh1D,EAAO1N,UAAUurE,aACjB79D,EAAO1N,UAAUwrE,aAAe,SAAuB9I,EAAQ6H,GAI7D,OAHA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QAEpB,SAAfN,KAAK0hE,IACT1hE,KAAK0hE,EAAS,IAAM,GACrB1hE,KAAK0hE,EAAS,IAAM,EACrB1hE,KAAK0hE,EAAS,KAGlBh1D,EAAO1N,UAAUyrE,UAAY,SAAoB/I,EAAQnF,EAAYgN,GACnE7H,KAAoB,EACpBnF,KAA4B,EACvBgN,GAAUN,EAAYvH,EAAQnF,EAAYv8D,KAAKM,QAKpD,IAHA,IAAIzH,EAAMmH,KAAK0hE,GACXmI,EAAM,EACNzpE,EAAI,IACCA,EAAIm8D,IAAesN,GAAO,MACjChxE,GAAOmH,KAAK0hE,EAASthE,GAAKypE,EAM5B,OAFIhxE,IAFJgxE,GAAO,OAEShxE,GAAO4N,KAAKikE,IAAI,EAAG,EAAInO,IAEhC1jE,GAGT6T,EAAO1N,UAAU2rE,UAAY,SAAoBjJ,EAAQnF,EAAYgN,GACnE7H,KAAoB,EACpBnF,KAA4B,EACvBgN,GAAUN,EAAYvH,EAAQnF,EAAYv8D,KAAKM,QAKpD,IAHA,IAAIF,EAAIm8D,EACJsN,EAAM,EACNhxE,EAAMmH,KAAK0hE,IAAWthE,GACnBA,EAAI,IAAMypE,GAAO,MACtBhxE,GAAOmH,KAAK0hE,IAAWthE,GAAKypE,EAM9B,OAFIhxE,IAFJgxE,GAAO,OAEShxE,GAAO4N,KAAKikE,IAAI,EAAG,EAAInO,IAEhC1jE,GAGT6T,EAAO1N,UAAU4rE,SAAW,SAAmBlJ,EAAQ6H,GAGrD,OAFA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QACtB,IAAfN,KAAK0hE,IAC0B,GAA5B,IAAO1hE,KAAK0hE,GAAU,GADK1hE,KAAK0hE,IAI3Ch1D,EAAO1N,UAAU6rE,YAAc,SAAsBnJ,EAAQ6H,GAC3D7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QAC3C,IAAIzH,EAAMmH,KAAK0hE,GAAW1hE,KAAK0hE,EAAS,IAAM,EAC9C,OAAc,MAAN7oE,EAAsB,WAANA,EAAmBA,GAG7C6T,EAAO1N,UAAU8rE,YAAc,SAAsBpJ,EAAQ6H,GAC3D7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QAC3C,IAAIzH,EAAMmH,KAAK0hE,EAAS,GAAM1hE,KAAK0hE,IAAW,EAC9C,OAAc,MAAN7oE,EAAsB,WAANA,EAAmBA,GAG7C6T,EAAO1N,UAAU+rE,YAAc,SAAsBrJ,EAAQ6H,GAI3D,OAHA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QAEnCN,KAAK0hE,GACV1hE,KAAK0hE,EAAS,IAAM,EACpB1hE,KAAK0hE,EAAS,IAAM,GACpB1hE,KAAK0hE,EAAS,IAAM,IAGzBh1D,EAAO1N,UAAUgsE,YAAc,SAAsBtJ,EAAQ6H,GAI3D,OAHA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QAEnCN,KAAK0hE,IAAW,GACrB1hE,KAAK0hE,EAAS,IAAM,GACpB1hE,KAAK0hE,EAAS,IAAM,EACpB1hE,KAAK0hE,EAAS,IAGnBh1D,EAAO1N,UAAUisE,YAAc,SAAsBvJ,EAAQ6H,GAG3D,OAFA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QACpCsiE,EAAQxlE,KAAK4C,KAAM0hE,GAAQ,EAAM,GAAI,IAG9Ch1D,EAAO1N,UAAUksE,YAAc,SAAsBxJ,EAAQ6H,GAG3D,OAFA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QACpCsiE,EAAQxlE,KAAK4C,KAAM0hE,GAAQ,EAAO,GAAI,IAG/Ch1D,EAAO1N,UAAUmsE,aAAe,SAAuBzJ,EAAQ6H,GAG7D,OAFA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QACpCsiE,EAAQxlE,KAAK4C,KAAM0hE,GAAQ,EAAM,GAAI,IAG9Ch1D,EAAO1N,UAAUosE,aAAe,SAAuB1J,EAAQ6H,GAG7D,OAFA7H,KAAoB,EACf6H,GAAUN,EAAYvH,EAAQ,EAAG1hE,KAAKM,QACpCsiE,EAAQxlE,KAAK4C,KAAM0hE,GAAQ,EAAO,GAAI,IAS/Ch1D,EAAO1N,UAAUqsE,YACjB3+D,EAAO1N,UAAUssE,YAAc,SAAsB1vE,EAAO8lE,EAAQnF,EAAYgN,GAC9E3tE,GAASA,EACT8lE,KAAoB,EACpBnF,KAA4B,EACvBgN,GAEHJ,EAASnpE,KAAMpE,EAAO8lE,EAAQnF,EADf91D,KAAKikE,IAAI,EAAG,EAAInO,GAAc,EACO,GAGtD,IAAIsN,EAAM,EACNzpE,EAAI,EAER,IADAJ,KAAK0hE,GAAkB,IAAR9lE,IACNwE,EAAIm8D,IAAesN,GAAO,MACjC7pE,KAAK0hE,EAASthE,GAAMxE,EAAQiuE,EAAO,IAGrC,OAAOnI,EAASnF,GAGlB7vD,EAAO1N,UAAUusE,YACjB7+D,EAAO1N,UAAUwsE,YAAc,SAAsB5vE,EAAO8lE,EAAQnF,EAAYgN,GAC9E3tE,GAASA,EACT8lE,KAAoB,EACpBnF,KAA4B,EACvBgN,GAEHJ,EAASnpE,KAAMpE,EAAO8lE,EAAQnF,EADf91D,KAAKikE,IAAI,EAAG,EAAInO,GAAc,EACO,GAGtD,IAAIn8D,EAAIm8D,EAAa,EACjBsN,EAAM,EAEV,IADA7pE,KAAK0hE,EAASthE,GAAa,IAARxE,IACVwE,GAAK,IAAMypE,GAAO,MACzB7pE,KAAK0hE,EAASthE,GAAMxE,EAAQiuE,EAAO,IAGrC,OAAOnI,EAASnF,GAGlB7vD,EAAO1N,UAAUysE,WACjB/+D,EAAO1N,UAAU0sE,WAAa,SAAqB9vE,EAAO8lE,EAAQ6H,GAKhE,OAJA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GAAUJ,EAASnpE,KAAMpE,EAAO8lE,EAAQ,EAAG,IAAM,GACtD1hE,KAAK0hE,GAAmB,IAAR9lE,EACT8lE,EAAS,GAGlBh1D,EAAO1N,UAAU2sE,cACjBj/D,EAAO1N,UAAU4sE,cAAgB,SAAwBhwE,EAAO8lE,EAAQ6H,GAMtE,OALA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GAAUJ,EAASnpE,KAAMpE,EAAO8lE,EAAQ,EAAG,MAAQ,GACxD1hE,KAAK0hE,GAAmB,IAAR9lE,EAChBoE,KAAK0hE,EAAS,GAAM9lE,IAAU,EACvB8lE,EAAS,GAGlBh1D,EAAO1N,UAAU6sE,cACjBn/D,EAAO1N,UAAU8sE,cAAgB,SAAwBlwE,EAAO8lE,EAAQ6H,GAMtE,OALA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GAAUJ,EAASnpE,KAAMpE,EAAO8lE,EAAQ,EAAG,MAAQ,GACxD1hE,KAAK0hE,GAAW9lE,IAAU,EAC1BoE,KAAK0hE,EAAS,GAAc,IAAR9lE,EACb8lE,EAAS,GAGlBh1D,EAAO1N,UAAU+sE,cACjBr/D,EAAO1N,UAAUgtE,cAAgB,SAAwBpwE,EAAO8lE,EAAQ6H,GAQtE,OAPA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GAAUJ,EAASnpE,KAAMpE,EAAO8lE,EAAQ,EAAG,WAAY,GAC5D1hE,KAAK0hE,EAAS,GAAM9lE,IAAU,GAC9BoE,KAAK0hE,EAAS,GAAM9lE,IAAU,GAC9BoE,KAAK0hE,EAAS,GAAM9lE,IAAU,EAC9BoE,KAAK0hE,GAAmB,IAAR9lE,EACT8lE,EAAS,GAGlBh1D,EAAO1N,UAAUitE,cACjBv/D,EAAO1N,UAAUktE,cAAgB,SAAwBtwE,EAAO8lE,EAAQ6H,GAQtE,OAPA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GAAUJ,EAASnpE,KAAMpE,EAAO8lE,EAAQ,EAAG,WAAY,GAC5D1hE,KAAK0hE,GAAW9lE,IAAU,GAC1BoE,KAAK0hE,EAAS,GAAM9lE,IAAU,GAC9BoE,KAAK0hE,EAAS,GAAM9lE,IAAU,EAC9BoE,KAAK0hE,EAAS,GAAc,IAAR9lE,EACb8lE,EAAS,GAGlBh1D,EAAO1N,UAAUmtE,WAAa,SAAqBvwE,EAAO8lE,EAAQnF,EAAYgN,GAG5E,GAFA3tE,GAASA,EACT8lE,KAAoB,GACf6H,EAAU,CACb,IAAIhvD,EAAQ9T,KAAKikE,IAAI,EAAI,EAAInO,EAAc,GAE3C4M,EAASnpE,KAAMpE,EAAO8lE,EAAQnF,EAAYhiD,EAAQ,GAAIA,GAGxD,IAAIna,EAAI,EACJypE,EAAM,EACNuC,EAAM,EAEV,IADApsE,KAAK0hE,GAAkB,IAAR9lE,IACNwE,EAAIm8D,IAAesN,GAAO,MAC7BjuE,EAAQ,GAAa,IAARwwE,GAAsC,IAAzBpsE,KAAK0hE,EAASthE,EAAI,KAC9CgsE,EAAM,GAERpsE,KAAK0hE,EAASthE,IAAOxE,EAAQiuE,GAAQ,GAAKuC,EAAM,IAGlD,OAAO1K,EAASnF,GAGlB7vD,EAAO1N,UAAUqtE,WAAa,SAAqBzwE,EAAO8lE,EAAQnF,EAAYgN,GAG5E,GAFA3tE,GAASA,EACT8lE,KAAoB,GACf6H,EAAU,CACb,IAAIhvD,EAAQ9T,KAAKikE,IAAI,EAAI,EAAInO,EAAc,GAE3C4M,EAASnpE,KAAMpE,EAAO8lE,EAAQnF,EAAYhiD,EAAQ,GAAIA,GAGxD,IAAIna,EAAIm8D,EAAa,EACjBsN,EAAM,EACNuC,EAAM,EAEV,IADApsE,KAAK0hE,EAASthE,GAAa,IAARxE,IACVwE,GAAK,IAAMypE,GAAO,MACrBjuE,EAAQ,GAAa,IAARwwE,GAAsC,IAAzBpsE,KAAK0hE,EAASthE,EAAI,KAC9CgsE,EAAM,GAERpsE,KAAK0hE,EAASthE,IAAOxE,EAAQiuE,GAAQ,GAAKuC,EAAM,IAGlD,OAAO1K,EAASnF,GAGlB7vD,EAAO1N,UAAUstE,UAAY,SAAoB1wE,EAAO8lE,EAAQ6H,GAM9D,OALA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GAAUJ,EAASnpE,KAAMpE,EAAO8lE,EAAQ,EAAG,KAAO,KACnD9lE,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtCoE,KAAK0hE,GAAmB,IAAR9lE,EACT8lE,EAAS,GAGlBh1D,EAAO1N,UAAUutE,aAAe,SAAuB3wE,EAAO8lE,EAAQ6H,GAMpE,OALA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GAAUJ,EAASnpE,KAAMpE,EAAO8lE,EAAQ,EAAG,OAAS,OACzD1hE,KAAK0hE,GAAmB,IAAR9lE,EAChBoE,KAAK0hE,EAAS,GAAM9lE,IAAU,EACvB8lE,EAAS,GAGlBh1D,EAAO1N,UAAUwtE,aAAe,SAAuB5wE,EAAO8lE,EAAQ6H,GAMpE,OALA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GAAUJ,EAASnpE,KAAMpE,EAAO8lE,EAAQ,EAAG,OAAS,OACzD1hE,KAAK0hE,GAAW9lE,IAAU,EAC1BoE,KAAK0hE,EAAS,GAAc,IAAR9lE,EACb8lE,EAAS,GAGlBh1D,EAAO1N,UAAUytE,aAAe,SAAuB7wE,EAAO8lE,EAAQ6H,GAQpE,OAPA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GAAUJ,EAASnpE,KAAMpE,EAAO8lE,EAAQ,EAAG,YAAa,YAC7D1hE,KAAK0hE,GAAmB,IAAR9lE,EAChBoE,KAAK0hE,EAAS,GAAM9lE,IAAU,EAC9BoE,KAAK0hE,EAAS,GAAM9lE,IAAU,GAC9BoE,KAAK0hE,EAAS,GAAM9lE,IAAU,GACvB8lE,EAAS,GAGlBh1D,EAAO1N,UAAU0tE,aAAe,SAAuB9wE,EAAO8lE,EAAQ6H,GASpE,OARA3tE,GAASA,EACT8lE,KAAoB,EACf6H,GAAUJ,EAASnpE,KAAMpE,EAAO8lE,EAAQ,EAAG,YAAa,YACzD9lE,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5CoE,KAAK0hE,GAAW9lE,IAAU,GAC1BoE,KAAK0hE,EAAS,GAAM9lE,IAAU,GAC9BoE,KAAK0hE,EAAS,GAAM9lE,IAAU,EAC9BoE,KAAK0hE,EAAS,GAAc,IAAR9lE,EACb8lE,EAAS,GAkBlBh1D,EAAO1N,UAAU2tE,aAAe,SAAuB/wE,EAAO8lE,EAAQ6H,GACpE,OAAOF,EAAWrpE,KAAMpE,EAAO8lE,GAAQ,EAAM6H,IAG/C78D,EAAO1N,UAAU4tE,aAAe,SAAuBhxE,EAAO8lE,EAAQ6H,GACpE,OAAOF,EAAWrpE,KAAMpE,EAAO8lE,GAAQ,EAAO6H,IAahD78D,EAAO1N,UAAU6tE,cAAgB,SAAwBjxE,EAAO8lE,EAAQ6H,GACtE,OAAOC,EAAYxpE,KAAMpE,EAAO8lE,GAAQ,EAAM6H,IAGhD78D,EAAO1N,UAAU8tE,cAAgB,SAAwBlxE,EAAO8lE,EAAQ6H,GACtE,OAAOC,EAAYxpE,KAAMpE,EAAO8lE,GAAQ,EAAO6H,IAIjD78D,EAAO1N,UAAU4kE,KAAO,SAAej+D,EAAQonE,EAAaxR,EAAOmC,GACjE,IAAKhxD,EAAOzF,SAAStB,GAAS,MAAM,IAAI7F,UAAU,+BAQlD,GAPKy7D,IAAOA,EAAQ,GACfmC,GAAe,IAARA,IAAWA,EAAM19D,KAAKM,QAC9BysE,GAAepnE,EAAOrF,SAAQysE,EAAcpnE,EAAOrF,QAClDysE,IAAaA,EAAc,GAC5BrP,EAAM,GAAKA,EAAMnC,IAAOmC,EAAMnC,GAG9BmC,IAAQnC,EAAO,OAAO,EAC1B,GAAsB,IAAlB51D,EAAOrF,QAAgC,IAAhBN,KAAKM,OAAc,OAAO,EAGrD,GAAIysE,EAAc,EAChB,MAAM,IAAIxM,WAAW,6BAEvB,GAAIhF,EAAQ,GAAKA,GAASv7D,KAAKM,OAAQ,MAAM,IAAIigE,WAAW,sBAC5D,GAAI7C,EAAM,EAAG,MAAM,IAAI6C,WAAW,2BAG9B7C,EAAM19D,KAAKM,SAAQo9D,EAAM19D,KAAKM,QAC9BqF,EAAOrF,OAASysE,EAAcrP,EAAMnC,IACtCmC,EAAM/3D,EAAOrF,OAASysE,EAAcxR,GAGtC,IAAI0B,EAAMS,EAAMnC,EAahB,OAXIv7D,OAAS2F,GAAqD,mBAApC8I,WAAWzP,UAAUguE,WAEjDhtE,KAAKgtE,WAAWD,EAAaxR,EAAOmC,GAEpCjvD,WAAWzP,UAAUurB,IAAIrpB,KACvByE,EACA3F,KAAK0pE,SAASnO,EAAOmC,GACrBqP,GAIG9P,GAOTvwD,EAAO1N,UAAU+oE,KAAO,SAAelvE,EAAK0iE,EAAOmC,EAAK4F,GAEtD,GAAmB,iBAARzqE,EAAkB,CAS3B,GARqB,iBAAV0iE,GACT+H,EAAW/H,EACXA,EAAQ,EACRmC,EAAM19D,KAAKM,QACa,iBAARo9D,IAChB4F,EAAW5F,EACXA,EAAM19D,KAAKM,aAEIjD,IAAbimE,GAA8C,iBAAbA,EACnC,MAAM,IAAIxjE,UAAU,6BAEtB,GAAwB,iBAAbwjE,IAA0B52D,EAAO62D,WAAWD,GACrD,MAAM,IAAIxjE,UAAU,qBAAuBwjE,GAE7C,GAAmB,IAAfzqE,EAAIyH,OAAc,CACpB,IAAIiD,EAAO1K,EAAIwW,WAAW,IACR,SAAbi0D,GAAuB//D,EAAO,KAClB,WAAb+/D,KAEFzqE,EAAM0K,QAGc,iBAAR1K,EAChBA,GAAY,IACY,kBAARA,IAChBA,EAAMotE,OAAOptE,IAIf,GAAI0iE,EAAQ,GAAKv7D,KAAKM,OAASi7D,GAASv7D,KAAKM,OAASo9D,EACpD,MAAM,IAAI6C,WAAW,sBAGvB,GAAI7C,GAAOnC,EACT,OAAOv7D,KAQT,IAAII,EACJ,GANAm7D,KAAkB,EAClBmC,OAAcrgE,IAARqgE,EAAoB19D,KAAKM,OAASo9D,IAAQ,EAE3C7kE,IAAKA,EAAM,GAGG,iBAARA,EACT,IAAKuH,EAAIm7D,EAAOn7D,EAAIs9D,IAAOt9D,EACzBJ,KAAKI,GAAKvH,MAEP,CACL,IAAI4pE,EAAQ/1D,EAAOzF,SAASpO,GACxBA,EACA6T,EAAOvI,KAAKtL,EAAKyqE,GACjBrG,EAAMwF,EAAMniE,OAChB,GAAY,IAAR28D,EACF,MAAM,IAAIn9D,UAAU,cAAgBjH,EAClC,qCAEJ,IAAKuH,EAAI,EAAGA,EAAIs9D,EAAMnC,IAASn7D,EAC7BJ,KAAKI,EAAIm7D,GAASkH,EAAMriE,EAAI68D,GAIhC,OAAOj9D,MAMT,IAAIitE,EAAoB,oBAgBxB,SAAStI,EAAa9O,EAAQplD,GAE5B,IAAI02D,EADJ12D,EAAQA,GAASmC,IAMjB,IAJA,IAAItS,EAASu1D,EAAOv1D,OAChB4sE,EAAgB,KAChBzK,EAAQ,GAEHriE,EAAI,EAAGA,EAAIE,IAAUF,EAAG,CAI/B,IAHA+mE,EAAYtR,EAAOxmD,WAAWjP,IAGd,OAAU+mE,EAAY,MAAQ,CAE5C,IAAK+F,EAAe,CAElB,GAAI/F,EAAY,MAAQ,EAEjB12D,GAAS,IAAM,GAAGgyD,EAAM5hE,KAAK,IAAM,IAAM,KAC9C,SACK,GAAIT,EAAI,IAAME,EAAQ,EAEtBmQ,GAAS,IAAM,GAAGgyD,EAAM5hE,KAAK,IAAM,IAAM,KAC9C,SAIFqsE,EAAgB/F,EAEhB,SAIF,GAAIA,EAAY,MAAQ,EACjB12D,GAAS,IAAM,GAAGgyD,EAAM5hE,KAAK,IAAM,IAAM,KAC9CqsE,EAAgB/F,EAChB,SAIFA,EAAkE,OAArD+F,EAAgB,OAAU,GAAK/F,EAAY,YAC/C+F,IAEJz8D,GAAS,IAAM,GAAGgyD,EAAM5hE,KAAK,IAAM,IAAM,KAMhD,GAHAqsE,EAAgB,KAGZ/F,EAAY,IAAM,CACpB,IAAK12D,GAAS,GAAK,EAAG,MACtBgyD,EAAM5hE,KAAKsmE,QACN,GAAIA,EAAY,KAAO,CAC5B,IAAK12D,GAAS,GAAK,EAAG,MACtBgyD,EAAM5hE,KACJsmE,GAAa,EAAM,IACP,GAAZA,EAAmB,UAEhB,GAAIA,EAAY,MAAS,CAC9B,IAAK12D,GAAS,GAAK,EAAG,MACtBgyD,EAAM5hE,KACJsmE,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,SAEhB,MAAIA,EAAY,SASrB,MAAM,IAAI/uE,MAAM,sBARhB,IAAKqY,GAAS,GAAK,EAAG,MACtBgyD,EAAM5hE,KACJsmE,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,MAOzB,OAAO1E,EA4BT,SAASmC,EAAez2D,GACtB,OAAOkkB,EAAOwqC,YAxHhB,SAAsB1uD,GAMpB,IAFAA,GAFAA,EAAMA,EAAInC,MAAM,KAAK,IAEX3D,OAAOW,QAAQikE,EAAmB,KAEpC3sE,OAAS,EAAG,MAAO,GAE3B,KAAO6N,EAAI7N,OAAS,GAAM,GACxB6N,GAAY,IAEd,OAAOA,EA6GmBg/D,CAAYh/D,IAGxC,SAASk4D,EAAYj8C,EAAKi2C,EAAKqB,EAAQphE,GACrC,IAAK,IAAIF,EAAI,EAAGA,EAAIE,KACbF,EAAIshE,GAAUrB,EAAI//D,QAAYF,GAAKgqB,EAAI9pB,UADhBF,EAE5BigE,EAAIjgE,EAAIshE,GAAUt3C,EAAIhqB,GAExB,OAAOA,EAMT,SAASujE,EAAYp/D,EAAKtG,GACxB,OAAOsG,aAAetG,GACZ,MAAPsG,GAAkC,MAAnBA,EAAImK,aAA+C,MAAxBnK,EAAImK,YAAYtN,MACzDmD,EAAImK,YAAYtN,OAASnD,EAAKmD,KAEpC,SAAS+iE,EAAa5/D,GAEpB,OAAOA,GAAQA,EAKjB,IAAIykE,EAAsB,WAGxB,IAFA,IAAIoE,EAAW,mBACXC,EAAQ,IAAIzqE,MAAM,KACbxC,EAAI,EAAGA,EAAI,KAAMA,EAExB,IADA,IAAIktE,EAAU,GAAJltE,EACDu0D,EAAI,EAAGA,EAAI,KAAMA,EACxB0Y,EAAMC,EAAM3Y,GAAKyY,EAAShtE,GAAKgtE,EAASzY,GAG5C,OAAO0Y,EATiB,iCC5wD1B,IAAIE,EAAe,EAAQ,OAEvBC,EAAW,EAAQ,OAEnBC,EAAWD,EAASD,EAAa,6BAErC91E,EAAOC,QAAU,SAA4B0J,EAAMssE,GAClD,IAAIC,EAAYJ,EAAansE,IAAQssE,GACrC,MAAyB,mBAAdC,GAA4BF,EAASrsE,EAAM,gBAAkB,EAChEosE,EAASG,GAEVA,iCCXR,IAAInvE,EAAO,EAAQ,OACf+uE,EAAe,EAAQ,OAEvBK,EAASL,EAAa,8BACtBM,EAAQN,EAAa,6BACrBO,EAAgBP,EAAa,mBAAmB,IAAS/uE,EAAK0C,KAAK2sE,EAAOD,GAE1EG,EAAQR,EAAa,qCAAqC,GAC1DS,EAAkBT,EAAa,2BAA2B,GAC1DU,EAAOV,EAAa,cAExB,GAAIS,EACH,IACCA,EAAgB,GAAI,IAAK,CAAEpyE,MAAO,IACjC,MAAO0M,GAER0lE,EAAkB,KAIpBv2E,EAAOC,QAAU,SAAkBw2E,GAClC,IAAIC,EAAOL,EAActvE,EAAMqvE,EAAO/kE,WACtC,GAAIilE,GAASC,EAAiB,CAC7B,IAAIxgE,EAAOugE,EAAMI,EAAM,UACnB3gE,EAAK4gE,cAERJ,EACCG,EACA,SACA,CAAEvyE,MAAO,EAAIqyE,EAAK,EAAGC,EAAiB5tE,QAAUwI,UAAUxI,OAAS,MAItE,OAAO6tE,GAGR,IAAIE,EAAY,WACf,OAAOP,EAActvE,EAAMovE,EAAQ9kE,YAGhCklE,EACHA,EAAgBv2E,EAAOC,QAAS,QAAS,CAAEkE,MAAOyyE,IAElD52E,EAAOC,QAAQmL,MAAQwrE,sFC7CpBC,EAA4B,mBAAXxL,QAAoD,iBAApBA,OAAOyL,SAAwB,SAAUhqE,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,mBAAXu+D,QAAyBv+D,EAAImK,cAAgBo0D,QAAUv+D,IAAQu+D,OAAO9jE,UAAY,gBAAkBuF,GAEtQ,SAASiqE,EAAmBniE,GAAO,GAAIzJ,MAAMiD,QAAQwG,GAAM,CAAE,IAAK,IAAIjM,EAAI,EAAGquE,EAAO7rE,MAAMyJ,EAAI/L,QAASF,EAAIiM,EAAI/L,OAAQF,IAAOquE,EAAKruE,GAAKiM,EAAIjM,GAAM,OAAOquE,EAAe,OAAO7rE,MAAMuB,KAAKkI,GAI1L,IAAIqiE,EAAkB,GAOlBC,EAAS,SAAgBC,GAC3B,OAAOA,GAAUA,EAAOC,KAA2B,SAApBD,EAAOC,IAAI5wE,MAWxC6wE,EAAgB,SAAuBD,GACzC,OAAOA,EAAI5wE,KAAO,IAAM4wE,EAAIjqE,IA+C1BmqE,EAAa,SAASA,EAAW5U,EAAO6U,EAAWC,EAASC,GAC9D,GAAIF,EAAU7U,GACZ,OAAO8U,EAAQ9U,GAGjB,GAAIA,GAA2E,iBAAhD,IAAVA,EAAwB,YAAcmU,EAAQnU,IAAsB,CACvF,IAAK,IAAI38D,KAAO28D,EAEVA,EAAM5rD,eAAe/Q,KACvB28D,EAAM38D,GAAOuxE,EAAW5U,EAAM38D,GAAMwxE,EAAWC,EAASC,IAGxDA,IACF/U,EAlCa,SAAsBA,GACvC,GAAIv3D,MAAMiD,QAAQs0D,GAChB,OAAOA,EAAMzqD,QAAO,SAAU7W,GAC5B,OAAOA,IAAQ61E,KAGnB,IAAK,IAAIlxE,KAAO28D,EACVA,EAAM38D,KAASkxE,UACVvU,EAAM38D,GAGjB,OAAO28D,EAuBKgV,CAAahV,IAGzB,OAAOA,GA8DT,QA3BsB,SAAyB3+D,EAAUvD,GAEvD,GADAA,EAAUA,GAAW,IAChBuD,EAASue,MACZ,MAAO,GAET,IAAIq1D,EAAgB,IAAK5zE,GACrB6zE,EAAcrrE,OAAOqC,KAAK+oE,EAAcrzD,UAAY,IAAI9J,QAAO,SAAUxS,EAAKxB,GAChF,MAAO,GAAG6E,OAAO0rE,EAAmB/uE,GAAM+uE,EAAmBhzE,EAASugB,SAAS9d,OAC9E,IAECqxE,EAAa,GAAGxsE,OAAO0rE,EAAmBY,EAAcr1D,OAAQy0D,EAAmBa,IAEnFE,EAAY,IAAIC,IAAIF,EAAW58D,KAAI,SAAU+8D,GAC/C,MAAO,CAACX,EAAcW,EAAOZ,KAAMY,OAWrC,OARAH,EAAW/xE,SAAQ,SAAUuX,GAC3B,IAAI46D,EAzCc,SAAyB56D,EAAM66D,GACnD,OAAK/sE,MAAMiD,QAAQ8pE,GAID3rE,OAAOqC,KAAKyO,GAAMpF,QAAO,SAAUkgE,GACnD,OAA4C,IAArCD,EAAgBrzE,QAAQszE,MAGd39D,QAAO,SAAU49D,EAAUC,GAE5C,OADAD,EAASC,GAAch7D,EAAKg7D,GACrBD,IACN,IAVM/6D,EAuCWi7D,CAAgBj7D,EAAM7c,EAAQ03E,iBAEhD3rE,OAAOQ,OAAOsQ,EAAMi6D,EAAWW,EAAaf,GAAQ,SAAU5V,GAC5D,OApDc,SAAuBwW,EAAWxW,EAAMmW,GAC1D,IAAIc,EAzDQ,SAAiBT,EAAWxW,GACxC,IAAIkX,EAAYlX,EAAK8V,IACjB5wE,EAAOgyE,EAAUC,SACjBtrE,EAAKqrE,EAAUrrE,GAEfurE,EAAYrB,EAAc,CAAE7wE,KAAMA,EAAM2G,GAAIA,IAEhD,OAAO2qE,EAAUvkD,IAAImlD,IAAczB,EAkDhB0B,CAAQb,EAAWxW,GACtC,OAAIiX,IAAiBtB,EACZQ,EAAmBc,EAAejX,EAEpCiX,EA+CIK,CAAcd,EAAWxW,EAAM9gE,EAAQi3E,oBAC7Cj3E,EAAQi3E,sBAGNE,EAAcr1D,kTC9IvB,SAASu2D,EAAQ1B,EAAQ2B,GACvB,IAAIlqE,EAAOrC,OAAOqC,KAAKuoE,GAEvB,GAAI5qE,OAAOwsE,sBAAuB,CAChC,IAAIC,EAAUzsE,OAAOwsE,sBAAsB5B,GAC3C2B,IAAmBE,EAAUA,EAAQ/gE,QAAO,SAAUghE,GACpD,OAAO1sE,OAAO2sE,yBAAyB/B,EAAQ8B,GAAK9I,eACjDvhE,EAAKxF,KAAKgC,MAAMwD,EAAMoqE,GAG7B,OAAOpqE,EAGT,SAASuqE,EAAejrE,GACtB,IAAK,IAAIvF,EAAI,EAAGA,EAAI0I,UAAUxI,OAAQF,IAAK,CACzC,IAAIY,EAAS,MAAQ8H,UAAU1I,GAAK0I,UAAU1I,GAAK,GACnDA,EAAI,EAAIkwE,EAAQtsE,OAAOhD,IAAS,GAAIzD,SAAQ,SAAUC,GACpDqzE,EAAgBlrE,EAAQnI,EAAKwD,EAAOxD,OACjCwG,OAAO8sE,0BAA4B9sE,OAAOC,iBAAiB0B,EAAQ3B,OAAO8sE,0BAA0B9vE,IAAWsvE,EAAQtsE,OAAOhD,IAASzD,SAAQ,SAAUC,GAC5JwG,OAAOE,eAAeyB,EAAQnI,EAAKwG,OAAO2sE,yBAAyB3vE,EAAQxD,OAI/E,OAAOmI,EAGT,SAAS2oE,EAAQ/pE,GAGf,OAAO+pE,EAAU,mBAAqBxL,QAAU,iBAAmBA,OAAOyL,SAAW,SAAUhqE,GAC7F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBu+D,QAAUv+D,EAAImK,cAAgBo0D,QAAUv+D,IAAQu+D,OAAO9jE,UAAY,gBAAkBuF,GACvH+pE,EAAQ/pE,GAGb,SAASwsE,IACPA,EAAc,SAAUC,EAAIC,GAC1B,OAAO,IAAIC,EAAYF,OAAI,EAAQC,IAGrC,IAAIE,EAAS/mE,OAAOpL,UAChBoyE,EAAU,IAAIC,QAElB,SAASH,EAAYF,EAAIM,EAAOL,GAC9B,IAAIjvB,EAAQ,IAAI53C,OAAO4mE,EAAIM,GAE3B,OAAOF,EAAQ7mD,IAAIy3B,EAAOivB,GAAUG,EAAQpmD,IAAIgmD,IAAMO,EAAgBvvB,EAAOkvB,EAAYlyE,WAG3F,SAASwyE,EAAYzjE,EAAQijE,GAC3B,IAAIS,EAAIL,EAAQpmD,IAAIgmD,GAEpB,OAAOhtE,OAAOqC,KAAKorE,GAAGx/D,QAAO,SAAUg/D,EAAQ7vE,GAC7C,OAAO6vE,EAAO7vE,GAAQ2M,EAAO0jE,EAAErwE,IAAQ6vE,IACtCjtE,OAAO9E,OAAO,OAGnB,OAAOwyE,EAAUR,EAAa9mE,QAAS8mE,EAAYlyE,UAAUmN,KAAO,SAAUgC,GAC5E,IAAIJ,EAASojE,EAAOhlE,KAAKjL,KAAKlB,KAAMmO,GAEpC,OAAOJ,IAAWA,EAAOkjE,OAASO,EAAYzjE,EAAQ/N,OAAQ+N,GAC7DmjE,EAAYlyE,UAAU8jE,OAAO95D,SAAW,SAAUmF,EAAKwjE,GACxD,GAAI,iBAAmBA,EAAc,CACnC,IAAIV,EAASG,EAAQpmD,IAAIhrB,MAEzB,OAAOmxE,EAAOrO,OAAO95D,SAAS9H,KAAKlB,KAAMmO,EAAKwjE,EAAa3oE,QAAQ,gBAAgB,SAAU4M,EAAGxU,GAC9F,MAAO,IAAM6vE,EAAO7vE,OAIxB,GAAI,mBAAqBuwE,EAAc,CACrC,IAAI3vB,EAAQhiD,KAEZ,OAAOmxE,EAAOrO,OAAO95D,SAAS9H,KAAKlB,KAAMmO,GAAK,WAC5C,IAAItF,EAAOC,UACX,MAAO,iBAAmBD,EAAKA,EAAKvI,OAAS,KAAOuI,EAAO,GAAG/C,MAAM5E,KAAK2H,IAAOhI,KAAK2wE,EAAY3oE,EAAMm5C,IAAS2vB,EAAa9uE,MAAM7C,KAAM6I,MAI7I,OAAOsoE,EAAOrO,OAAO95D,SAAS9H,KAAKlB,KAAMmO,EAAKwjE,IAC7CZ,EAAYluE,MAAM7C,KAAM8I,WAG7B,SAAS+nE,EAAgBtsE,EAAK/G,EAAK5B,GAYjC,OAXI4B,KAAO+G,EACTP,OAAOE,eAAeK,EAAK/G,EAAK,CAC9B5B,MAAOA,EACPgsE,YAAY,EACZwG,cAAc,EACdwD,UAAU,IAGZrtE,EAAI/G,GAAO5B,EAGN2I,EAGT,SAASmtE,EAAUG,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIhyE,UAAU,sDAGtB+xE,EAAS7yE,UAAYgF,OAAO9E,OAAO4yE,GAAcA,EAAW9yE,UAAW,CACrE0P,YAAa,CACX9S,MAAOi2E,EACPD,UAAU,EACVxD,cAAc,KAGlBpqE,OAAOE,eAAe2tE,EAAU,YAAa,CAC3CD,UAAU,IAERE,GAAYP,EAAgBM,EAAUC,GAG5C,SAASP,EAAgBtR,EAAGvtC,GAM1B,OALA6+C,EAAkBvtE,OAAOk/D,gBAAkB,SAAyBjD,EAAGvtC,GAErE,OADAutC,EAAE8R,UAAYr/C,EACPutC,GAGFsR,EAAgBtR,EAAGvtC,GAyC5B,SAASs/C,EAA4B/R,EAAGgS,GACtC,GAAKhS,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAOiS,EAAkBjS,EAAGgS,GACvD,IAAIva,EAAI1zD,OAAOhF,UAAU+H,SAAS7F,KAAK++D,GAAGn6D,MAAM,GAAI,GAEpD,MADU,WAAN4xD,GAAkBuI,EAAEvxD,cAAagpD,EAAIuI,EAAEvxD,YAAYtN,MAC7C,QAANs2D,GAAqB,QAANA,EAAoB90D,MAAMuB,KAAK87D,GACxC,cAANvI,GAAqB,2CAA2CltD,KAAKktD,GAAWwa,EAAkBjS,EAAGgS,QAAzG,GAGF,SAASC,EAAkB7lE,EAAK4wD,IACnB,MAAPA,GAAeA,EAAM5wD,EAAI/L,UAAQ28D,EAAM5wD,EAAI/L,QAE/C,IAAK,IAAIF,EAAI,EAAGquE,EAAO,IAAI7rE,MAAMq6D,GAAM78D,EAAI68D,EAAK78D,IAAKquE,EAAKruE,GAAKiM,EAAIjM,GAEnE,OAAOquE,EAmFT,SAAS0D,KAIT,IAAIC,EAAgCrB,EAAY,cAAe,CAC7Dn1E,MAAO,IAGT,SAASy2E,EAAep0E,GACtB,IAAIwqE,EAAM3/D,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,EAC1EyR,EAAQkuD,EAEZ,GAAI2J,EAAiB5nE,KAAKvM,GAAO,CAC/B,IAAIq0E,EAEArB,EAA0D,QAAhDqB,EAAcr0E,EAAKkM,MAAMioE,UAA+C,IAAhBE,OAAyB,EAASA,EAAYrB,OAEpH,GAAIA,GAAUA,EAAOr1E,MAAO,CAC1B,IAAI22E,EAAarpC,SAAS+nC,EAAOr1E,OAAS,IAC1C2e,EAAQ9T,KAAK+rE,MAAM/J,EAAM8J,IAI7B,OAAO9rE,KAAKkM,IAAI,GAAIlM,KAAKgiE,IAAI,EAAGluD,IAGlC,SAASk4D,EAAel4D,EAAOm4D,GAE7B,OADAA,EAAO,OAAQ,uBAAuB5vE,OAAOyX,EAAO,OAC7C,IAAU,CACfA,MAAOA,EACPo4D,SAAU,IACVC,QAAQ,IAIZ,IAgDIC,EAAQ,SAAeC,GACzB,OAAO,IAAIj7E,SAAQ,SAAUC,GAC3ByE,WAAWzE,EAASg7E,OAIpBC,EAAc,SAAqBC,GACrC,OAAOvsE,KAAKikE,IAAIjkE,KAAKwsE,MAAOD,IAyF1BE,EAAa,oDASjB,SAASC,EAAiBx0E,EAAO1G,GAC/B,IA+BI0B,EAASi3E,EAAeA,EAAe,GA/BvB,CAClBwC,UAAU,EACVC,cAAc,EAEdC,WAAY,SAAoBC,EAAOz5E,GACrC,GAAc,UAAVy5E,GAAqBz5E,EAAM,CAC7B,IAAI6jC,EAAQ,CAAC7jC,EAAKsH,KAAMtH,EAAK2G,SAASiP,QAAO,SAAUT,GACrD,OAAOA,KACN3F,KAAK,OAGR,OAFAoE,QAAQvK,MAAM,WAAWL,OAAO66B,SAChCjwB,QAAQvK,MAAMrJ,GAIhB4T,QAAQ0f,IAAI,IAAItqB,OAAOywE,EAAO,MAAMzwE,OAAOhJ,KAG7CE,QAAS,GACTw5E,WAAW,EACXC,YAAY,EACZv3E,QAAS,IACTw3E,SAAU,EACVC,OAAO,EACPr5C,SAAU,GACVh1B,aAASjI,EACTqL,iBAAkB,WAElBC,cAAe,aAI8C1Q,GAE/D,IAAK0B,EAAOi6E,YAAa,CACvB,IAAIC,EAA0B,IAAI/zE,UAAU,kCAE5C,MADAnG,EAAO25E,WAAW,QAASO,GACrBA,EAIR,IA5WsBxnE,EAAKjM,EA4WvB/B,EAAW1E,EAAOy5E,SAAW,OAAS,QACtCU,EAAQn6E,EAAOm6E,MAAQ,GAAGhxE,OAAOnJ,EAAOm6E,MAAO,KAAO,GACtDxoE,EAAW3R,EAAOo6E,gBAClBxoE,EAAO5R,EAAOy5E,SAAW,GAAK,IAElC,GAAIz5E,EAAOwR,MAAQ+nE,EAAW1oE,KAAK7Q,EAAOwR,MAAO,CAC/C,IAAIU,EAASlS,EAAOwR,KAAKa,MAAM,KAE/B,GAAsB,IAAlBH,EAAOvL,OAAc,CAEvB,IAAI0zE,GAtXmB5zE,EAsXc,EAlX3C,SAAyBiM,GACvB,GAAIzJ,MAAMiD,QAAQwG,GAAM,OAAOA,EAJxB4nE,CADe5nE,EAsXWR,IA9WnC,SAA+BQ,EAAKjM,GAClC,IAAI8zE,EAAY,MAAP7nE,EAAc,KAAyB,oBAAXy2D,QAA0Bz2D,EAAIy2D,OAAOyL,WAAaliE,EAAI,cAE3F,GAAU,MAAN6nE,EAAJ,CACA,IAIIC,EAAIhZ,EAJJ4N,EAAO,GACPqL,GAAK,EACLC,GAAK,EAIT,IACE,IAAKH,EAAKA,EAAGhzE,KAAKmL,KAAQ+nE,GAAMD,EAAKD,EAAGnS,QAAQ7nE,QAC9C6uE,EAAKloE,KAAKszE,EAAGv4E,QAETwE,GAAK2oE,EAAKzoE,SAAWF,GAH4Bg0E,GAAK,IAK5D,MAAOj8E,GACPk8E,GAAK,EACLlZ,EAAKhjE,EACL,QACA,IACOi8E,GAAsB,MAAhBF,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIG,EAAI,MAAMlZ,GAIlB,OAAO4N,GAlCwBuL,CAAsBjoE,EAAKjM,IAAM4xE,EAA4B3lE,EAAKjM,IAsDnG,WACE,MAAM,IAAIN,UAAU,6IAvDmFy0E,IAuXnGjpE,EAAW0oE,EAAQ,GACnBzoE,EAAOyoE,EAAQ,QAEf1oE,EAAWO,EAAO,GAKlBlS,EAAO2gC,WACT3gC,EAAO2gC,SAAW,IAAIx3B,OAAOnJ,EAAO2gC,SAAStuB,MAAM,KAAK0D,OAAOiuC,SAASr0C,KAAK,OAG/E,IAAInO,EAAUlD,EAAQkD,SAAW,GAAG2H,OAAOzE,EAAU,OAAOyE,OAAOwI,EAAU,KAAKxI,OAAOyI,GAAMzI,OAAOnJ,EAAO2gC,SAAU,YAAYx3B,OAAOgxE,GAErIn6E,EAAOK,QAAQgB,eAA+C,mBAAvBrB,EAAOi6E,cACjDj6E,EAAOK,QAAQgB,cAAgB,UAAYrB,EAAOi6E,aAWpD,IAAIY,EAAe,CAEjBr5E,QAASA,EACTnB,QAASL,EAAOK,QAChBw5E,UAAW75E,EAAO65E,UAClBC,WAAY95E,EAAO85E,WACnBx3E,iBAAkB,cAClB03E,MAAOh6E,EAAOg6E,MACdz3E,QAASvC,EAAOuC,QAChBoJ,QAAS3L,EAAO2L,QAChBoD,iBAAkB/O,EAAO+O,iBACzBC,cAAehP,EAAOgP,cAEtB2qE,WAAY35E,EAAO25E,WACnBmB,eAAgB96E,EAAO86E,eACvBC,cAAe/6E,EAAO+6E,cACtBrB,aAAc15E,EAAO05E,cAEnBt0E,EAAWJ,EAAMO,OAAOs1E,GA0C5B,OAzCAz1E,EAAS41E,iBAAmB18E,EAY5B8G,EAAS61E,mBAAqB,SAAUC,GACtC,OAAO1B,EAAiBx0E,EAAOiyE,EAAeA,EAAe,GAAI,IAAK34E,IAAW48E,KAQ/El7E,EAAOm7E,iBACT/1E,EAAS6C,aAAanH,QAAQiK,IAAI/K,EAAOm7E,iBAGT,mBAAvBn7E,EAAOi6E,aAjJpB,SAAoB70E,EAAUg2E,GAC5Bh2E,EAAS6C,aAAanH,QAAQiK,KAAI,SAAU/K,GAC1C,OAAOo7E,IAAWj8E,MAAK,SAAU86E,GAI/B,OAHAj6E,EAAOK,QAAU42E,EAAeA,EAAe,GAAIj3E,EAAOK,SAAU,GAAI,CACtEgB,cAAe,UAAU8H,OAAO8wE,KAE3Bj6E,QA4ITq7E,CAAWj2E,EAAUpF,EAAOi6E,aAG1Bj6E,EAAO+5E,UAxRW,SAAWuB,GACjC,IAAIh3E,EAAO6K,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,OAC3EosE,EAAwBD,EAActzE,SAAS2xE,WAC/CA,OAAuC,IAA1B4B,EAAmC/C,EAAO+C,EACvD36D,EAAQ,IAAStc,GAAQo0E,EAAep0E,GAAQo0E,EAAe,OAAQp0E,GACvEy1E,EAAWjB,EAAel4D,EAAO+4D,GACjC6B,GAAe,EACfC,EAAuBH,EAAcrzE,aAAanH,QAAQiK,KAAI,SAAU/K,GAC1E,OAAO+5E,GAAS,WACd,OAAO/5E,IADF+5E,MAGN,SAAUvwE,GACX,OAAOtL,QAAQE,OAAOoL,MAEI8xE,EAAcrzE,aAAapG,SAASkJ,KAAI,SAAUlJ,GAC5E,IAAK25E,GAAgB,IAASl3E,KAAmB,SAATA,GAAmBm0E,EAAiB5nE,KAAKvM,KAAUzC,EAASxB,SAAWwB,EAASxB,QAAQ,uCAAwC,CACtK,IAAIq7E,EAAWnsC,SAAS1tC,EAASxB,QAAQ,wCACrCs7E,EAAYjD,EAAep0E,EAAMo3E,GAEjCC,IAAc/6D,IACZ66D,GACFH,EAAcrzE,aAAanH,QAAQkK,MAAMywE,GAG3C76D,EAAQ+6D,EACR5B,EAAWjB,EAAe6C,EAAWhC,GACrC8B,EAAuBH,EAAcrzE,aAAanH,QAAQiK,KAAI,SAAU/K,GACtE,OAAO+5E,GAAS,WACd,OAAO/5E,IADF+5E,MAGN,SAAUvwE,GACX,OAAOtL,QAAQE,OAAOoL,OAI1BgyE,GAAe,EAGjB,OAAO35E,KACN,SAAU2H,GACX,OAAOtL,QAAQE,OAAOoL,MAiPtBoyE,CAAkBx2E,EAAUpF,EAAO+5E,UA/NvC,SAAmB30E,GACjB,IAAIy2E,EAAW1sE,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,EAC/E2sE,EAAqB12E,EAAS4C,SAC9B+zE,EAAwBD,EAAmBhB,eAC3CA,OAA2C,IAA1BiB,EAAmCvD,EAAOuD,EAC3DC,EAAyBF,EAAmBf,cAC5CA,OAA2C,IAA3BiB,EAAoCxD,EAAOwD,EAC/D52E,EAAS6C,aAAanH,QAAQiK,KAAI,SAAU/K,GAE1C,OADA+6E,EAAc/6E,GACPA,KACN,SAAUwJ,GAEX,OADAuxE,EAAcvxE,GACPtL,QAAQE,OAAOoL,MAExBpE,EAAS6C,aAAapG,SAASkJ,KAAI,SAAUlJ,GAG3C,OADAi5E,EAAej5E,GACRA,KACN,SAAU2H,GACX,IAAI3H,EAAW2H,EAAM3H,SACjB7B,EAASwJ,EAAMxJ,OAGnB,GAFA86E,EAAetxE,IAEVxJ,IAAWoF,EAAS4C,SAAS0xE,aAChC,OAAOx7E,QAAQE,OAAOoL,GAIxB,IAAIyyE,EAAej8E,EAAOq5E,UAAY,EAEtC,GAAI4C,EAAeJ,EAEjB,OADAryE,EAAM6vE,SAAWr5E,EAAOq5E,SACjBn7E,QAAQE,OAAOoL,GAGxB,IAAI0yE,EAAiB,KACjBC,EAAO/C,EAAY6C,GAgBvB,OAdKp6E,EAEMA,EAASE,QAAU,KAAOF,EAASE,OAAS,IAErDm6E,EAAiB,UAAU/yE,OAAOtH,EAASE,QACd,MAApBF,EAASE,SAElBm6E,EAAiB,aAEbr6E,EAASxB,SAAWmJ,EAAM3H,SAASxB,QAAQ,kCAC7C87E,EAAOt6E,EAASxB,QAAQ,kCAT1B67E,EAAiB,aAafA,GAEFC,EAAOrvE,KAAKC,MAAa,IAAPovE,EAA8B,IAAhBrvE,KAAKoqC,SAAiB,KACtD9xC,EAAS4C,SAAS2xE,WAAW,UAAW,GAAGxwE,OAAO+yE,EAAgB,iCAAiC/yE,OAAOgzE,EAAM,2BAEhHn8E,EAAOq5E,SAAW4C,EAAe,SAK1Bj8E,EAAO65E,iBACP75E,EAAO85E,WACPZ,EAAMiD,GAAMh9E,MAAK,WACtB,OAAOiG,EAASpF,OAIb9B,QAAQE,OAAOoL,MA6JxB4yE,CAAUh3E,EAAUpF,EAAOq8E,YAEvBr8E,EAAOtB,SACT0G,EAAS6C,aAAapG,SAASkJ,KAAI,SAAUlJ,GAC3C,OAAOA,IACN7B,EAAOtB,SAGL0G,EAWT,SAASk3E,EAAoBC,GAC3B,IAAIxhE,EAAQwhE,EAAKxhE,MACb/a,EAAS,GAGb,cAFO+a,EAAMyhE,aACbx8E,EAAOqC,OAAS,IAAK0Y,GACd/a,EAIT,SAASy8E,EAAe7xE,EAAKoF,GAC3B,KAAMA,KAAQpF,GAAM,CAClB,IAAIpM,EAAM,IAAIC,MAGd,MAFAD,EAAIiJ,KAAO,kBACXjJ,EAAIsI,QAAU,qBAAqBqC,OAAO6G,EAAM,sBAAsB7G,OAAOqF,KAAKI,UAAUhE,GAAM,QAC5FpM,EAGR,OAAO,EAIT,SAASk+E,EAAWzH,GAClB,IAGI0H,EADAC,EAtbN,SAAoCtW,EAAGuW,GACrC,IAAI9tD,EAAuB,oBAAXo6C,QAA0B7C,EAAE6C,OAAOyL,WAAatO,EAAE,cAElE,IAAKv3C,EAAI,CACP,GAAI9lB,MAAMiD,QAAQo6D,KAAOv3C,EAAKspD,EAA4B/R,IAA4D,CAChHv3C,IAAIu3C,EAAIv3C,GACZ,IAAItoB,EAAI,EAEJq2E,EAAI,aAER,MAAO,CACLphB,EAAGohB,EACH/e,EAAG,WACD,OAAIt3D,GAAK6/D,EAAE3/D,OAAe,CACxBpG,MAAM,GAED,CACLA,MAAM,EACN0B,MAAOqkE,EAAE7/D,OAGbkI,EAAG,SAAUA,GACX,MAAMA,GAERouE,EAAGD,GAIP,MAAM,IAAI32E,UAAU,yIAGtB,IAEI3H,EAFAw+E,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLvhB,EAAG,WACD3sC,EAAKA,EAAGxnB,KAAK++D,IAEfvI,EAAG,WACD,IAAImf,EAAOnuD,EAAGq5C,OAEd,OADA4U,EAAmBE,EAAK38E,KACjB28E,GAETvuE,EAAG,SAAUA,GACXsuE,GAAS,EACTz+E,EAAMmQ,GAERouE,EAAG,WACD,IACOC,GAAiC,MAAbjuD,EAAGouD,QAAgBpuD,EAAGouD,SAC/C,QACA,GAAIF,EAAQ,MAAMz+E,KAmYR4+E,CAFA/yE,OAAO4L,oBAAoBg/D,IAK3C,IACE,IAAK2H,EAAUlhB,MAAOihB,EAAQC,EAAU7e,KAAKx9D,MAAO,CAClD,IACI0B,EAAQgzE,EADD0H,EAAM16E,OAGbA,GAA4B,WAAnB0yE,EAAQ1yE,IACnBy6E,EAAWz6E,IAGf,MAAOzD,GACPo+E,EAAUjuE,EAAEnQ,GACZ,QACAo+E,EAAUG,IAGZ,OAAO1yE,OAAOgzE,OAAOpI,GAGvB,SAASqI,EAAU1yE,GAEjB,OADA8xE,EAAW9xE,EAAIsqE,KAAO,IACftqE,EAGT,SAAS2yE,IACP,IAAIC,EAvYGzrE,OAyYP,IAAKyrE,EACH,OAAO,KAGT,IAAItsE,EAAYssE,EAAIvsE,UAAUC,UAE1B+zB,EAAWu4C,EAAIvsE,UAAUg0B,SAK7B,OAA0C,IAJrB,CAAC,YAAa,WAAY,SAAU,UAItCtiC,QAAQsiC,GAClB,SACsC,IAJ5B,CAAC,SAAU,OAAQ,QAIdtiC,QAAQsiC,GACvB,OAC0C,IAP5B,CAAC,QAAS,QAAS,UAAW,SAOzBtiC,QAAQsiC,GAC3B,UACE,UAAUp0B,KAAKK,GACjB,UACE,QAAQL,KAAKo0B,GACf,QAGF,KAwBT,SAASw4C,EAAmBC,EAAK/gE,EAAaghE,EAAar/B,GACzD,IAAIs/B,EAAc,GAEdjhE,GACFihE,EAAY12E,KAAK,OAAOiC,OAAOwT,IAG7BghE,GACFC,EAAY12E,KAAK,eAAeiC,OAAOw0E,IAGrCr/B,GACFs/B,EAAY12E,KAAK,WAAao3C,GAGhCs/B,EAAY12E,KAAK,OAAOiC,OAAOu0E,IAC/B,IAAIz4C,EAAW,KAEf,IAhdyB,oBAAXlzB,QAA0B,cAAeA,QAAU,YAAaA,OAAOd,WAA0C,gBAA7Bc,OAAOd,UAAUmE,SAkd/G6vB,EAAWs4C,IACXK,EAAY12E,KAAK,0BAKjB+9B,EAAWs4C,IACXK,EAAY12E,KAAK,qBAEnB,MAAOyH,GACPs2B,EAAW,KAOb,OAJIA,GACF24C,EAAY12E,KAAK,MAAMiC,OAAO87B,IAGzB,GAAG97B,OAAOy0E,EAAY7nE,QAAO,SAAUoF,GAC5C,MAAgB,KAATA,KACNxL,KAAK,MAAO,KAUjB,SAASkuE,EAAc19E,GACrB,OAAOkK,OAAOE,eAAepK,EAAM,gBAAiB,CAClD8tE,YAAY,EACZwG,cAAc,EACdwD,UAAU,EACVh2E,MAAO,WACL,OAAO,IAAKoE,SAalB,SAASy3E,EAAaC,GACpB,IAEIC,EAFAh+E,EAAS+9E,EAAc/9E,OACvB6B,EAAWk8E,EAAcl8E,SAG7B,GAAI7B,GAAUA,EAAOK,SAAWL,EAAOK,QAAuB,cAAG,CAC/D,IAAIkG,EAAQ,MAAM4C,OAAOnJ,EAAOK,QAAuB,cAAEkS,QAAQ,IACjEvS,EAAOK,QAAuB,cAAI,UAAU8I,OAAO5C,GAGrD,IAAK,IAAc1E,KAAc,IAAc7B,GAC7C,MAAM+9E,EAGR,IAAI59E,EAAO0B,aAA2C,EAASA,EAAS1B,KACpE89E,EAAY,CACdl8E,OAAQF,aAA2C,EAASA,EAASE,OACrEC,WAAYH,aAA2C,EAASA,EAASG,WACzE8E,QAAS,GACTo3E,QAAS,IAGP,IAAcl+E,KAChBi+E,EAAUn9E,QAAU,CAClBW,IAAKzB,EAAOyB,IACZpB,QAASL,EAAOK,QAChB8B,OAAQnC,EAAOmC,OACfg8E,YAAan+E,EAAOG,OAIpBA,GAAQ,IAAcA,KACpB,cAAeA,IACjB89E,EAAU7xD,UAAYjsB,EAAKisB,WAAa,WAGtC,YAAajsB,IACf89E,EAAUn3E,QAAU3G,EAAK2G,SAAW,IAGlC,YAAa3G,IACf89E,EAAUC,QAAU/9E,EAAK+9E,SAAW,IAGlC,QAAS/9E,GACP,OAAQA,EAAK+0E,MACf8I,EAAY79E,EAAK+0E,IAAIjqE,KAK3B,IAAIzB,EAAQ,IAAI/K,MAChB+K,EAAM/B,KAAOu2E,GAA2B,YAAdA,EAA0BA,EAAY,GAAG70E,OAAOtH,aAA2C,EAASA,EAASE,OAAQ,KAAKoH,OAAOtH,aAA2C,EAASA,EAASG,YAExN,IACEwH,EAAM1C,QAAU0H,KAAKI,UAAUqvE,EAAW,KAAM,MAChD,MAAOG,GACP,IAAIC,EAEJ70E,EAAM1C,QAA6G,QAAlGu3E,EAAqBJ,aAA6C,EAASA,EAAUn3E,eAA4C,IAAvBu3E,EAAgCA,EAAqB,GAGlL,MAAM70E,2BCj0BR,IAAI6F,EAAU+G,OAAO/Q,UAAUgK,QAC3BivE,EAAkB,OAElBC,EAES,UAGbzgF,EAAOC,QAAU,CACb,QAAWwgF,EACXC,WAAY,CACRC,QAAS,SAAUx8E,GACf,OAAOoN,EAAQ9H,KAAKtF,EAAOq8E,EAAiB,MAEhDI,QAAS,SAAUz8E,GACf,OAAOmU,OAAOnU,KAGtBw8E,QAdS,UAeTC,QAASH,iCCnBb,IAAI3vE,EAAY,EAAQ,OACpBH,EAAQ,EAAQ,OAChBkwE,EAAU,EAAQ,OAEtB7gF,EAAOC,QAAU,CACb4gF,QAASA,EACTlwE,MAAOA,EACPG,UAAWA,iCCPf,IAAIvP,EAAQ,EAAQ,OAEhB0pC,EAAM1+B,OAAOhF,UAAUuP,eACvB1I,EAAUjD,MAAMiD,QAEhBlE,EAAW,CACX42E,WAAW,EACXC,iBAAiB,EACjBC,aAAa,EACbC,WAAY,GACZlnC,QAAS,QACTmnC,iBAAiB,EACjBC,OAAO,EACPC,QAAS7/E,EAAM+4B,OACf+mD,UAAW,IACXC,MAAO,EACPC,mBAAmB,EACnBC,0BAA0B,EAC1BC,eAAgB,IAChBC,aAAa,EACbC,cAAc,EACdC,oBAAoB,GAGpBJ,EAA2B,SAAU9qE,GACrC,OAAOA,EAAInF,QAAQ,aAAa,SAAUswE,EAAIC,GAC1C,OAAOxpE,OAAOynD,aAAatuB,SAASqwC,EAAW,SAInDC,EAAkB,SAAU3gF,EAAKZ,GACjC,OAAIY,GAAsB,iBAARA,GAAoBZ,EAAQ2gF,OAAS//E,EAAIyD,QAAQ,MAAQ,EAChEzD,EAAImT,MAAM,KAGdnT,GAgHP4gF,EAAY,SAA8BC,EAAU7gF,EAAKZ,EAAS0hF,GAClE,GAAKD,EAAL,CAKA,IAAIl8E,EAAMvF,EAAQsgF,UAAYmB,EAAS1wE,QAAQ,cAAe,QAAU0wE,EAKpEE,EAAQ,gBAIRC,EAAU5hF,EAAQ8gF,MAAQ,GALf,eAK6B5sE,KAAK3O,GAC7CsmC,EAAS+1C,EAAUr8E,EAAIsI,MAAM,EAAG+zE,EAAQ/4E,OAAStD,EAIjD6I,EAAO,GACX,GAAIy9B,EAAQ,CAER,IAAK7rC,EAAQmhF,cAAgB12C,EAAIxhC,KAAK8C,OAAOhF,UAAW8kC,KAC/C7rC,EAAQugF,gBACT,OAIRnyE,EAAKxF,KAAKijC,GAMd,IADA,IAAI1jC,EAAI,EACDnI,EAAQ8gF,MAAQ,GAAqC,QAA/Bc,EAAUD,EAAMztE,KAAK3O,KAAkB4C,EAAInI,EAAQ8gF,OAAO,CAEnF,GADA34E,GAAK,GACAnI,EAAQmhF,cAAgB12C,EAAIxhC,KAAK8C,OAAOhF,UAAW66E,EAAQ,GAAG/zE,MAAM,GAAI,MACpE7N,EAAQugF,gBACT,OAGRnyE,EAAKxF,KAAKg5E,EAAQ,IAStB,OAJIA,GACAxzE,EAAKxF,KAAK,IAAMrD,EAAIsI,MAAM+zE,EAAQ/4E,OAAS,KAnFjC,SAAU6B,EAAO9J,EAAKZ,EAAS0hF,GAG7C,IAFA,IAAIG,EAAOH,EAAe9gF,EAAM2gF,EAAgB3gF,EAAKZ,GAE5CmI,EAAIuC,EAAMrC,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACxC,IAAImE,EACAw1E,EAAOp3E,EAAMvC,GAEjB,GAAa,OAAT25E,GAAiB9hF,EAAQkhF,YACzB50E,EAAM,GAAGzB,OAAOg3E,OACb,CACHv1E,EAAMtM,EAAQmhF,aAAep1E,OAAO9E,OAAO,MAAQ,GACnD,IAAI86E,EAA+B,MAAnBD,EAAKtuE,OAAO,IAA+C,MAAjCsuE,EAAKtuE,OAAOsuE,EAAKz5E,OAAS,GAAay5E,EAAKj0E,MAAM,GAAI,GAAKi0E,EACjGj5E,EAAQooC,SAAS8wC,EAAW,IAC3B/hF,EAAQkhF,aAA6B,KAAda,GAGvBC,MAAMn5E,IACJi5E,IAASC,GACTjqE,OAAOjP,KAAWk5E,GAClBl5E,GAAS,GACR7I,EAAQkhF,aAAer4E,GAAS7I,EAAQygF,YAE5Cn0E,EAAM,IACFzD,GAASg5E,EACQ,cAAdE,IACPz1E,EAAIy1E,GAAaF,GAXjBv1E,EAAM,CAAE,EAAGu1E,GAenBA,EAAOv1E,EAGX,OAAOu1E,EAsDAI,CAAY7zE,EAAMxN,EAAKZ,EAAS0hF,KAsC3CliF,EAAOC,QAAU,SAAUyW,EAAKvW,GAC5B,IAAIK,EApCoB,SAA+BL,GACvD,IAAKA,EACD,OAAO+J,EAGX,GAAqB,OAAjB/J,EAAKihF,cAAqCx7E,IAAjBzF,EAAKihF,SAAiD,mBAAjBjhF,EAAKihF,QACnE,MAAM,IAAI/4E,UAAU,iCAGxB,QAA4B,IAAjBlI,EAAK45C,SAA4C,UAAjB55C,EAAK45C,SAAwC,eAAjB55C,EAAK45C,QACxE,MAAM,IAAI1xC,UAAU,qEAExB,IAAI0xC,OAAkC,IAAjB55C,EAAK45C,QAA0B7vC,EAAS6vC,QAAU55C,EAAK45C,QAE5E,MAAO,CACH+mC,eAAqC,IAAnB3gF,EAAK2gF,UAA4B52E,EAAS42E,YAAc3gF,EAAK2gF,UAC/EC,gBAAiD,kBAAzB5gF,EAAK4gF,gBAAgC5gF,EAAK4gF,gBAAkB72E,EAAS62E,gBAC7FC,YAAyC,kBAArB7gF,EAAK6gF,YAA4B7gF,EAAK6gF,YAAc92E,EAAS82E,YACjFC,WAAuC,iBAApB9gF,EAAK8gF,WAA0B9gF,EAAK8gF,WAAa/2E,EAAS+2E,WAC7ElnC,QAASA,EACTmnC,gBAAiD,kBAAzB/gF,EAAK+gF,gBAAgC/gF,EAAK+gF,gBAAkBh3E,EAASg3E,gBAC7FC,MAA6B,kBAAfhhF,EAAKghF,MAAsBhhF,EAAKghF,MAAQj3E,EAASi3E,MAC/DC,QAAiC,mBAAjBjhF,EAAKihF,QAAyBjhF,EAAKihF,QAAUl3E,EAASk3E,QACtEC,UAAqC,iBAAnBlhF,EAAKkhF,WAA0B9/E,EAAMmhF,SAASviF,EAAKkhF,WAAalhF,EAAKkhF,UAAYn3E,EAASm3E,UAE5GC,MAA8B,iBAAfnhF,EAAKmhF,QAAqC,IAAfnhF,EAAKmhF,OAAoBnhF,EAAKmhF,MAAQp3E,EAASo3E,MACzFC,mBAA8C,IAA3BphF,EAAKohF,kBACxBC,yBAAmE,kBAAlCrhF,EAAKqhF,yBAAyCrhF,EAAKqhF,yBAA2Bt3E,EAASs3E,yBACxHC,eAA+C,iBAAxBthF,EAAKshF,eAA8BthF,EAAKshF,eAAiBv3E,EAASu3E,eACzFC,aAAkC,IAArBvhF,EAAKuhF,YAClBC,aAA2C,kBAAtBxhF,EAAKwhF,aAA6BxhF,EAAKwhF,aAAez3E,EAASy3E,aACpFC,mBAAuD,kBAA5BzhF,EAAKyhF,mBAAmCzhF,EAAKyhF,mBAAqB13E,EAAS03E,oBAK5Fe,CAAsBxiF,GAEpC,GAAY,KAARuW,SAAcA,EACd,OAAOlW,EAAQmhF,aAAep1E,OAAO9E,OAAO,MAAQ,GASxD,IANA,IAAIm7E,EAAyB,iBAARlsE,EAnMP,SAAgCA,EAAKlW,GACnD,IAKImI,EALAmE,EAAM,GACN+1E,EAAWriF,EAAQ+gF,kBAAoB7qE,EAAInF,QAAQ,MAAO,IAAMmF,EAChEoM,EAAQtiB,EAAQihF,iBAAmBtmE,SAAWvV,EAAYpF,EAAQihF,eAClEhwE,EAAQoxE,EAAStuE,MAAM/T,EAAQ6gF,UAAWv+D,GAC1CggE,GAAa,EAGb/oC,EAAUv5C,EAAQu5C,QACtB,GAAIv5C,EAAQ0gF,gBACR,IAAKv4E,EAAI,EAAGA,EAAI8I,EAAM5I,SAAUF,EACM,IAA9B8I,EAAM9I,GAAG9D,QAAQ,WAbX,mBAcF4M,EAAM9I,GACNoxC,EAAU,QAlBZ,wBAmBStoC,EAAM9I,KACboxC,EAAU,cAEd+oC,EAAYn6E,EACZA,EAAI8I,EAAM5I,QAKtB,IAAKF,EAAI,EAAGA,EAAI8I,EAAM5I,SAAUF,EAC5B,GAAIA,IAAMm6E,EAAV,CAGA,IAKI/8E,EAAK3E,EALL2hF,EAAOtxE,EAAM9I,GAEbq6E,EAAmBD,EAAKl+E,QAAQ,MAChC4rE,GAA4B,IAAtBuS,EAA0BD,EAAKl+E,QAAQ,KAAOm+E,EAAmB,GAG9D,IAATvS,GACA1qE,EAAMvF,EAAQ4gF,QAAQ2B,EAAM74E,EAASk3E,QAASrnC,EAAS,OACvD34C,EAAMZ,EAAQohF,mBAAqB,KAAO,KAE1C77E,EAAMvF,EAAQ4gF,QAAQ2B,EAAK10E,MAAM,EAAGoiE,GAAMvmE,EAASk3E,QAASrnC,EAAS,OACrE34C,EAAMG,EAAM0hF,SACRlB,EAAgBgB,EAAK10E,MAAMoiE,EAAM,GAAIjwE,IACrC,SAAU0iF,GACN,OAAO1iF,EAAQ4gF,QAAQ8B,EAAYh5E,EAASk3E,QAASrnC,EAAS,aAKtE34C,GAAOZ,EAAQghF,0BAAwC,eAAZznC,IAC3C34C,EAAMogF,EAAyBpgF,IAG/B2hF,EAAKl+E,QAAQ,QAAU,IACvBzD,EAAMgN,EAAQhN,GAAO,CAACA,GAAOA,GAG7B6pC,EAAIxhC,KAAKqD,EAAK/G,GACd+G,EAAI/G,GAAOxE,EAAM4hF,QAAQr2E,EAAI/G,GAAM3E,GAEnC0L,EAAI/G,GAAO3E,EAInB,OAAO0L,EAsIiCs2E,CAAY1sE,EAAKlW,GAAWkW,EAChE5J,EAAMtM,EAAQmhF,aAAep1E,OAAO9E,OAAO,MAAQ,GAInDmH,EAAOrC,OAAOqC,KAAKg0E,GACdj6E,EAAI,EAAGA,EAAIiG,EAAK/F,SAAUF,EAAG,CAClC,IAAI5C,EAAM6I,EAAKjG,GACX06E,EAASrB,EAAUj8E,EAAK68E,EAAQ78E,GAAMvF,EAAwB,iBAARkW,GAC1D5J,EAAMvL,EAAMoM,MAAMb,EAAKu2E,EAAQ7iF,GAGnC,OAA4B,IAAxBA,EAAQwgF,YACDl0E,EAGJvL,EAAM+hF,QAAQx2E,kCCnQzB,IAAIy2E,EAAiB,EAAQ,OACzBhiF,EAAQ,EAAQ,OAChBs/E,EAAU,EAAQ,OAClB51C,EAAM1+B,OAAOhF,UAAUuP,eAEvB0sE,EAAwB,CACxBC,SAAU,SAAkBztD,GACxB,OAAOA,EAAS,MAEpBmrD,MAAO,QACPuC,QAAS,SAAiB1tD,EAAQjwB,GAC9B,OAAOiwB,EAAS,IAAMjwB,EAAM,KAEhC49E,OAAQ,SAAgB3tD,GACpB,OAAOA,IAIX5nB,EAAUjD,MAAMiD,QAChBmG,EAAQ+D,OAAO/Q,UAAUgN,MACzBnL,EAAO+B,MAAM5D,UAAU6B,KACvBw6E,EAAc,SAAUhvE,EAAKivE,GAC7Bz6E,EAAKgC,MAAMwJ,EAAKxG,EAAQy1E,GAAgBA,EAAe,CAACA,KAGxDC,EAAQvxE,KAAKhL,UAAUqK,YAEvBmyE,EAAgBlD,EAAiB,QACjC32E,EAAW,CACX85E,gBAAgB,EAChBlD,WAAW,EACX/mC,QAAS,QACTmnC,iBAAiB,EACjBG,UAAW,IACX/vE,QAAQ,EACRd,QAASjP,EAAM+P,OACf2yE,kBAAkB,EAClBC,OAAQH,EACRI,UAAWtD,EAAQH,WAAWqD,GAE9BL,SAAS,EACTU,cAAe,SAAuB/uD,GAClC,OAAOyuD,EAAMr6E,KAAK4rB,IAEtBgvD,WAAW,EACXzC,oBAAoB,GAWpB0C,EAAW,GAEXxzE,EAAY,SAASA,EACrBqmE,EACAnhD,EACAuuD,EACAC,EACA5C,EACAyC,EACA7zE,EACAyH,EACA+C,EACA8lE,EACAsD,EACAF,EACAC,EACAF,EACAlqC,EACA0qC,GAOA,IALA,IA5BuD/yE,EA4BnD5E,EAAMqqE,EAENuN,EAAQD,EACRrF,EAAO,EACPuF,GAAW,OAC0B,KAAjCD,EAAQA,EAAMnxD,IAAI+wD,MAAkCK,GAAU,CAElE,IAAIlU,EAAMiU,EAAMnxD,IAAI4jD,GAEpB,GADAiI,GAAQ,OACW,IAAR3O,EAAqB,CAC5B,GAAIA,IAAQ2O,EACR,MAAM,IAAItW,WAAW,uBAErB6b,GAAW,OAGgB,IAAxBD,EAAMnxD,IAAI+wD,KACjBlF,EAAO,GAiBf,GAbsB,mBAAXnnE,EACPnL,EAAMmL,EAAO+d,EAAQlpB,GACdA,aAAeyF,KACtBzF,EAAMs3E,EAAct3E,GACW,UAAxBy3E,GAAmCn2E,EAAQtB,KAClDA,EAAMvL,EAAM0hF,SAASn2E,GAAK,SAAU3I,GAChC,OAAIA,aAAiBoO,KACV6xE,EAAcjgF,GAElBA,MAIH,OAAR2I,EAAc,CACd,GAAI80E,EACA,OAAOpxE,IAAYyzE,EAAmBzzE,EAAQwlB,EAAQ9rB,EAASsG,QAASupC,EAAS,MAAOmqC,GAAUluD,EAGtGlpB,EAAM,GAGV,GArEoB,iBADmC4E,EAsE7B5E,IApEN,iBAAN4E,GACM,kBAANA,GACM,iBAANA,GACM,iBAANA,GAiEoBnQ,EAAMiO,SAAS1C,GAAM,CACnD,GAAI0D,EAAS,CACT,IAAIo0E,EAAWX,EAAmBjuD,EAASxlB,EAAQwlB,EAAQ9rB,EAASsG,QAASupC,EAAS,MAAOmqC,GAC7F,GAA4B,UAAxBK,GAAmCN,EAAkB,CAGrD,IAFA,IAAIY,EAActwE,EAAM9K,KAAK6O,OAAOxL,GAAM,KACtCg4E,EAAe,GACVn8E,EAAI,EAAGA,EAAIk8E,EAAYh8E,SAAUF,EACtCm8E,IAAuB,IAANn8E,EAAU,GAAK,KAAOw7E,EAAU3zE,EAAQq0E,EAAYl8E,GAAIuB,EAASsG,QAASupC,EAAS,QAASmqC,IAEjH,MAAO,CAACC,EAAUS,IAAaJ,GAAkBp2E,EAAQtB,IAA+B,IAAvB+3E,EAAYh8E,OAAe,KAAO,IAAM,IAAMi8E,GAEnH,MAAO,CAACX,EAAUS,GAAY,IAAMT,EAAU3zE,EAAQ1D,EAAK5C,EAASsG,QAASupC,EAAS,QAASmqC,KAEnG,MAAO,CAACC,EAAUnuD,GAAU,IAAMmuD,EAAU7rE,OAAOxL,KAGvD,IAMIi4E,EANAtiE,EAAS,GAEb,QAAmB,IAAR3V,EACP,OAAO2V,EAIX,GAA4B,UAAxB8hE,GAAmCn2E,EAAQtB,GAE3Ci4E,EAAU,CAAC,CAAE5gF,MAAO2I,EAAIjE,OAAS,EAAIiE,EAAI+E,KAAK,MAAQ,UAAO,SAC1D,GAAIzD,EAAQ6J,GACf8sE,EAAU9sE,MACP,CACH,IAAIrJ,EAAOrC,OAAOqC,KAAK9B,GACvBi4E,EAAU/pE,EAAOpM,EAAKoM,KAAKA,GAAQpM,EAKvC,IAFA,IAAIo2E,EAAiBR,GAAkBp2E,EAAQtB,IAAuB,IAAfA,EAAIjE,OAAemtB,EAAS,KAAOA,EAEjFknC,EAAI,EAAGA,EAAI6nB,EAAQl8E,SAAUq0D,EAAG,CACrC,IAAIn3D,EAAMg/E,EAAQ7nB,GACd/4D,EAAuB,iBAAR4B,QAAyC,IAAdA,EAAI5B,MAAwB4B,EAAI5B,MAAQ2I,EAAI/G,GAE1F,IAAIs+E,GAAuB,OAAVlgF,EAAjB,CAIA,IAAI8gF,EAAY72E,EAAQtB,GACa,mBAAxBy3E,EAAqCA,EAAoBS,EAAgBj/E,GAAOi/E,EACvFA,GAAkBlE,EAAY,IAAM/6E,EAAM,IAAMA,EAAM,KAE5D0+E,EAAY3xD,IAAIqkD,EAAQiI,GACxB,IAAI8F,EAAmB3B,IACvB2B,EAAiBpyD,IAAIwxD,EAAUG,GAC/Bb,EAAYnhE,EAAQ3R,EAChB3M,EACA8gF,EACAV,EACAC,EACA5C,EACAyC,EACA7zE,EACAyH,EACA+C,EACA8lE,EACAsD,EACAF,EACAC,EACAF,EACAlqC,EACAmrC,KAIR,OAAOziE,GAkDXziB,EAAOC,QAAU,SAAUk3E,EAAQh3E,GAC/B,IAGI4kF,EAHAj4E,EAAMqqE,EACN32E,EAjDwB,SAAmCL,GAC/D,IAAKA,EACD,OAAO+J,EAGX,GAAqB,OAAjB/J,EAAKqQ,cAA4C,IAAjBrQ,EAAKqQ,SAAmD,mBAAjBrQ,EAAKqQ,QAC5E,MAAM,IAAInI,UAAU,iCAGxB,IAAI0xC,EAAU55C,EAAK45C,SAAW7vC,EAAS6vC,QACvC,QAA4B,IAAjB55C,EAAK45C,SAA4C,UAAjB55C,EAAK45C,SAAwC,eAAjB55C,EAAK45C,QACxE,MAAM,IAAI1xC,UAAU,qEAGxB,IAAI67E,EAASrD,EAAiB,QAC9B,QAA2B,IAAhB1gF,EAAK+jF,OAAwB,CACpC,IAAKj5C,EAAIxhC,KAAKo3E,EAAQH,WAAYvgF,EAAK+jF,QACnC,MAAM,IAAI77E,UAAU,mCAExB67E,EAAS/jF,EAAK+jF,OAElB,IAAIC,EAAYtD,EAAQH,WAAWwD,GAE/BjsE,EAAS/N,EAAS+N,OAKtB,OAJ2B,mBAAhB9X,EAAK8X,QAAyB7J,EAAQjO,EAAK8X,WAClDA,EAAS9X,EAAK8X,QAGX,CACH+rE,eAA+C,kBAAxB7jF,EAAK6jF,eAA+B7jF,EAAK6jF,eAAiB95E,EAAS85E,eAC1FlD,eAAqC,IAAnB3gF,EAAK2gF,UAA4B52E,EAAS42E,YAAc3gF,EAAK2gF,UAC/E/mC,QAASA,EACTmnC,gBAAiD,kBAAzB/gF,EAAK+gF,gBAAgC/gF,EAAK+gF,gBAAkBh3E,EAASg3E,gBAC7FG,eAAqC,IAAnBlhF,EAAKkhF,UAA4Bn3E,EAASm3E,UAAYlhF,EAAKkhF,UAC7E/vE,OAA+B,kBAAhBnR,EAAKmR,OAAuBnR,EAAKmR,OAASpH,EAASoH,OAClEd,QAAiC,mBAAjBrQ,EAAKqQ,QAAyBrQ,EAAKqQ,QAAUtG,EAASsG,QACtEyzE,iBAAmD,kBAA1B9jF,EAAK8jF,iBAAiC9jF,EAAK8jF,iBAAmB/5E,EAAS+5E,iBAChGhsE,OAAQA,EACRisE,OAAQA,EACRC,UAAWA,EACXC,cAA6C,mBAAvBjkF,EAAKikF,cAA+BjkF,EAAKikF,cAAgBl6E,EAASk6E,cACxFC,UAAqC,kBAAnBlkF,EAAKkkF,UAA0BlkF,EAAKkkF,UAAYn6E,EAASm6E,UAC3ErpE,KAA2B,mBAAd7a,EAAK6a,KAAsB7a,EAAK6a,KAAO,KACpD4mE,mBAAuD,kBAA5BzhF,EAAKyhF,mBAAmCzhF,EAAKyhF,mBAAqB13E,EAAS03E,oBAM5FuD,CAA0BhlF,GAKV,mBAAnBK,EAAQyX,OAEfnL,GADAmL,EAASzX,EAAQyX,QACJ,GAAInL,GACVsB,EAAQ5N,EAAQyX,UAEvB8sE,EADSvkF,EAAQyX,QAIrB,IAMImtE,EANAx2E,EAAO,GAEX,GAAmB,iBAAR9B,GAA4B,OAARA,EAC3B,MAAO,GAKPs4E,EADAjlF,GAAQA,EAAKilF,eAAe5B,EACdrjF,EAAKilF,YACZjlF,GAAQ,YAAaA,EACdA,EAAKujF,QAAU,UAAY,SAE3B,UAGlB,IAAIa,EAAsBf,EAAsB4B,GAChD,GAAIjlF,GAAQ,mBAAoBA,GAAuC,kBAAxBA,EAAKqkF,eAChD,MAAM,IAAIn8E,UAAU,iDAExB,IAAIm8E,EAAyC,UAAxBD,GAAmCpkF,GAAQA,EAAKqkF,eAEhEO,IACDA,EAAUx4E,OAAOqC,KAAK9B,IAGtBtM,EAAQwa,MACR+pE,EAAQ/pE,KAAKxa,EAAQwa,MAIzB,IADA,IAAIypE,EAAclB,IACT56E,EAAI,EAAGA,EAAIo8E,EAAQl8E,SAAUF,EAAG,CACrC,IAAI5C,EAAMg/E,EAAQp8E,GAEdnI,EAAQ6jF,WAA0B,OAAbv3E,EAAI/G,IAG7B69E,EAAYh1E,EAAMkC,EACdhE,EAAI/G,GACJA,EACAw+E,EACAC,EACAhkF,EAAQohF,mBACRphF,EAAQ6jF,UACR7jF,EAAQ8Q,OAAS9Q,EAAQgQ,QAAU,KACnChQ,EAAQyX,OACRzX,EAAQwa,KACRxa,EAAQsgF,UACRtgF,EAAQ4jF,cACR5jF,EAAQ0jF,OACR1jF,EAAQ2jF,UACR3jF,EAAQyjF,iBACRzjF,EAAQu5C,QACR0qC,IAIR,IAAIY,EAASz2E,EAAKiD,KAAKrR,EAAQ6gF,WAC3BrrD,GAAoC,IAA3Bx1B,EAAQwjF,eAA0B,IAAM,GAYrD,OAVIxjF,EAAQ0gF,kBACgB,eAApB1gF,EAAQu5C,QAER/jB,GAAU,uBAGVA,GAAU,mBAIXqvD,EAAOx8E,OAAS,EAAImtB,EAASqvD,EAAS,kCClUjD,IAAIxE,EAAU,EAAQ,OAElB51C,EAAM1+B,OAAOhF,UAAUuP,eACvB1I,EAAUjD,MAAMiD,QAEhBk3E,EAAY,WAEZ,IADA,IAAIvY,EAAQ,GACHpkE,EAAI,EAAGA,EAAI,MAAOA,EACvBokE,EAAM3jE,KAAK,MAAQT,EAAI,GAAK,IAAM,IAAMA,EAAE2G,SAAS,KAAKhL,eAG5D,OAAOyoE,EANI,GA4BXwY,EAAgB,SAAuBh8E,EAAQ/I,GAE/C,IADA,IAAIsM,EAAMtM,GAAWA,EAAQmhF,aAAep1E,OAAO9E,OAAO,MAAQ,GACzDkB,EAAI,EAAGA,EAAIY,EAAOV,SAAUF,OACR,IAAdY,EAAOZ,KACdmE,EAAInE,GAAKY,EAAOZ,IAIxB,OAAOmE,GAqMX9M,EAAOC,QAAU,CACbslF,cAAeA,EACfx4E,OA3IS,SAA4BmB,EAAQ3E,GAC7C,OAAOgD,OAAOqC,KAAKrF,GAAQiR,QAAO,SAAU6oD,EAAKt9D,GAE7C,OADAs9D,EAAIt9D,GAAOwD,EAAOxD,GACXs9D,IACRn1D,IAwIHi1E,QAlBU,SAAiB3rE,EAAGC,GAC9B,MAAO,GAAGpM,OAAOmM,EAAGC,IAkBpB6rE,QAvDU,SAAiBn/E,GAI3B,IAHA,IAAIqhF,EAAQ,CAAC,CAAE14E,IAAK,CAAE07D,EAAGrkE,GAASoK,KAAM,MACpCk3E,EAAO,GAEF98E,EAAI,EAAGA,EAAI68E,EAAM38E,SAAUF,EAKhC,IAJA,IAAI0U,EAAOmoE,EAAM78E,GACbmE,EAAMuQ,EAAKvQ,IAAIuQ,EAAK9O,MAEpBK,EAAOrC,OAAOqC,KAAK9B,GACdowD,EAAI,EAAGA,EAAItuD,EAAK/F,SAAUq0D,EAAG,CAClC,IAAIn3D,EAAM6I,EAAKsuD,GACX97D,EAAM0L,EAAI/G,GACK,iBAAR3E,GAA4B,OAARA,IAAuC,IAAvBqkF,EAAK5gF,QAAQzD,KACxDokF,EAAMp8E,KAAK,CAAE0D,IAAKA,EAAKyB,KAAMxI,IAC7B0/E,EAAKr8E,KAAKhI,IAOtB,OAlMe,SAAsBokF,GACrC,KAAOA,EAAM38E,OAAS,GAAG,CACrB,IAAIwU,EAAOmoE,EAAM/vE,MACb3I,EAAMuQ,EAAKvQ,IAAIuQ,EAAK9O,MAExB,GAAIH,EAAQtB,GAAM,CAGd,IAFA,IAAI44E,EAAY,GAEPxoB,EAAI,EAAGA,EAAIpwD,EAAIjE,SAAUq0D,OACR,IAAXpwD,EAAIowD,IACXwoB,EAAUt8E,KAAK0D,EAAIowD,IAI3B7/C,EAAKvQ,IAAIuQ,EAAK9O,MAAQm3E,IAkL9BC,CAAaH,GAENrhF,GAmCPm2B,OAvIS,SAAU5jB,EAAK0qE,EAASrnC,GACjC,IAAI6rC,EAAiBlvE,EAAInF,QAAQ,MAAO,KACxC,GAAgB,eAAZwoC,EAEA,OAAO6rC,EAAer0E,QAAQ,iBAAkBlO,UAGpD,IACI,OAAOuP,mBAAmBgzE,GAC5B,MAAO/0E,GACL,OAAO+0E,IA8HXt0E,OA1HS,SAAgBoF,EAAKmvE,EAAgB9rC,EAAS+rC,EAAM5B,GAG7D,GAAmB,IAAfxtE,EAAI7N,OACJ,OAAO6N,EAGX,IAAI0nD,EAAS1nD,EAOb,GANmB,iBAARA,EACP0nD,EAASiN,OAAO9jE,UAAU+H,SAAS7F,KAAKiN,GAClB,iBAARA,IACd0nD,EAAS9lD,OAAO5B,IAGJ,eAAZqjC,EACA,OAAOthB,OAAO2lC,GAAQ7sD,QAAQ,mBAAmB,SAAUswE,GACvD,MAAO,SAAWpwC,SAASowC,EAAGxzE,MAAM,GAAI,IAAM,SAKtD,IADA,IAAIq8D,EAAM,GACD/hE,EAAI,EAAGA,EAAIy1D,EAAOv1D,SAAUF,EAAG,CACpC,IAAIa,EAAI40D,EAAOxmD,WAAWjP,GAGhB,KAANa,GACS,KAANA,GACM,KAANA,GACM,MAANA,GACCA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,KAClB06E,IAAWrD,EAAQF,UAAkB,KAANn3E,GAAoB,KAANA,GAEjDkhE,GAAOtM,EAAOpqD,OAAOrL,GAIrBa,EAAI,IACJkhE,GAAY4a,EAAS97E,GAIrBA,EAAI,KACJkhE,GAAa4a,EAAS,IAAQ97E,GAAK,GAAM87E,EAAS,IAAY,GAAJ97E,GAI1DA,EAAI,OAAUA,GAAK,MACnBkhE,GAAa4a,EAAS,IAAQ97E,GAAK,IAAO87E,EAAS,IAAS97E,GAAK,EAAK,IAAS87E,EAAS,IAAY,GAAJ97E,IAIpGb,GAAK,EACLa,EAAI,QAAiB,KAAJA,IAAc,GAA8B,KAAvB40D,EAAOxmD,WAAWjP,IAExD+hE,GAAO4a,EAAS,IAAQ97E,GAAK,IACvB87E,EAAS,IAAS97E,GAAK,GAAM,IAC7B87E,EAAS,IAAS97E,GAAK,EAAK,IAC5B87E,EAAS,IAAY,GAAJ97E,IAG3B,OAAOkhE,GA6DPl7D,SA9BW,SAAkB1C,GAC7B,SAAKA,GAAsB,iBAARA,KAITA,EAAImK,aAAenK,EAAImK,YAAYzH,UAAY1C,EAAImK,YAAYzH,SAAS1C,MA0BlF41E,SAnCW,SAAkB51E,GAC7B,MAA+C,oBAAxCP,OAAOhF,UAAU+H,SAAS7F,KAAKqD,IAmCtCm2E,SApBW,SAAkB7hF,EAAKlB,GAClC,GAAIkO,EAAQhN,GAAM,CAEd,IADA,IAAI2kF,EAAS,GACJp9E,EAAI,EAAGA,EAAIvH,EAAIyH,OAAQF,GAAK,EACjCo9E,EAAO38E,KAAKlJ,EAAGkB,EAAIuH,KAEvB,OAAOo9E,EAEX,OAAO7lF,EAAGkB,IAaVuM,MA5MQ,SAASA,EAAMO,EAAQ3E,EAAQ/I,GAEvC,IAAK+I,EACD,OAAO2E,EAGX,GAAsB,iBAAX3E,EAAqB,CAC5B,GAAI6E,EAAQF,GACRA,EAAO9E,KAAKG,OACT,KAAI2E,GAA4B,iBAAXA,EAKxB,MAAO,CAACA,EAAQ3E,IAJX/I,IAAYA,EAAQmhF,cAAgBnhF,EAAQugF,mBAAsB91C,EAAIxhC,KAAK8C,OAAOhF,UAAWgC,MAC9F2E,EAAO3E,IAAU,GAMzB,OAAO2E,EAGX,IAAKA,GAA4B,iBAAXA,EAClB,MAAO,CAACA,GAAQ7C,OAAO9B,GAG3B,IAAIy8E,EAAc93E,EAKlB,OAJIE,EAAQF,KAAYE,EAAQ7E,KAC5By8E,EAAcT,EAAcr3E,EAAQ1N,IAGpC4N,EAAQF,IAAWE,EAAQ7E,IAC3BA,EAAOzD,SAAQ,SAAUuX,EAAM1U,GAC3B,GAAIsiC,EAAIxhC,KAAKyE,EAAQvF,GAAI,CACrB,IAAIs9E,EAAa/3E,EAAOvF,GACpBs9E,GAAoC,iBAAfA,GAA2B5oE,GAAwB,iBAATA,EAC/DnP,EAAOvF,GAAKgF,EAAMs4E,EAAY5oE,EAAM7c,GAEpC0N,EAAO9E,KAAKiU,QAGhBnP,EAAOvF,GAAK0U,KAGbnP,GAGJ3B,OAAOqC,KAAKrF,GAAQiR,QAAO,SAAU6oD,EAAKt9D,GAC7C,IAAI5B,EAAQoF,EAAOxD,GAOnB,OALIklC,EAAIxhC,KAAK45D,EAAKt9D,GACds9D,EAAIt9D,GAAO4H,EAAM01D,EAAIt9D,GAAM5B,EAAO3D,GAElC6iE,EAAIt9D,GAAO5B,EAERk/D,IACR2iB,mCC/FP/lF,EAAQ,EAmDR,SAAsBsE,GACpB,IAAKA,EAAO43E,YACV,MAAM,IAAI9zE,UAAU,kCAGtB,IAAK9D,EAAO83E,MACV,MAAM,IAAIh0E,UAAU,4BAGtB,MAOMnG,EAASgkF,EAAcA,EAAc,GAPrB,CACpBxH,cAAc,EACdjH,kBAAkB,EAClB6E,gBAAiB,qBACjBrpC,YAAa,WAGgD1uC,GAEzD4hF,GAAkB,EAAIC,EAAmBzG,oBAAoB,sBAA4Bz9E,EAAO2c,YAAa3c,EAAO29E,aAC1H39E,EAAOK,QAAU2jF,EAAcA,EAAc,GAAIhkF,EAAOK,SAAU,GAAI,CACpE,eAAgB,8CAChB,0BAA2B4jF,IAE7B,MAAME,GAAO,EAAID,EAAmB1K,kBAAkB4K,EAAOC,QAASrkF,GAChEskF,GAAmB,EAAIC,EAAqBF,SAAS,CACzD7H,aAAcx8E,EAAOw8E,aACrBzrC,YAAa/wC,EAAO+wC,YACpBwkC,iBAAkBv1E,EAAOu1E,iBACzBiP,aAAcL,EAAKn8E,SAASxG,QAC5BijF,mBAAoB,GAAGN,EAAKn8E,SAASxG,uBAAuBxB,EAAO+wC,gBAMrE,OAHAozC,EAAKn8E,SAASxG,QAAU8iF,IAAmBG,mBAS7C,SAAoCN,GAClCA,EAAKl8E,aAAapG,SAASkJ,KAAIlJ,GACtBA,IACN2H,IACD,GAAIA,EAAM3H,UAAY2H,EAAM3H,SAAS7B,OAAOK,QAAQgB,cAAe,CACjE,MAAMkF,EAAQiD,EAAM3H,SAAS7B,OAAOK,QAAQgB,cAC5CmI,EAAM3H,SAAS7B,OAAOK,QAAQgB,cAAgBmI,EAAM3H,SAAS7B,OAAOK,QAAQgB,cAAcgO,QAAQ9I,EAAO,YAAYA,EAAMgM,QAAQ,MAE/H/I,EAAM3H,SAASf,QAAQ4jF,UACzBl7E,EAAM3H,SAASf,QAAQ4jF,QAAUl7E,EAAM3H,SAASf,QAAQ4jF,QAAQr1E,QAAQ9I,EAAO,YAAYA,EAAMgM,QAAQ,OAI7G,OAAOrU,QAAQE,OAAOoL,MApBxBm7E,CAA2BR,IACpB,EAAIS,EAAqBP,SAAS,CACvCF,OACAG,sBAtFJ,IAAIF,EAASS,EAAuB,EAAQ,OAExCX,EAAqB,EAAQ,OAE7BU,EAAuBC,EAAuB,EAAQ,QAEtDN,EAAuBM,EAAuB,EAAQ,QAE1D,SAASA,EAAuBj6E,GAAO,OAAOA,GAAOA,EAAIk6E,WAAal6E,EAAM,CAAEy5E,QAASz5E,GAEvF,SAAS+rE,EAAQ1B,EAAQ2B,GAAkB,IAAIlqE,EAAOrC,OAAOqC,KAAKuoE,GAAS,GAAI5qE,OAAOwsE,sBAAuB,CAAE,IAAIC,EAAUzsE,OAAOwsE,sBAAsB5B,GAAa2B,IAAkBE,EAAUA,EAAQ/gE,QAAO,SAAUghE,GAAO,OAAO1sE,OAAO2sE,yBAAyB/B,EAAQ8B,GAAK9I,eAAkBvhE,EAAKxF,KAAKgC,MAAMwD,EAAMoqE,GAAY,OAAOpqE,EAElV,SAASs3E,EAAch4E,GAAU,IAAK,IAAIvF,EAAI,EAAGA,EAAI0I,UAAUxI,OAAQF,IAAK,CAAE,IAAIY,EAAyB,MAAhB8H,UAAU1I,GAAa0I,UAAU1I,GAAK,GAAQA,EAAI,EAAKkwE,EAAQtsE,OAAOhD,IAAS,GAAMzD,SAAQ,SAAUC,GAAOqzE,EAAgBlrE,EAAQnI,EAAKwD,EAAOxD,OAAsBwG,OAAO8sE,0BAA6B9sE,OAAOC,iBAAiB0B,EAAQ3B,OAAO8sE,0BAA0B9vE,IAAmBsvE,EAAQtsE,OAAOhD,IAASzD,SAAQ,SAAUC,GAAOwG,OAAOE,eAAeyB,EAAQnI,EAAKwG,OAAO2sE,yBAAyB3vE,EAAQxD,OAAe,OAAOmI,EAE7gB,SAASkrE,EAAgBtsE,EAAK/G,EAAK5B,GAAiK,OAApJ4B,KAAO+G,EAAOP,OAAOE,eAAeK,EAAK/G,EAAK,CAAE5B,MAAOA,EAAOgsE,YAAY,EAAMwG,cAAc,EAAMwD,UAAU,IAAkBrtE,EAAI/G,GAAO5B,EAAgB2I,iCCnB3MP,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAA,QAgCA,UAA6B,KAC3BomF,EAAI,iBACJG,IAEA,MAAM,UACJS,GACEC,EAAUX,QAAQlK,OAChB,gBACJ8K,EAAe,0BACfC,GACEF,EAAUX,QAAQr2E,aAChB,UACJm3E,EAAS,oBACTC,GACEJ,EAAUX,QAAQzmE,OAChB,UACJynE,EAAS,oBACTC,GACEN,EAAUX,QAAQkB,OAChB,QACJC,EAAO,kBACPC,GACET,EAAUX,QAAQqB,KAChB,aACJC,GACEX,EAAUX,QAAQuB,UAChB,qBACJC,GACEb,EAAUX,QAAQjtE,OAEhB0uE,EAAgB76E,IACpB,MAAMzB,EAAQ,IAAI/K,MAAM,oCAWxB,OAVA+K,EAAM0rE,IAAM,CACV5wE,KAAM,QACN2G,GAAI,YAENzB,EAAM00E,QAAU,CACd55E,KAAM,QACN2G,GAAIA,EACJ8lC,YAAauzC,IAAmBvzC,YAChCopC,MAAOmK,IAAmBnK,OAErB3wE,GAGT,SAASs0E,EAAat0E,GACpB,GAAIA,EAAMrJ,KACR,MAAMqJ,EAAMrJ,KAGd,GAAIqJ,EAAM3H,UAAY2H,EAAM3H,SAAS1B,KACnC,MAAMqJ,EAAM3H,SAAS1B,KAGvB,MAAMqJ,EA+bR,SAASu8E,EAAoB5B,GAC3BA,EAAKn8E,SAASxG,QAAU8iF,IAAmBG,mBAW7C,MAAO,CACLuB,SAzbFluC,kBAobA,SAAuBqsC,GACrBA,EAAKn8E,SAASxG,QAAU8iF,IAAmBE,aApb3CyB,CAAc9B,GAEd,IACE,MAAMtiF,QAAiBsiF,EAAK9yD,IAAI,IAChC,OAAO0zD,EAAUljF,EAAS1B,MAC1B,MAAOqJ,GACPs0E,EAAat0E,KAmbf08E,eA9ZFpuC,eAA8B7sC,GAC5B86E,EAAoB5B,GAEpB,IACE,MAAMtiF,QAAiBsiF,EAAK9yD,IAAI,iBAAiBpmB,KACjD,OAAOg6E,EAAgBpjF,EAAS1B,MAChC,MAAOqJ,GACPs0E,EAAat0E,KAwZf28E,gBAnYFruC,eAA+B/8B,EAAQ,IACrCgrE,EAAoB5B,GAEpB,IACE,MAAMtiF,QAAiBsiF,EAAK9yD,IAAI,iBAAiB,EAAI6yD,EAAmB5H,qBAAqB,CAC3FvhE,MAAOA,KAET,OAAOmqE,EAA0BrjF,EAAS1B,MAC1C,MAAOqJ,GACPs0E,EAAat0E,KA2Xf48E,SArWFtuC,eAAwB7sC,EAAI8P,EAAQ,IAClC,IAAK9P,EACH,MAAM66E,EAAc76E,GAGtB,IACE,MAAMpJ,QAAiBwE,KAAKga,WAAW2jE,EAAc,CACnD,SAAU/4E,GACT8P,IAEH,GAAIlZ,EAASue,MAAMzZ,OAAS,EAC1B,OAAOw+E,EAAUtjF,EAASue,MAAM,IAEhC,MAAM0lE,EAAc76E,GAEtB,MAAOzB,GACPs0E,EAAat0E,KAsVf6W,WAjUFy3B,eAA0B/8B,EAAQ,IAChCgrE,EAAoB5B,GACpB,MAAM,aACJ3H,EAAY,iBACZjH,GACE+O,EAAiBvpE,GACrBA,GAAQ,EAAIsrE,EAAiBhC,SAAStpE,GAEtC,IACE,MAAMlZ,QAAiBsiF,EAAK9yD,IAAI,WAAW,EAAI6yD,EAAmB5H,qBAAqB,CACrFvhE,MAAOA,KAET,OAAOqqE,EAAoBvjF,EAAS1B,KAAM,CACxCq8E,eACAjH,qBAEF,MAAO/rE,GACPs0E,EAAat0E,KAiTf88E,SA3RFxuC,eAAwB7sC,EAAI8P,EAAQ,IAClCgrE,EAAoB5B,GACpBppE,GAAQ,EAAIsrE,EAAiBhC,SAAStpE,GAEtC,IACE,MAAMlZ,QAAiBsiF,EAAK9yD,IAAI,UAAUpmB,KAAM,EAAIi5E,EAAmB5H,qBAAqB,CAC1FvhE,MAAOA,KAET,OAAOsqE,EAAUxjF,EAAS1B,MAC1B,MAAOqJ,GACPs0E,EAAat0E,KAkRf+8E,UA7PFzuC,eAAyB/8B,EAAQ,IAC/BgrE,EAAoB5B,GACpBppE,GAAQ,EAAIsrE,EAAiBhC,SAAStpE,GAEtC,IACE,MAAMlZ,QAAiBsiF,EAAK9yD,IAAI,UAAU,EAAI6yD,EAAmB5H,qBAAqB,CACpFvhE,MAAOA,KAET,OAAOuqE,EAAoBzjF,EAAS1B,MACpC,MAAOqJ,GACPs0E,EAAat0E,KAoPfg9E,OA/NF1uC,eAAsB7sC,GACpB86E,EAAoB5B,GAEpB,IACE,MAAMtiF,QAAiBsiF,EAAK9yD,IAAI,QAAQpmB,KACxC,OAAOu6E,EAAQ3jF,EAAS1B,MACxB,MAAOqJ,GACPs0E,EAAat0E,KAyNfi9E,QApMF3uC,eAAuB/8B,EAAQ,IAC7BgrE,EAAoB5B,GACpBppE,GAAQ,EAAIsrE,EAAiBhC,SAAStpE,GAEtC,IACE,MAAMlZ,QAAiBsiF,EAAK9yD,IAAI,QAAQ,EAAI6yD,EAAmB5H,qBAAqB,CAClFvhE,MAAOA,KAET,OAAO0qE,EAAkB5jF,EAAS1B,MAClC,MAAOqJ,GACPs0E,EAAat0E,KA2Lfk9E,eAtKF5uC,eAA8B6uC,GAC5BZ,EAAoB5B,GAEpB,IACE,MAAMvzE,EAAM9D,KAAKC,MAAMsD,KAAKO,MAAQ,KAC9Bg2E,EAAqBh2E,EAtXF,QAuXzB,EAAIi2E,EAAmBxC,SAAS,YAAasC,EAAW,CACtDG,QAASF,EACTh2E,QAEF,MAAMvO,EAAS,CACbskF,aAEI9kF,QAAiBsiF,EAAK4C,KAAK,aAAc1kF,GAC/C,OAAOsjF,EAAa9jF,EAAS1B,MAC7B,MAAOqJ,GACPs0E,EAAat0E,KAuJfw9E,WAlIFlvC,eAA0B/8B,EAAQ,IAChCgrE,EAAoB5B,GAEpB,IACE,MAAMtiF,QAAiBsiF,EAAK9yD,IAAI,WAAW,EAAI6yD,EAAmB5H,qBAAqB,CACrFvhE,MAAOA,KAET,OAAO8qE,EAAqBhkF,EAAS1B,MACrC,MAAOqJ,GACPs0E,EAAat0E,KA0Hfy9E,aAvCF,SAAsB9mF,GACpB,MAAM,aACJq8E,EAAY,iBACZjH,GACE+O,EAAiB,IACrB,OAAOc,EAAoBjlF,EAAM,CAC/Bq8E,eACAjH,sBAiCF2R,KArFFpvC,eAAoB/8B,EAAQ,GAAIzc,EAAU,CACxC6oF,UAAU,IAEV,MAAM,aACJ3K,EAAY,iBACZjH,GACE+O,EAAiBvpE,GAErB,OADAgrE,EAAoB5B,IACb,EAAIiD,EAAW/C,SAASF,EAAMppE,EAAOipE,EAAc,CACxDxH,eACAjH,oBACCj3E,OAleP,IAAI4lF,EAAqB,EAAQ,OAE7Bc,EAAYH,EAAuB,EAAQ,QAE3CuC,EAAavC,EAAuB,EAAQ,OAE5CwB,EAAmBxB,EAAuB,EAAQ,QAElDgC,EAAqBhC,EAAuB,EAAQ,QAExD,SAASA,EAAuBj6E,GAAO,OAAOA,GAAOA,EAAIk6E,WAAal6E,EAAM,CAAEy5E,QAASz5E,GAEvF,SAAS+rE,EAAQ1B,EAAQ2B,GAAkB,IAAIlqE,EAAOrC,OAAOqC,KAAKuoE,GAAS,GAAI5qE,OAAOwsE,sBAAuB,CAAE,IAAIC,EAAUzsE,OAAOwsE,sBAAsB5B,GAAa2B,IAAkBE,EAAUA,EAAQ/gE,QAAO,SAAUghE,GAAO,OAAO1sE,OAAO2sE,yBAAyB/B,EAAQ8B,GAAK9I,eAAkBvhE,EAAKxF,KAAKgC,MAAMwD,EAAMoqE,GAAY,OAAOpqE,EAElV,SAASs3E,EAAch4E,GAAU,IAAK,IAAIvF,EAAI,EAAGA,EAAI0I,UAAUxI,OAAQF,IAAK,CAAE,IAAIY,EAAyB,MAAhB8H,UAAU1I,GAAa0I,UAAU1I,GAAK,GAAQA,EAAI,EAAKkwE,EAAQtsE,OAAOhD,IAAS,GAAMzD,SAAQ,SAAUC,GAAOqzE,EAAgBlrE,EAAQnI,EAAKwD,EAAOxD,OAAsBwG,OAAO8sE,0BAA6B9sE,OAAOC,iBAAiB0B,EAAQ3B,OAAO8sE,0BAA0B9vE,IAAmBsvE,EAAQtsE,OAAOhD,IAASzD,SAAQ,SAAUC,GAAOwG,OAAOE,eAAeyB,EAAQnI,EAAKwG,OAAO2sE,yBAAyB3vE,EAAQxD,OAAe,OAAOmI,EAE7gB,SAASkrE,EAAgBtsE,EAAK/G,EAAK5B,GAAiK,OAApJ4B,KAAO+G,EAAOP,OAAOE,eAAeK,EAAK/G,EAAK,CAAE5B,MAAOA,EAAOgsE,YAAY,EAAMwG,cAAc,EAAMwD,UAAU,IAAkBrtE,EAAI/G,GAAO5B,EAAgB2I,+BCrB3MP,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAA,QASA,SAA6BspF,GAK3B,OAAO,SAA0BtsE,GAC/B,OAAO1Q,OAAOQ,OAAO,GAAIw8E,EAAgBtsE,mCClB7C1Q,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAQ4nF,aAqBR,SAAsBxlF,GACpB,OAAO,EAAI+jF,EAAmB5G,YAAW,EAAI4G,EAAmBrG,gBAAe,EAAIyJ,EAAUjD,SAASlkF,MApBxG,IAIgCyK,EAJ5B08E,GAI4B18E,EAJO,EAAQ,SAIMA,EAAIk6E,WAAal6E,EAAM,CAAEy5E,QAASz5E,GAFnFs5E,EAAqB,EAAQ,qCCPjC75E,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAQsnF,UA8BR,SAAmBllF,GACjB,OAAO,EAAI+jF,EAAmB5G,YAAW,EAAI4G,EAAmBrG,gBAAe,EAAIyJ,EAAUjD,SAASlkF,MA9BxGpC,EAAQunF,oBAiDR,SAA6BnlF,GAC3B,OAAO,EAAI+jF,EAAmB5G,YAAW,EAAI4G,EAAmBrG,gBAAe,EAAIyJ,EAAUjD,SAASlkF,MAhDxG,IAIgCyK,EAJ5B08E,GAI4B18E,EAJO,EAAQ,SAIMA,EAAIk6E,WAAal6E,EAAM,CAAEy5E,QAASz5E,GAFnFs5E,EAAqB,EAAQ,qCCRjC75E,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAQknF,gBAyBR,SAAyB9kF,GACvB,OAAO,EAAI+jF,EAAmB5G,YAAW,EAAI4G,EAAmBrG,gBAAe,EAAIyJ,EAAUjD,SAASlkF,MAzBxGpC,EAAQmnF,0BA4CR,SAAmC/kF,GACjC,OAAO,EAAI+jF,EAAmB5G,YAAW,EAAI4G,EAAmBrG,gBAAe,EAAIyJ,EAAUjD,SAASlkF,MA3CxG,IAIgCyK,EAJ5B08E,GAI4B18E,EAJO,EAAQ,SAIMA,EAAIk6E,WAAal6E,EAAM,CAAEy5E,QAASz5E,GAFnFs5E,EAAqB,EAAQ,qCCRjC75E,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAQonF,UAmFR,SAAmBhlF,GACjB,OAAO,EAAI+jF,EAAmB5G,YAAW,EAAI4G,EAAmBrG,gBAAe,EAAIyJ,EAAUjD,SAASlkF,MAnFxGpC,EAAQqnF,oBA2GR,SAA6BjlF,GAAM,aACjCq8E,EAAY,iBACZjH,IAEA,MAAMgS,GAAc,EAAIC,EAAenD,UAAS,EAAIH,EAAmBrG,gBAAe,EAAIyJ,EAAUjD,SAASlkF,KAS7G,OAPIq8E,IACF+K,EAAYnnE,OAAQ,EAAIqnE,EAA2BpD,SAASkD,EAAa,CACvEhS,mBACAS,gBAAiB,CAAC,cAIf,EAAIkO,EAAmB5G,WAAWiK,IAtH3C,IAAID,EAAYzC,EAAuB,EAAQ,QAE3CX,EAAqB,EAAQ,OAE7BsD,EAAiB3C,EAAuB,EAAQ,QAEhD4C,EAA6B5C,EAAuB,EAAQ,QAEhE,SAASA,EAAuBj6E,GAAO,OAAOA,GAAOA,EAAIk6E,WAAal6E,EAAM,CAAEy5E,QAASz5E,kCCKvF,SAAS88E,EAAyBC,GAAe,GAAuB,mBAAZjQ,QAAwB,OAAO,KAAM,IAAIkQ,EAAoB,IAAIlQ,QAAemQ,EAAmB,IAAInQ,QAAW,OAAQgQ,EAA2B,SAAUC,GAAe,OAAOA,EAAcE,EAAmBD,IAAsBD,GAExS,SAASG,EAAwBl9E,EAAK+8E,GAAe,IAAKA,GAAe/8E,GAAOA,EAAIk6E,WAAc,OAAOl6E,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAEy5E,QAASz5E,GAAS,IAAI0J,EAAQozE,EAAyBC,GAAc,GAAIrzE,GAASA,EAAMy0B,IAAIn+B,GAAQ,OAAO0J,EAAM+c,IAAIzmB,GAAQ,IAAIu2E,EAAS,GAAQ4G,EAAwB19E,OAAOE,gBAAkBF,OAAO2sE,yBAA0B,IAAK,IAAInzE,KAAO+G,EAAO,GAAY,YAAR/G,GAAqBwG,OAAOhF,UAAUuP,eAAerN,KAAKqD,EAAK/G,GAAM,CAAE,IAAIgQ,EAAOk0E,EAAwB19E,OAAO2sE,yBAAyBpsE,EAAK/G,GAAO,KAAUgQ,IAASA,EAAKwd,KAAOxd,EAAK+c,KAAQvmB,OAAOE,eAAe42E,EAAQt9E,EAAKgQ,GAAgBstE,EAAOt9E,GAAO+G,EAAI/G,GAAyE,OAA7Ds9E,EAAOkD,QAAUz5E,EAAS0J,GAASA,EAAMsc,IAAIhmB,EAAKu2E,GAAkBA,EArB3xB92E,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAA,aAAkB,EAoBlB,IAAIiqF,EAAW,CACb7N,MAnBU2N,EAAwB,EAAQ,QAoB1ClqE,MAlBUkqE,EAAwB,EAAQ,QAmB1CvC,MAjBUuC,EAAwB,EAAQ,QAkB1ClC,SAhBakC,EAAwB,EAAQ,QAiB7C95E,YAfgB85E,EAAwB,EAAQ,QAgBhD1wE,OAdW0wE,EAAwB,EAAQ,OAe3CpC,IAbQoC,EAAwB,EAAQ,SAe1C/pF,EAAA,QAAkBiqF,+BChClB39E,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAQkqF,WA0BR,SAAoB9nF,GAClB,OAAO,EAAI+jF,EAAmB5G,YAAW,EAAI4G,EAAmBrG,gBAAe,EAAIyJ,EAAUjD,SAASlkF,MA1BxGpC,EAAQ8nF,qBA6CR,SAA8B1lF,GAC5B,OAAO,EAAI+jF,EAAmB5G,YAAW,EAAI4G,EAAmBrG,gBAAe,EAAIyJ,EAAUjD,SAASlkF,MA5CxG,IAIgCyK,EAJ5B08E,GAI4B18E,EAJO,EAAQ,SAIMA,EAAIk6E,WAAal6E,EAAM,CAAEy5E,QAASz5E,GAFnFs5E,EAAqB,EAAQ,qCCRjC75E,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAQgnF,UAoBR,SAAmB5kF,GACjB,OAAO,EAAI+jF,EAAmB5G,YAAW,EAAI4G,EAAmBrG,eAAe19E,KAnBjF,IAAI+jF,EAAqB,EAAQ,qCCLjC75E,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAQynF,QAsBR,SAAiBrlF,GACf,OAAO,EAAI+jF,EAAmB5G,YAAW,EAAI4G,EAAmBrG,gBAAe,EAAIyJ,EAAUjD,SAASlkF,MAtBxGpC,EAAQ0nF,kBAyCR,SAA2BtlF,GACzB,OAAO,EAAI+jF,EAAmB5G,YAAW,EAAI4G,EAAmBrG,gBAAe,EAAIyJ,EAAUjD,SAASlkF,MAxCxG,IAIgCyK,EAJ5B08E,GAI4B18E,EAJO,EAAQ,SAIMA,EAAIk6E,WAAal6E,EAAM,CAAEy5E,QAASz5E,GAFnFs5E,EAAqB,EAAQ,qCCRjC75E,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAA,QAMA,SAA4BoC,GAC1B,OAAOkK,OAAOE,eAAepK,EAAM,gBAAiB,CAClD8tE,YAAY,EACZwG,cAAc,EACdwD,UAAU,EACVh2E,MAAO,SAAUimF,EAAa,KAAMC,EAAS,IAC3C,OAAO,EAAIC,EAAmB/D,SAASh+E,KAAM6hF,EAAYC,GAAQ,CAACtkF,EAAK5B,KAC9D,CACLizE,IAAK,CACH5wE,KAAM,OACNiyE,SAAU,QACVtrE,GAAIhJ,EAAMizE,IAAIjqE,GACdo9E,UAAU,WAhBtB,IAEgCz9E,EAF5Bw9E,GAE4Bx9E,EAFgB,EAAQ,SAEHA,EAAIk6E,WAAal6E,EAAM,CAAEy5E,QAASz5E,gCCPvFP,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAA,QAqDA+5C,eAAyBqsC,EAAMppE,EAAOzc,EAAU,IAC9C,IAAKyc,IAAUA,EAAMutE,UAAYvtE,EAAMwtE,gBAAkBxtE,EAAMytE,cAC7D,MAAM,IAAI/pF,MAAM,8FAGlB,GAAIsc,GAASA,EAAM0tE,eAAiB1tE,EAAMzW,KACxCyW,EAAMzW,KAAO,aACR,GAAIyW,GAASA,EAAM0tE,cAAgB1tE,EAAMzW,MAAuB,UAAfyW,EAAMzW,KAC5D,MAAM,IAAI7F,MAAM,gGAGlB,MAMM,aACJ+9E,EAAY,iBACZjH,EAAgB,SAChB4R,GACEnD,EAAcA,EAAc,GAVT,CACrBxH,cAAc,EACdjH,kBAAkB,EAClB4R,UAAU,IAOyC7oF,GAE/CoqF,EAAc,CAClBvB,YAEItlF,QAAiB8mF,EAAYxE,EAAM,GAAIppE,EAAO2tE,GAEhDlM,IACF36E,EAASue,OAAQ,EAAIqnE,EAA2BpD,SAASxiF,EAAU,CACjE0zE,mBACAS,gBAAiB,CAAC,aAKtB,MAAM4S,EAmBR,SAA0BxoE,GACxB,MAAMyoE,EAAUvkF,GACP,CAACwkF,EAAa3tE,KACfA,EAAK+5D,IAAI5wE,OAASA,GACpBwkF,EAAY5hF,MAAK,EAAIg9E,EAAmBrG,eAAe1iE,IAGlD2tE,GAIX,MAAO,CACL70D,QAAS7T,EAAM9H,OAAOuwE,EAAQ,SAAU,IACxCE,OAAQ3oE,EAAM9H,OAAOuwE,EAAQ,SAAU,IACvCG,eAAgB5oE,EAAM9H,OAAOuwE,EAAQ,gBAAiB,IACtDI,cAAe7oE,EAAM9H,OAAOuwE,EAAQ,gBAAiB,KAlC3BK,CAAiBrnF,EAASue,OAUtD,OARIve,EAAS0mF,gBACXK,EAAoBL,cAAgB1mF,EAAS0mF,eAG3C1mF,EAAS2mF,gBACXI,EAAoBJ,cAAgB3mF,EAAS2mF,gBAGxC,EAAItE,EAAmB5G,YAAW,EAAIkK,EAAenD,UAAS,EAAIH,EAAmBrG,eAAe+K,MAjG7G,IAAI1E,EAAqB,EAAQ,OAE7BuD,EAA6B5C,EAAuB,EAAQ,QAE5D2C,EAAiB3C,EAAuB,EAAQ,QAEpD,SAASA,EAAuBj6E,GAAO,OAAOA,GAAOA,EAAIk6E,WAAal6E,EAAM,CAAEy5E,QAASz5E,GAEvF,SAAS+rE,EAAQ1B,EAAQ2B,GAAkB,IAAIlqE,EAAOrC,OAAOqC,KAAKuoE,GAAS,GAAI5qE,OAAOwsE,sBAAuB,CAAE,IAAIC,EAAUzsE,OAAOwsE,sBAAsB5B,GAAa2B,IAAkBE,EAAUA,EAAQ/gE,QAAO,SAAUghE,GAAO,OAAO1sE,OAAO2sE,yBAAyB/B,EAAQ8B,GAAK9I,eAAkBvhE,EAAKxF,KAAKgC,MAAMwD,EAAMoqE,GAAY,OAAOpqE,EAElV,SAASs3E,EAAch4E,GAAU,IAAK,IAAIvF,EAAI,EAAGA,EAAI0I,UAAUxI,OAAQF,IAAK,CAAE,IAAIY,EAAyB,MAAhB8H,UAAU1I,GAAa0I,UAAU1I,GAAK,GAAQA,EAAI,EAAKkwE,EAAQtsE,OAAOhD,IAAS,GAAMzD,SAAQ,SAAUC,GAAOqzE,EAAgBlrE,EAAQnI,EAAKwD,EAAOxD,OAAsBwG,OAAO8sE,0BAA6B9sE,OAAOC,iBAAiB0B,EAAQ3B,OAAO8sE,0BAA0B9vE,IAAmBsvE,EAAQtsE,OAAOhD,IAASzD,SAAQ,SAAUC,GAAOwG,OAAOE,eAAeyB,EAAQnI,EAAKwG,OAAO2sE,yBAAyB3vE,EAAQxD,OAAe,OAAOmI,EAE7gB,SAASkrE,EAAgBtsE,EAAK/G,EAAK5B,GAAiK,OAApJ4B,KAAO+G,EAAOP,OAAOE,eAAeK,EAAK/G,EAAK,CAAE5B,MAAOA,EAAOgsE,YAAY,EAAMwG,cAAc,EAAMwD,UAAU,IAAkBrtE,EAAI/G,GAAO5B,EAAgB2I,EAiI3MktC,eAAe6wC,EAAYxE,EAAM/jE,EAAOrF,GAAO,SAC7CosE,IAEIpsE,EAAMwtE,gBACRxtE,EAAMouE,WAAapuE,EAAMwtE,qBAClBxtE,EAAMwtE,eAGXxtE,EAAMytE,gBACRztE,EAAMouE,WAAapuE,EAAMytE,qBAClBztE,EAAMytE,eAGXztE,EAAMouE,oBACDpuE,EAAMutE,eACNvtE,EAAMzW,YACNyW,EAAM0tE,oBACN1tE,EAAM6F,OAGf,MAGMzgB,SAHiBgkF,EAAK9yD,IAAI,QAAQ,EAAI6yD,EAAmB5H,qBAAqB,CAClFvhE,MAAOA,MAEa5a,MAAQ,GAG9B,OAFAigB,EAAQA,EAAMjX,OAAOhJ,EAAKigB,OAAS,IAE/BjgB,EAAKipF,YACHjC,UACKpsE,EAAMutE,QACbvtE,EAAMouE,WAAa/N,EAASj7E,EAAKipF,aAC1BT,EAAYxE,EAAM/jE,EAAOrF,EAAO,CACrCosE,cAIG,CACL/mE,MAAOA,EACPooE,cAAepN,EAASj7E,EAAKipF,cAEtBjpF,EAAKkpF,YACP,CACLjpE,MAAOA,EACPmoE,cAAenN,EAASj7E,EAAKkpF,cAGxB,CACLjpE,MAAO,IAUb,SAASg7D,EAAS35E,GAChB,MAAMguB,EAAWhuB,EAAI4Q,MAAM,KAC3B,OAAOod,EAAS9oB,OAAS,EAAI8oB,EAAS,GAAGpgB,QAAQ,cAAe,IAAM,gCCvMxE,SAASsnE,EAAQ1B,EAAQ2B,GAAkB,IAAIlqE,EAAOrC,OAAOqC,KAAKuoE,GAAS,GAAI5qE,OAAOwsE,sBAAuB,CAAE,IAAIC,EAAUzsE,OAAOwsE,sBAAsB5B,GAAa2B,IAAkBE,EAAUA,EAAQ/gE,QAAO,SAAUghE,GAAO,OAAO1sE,OAAO2sE,yBAAyB/B,EAAQ8B,GAAK9I,eAAkBvhE,EAAKxF,KAAKgC,MAAMwD,EAAMoqE,GAAY,OAAOpqE,EAElV,SAASs3E,EAAch4E,GAAU,IAAK,IAAIvF,EAAI,EAAGA,EAAI0I,UAAUxI,OAAQF,IAAK,CAAE,IAAIY,EAAyB,MAAhB8H,UAAU1I,GAAa0I,UAAU1I,GAAK,GAAQA,EAAI,EAAKkwE,EAAQtsE,OAAOhD,IAAS,GAAMzD,SAAQ,SAAUC,GAAOqzE,EAAgBlrE,EAAQnI,EAAKwD,EAAOxD,OAAsBwG,OAAO8sE,0BAA6B9sE,OAAOC,iBAAiB0B,EAAQ3B,OAAO8sE,0BAA0B9vE,IAAmBsvE,EAAQtsE,OAAOhD,IAASzD,SAAQ,SAAUC,GAAOwG,OAAOE,eAAeyB,EAAQnI,EAAKwG,OAAO2sE,yBAAyB3vE,EAAQxD,OAAe,OAAOmI,EAE7gB,SAASkrE,EAAgBtsE,EAAK/G,EAAK5B,GAAiK,OAApJ4B,KAAO+G,EAAOP,OAAOE,eAAeK,EAAK/G,EAAK,CAAE5B,MAAOA,EAAOgsE,YAAY,EAAMwG,cAAc,EAAMwD,UAAU,IAAkBrtE,EAAI/G,GAAO5B,EAAgB2I,EAT3MP,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAA,QAaA,SAAyBgd,GACvB,IAAKA,EAAMuuE,OACT,OAAOvuE,EAKT,MAAMwuE,EAAatgF,MAAMiD,QAAQ6O,EAAMuuE,QAAUvuE,EAAMuuE,OAASvuE,EAAMuuE,OAAOj3E,MAAM,KAE7Em3E,EAAc,IAAIlpE,IAAIipE,GAG5B,OAAIC,EAAYzgD,IAAI,OACXhuB,GAITyuE,EAAYl9C,IAAI,UAChBk9C,EAAYl9C,IAAI,YAET03C,EAAcA,EAAc,GAAIjpE,GAAQ,GAAI,CACjDuuE,OAAQ,IAAIE,GAAa75E,KAAK,qCCrClCtF,OAAOE,eAAexM,EAAS,aAAc,CAC3CkE,OAAO,IAETlE,EAAA,QAaA,SAA2B0J,EAAMuxD,EAAW16D,GAG1C,GAFAA,EAAUA,GAAW,GAEI,iBAAd06D,EACT,MAAM,IAAIywB,EAAgBhiF,EAAM,6EAA6EuxD,MAG/G,GAAI16D,EAAQwoF,SAAW9tB,EAAY16D,EAAQwoF,QACzC,MAAM,IAAI2C,EAAgBhiF,EAAM,UAAUuxD,6DAAqE16D,EAAQwoF,YAGzH,GAAIxoF,EAAQsS,KAAOooD,EAAY16D,EAAQsS,IACrC,MAAM,IAAI64E,EAAgBhiF,EAAM,UAAUuxD,8CAAsD16D,EAAQsS,QAxB5G7S,EAAQ0rF,qBAAkB,EAE1B,MAAMA,UAAwBhrF,MAC5BsW,YAAYtN,EAAMX,GAChBqT,MAAM,YAAY1S,gBAAqBX,GACvCT,KAAKoB,KAAO,mBAKhB1J,EAAQ0rF,gBAAkBA,8BCD1B1rF,EAAQ,EAqFR,SAAmB0J,EAAMvI,EAAKZ,GAC5B,IAAIsV,EAAMtV,GAAW,GACjBorF,EAAM91E,EAAIxE,QAAUA,EAExB,GAAmB,mBAARs6E,EACT,MAAM,IAAIvjF,UAAU,4BAGtB,IAAKwjF,EAAmB94E,KAAKpJ,GAC3B,MAAM,IAAItB,UAAU,4BAGtB,IAAIlE,EAAQynF,EAAIxqF,GAEhB,GAAI+C,IAAU0nF,EAAmB94E,KAAK5O,GACpC,MAAM,IAAIkE,UAAU,2BAGtB,IAAIqO,EAAM/M,EAAO,IAAMxF,EAEvB,GAAI,MAAQ2R,EAAIg2E,OAAQ,CACtB,IAAIA,EAASh2E,EAAIg2E,OAAS,EAE1B,GAAItJ,MAAMsJ,KAAYza,SAASya,GAC7B,MAAM,IAAIzjF,UAAU,4BAGtBqO,GAAO,aAAe1H,KAAKC,MAAM68E,GAGnC,GAAIh2E,EAAI3D,OAAQ,CACd,IAAK05E,EAAmB94E,KAAK+C,EAAI3D,QAC/B,MAAM,IAAI9J,UAAU,4BAGtBqO,GAAO,YAAcZ,EAAI3D,OAG3B,GAAI2D,EAAI5D,KAAM,CACZ,IAAK25E,EAAmB94E,KAAK+C,EAAI5D,MAC/B,MAAM,IAAI7J,UAAU,0BAGtBqO,GAAO,UAAYZ,EAAI5D,KAGzB,GAAI4D,EAAI7D,QAAS,CACf,GAAuC,mBAA5B6D,EAAI7D,QAAQujB,YACrB,MAAM,IAAIntB,UAAU,6BAGtBqO,GAAO,aAAeZ,EAAI7D,QAAQujB,cAWpC,GARI1f,EAAIi2E,WACNr1E,GAAO,cAGLZ,EAAI1D,SACNsE,GAAO,YAGLZ,EAAIqf,SAIN,OAHuC,iBAAjBrf,EAAIqf,SACtBrf,EAAIqf,SAASnvB,cAAgB8P,EAAIqf,UAGnC,KAAK,EACHze,GAAO,oBACP,MACF,IAAK,MACHA,GAAO,iBACP,MACF,IAAK,SACHA,GAAO,oBACP,MACF,IAAK,OACHA,GAAO,kBACP,MACF,QACE,MAAM,IAAIrO,UAAU,8BAI1B,OAAOqO,GAlKI9D,mBAAb,IACItB,EAAShO,mBAUTuoF,EAAqB,6DCjCzB,IAAIG,EAAyB,oBAAT3gD,KAAuBA,KAAO9iC,KAC9C0jF,EAAW,WACf,SAASjN,IACTz2E,KAAKsT,OAAQ,EACbtT,KAAK2jF,aAAeF,EAAOE,aAG3B,OADAlN,EAAEz3E,UAAYykF,EACP,IAAIhN,EANI,IAQf,SAAU3zC,IAEO,SAAWprC,GAE1B,IAAIk7D,EACY,oBAAqB9vB,EADjC8vB,EAEQ,WAAY9vB,GAAQ,aAAcggC,OAF1ClQ,EAIA,eAAgB9vB,GAChB,SAAUA,GACV,WACE,IAEE,OADA,IAAIr2B,MACG,EACP,MAAOnE,GACP,OAAO,GALX,GANAsqD,EAcQ,aAAc9vB,EAdtB8vB,EAeW,gBAAiB9vB,EAOhC,GAAI8vB,EACF,IAAIgxB,EAAc,CAChB,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,yBAGEv8E,EACFuH,YAAYC,QACZ,SAAStK,GACP,OAAOA,GAAOq/E,EAAYtnF,QAAQ0H,OAAOhF,UAAU+H,SAAS7F,KAAKqD,KAAS,GAIhF,SAASs/E,EAAcziF,GAIrB,GAHoB,iBAATA,IACTA,EAAO2O,OAAO3O,IAEZ,4BAA4BoJ,KAAKpJ,GACnC,MAAM,IAAItB,UAAU,0CAEtB,OAAOsB,EAAK3D,cAGd,SAASqmF,EAAeloF,GAItB,MAHqB,iBAAVA,IACTA,EAAQmU,OAAOnU,IAEVA,EAIT,SAASmoF,EAAYhqE,GACnB,IAAIw0D,EAAW,CACbxM,KAAM,WACJ,IAAInmE,EAAQme,EAAMhX,QAClB,MAAO,CAAC7I,UAAgBmD,IAAVzB,EAAqBA,MAAOA,KAU9C,OANIg3D,IACF2b,EAASzL,OAAOyL,UAAY,WAC1B,OAAOA,IAIJA,EAGT,SAAS96D,EAAQzZ,GACfgG,KAAK0S,IAAM,GAEP1Y,aAAmByZ,EACrBzZ,EAAQuD,SAAQ,SAAS3B,EAAOwF,GAC9BpB,KAAKiN,OAAO7L,EAAMxF,KACjBoE,MACM4C,MAAMiD,QAAQ7L,GACvBA,EAAQuD,SAAQ,SAASymF,GACvBhkF,KAAKiN,OAAO+2E,EAAO,GAAIA,EAAO,MAC7BhkF,MACMhG,GACTgK,OAAO4L,oBAAoB5V,GAASuD,SAAQ,SAAS6D,GACnDpB,KAAKiN,OAAO7L,EAAMpH,EAAQoH,MACzBpB,MAgEP,SAASikF,EAAS1wE,GAChB,GAAIA,EAAK2wE,SACP,OAAOrsF,QAAQE,OAAO,IAAI+H,UAAU,iBAEtCyT,EAAK2wE,UAAW,EAGlB,SAASC,EAAgBC,GACvB,OAAO,IAAIvsF,SAAQ,SAASC,EAASC,GACnCqsF,EAAOC,OAAS,WACdvsF,EAAQssF,EAAOr2E,SAEjBq2E,EAAO1nF,QAAU,WACf3E,EAAOqsF,EAAOjhF,WAKpB,SAASmhF,EAAsBC,GAC7B,IAAIH,EAAS,IAAII,WACbvkF,EAAUkkF,EAAgBC,GAE9B,OADAA,EAAOK,kBAAkBF,GAClBtkF,EAoBT,SAASykF,EAAYzhB,GACnB,GAAIA,EAAIn9D,MACN,OAAOm9D,EAAIn9D,MAAM,GAEjB,IAAI6+E,EAAO,IAAIl2E,WAAWw0D,EAAI1G,YAE9B,OADAooB,EAAKp6D,IAAI,IAAI9b,WAAWw0D,IACjB0hB,EAAKr9E,OAIhB,SAASs9E,IA0FP,OAzFA5kF,KAAKkkF,UAAW,EAEhBlkF,KAAK6kF,UAAY,SAAStxE,GAhM5B,IAAoBhP,EAiMhBvE,KAAK8kF,UAAYvxE,EACZA,EAEsB,iBAATA,EAChBvT,KAAK+kF,UAAYxxE,EACRq/C,GAAgBnmD,KAAKzN,UAAUgmF,cAAczxE,GACtDvT,KAAKilF,UAAY1xE,EACRq/C,GAAoB9qD,SAAS9I,UAAUgmF,cAAczxE,GAC9DvT,KAAKklF,cAAgB3xE,EACZq/C,GAAwBtoC,gBAAgBtrB,UAAUgmF,cAAczxE,GACzEvT,KAAK+kF,UAAYxxE,EAAKxM,WACb6rD,GAAuBA,IA5MlBruD,EA4M6CgP,IA3MjD4xE,SAASnmF,UAAUgmF,cAAczgF,IA4M3CvE,KAAKolF,iBAAmBV,EAAYnxE,EAAKjM,QAEzCtH,KAAK8kF,UAAY,IAAIr4E,KAAK,CAACzM,KAAKolF,oBACvBxyB,IAAwBhkD,YAAY5P,UAAUgmF,cAAczxE,IAASlM,EAAkBkM,IAChGvT,KAAKolF,iBAAmBV,EAAYnxE,GAEpCvT,KAAK+kF,UAAYxxE,EAAOvP,OAAOhF,UAAU+H,SAAS7F,KAAKqS,GAhBvDvT,KAAK+kF,UAAY,GAmBd/kF,KAAKhG,QAAQgxB,IAAI,kBACA,iBAATzX,EACTvT,KAAKhG,QAAQuwB,IAAI,eAAgB,4BACxBvqB,KAAKilF,WAAajlF,KAAKilF,UAAUhnF,KAC1C+B,KAAKhG,QAAQuwB,IAAI,eAAgBvqB,KAAKilF,UAAUhnF,MACvC20D,GAAwBtoC,gBAAgBtrB,UAAUgmF,cAAczxE,IACzEvT,KAAKhG,QAAQuwB,IAAI,eAAgB,qDAKnCqoC,IACF5yD,KAAKukF,KAAO,WACV,IAAI9hF,EAAWwhF,EAASjkF,MACxB,GAAIyC,EACF,OAAOA,EAGT,GAAIzC,KAAKilF,UACP,OAAOptF,QAAQC,QAAQkI,KAAKilF,WACvB,GAAIjlF,KAAKolF,iBACd,OAAOvtF,QAAQC,QAAQ,IAAI2U,KAAK,CAACzM,KAAKolF,oBACjC,GAAIplF,KAAKklF,cACd,MAAM,IAAI9sF,MAAM,wCAEhB,OAAOP,QAAQC,QAAQ,IAAI2U,KAAK,CAACzM,KAAK+kF,cAI1C/kF,KAAKqlF,YAAc,WACjB,OAAIrlF,KAAKolF,iBACAnB,EAASjkF,OAASnI,QAAQC,QAAQkI,KAAKolF,kBAEvCplF,KAAKukF,OAAOzrF,KAAKwrF,KAK9BtkF,KAAKsU,KAAO,WACV,IA3FoBiwE,EAClBH,EACAnkF,EAyFEwC,EAAWwhF,EAASjkF,MACxB,GAAIyC,EACF,OAAOA,EAGT,GAAIzC,KAAKilF,UACP,OAjGkBV,EAiGIvkF,KAAKilF,UA/F3BhlF,EAAUkkF,EADVC,EAAS,IAAII,YAEjBJ,EAAOkB,WAAWf,GACXtkF,EA8FE,GAAID,KAAKolF,iBACd,OAAOvtF,QAAQC,QA5FrB,SAA+BmrE,GAI7B,IAHA,IAAI0hB,EAAO,IAAIl2E,WAAWw0D,GACtBsiB,EAAQ,IAAI3iF,MAAM+hF,EAAKrkF,QAElBF,EAAI,EAAGA,EAAIukF,EAAKrkF,OAAQF,IAC/BmlF,EAAMnlF,GAAK2P,OAAOynD,aAAamtB,EAAKvkF,IAEtC,OAAOmlF,EAAMj8E,KAAK,IAqFSk8E,CAAsBxlF,KAAKolF,mBAC7C,GAAIplF,KAAKklF,cACd,MAAM,IAAI9sF,MAAM,wCAEhB,OAAOP,QAAQC,QAAQkI,KAAK+kF,YAI5BnyB,IACF5yD,KAAKsM,SAAW,WACd,OAAOtM,KAAKsU,OAAOxb,KAAKi5B,KAI5B/xB,KAAKwU,KAAO,WACV,OAAOxU,KAAKsU,OAAOxb,KAAKqP,KAAKC,QAGxBpI,KA1MTyT,EAAQzU,UAAUiO,OAAS,SAAS7L,EAAMxF,GACxCwF,EAAOyiF,EAAcziF,GACrBxF,EAAQkoF,EAAeloF,GACvB,IAAI6pF,EAAWzlF,KAAK0S,IAAItR,GACxBpB,KAAK0S,IAAItR,GAAQqkF,EAAWA,EAAW,KAAO7pF,EAAQA,GAGxD6X,EAAQzU,UAAkB,OAAI,SAASoC,UAC9BpB,KAAK0S,IAAImxE,EAAcziF,KAGhCqS,EAAQzU,UAAUgsB,IAAM,SAAS5pB,GAE/B,OADAA,EAAOyiF,EAAcziF,GACdpB,KAAK0iC,IAAIthC,GAAQpB,KAAK0S,IAAItR,GAAQ,MAG3CqS,EAAQzU,UAAU0jC,IAAM,SAASthC,GAC/B,OAAOpB,KAAK0S,IAAInE,eAAes1E,EAAcziF,KAG/CqS,EAAQzU,UAAUurB,IAAM,SAASnpB,EAAMxF,GACrCoE,KAAK0S,IAAImxE,EAAcziF,IAAS0iF,EAAeloF,IAGjD6X,EAAQzU,UAAUzB,QAAU,SAAS6O,EAAUxD,GAC7C,IAAK,IAAIxH,KAAQpB,KAAK0S,IAChB1S,KAAK0S,IAAInE,eAAenN,IAC1BgL,EAASlL,KAAK0H,EAAS5I,KAAK0S,IAAItR,GAAOA,EAAMpB,OAKnDyT,EAAQzU,UAAUqH,KAAO,WACvB,IAAI0T,EAAQ,GAIZ,OAHA/Z,KAAKzC,SAAQ,SAAS3B,EAAOwF,GAC3B2Y,EAAMlZ,KAAKO,MAEN2iF,EAAYhqE,IAGrBtG,EAAQzU,UAAUkb,OAAS,WACzB,IAAIH,EAAQ,GAIZ,OAHA/Z,KAAKzC,SAAQ,SAAS3B,GACpBme,EAAMlZ,KAAKjF,MAENmoF,EAAYhqE,IAGrBtG,EAAQzU,UAAU4uB,QAAU,WAC1B,IAAI7T,EAAQ,GAIZ,OAHA/Z,KAAKzC,SAAQ,SAAS3B,EAAOwF,GAC3B2Y,EAAMlZ,KAAK,CAACO,EAAMxF,OAEbmoF,EAAYhqE,IAGjB64C,IACFn/C,EAAQzU,UAAU8jE,OAAOyL,UAAY96D,EAAQzU,UAAU4uB,SAqJzD,IAAI83D,EAAU,CAAC,SAAU,MAAO,OAAQ,UAAW,OAAQ,OAO3D,SAASC,EAAQxrB,EAAOliE,GAEtB,IAPuB6D,EACnB8pF,EAMAryE,GADJtb,EAAUA,GAAW,IACFsb,KAEnB,GAAI4mD,aAAiBwrB,EAAS,CAC5B,GAAIxrB,EAAM+pB,SACR,MAAM,IAAIpkF,UAAU,gBAEtBE,KAAK5E,IAAM++D,EAAM/+D,IACjB4E,KAAKoc,YAAc+9C,EAAM/9C,YACpBnkB,EAAQ+B,UACXgG,KAAKhG,QAAU,IAAIyZ,EAAQ0mD,EAAMngE,UAEnCgG,KAAKlE,OAASq+D,EAAMr+D,OACpBkE,KAAK6lF,KAAO1rB,EAAM0rB,KAClB7lF,KAAK3F,OAAS8/D,EAAM9/D,OACfkZ,GAA2B,MAAnB4mD,EAAM2qB,YACjBvxE,EAAO4mD,EAAM2qB,UACb3qB,EAAM+pB,UAAW,QAGnBlkF,KAAK5E,IAAM2U,OAAOoqD,GAYpB,GATAn6D,KAAKoc,YAAcnkB,EAAQmkB,aAAepc,KAAKoc,aAAe,eAC1DnkB,EAAQ+B,SAAYgG,KAAKhG,UAC3BgG,KAAKhG,QAAU,IAAIyZ,EAAQxb,EAAQ+B,UAErCgG,KAAKlE,QAhCD8pF,GADmB9pF,EAiCO7D,EAAQ6D,QAAUkE,KAAKlE,QAAU,OAhC1CC,cACd2pF,EAAQppF,QAAQspF,IAAY,EAAIA,EAAU9pF,GAgCjDkE,KAAK6lF,KAAO5tF,EAAQ4tF,MAAQ7lF,KAAK6lF,MAAQ,KACzC7lF,KAAK3F,OAASpC,EAAQoC,QAAU2F,KAAK3F,OACrC2F,KAAKuvC,SAAW,MAEK,QAAhBvvC,KAAKlE,QAAoC,SAAhBkE,KAAKlE,SAAsByX,EACvD,MAAM,IAAIzT,UAAU,6CAEtBE,KAAK6kF,UAAUtxE,GAOjB,SAASwe,EAAOxe,GACd,IAAI6hB,EAAO,IAAIttB,SAYf,OAXAyL,EACGlL,OACA2D,MAAM,KACNzO,SAAQ,SAASklE,GAChB,GAAIA,EAAO,CACT,IAAIz2D,EAAQy2D,EAAMz2D,MAAM,KACpB5K,EAAO4K,EAAMjJ,QAAQiG,QAAQ,MAAO,KACpCpN,EAAQoQ,EAAM1C,KAAK,KAAKN,QAAQ,MAAO,KAC3CosB,EAAKnoB,OAAO5C,mBAAmBjJ,GAAOiJ,mBAAmBzO,QAGxDw5B,EAqBT,SAAS0wD,EAASC,EAAU9tF,GACrBA,IACHA,EAAU,IAGZ+H,KAAK/B,KAAO,UACZ+B,KAAKtE,YAA4B2B,IAAnBpF,EAAQyD,OAAuB,IAAMzD,EAAQyD,OAC3DsE,KAAKqU,GAAKrU,KAAKtE,QAAU,KAAOsE,KAAKtE,OAAS,IAC9CsE,KAAKrE,WAAa,eAAgB1D,EAAUA,EAAQ0D,WAAa,KACjEqE,KAAKhG,QAAU,IAAIyZ,EAAQxb,EAAQ+B,SACnCgG,KAAK5E,IAAMnD,EAAQmD,KAAO,GAC1B4E,KAAK6kF,UAAUkB,GAjDjBJ,EAAQ3mF,UAAUqxD,MAAQ,WACxB,OAAO,IAAIs1B,EAAQ3lF,KAAM,CAACuT,KAAMvT,KAAK8kF,aAmCvCF,EAAK1jF,KAAKykF,EAAQ3mF,WAgBlB4lF,EAAK1jF,KAAK4kF,EAAS9mF,WAEnB8mF,EAAS9mF,UAAUqxD,MAAQ,WACzB,OAAO,IAAIy1B,EAAS9lF,KAAK8kF,UAAW,CAClCppF,OAAQsE,KAAKtE,OACbC,WAAYqE,KAAKrE,WACjB3B,QAAS,IAAIyZ,EAAQzT,KAAKhG,SAC1BoB,IAAK4E,KAAK5E,OAId0qF,EAAS3iF,MAAQ,WACf,IAAI3H,EAAW,IAAIsqF,EAAS,KAAM,CAACpqF,OAAQ,EAAGC,WAAY,KAE1D,OADAH,EAASyC,KAAO,QACTzC,GAGT,IAAIwqF,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,KAE5CF,EAASG,SAAW,SAAS7qF,EAAKM,GAChC,IAA0C,IAAtCsqF,EAAiB1pF,QAAQZ,GAC3B,MAAM,IAAI6kE,WAAW,uBAGvB,OAAO,IAAIulB,EAAS,KAAM,CAACpqF,OAAQA,EAAQ1B,QAAS,CAAC2R,SAAUvQ,MAGjE1D,EAAQisF,aAAe7gD,EAAK6gD,aAC5B,IACE,IAAIjsF,EAAQisF,aACZ,MAAOxrF,GACPT,EAAQisF,aAAe,SAASljF,EAASW,GACvCpB,KAAKS,QAAUA,EACfT,KAAKoB,KAAOA,EACZ,IAAI+B,EAAQ/K,MAAMqI,GAClBT,KAAK8D,MAAQX,EAAMW,OAErBpM,EAAQisF,aAAa3kF,UAAYgF,OAAO9E,OAAO9G,MAAM4G,WACrDtH,EAAQisF,aAAa3kF,UAAU0P,YAAchX,EAAQisF,aAGvD,SAASrwE,EAAM6mD,EAAOvkC,GACpB,OAAO,IAAI/9B,SAAQ,SAASC,EAASC,GACnC,IAAI0C,EAAU,IAAIkrF,EAAQxrB,EAAOvkC,GAEjC,GAAIn7B,EAAQJ,QAAUI,EAAQJ,OAAO+D,QACnC,OAAOrG,EAAO,IAAIL,EAAQisF,aAAa,UAAW,eAGpD,IAAIuC,EAAM,IAAIxrF,eAEd,SAASyrF,IACPD,EAAIhoF,QAGNgoF,EAAI7B,OAAS,WACX,IAxFgB+B,EAChBpsF,EAuFI/B,EAAU,CACZyD,OAAQwqF,EAAIxqF,OACZC,WAAYuqF,EAAIvqF,WAChB3B,SA3FcosF,EA2FQF,EAAI3qF,yBAA2B,GA1FvDvB,EAAU,IAAIyZ,EAGQ2yE,EAAWp9E,QAAQ,eAAgB,KACzCgD,MAAM,SAASzO,SAAQ,SAAS0O,GAClD,IAAI/C,EAAQ+C,EAAKD,MAAM,KACnBxO,EAAM0L,EAAMnG,QAAQsF,OACxB,GAAI7K,EAAK,CACP,IAAI5B,EAAQsN,EAAMI,KAAK,KAAKjB,OAC5BrO,EAAQiT,OAAOzP,EAAK5B,OAGjB5B,IAgFH/B,EAAQmD,IAAM,gBAAiB8qF,EAAMA,EAAI7pF,YAAcpE,EAAQ+B,QAAQgxB,IAAI,iBAC3E,IAAIzX,EAAO,aAAc2yE,EAAMA,EAAI1qF,SAAW0qF,EAAIzqF,aAClD3D,EAAQ,IAAIguF,EAASvyE,EAAMtb,KAG7BiuF,EAAIxpF,QAAU,WACZ3E,EAAO,IAAI+H,UAAU,4BAGvBomF,EAAItpF,UAAY,WACd7E,EAAO,IAAI+H,UAAU,4BAGvBomF,EAAI1pF,QAAU,WACZzE,EAAO,IAAIL,EAAQisF,aAAa,UAAW,gBAG7CuC,EAAIrqF,KAAKpB,EAAQqB,OAAQrB,EAAQW,KAAK,GAEV,YAAxBX,EAAQ2hB,YACV8pE,EAAIhpF,iBAAkB,EACW,SAAxBzC,EAAQ2hB,cACjB8pE,EAAIhpF,iBAAkB,GAGpB,iBAAkBgpF,GAAOtzB,IAC3BszB,EAAIjsF,aAAe,QAGrBQ,EAAQT,QAAQuD,SAAQ,SAAS3B,EAAOwF,GACtC8kF,EAAIxoF,iBAAiB0D,EAAMxF,MAGzBnB,EAAQJ,SACVI,EAAQJ,OAAOwD,iBAAiB,QAASsoF,GAEzCD,EAAI/pF,mBAAqB,WAEA,IAAnB+pF,EAAI9pF,YACN3B,EAAQJ,OAAOC,oBAAoB,QAAS6rF,KAKlDD,EAAI3nF,UAAkC,IAAtB9D,EAAQqqF,UAA4B,KAAOrqF,EAAQqqF,cAIvExxE,EAAM+yE,UAAW,EAEZvjD,EAAKxvB,QACRwvB,EAAKxvB,MAAQA,EACbwvB,EAAKrvB,QAAUA,EACfqvB,EAAK6iD,QAAUA,EACf7iD,EAAKgjD,SAAWA,GAGlBpuF,EAAQ+b,QAAUA,EAClB/b,EAAQiuF,QAAUA,EAClBjuF,EAAQouF,SAAWA,EACnBpuF,EAAQ4b,MAAQA,EAEhBtP,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IA5gBvC,CAghBd,IAlhBH,CAmhBG8nF,GACHA,EAASpwE,MAAMgzE,UAAW,SAEnB5C,EAASpwE,MAAM+yE,SAGtB,IAAIE,EAAM7C,GACVhsF,EAAU6uF,EAAIjzE,OACd,QAAkBizE,EAAIjzE,MACtB5b,EAAQ4b,MAAQizE,EAAIjzE,MACpB5b,EAAQ+b,QAAU8yE,EAAI9yE,QACtB/b,EAAQiuF,QAAUY,EAAIZ,QACtBjuF,EAAQouF,SAAWS,EAAIT,SACvBruF,EAAOC,QAAUA,yBCviBjB,IAAI8uF,EAAoB,SAA2B5qF,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,iBAAVA,EALlB6qF,CAAgB7qF,KAQxB,SAAmBA,GAClB,IAAI8qF,EAAc1iF,OAAOhF,UAAU+H,SAAS7F,KAAKtF,GAEjD,MAAuB,oBAAhB8qF,GACa,kBAAhBA,GAQL,SAAwB9qF,GACvB,OAAOA,EAAM+qF,WAAaC,EARtBC,CAAejrF,GAZdkrF,CAAUlrF,IAiBZgrF,EADiC,mBAAX9jB,QAAyBA,OAAOikB,IAClBjkB,OAAOikB,IAAI,iBAAmB,MAUtE,SAASC,EAA8BprF,EAAO3D,GAC7C,OAA0B,IAAlBA,EAAQo4D,OAAmBp4D,EAAQuuF,kBAAkB5qF,GAC1DqrF,GANiBpuF,EAMK+C,EALlBgH,MAAMiD,QAAQhN,GAAO,GAAK,IAKA+C,EAAO3D,GACrC2D,EAPJ,IAAqB/C,EAUrB,SAASquF,EAAkBvhF,EAAQ3E,EAAQ/I,GAC1C,OAAO0N,EAAO7C,OAAO9B,GAAQ0R,KAAI,SAAS4+C,GACzC,OAAO01B,EAA8B11B,EAASr5D,MAoBhD,SAASkvF,EAAQxhF,GAChB,OAAO3B,OAAOqC,KAAKV,GAAQ7C,OAT5B,SAAyC6C,GACxC,OAAO3B,OAAOwsE,sBACXxsE,OAAOwsE,sBAAsB7qE,GAAQ+J,QAAO,SAAS03E,GACtD,OAAOzhF,EAAO0hF,qBAAqBD,MAElC,GAI+BE,CAAgC3hF,IAGnE,SAAS4hF,EAAmB3Y,EAAQ4Y,GACnC,IACC,OAAOA,KAAY5Y,EAClB,MAAMh5D,GACP,OAAO,GAgCT,SAASqxE,EAAUthF,EAAQ3E,EAAQ/I,IAClCA,EAAUA,GAAW,IACbwvF,WAAaxvF,EAAQwvF,YAAcP,EAC3CjvF,EAAQuuF,kBAAoBvuF,EAAQuuF,mBAAqBA,EAGzDvuF,EAAQ+uF,8BAAgCA,EAExC,IAAIU,EAAgB9kF,MAAMiD,QAAQ7E,GAIlC,OAFgC0mF,IADZ9kF,MAAMiD,QAAQF,GAKvB+hF,EACHzvF,EAAQwvF,WAAW9hF,EAAQ3E,EAAQ/I,GApC5C,SAAqB0N,EAAQ3E,EAAQ/I,GACpC,IAAI0vF,EAAc,GAiBlB,OAhBI1vF,EAAQuuF,kBAAkB7gF,IAC7BwhF,EAAQxhF,GAAQpI,SAAQ,SAASC,GAChCmqF,EAAYnqF,GAAOwpF,EAA8BrhF,EAAOnI,GAAMvF,MAGhEkvF,EAAQnmF,GAAQzD,SAAQ,SAASC,IAblC,SAA0BmI,EAAQnI,GACjC,OAAO+pF,EAAmB5hF,EAAQnI,MAC5BwG,OAAOuK,eAAerN,KAAKyE,EAAQnI,IACpCwG,OAAOqjF,qBAAqBnmF,KAAKyE,EAAQnI,KAWzCoqF,CAAiBjiF,EAAQnI,KAIzB+pF,EAAmB5hF,EAAQnI,IAAQvF,EAAQuuF,kBAAkBxlF,EAAOxD,IACvEmqF,EAAYnqF,GAhDf,SAA0BA,EAAKvF,GAC9B,IAAKA,EAAQ4vF,YACZ,OAAOZ,EAER,IAAIY,EAAc5vF,EAAQ4vF,YAAYrqF,GACtC,MAA8B,mBAAhBqqF,EAA6BA,EAAcZ,EA2CpCa,CAAiBtqF,EAAKvF,EAAtB6vF,CAA+BniF,EAAOnI,GAAMwD,EAAOxD,GAAMvF,GAE5E0vF,EAAYnqF,GAAOwpF,EAA8BhmF,EAAOxD,GAAMvF,OAGzD0vF,EAoBCI,CAAYpiF,EAAQ3E,EAAQ/I,GAJ5B+uF,EAA8BhmF,EAAQ/I,GAQ/CgvF,EAAUxnF,IAAM,SAAsB+kE,EAAOvsE,GAC5C,IAAK2K,MAAMiD,QAAQ2+D,GAClB,MAAM,IAAIpsE,MAAM,qCAGjB,OAAOosE,EAAMvyD,QAAO,SAAS+1E,EAAMjmB,GAClC,OAAOklB,EAAUe,EAAMjmB,EAAM9pE,KAC3B,KAGJ,IAAIgwF,EAAchB,EAElBxvF,EAAOC,QAAUuwF,8BCnIjBjkF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQwwF,eAAiBxwF,EAAQywF,kBAAe,EAChDzwF,EAAQywF,aAAe,IAAI3Y,IAAI,CAC3B,CAAC,WAAY,YACb,CAAC,cAAe,eAChB,CAAC,eAAgB,gBACjB,CAAC,eAAgB,gBACjB,CAAC,gBAAiB,iBAClB,CAAC,mBAAoB,oBACrB,CAAC,WAAY,YACb,CAAC,UAAW,WACZ,CAAC,gBAAiB,iBAClB,CAAC,sBAAuB,uBACxB,CAAC,cAAe,eAChB,CAAC,mBAAoB,oBACrB,CAAC,oBAAqB,qBACtB,CAAC,oBAAqB,qBACtB,CAAC,iBAAkB,kBACnB,CAAC,eAAgB,gBACjB,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,iBAAkB,kBACnB,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,cAAe,eAChB,CAAC,eAAgB,gBACjB,CAAC,WAAY,YACb,CAAC,eAAgB,gBACjB,CAAC,qBAAsB,sBACvB,CAAC,cAAe,eAChB,CAAC,SAAU,UACX,CAAC,eAAgB,gBACjB,CAAC,gBAAiB,iBAClB,CAAC,WAAY,YACb,CAAC,iBAAkB,kBACnB,CAAC,iBAAkB,kBACnB,CAAC,WAAY,cAEjB93E,EAAQwwF,eAAiB,IAAI1Y,IAAI,CAC7B,CAAC,gBAAiB,iBAClB,CAAC,gBAAiB,iBAClB,CAAC,gBAAiB,iBAClB,CAAC,gBAAiB,iBAClB,CAAC,cAAe,eAChB,CAAC,WAAY,YACb,CAAC,gBAAiB,iBAClB,CAAC,kBAAmB,mBACpB,CAAC,WAAY,YACb,CAAC,cAAe,eAChB,CAAC,WAAY,YACb,CAAC,oBAAqB,qBACtB,CAAC,gBAAiB,iBAClB,CAAC,eAAgB,gBACjB,CAAC,mBAAoB,oBACrB,CAAC,YAAa,aACd,CAAC,aAAc,cACf,CAAC,WAAY,YACb,CAAC,eAAgB,gBACjB,CAAC,oBAAqB,qBACtB,CAAC,eAAgB,gBACjB,CAAC,cAAe,eAChB,CAAC,cAAe,eAChB,CAAC,mBAAoB,oBACrB,CAAC,YAAa,aACd,CAAC,aAAc,cACf,CAAC,aAAc,cACf,CAAC,sBAAuB,uBACxB,CAAC,mBAAoB,oBACrB,CAAC,eAAgB,gBACjB,CAAC,YAAa,aACd,CAAC,YAAa,aACd,CAAC,YAAa,aACd,CAAC,gBAAiB,iBAClB,CAAC,sBAAuB,uBACxB,CAAC,iBAAkB,kBACnB,CAAC,OAAQ,QACT,CAAC,OAAQ,QACT,CAAC,cAAe,eAChB,CAAC,YAAa,aACd,CAAC,qBAAsB,sBACvB,CAAC,mBAAoB,oBACrB,CAAC,mBAAoB,oBACrB,CAAC,mBAAoB,oBACrB,CAAC,eAAgB,gBACjB,CAAC,cAAe,eAChB,CAAC,eAAgB,gBACjB,CAAC,cAAe,eAChB,CAAC,eAAgB,gBACjB,CAAC,iBAAkB,kBACnB,CAAC,cAAe,eAChB,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,aAAc,cACf,CAAC,UAAW,WACZ,CAAC,aAAc,cACf,CAAC,mBAAoB,oBACrB,CAAC,mBAAoB,oBACrB,CAAC,aAAc,oDCpGnB,IAAI4Y,EAAYpoF,MAAQA,KAAKooF,UAAa,WAStC,OARAA,EAAWpkF,OAAOQ,QAAU,SAAS6jF,GACjC,IAAK,IAAIhzB,EAAGj1D,EAAI,EAAGs3D,EAAI5uD,UAAUxI,OAAQF,EAAIs3D,EAAGt3D,IAE5C,IAAK,IAAIsyB,KADT2iC,EAAIvsD,UAAU1I,GACO4D,OAAOhF,UAAUuP,eAAerN,KAAKm0D,EAAG3iC,KACzD21D,EAAE31D,GAAK2iC,EAAE3iC,IAEjB,OAAO21D,GAEJD,EAASvlF,MAAM7C,KAAM8I,YAE5Bw/E,EAAmBtoF,MAAQA,KAAKsoF,kBAAqBtkF,OAAO9E,OAAS,SAAU+gE,EAAGoF,EAAGvX,EAAGy6B,QAC7ElrF,IAAPkrF,IAAkBA,EAAKz6B,GAC3B9pD,OAAOE,eAAe+7D,EAAGsoB,EAAI,CAAE3gB,YAAY,EAAM58C,IAAK,WAAa,OAAOq6C,EAAEvX,OAC3E,SAAUmS,EAAGoF,EAAGvX,EAAGy6B,QACTlrF,IAAPkrF,IAAkBA,EAAKz6B,GAC3BmS,EAAEsoB,GAAMljB,EAAEvX,KAEV06B,EAAsBxoF,MAAQA,KAAKwoF,qBAAwBxkF,OAAO9E,OAAS,SAAU+gE,EAAG92D,GACxFnF,OAAOE,eAAe+7D,EAAG,UAAW,CAAE2H,YAAY,EAAMhsE,MAAOuN,KAC9D,SAAS82D,EAAG92D,GACb82D,EAAW,QAAI92D,IAEfs/E,EAAgBzoF,MAAQA,KAAKyoF,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIjK,WAAY,OAAOiK,EAClC,IAAI36E,EAAS,GACb,GAAW,MAAP26E,EAAa,IAAK,IAAI56B,KAAK46B,EAAe,YAAN56B,GAAmB9pD,OAAOhF,UAAUuP,eAAerN,KAAKwnF,EAAK56B,IAAIw6B,EAAgBv6E,EAAQ26E,EAAK56B,GAEtI,OADA06B,EAAmBz6E,EAAQ26E,GACpB36E,GAEX/J,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IAItD,IAAI+sF,EAAcF,EAAa,EAAQ,QACnCG,EAAa,EAAQ,OAOrBC,EAAiB,EAAQ,OACzBC,EAAoB,IAAI7uE,IAAI,CAC5B,QACA,SACA,MACA,SACA,UACA,WACA,YACA,aA4BA8uE,EAAY,IAAI9uE,IAAI,CACpB,OACA,OACA,WACA,KACA,MACA,UACA,QACA,QACA,KACA,MACA,QACA,UACA,SACA,OACA,OACA,QACA,SACA,QACA,QAUJ,SAASs0C,EAAOy6B,EAAM/wF,QACF,IAAZA,IAAsBA,EAAU,IAGpC,IAFA,IAAIgxF,GAAQ,WAAYD,EAAOA,EAAO,CAACA,IACnCrrB,EAAS,GACJv9D,EAAI,EAAGA,EAAI6oF,EAAM3oF,OAAQF,IAC9Bu9D,GAAUurB,EAAWD,EAAM7oF,GAAInI,GAEnC,OAAO0lE,EAGX,SAASurB,EAAWF,EAAM/wF,GACtB,OAAQ+wF,EAAK/qF,MACT,KAAK0qF,EAAYQ,KACb,OAAO56B,EAAOy6B,EAAKplE,SAAU3rB,GACjC,KAAK0wF,EAAYS,UACjB,KAAKT,EAAYU,QACb,MAmED,IAnEwBL,EAmEblvF,KAAO,IAlErB,KAAK6uF,EAAYW,QACb,MAkFD,UAlFsBN,EAkFRlvF,KAAO,SAjFxB,KAAK6uF,EAAYY,MACb,OA4EZ,SAAqBt2B,GACjB,MAAO,YAAcA,EAAKrvC,SAAS,GAAG9pB,KAAO,MA7E9B0vF,CAAYR,GACvB,KAAKL,EAAYc,OACjB,KAAKd,EAAYe,MACjB,KAAKf,EAAYgB,IACb,OAiBZ,SAAmB12B,EAAMr7D,GACrB,IAAIinB,EAEiB,YAAjBjnB,EAAKgyF,UAEL32B,EAAK7xD,KAA6D,QAArDyd,EAAKgqE,EAAeV,aAAan9D,IAAIioC,EAAK7xD,aAA0B,IAAPyd,EAAgBA,EAAKo0C,EAAK7xD,KAEhG6xD,EAAKnvB,QACL+lD,EAA6BnnD,IAAIuwB,EAAKnvB,OAAO1iC,QAC7CxJ,EAAOwwF,EAASA,EAAS,GAAIxwF,GAAO,CAAEgyF,SAAS,OAGlDhyF,EAAKgyF,SAAWE,EAAgBpnD,IAAIuwB,EAAK7xD,QAC1CxJ,EAAOwwF,EAASA,EAAS,GAAIxwF,GAAO,CAAEgyF,QAAS,aAEnD,IAAIvK,EAAM,IAAMpsB,EAAK7xD,KACjB2oF,EA7GR,SAA0B5rD,EAAYvmC,GAClC,GAAKumC,EAEL,OAAOn6B,OAAOqC,KAAK83B,GACdzrB,KAAI,SAAUlV,GACf,IAAIqhB,EAAIkJ,EACJnsB,EAAmC,QAA1BijB,EAAKsf,EAAW3gC,UAAyB,IAAPqhB,EAAgBA,EAAK,GAKpE,MAJqB,YAAjBjnB,EAAKgyF,UAELpsF,EAAwD,QAAjDuqB,EAAK8gE,EAAeX,eAAel9D,IAAIxtB,UAAyB,IAAPuqB,EAAgBA,EAAKvqB,GAEpF5F,EAAKoyF,YAAepyF,EAAKgyF,SAAqB,KAAVhuF,EAGlC4B,EAAM,OAAiC,IAAxB5F,EAAKqyF,eACrBrB,EAAWsB,UAAUtuF,GACrBA,EAAMoN,QAAQ,KAAM,WAAa,IAJ5BxL,KAMV8L,KAAK,KA2FI6gF,CAAiBl3B,EAAK82B,QAASnyF,GAuB7C,OAtBImyF,IACA1K,GAAO,IAAM0K,GAEY,IAAzB92B,EAAKrvC,SAAStjB,SACb1I,EAAKgyF,SAE2B,IAAzBhyF,EAAKwyF,gBAELxyF,EAAKwyF,iBAAmBrB,EAAUrmD,IAAIuwB,EAAK7xD,QAC9CxJ,EAAKgyF,UACNvK,GAAO,KACXA,GAAO,OAGPA,GAAO,IACHpsB,EAAKrvC,SAAStjB,OAAS,IACvB++E,GAAO9wB,EAAO0E,EAAKrvC,SAAUhsB,KAE7BA,EAAKgyF,SAAYb,EAAUrmD,IAAIuwB,EAAK7xD,QACpCi+E,GAAO,KAAOpsB,EAAK7xD,KAAO,MAG3Bi+E,EAxDQgL,CAAUrB,EAAM/wF,GAC3B,KAAK0wF,EAAY2B,KACb,OA2DZ,SAAoBr3B,EAAMr7D,GACtB,IAAIkC,EAAOm5D,EAAKn5D,MAAQ,GAQxB,OAN4B,IAAxBlC,EAAKqyF,iBACFryF,EAAKgyF,SACJ32B,EAAKnvB,QACLglD,EAAkBpmD,IAAIuwB,EAAKnvB,OAAO1iC,QACtCtH,EAAO8uF,EAAWsB,UAAUpwF,IAEzBA,EApEQywF,CAAWvB,EAAM/wF,IAjBpCP,EAAA,QAAkB62D,EAoBlB,IAAIs7B,EAA+B,IAAI5vE,IAAI,CACvC,KACA,KACA,KACA,KACA,QACA,iBACA,gBACA,OACA,UAEA6vE,EAAkB,IAAI7vE,IAAI,CAAC,MAAO,qCCjJtC,IAAI0uE,EAHJ3kF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQ2xF,QAAU3xF,EAAQ6xF,MAAQ7xF,EAAQiyF,IAAMjyF,EAAQgyF,MAAQhyF,EAAQ+xF,OAAS/xF,EAAQ4xF,QAAU5xF,EAAQ0xF,UAAY1xF,EAAQ4yF,KAAO5yF,EAAQyxF,KAAOzxF,EAAQ8yF,MAAQ9yF,EAAQixF,iBAAc,EAG3L,SAAWA,GAEPA,EAAkB,KAAI,OAEtBA,EAAkB,KAAI,OAEtBA,EAAuB,UAAI,YAE3BA,EAAqB,QAAI,UAEzBA,EAAoB,OAAI,SAExBA,EAAmB,MAAI,QAEvBA,EAAiB,IAAI,MAErBA,EAAmB,MAAI,QAEvBA,EAAqB,QAAI,UAlB7B,CAmBGA,EAAcjxF,EAAQixF,cAAgBjxF,EAAQixF,YAAc,KAW/DjxF,EAAQ8yF,MALR,SAAev3B,GACX,OAAQA,EAAKh1D,OAAS0qF,EAAYgB,KAC9B12B,EAAKh1D,OAAS0qF,EAAYc,QAC1Bx2B,EAAKh1D,OAAS0qF,EAAYe,OAKlChyF,EAAQyxF,KAAOR,EAAYQ,KAE3BzxF,EAAQ4yF,KAAO3B,EAAY2B,KAE3B5yF,EAAQ0xF,UAAYT,EAAYS,UAEhC1xF,EAAQ4xF,QAAUX,EAAYW,QAE9B5xF,EAAQ+xF,OAASd,EAAYc,OAE7B/xF,EAAQgyF,MAAQf,EAAYe,MAE5BhyF,EAAQiyF,IAAMhB,EAAYgB,IAE1BjyF,EAAQ6xF,MAAQZ,EAAYY,MAE5B7xF,EAAQ2xF,QAAUV,EAAYU,4CCrD9B,IAAIf,EAAmBtoF,MAAQA,KAAKsoF,kBAAqBtkF,OAAO9E,OAAS,SAAU+gE,EAAGoF,EAAGvX,EAAGy6B,QAC7ElrF,IAAPkrF,IAAkBA,EAAKz6B,GAC3B,IAAItgD,EAAOxJ,OAAO2sE,yBAAyBtL,EAAGvX,GACzCtgD,KAAS,QAASA,GAAQ63D,EAAEoZ,WAAajxE,EAAKokE,UAAYpkE,EAAK4gE,gBAClE5gE,EAAO,CAAEo6D,YAAY,EAAM58C,IAAK,WAAa,OAAOq6C,EAAEvX,MAExD9pD,OAAOE,eAAe+7D,EAAGsoB,EAAI/6E,IAC5B,SAAUyyD,EAAGoF,EAAGvX,EAAGy6B,QACTlrF,IAAPkrF,IAAkBA,EAAKz6B,GAC3BmS,EAAEsoB,GAAMljB,EAAEvX,KAEV28B,EAAgBzqF,MAAQA,KAAKyqF,cAAiB,SAASplB,EAAG3tE,GAC1D,IAAK,IAAIg7B,KAAK2yC,EAAa,YAAN3yC,GAAoB1uB,OAAOhF,UAAUuP,eAAerN,KAAKxJ,EAASg7B,IAAI41D,EAAgB5wF,EAAS2tE,EAAG3yC,IAE3H1uB,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQgzF,gBAAa,EACrB,IAAIC,EAAmB,EAAQ,OAC3BC,EAAS,EAAQ,OACrBH,EAAa,EAAQ,OAAW/yF,GAChC,IAAImzF,EAAe,OAEfC,EAAc,CACdC,qBAAqB,EACrBC,kBAAkB,EAClBC,gBAAgB,EAChBrB,SAAS,GAETc,EAA4B,WAM5B,SAASA,EAAWt+E,EAAUnU,EAASizF,GAEnClrF,KAAKmrF,IAAM,GAEXnrF,KAAK+5E,KAAO,IAAI6Q,EAAOQ,SAASprF,KAAKmrF,KAErCnrF,KAAK9F,MAAO,EAEZ8F,KAAKqrF,SAAW,CAACrrF,KAAK+5E,MAEtB/5E,KAAKsrF,SAAW,KAEhBtrF,KAAKgI,OAAS,KAES,mBAAZ/P,IACPizF,EAAYjzF,EACZA,EAAU6yF,GAEU,iBAAb1+E,IACPnU,EAAUmU,EACVA,OAAW/O,GAEf2C,KAAKoM,SAAWA,QAA2CA,EAAW,KACtEpM,KAAK/H,QAAUA,QAAyCA,EAAU6yF,EAClE9qF,KAAKkrF,UAAYA,QAA6CA,EAAY,KAkH9E,OAhHAR,EAAW1rF,UAAUusF,aAAe,SAAUvjF,GAC1ChI,KAAKgI,OAASA,GAGlB0iF,EAAW1rF,UAAUwsF,QAAU,WAC3BxrF,KAAKmrF,IAAM,GACXnrF,KAAK+5E,KAAO,IAAI6Q,EAAOQ,SAASprF,KAAKmrF,KACrCnrF,KAAK9F,MAAO,EACZ8F,KAAKqrF,SAAW,CAACrrF,KAAK+5E,MACtB/5E,KAAKsrF,SAAW,KAChBtrF,KAAKgI,OAAS,MAGlB0iF,EAAW1rF,UAAUysF,MAAQ,WACrBzrF,KAAK9F,OAET8F,KAAK9F,MAAO,EACZ8F,KAAKgI,OAAS,KACdhI,KAAK0rF,eAAe,QAExBhB,EAAW1rF,UAAUtC,QAAU,SAAUyG,GACrCnD,KAAK0rF,eAAevoF,IAExBunF,EAAW1rF,UAAU2sF,WAAa,WAC9B3rF,KAAKsrF,SAAW,KAChB,IAAIr4B,EAAOjzD,KAAKqrF,SAASn+E,MACrBlN,KAAK/H,QAAQgzF,iBACbh4B,EAAK24B,SAAW5rF,KAAKgI,OAAO4jF,UAE5B5rF,KAAKkrF,WACLlrF,KAAKkrF,UAAUj4B,IAEvBy3B,EAAW1rF,UAAU6sF,UAAY,SAAUzqF,EAAM2oF,GAC7C,IAAI9rF,EAAO+B,KAAK/H,QAAQ2xF,QAAUe,EAAiBhC,YAAYgB,SAAMtsF,EACjEi0D,EAAU,IAAIs5B,EAAOkB,QAAQ1qF,EAAM2oF,OAAS1sF,EAAWY,GAC3D+B,KAAK+rF,QAAQz6B,GACbtxD,KAAKqrF,SAASxqF,KAAKywD,IAEvBo5B,EAAW1rF,UAAUgtF,OAAS,SAAUlyF,GACpC,IAAIixF,EAAsB/qF,KAAK/H,QAAQ8yF,oBACnCO,EAAWtrF,KAAKsrF,SACpB,GAAIA,GAAYA,EAASrtF,OAAS0sF,EAAiBhC,YAAY2B,KACvDS,EACAO,EAASxxF,MAAQwxF,EAASxxF,KAAOA,GAAMkP,QAAQ6hF,EAAc,KAG7DS,EAASxxF,MAAQA,EAEjBkG,KAAK/H,QAAQgzF,iBACbK,EAASM,SAAW5rF,KAAKgI,OAAO4jF,cAGnC,CACGb,IACAjxF,EAAOA,EAAKkP,QAAQ6hF,EAAc,MAEtC,IAAI7B,EAAO,IAAI4B,EAAON,KAAKxwF,GAC3BkG,KAAK+rF,QAAQ/C,GACbhpF,KAAKsrF,SAAWtC,IAGxB0B,EAAW1rF,UAAUitF,UAAY,SAAUnyF,GACvC,GAAIkG,KAAKsrF,UAAYtrF,KAAKsrF,SAASrtF,OAAS0sF,EAAiBhC,YAAYW,QACrEtpF,KAAKsrF,SAASxxF,MAAQA,MAD1B,CAIA,IAAIkvF,EAAO,IAAI4B,EAAOtB,QAAQxvF,GAC9BkG,KAAK+rF,QAAQ/C,GACbhpF,KAAKsrF,SAAWtC,IAEpB0B,EAAW1rF,UAAUktF,aAAe,WAChClsF,KAAKsrF,SAAW,MAEpBZ,EAAW1rF,UAAUmtF,aAAe,WAChC,IAAI73E,EAAO,IAAIs2E,EAAON,KAAK,IACvBtB,EAAO,IAAI4B,EAAOwB,iBAAiBzB,EAAiBhC,YAAYY,MAAO,CAACj1E,IAC5EtU,KAAK+rF,QAAQ/C,GACb10E,EAAKwvB,OAASklD,EACdhpF,KAAKsrF,SAAWh3E,GAEpBo2E,EAAW1rF,UAAUqtF,WAAa,WAC9BrsF,KAAKsrF,SAAW,MAEpBZ,EAAW1rF,UAAUstF,wBAA0B,SAAUlrF,EAAMtH,GAC3D,IAAIkvF,EAAO,IAAI4B,EAAO2B,sBAAsBnrF,EAAMtH,GAClDkG,KAAK+rF,QAAQ/C,IAEjB0B,EAAW1rF,UAAU0sF,eAAiB,SAAUvoF,GAC5C,GAA6B,mBAAlBnD,KAAKoM,SACZpM,KAAKoM,SAASjJ,EAAOnD,KAAKmrF,UAEzB,GAAIhoF,EACL,MAAMA,GAGdunF,EAAW1rF,UAAU+sF,QAAU,SAAU/C,GACrC,IAAIllD,EAAS9jC,KAAKqrF,SAASrrF,KAAKqrF,SAAS/qF,OAAS,GAC9CksF,EAAkB1oD,EAAOlgB,SAASkgB,EAAOlgB,SAAStjB,OAAS,GAC3DN,KAAK/H,QAAQ+yF,mBACbhC,EAAKyD,WAAazsF,KAAKgI,OAAOykF,YAE9BzsF,KAAK/H,QAAQgzF,iBACbjC,EAAK4C,SAAW5rF,KAAKgI,OAAO4jF,UAEhC9nD,EAAOlgB,SAAS/iB,KAAKmoF,GACjBwD,IACAxD,EAAKhB,KAAOwE,EACZA,EAAgBzqB,KAAOinB,GAE3BA,EAAKllD,OAASA,EACd9jC,KAAKsrF,SAAW,MAEbZ,EAhJoB,GAkJ/BhzF,EAAQgzF,WAAaA,EACrBhzF,EAAA,QAAkBgzF,sCC9KlB,IACQgC,EADJC,EAAa3sF,MAAQA,KAAK2sF,YACtBD,EAAgB,SAAUxtD,EAAGhwB,GAI7B,OAHAw9E,EAAgB1oF,OAAOk/D,gBAClB,CAAE6O,UAAW,cAAgBnvE,OAAS,SAAUs8B,EAAGhwB,GAAKgwB,EAAE6yC,UAAY7iE,IACvE,SAAUgwB,EAAGhwB,GAAK,IAAK,IAAIwjB,KAAKxjB,EAAOlL,OAAOhF,UAAUuP,eAAerN,KAAKgO,EAAGwjB,KAAIwM,EAAExM,GAAKxjB,EAAEwjB,KACzFg6D,EAAcxtD,EAAGhwB,IAErB,SAAUgwB,EAAGhwB,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIpP,UAAU,uBAAyBiQ,OAAOb,GAAK,iCAE7D,SAAS09E,IAAO5sF,KAAK0O,YAAcwwB,EADnCwtD,EAAcxtD,EAAGhwB,GAEjBgwB,EAAElgC,UAAkB,OAANkQ,EAAalL,OAAO9E,OAAOgQ,IAAM09E,EAAG5tF,UAAYkQ,EAAElQ,UAAW,IAAI4tF,KAGnFxE,EAAYpoF,MAAQA,KAAKooF,UAAa,WAStC,OARAA,EAAWpkF,OAAOQ,QAAU,SAAS6jF,GACjC,IAAK,IAAIhzB,EAAGj1D,EAAI,EAAGs3D,EAAI5uD,UAAUxI,OAAQF,EAAIs3D,EAAGt3D,IAE5C,IAAK,IAAIsyB,KADT2iC,EAAIvsD,UAAU1I,GACO4D,OAAOhF,UAAUuP,eAAerN,KAAKm0D,EAAG3iC,KACzD21D,EAAE31D,GAAK2iC,EAAE3iC,IAEjB,OAAO21D,GAEJD,EAASvlF,MAAM7C,KAAM8I,YAEhC9E,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQm1F,UAAYn1F,EAAQo1F,YAAcp1F,EAAQq1F,WAAar1F,EAAQs1F,YAAct1F,EAAQu1F,UAAYv1F,EAAQw1F,OAASx1F,EAAQy1F,QAAUz1F,EAAQ8yF,MAAQ9yF,EAAQo0F,QAAUp0F,EAAQ0zF,SAAW1zF,EAAQ00F,iBAAmB10F,EAAQ60F,sBAAwB70F,EAAQ4xF,QAAU5xF,EAAQ4yF,KAAO5yF,EAAQ01F,SAAW11F,EAAQ21F,UAAO,EAC/T,IAAI1C,EAAmB,EAAQ,OAC3B2C,EAAY,IAAI9d,IAAI,CACpB,CAACmb,EAAiBhC,YAAYgB,IAAK,GACnC,CAACgB,EAAiBhC,YAAYc,OAAQ,GACtC,CAACkB,EAAiBhC,YAAYe,MAAO,GACrC,CAACiB,EAAiBhC,YAAYS,UAAW,GACzC,CAACuB,EAAiBhC,YAAY2B,KAAM,GACpC,CAACK,EAAiBhC,YAAYY,MAAO,GACrC,CAACoB,EAAiBhC,YAAYW,QAAS,GACvC,CAACqB,EAAiBhC,YAAYQ,KAAM,KAMpCkE,EAAsB,WAKtB,SAASA,EAAKpvF,GACV+B,KAAK/B,KAAOA,EAEZ+B,KAAK8jC,OAAS,KAEd9jC,KAAKgoF,KAAO,KAEZhoF,KAAK+hE,KAAO,KAEZ/hE,KAAKysF,WAAa,KAElBzsF,KAAK4rF,SAAW,KAoEpB,OAlEA5nF,OAAOE,eAAempF,EAAKruF,UAAW,WAAY,CAM9CgsB,IAAK,WACD,IAAInM,EACJ,OAA2C,QAAnCA,EAAKyuE,EAAUtiE,IAAIhrB,KAAK/B,aAA0B,IAAP4gB,EAAgBA,EAAK,GAE5E+oD,YAAY,EACZwG,cAAc,IAElBpqE,OAAOE,eAAempF,EAAKruF,UAAW,aAAc,CAMhDgsB,IAAK,WACD,OAAOhrB,KAAK8jC,QAEhBvZ,IAAK,SAAUuZ,GACX9jC,KAAK8jC,OAASA,GAElB8jC,YAAY,EACZwG,cAAc,IAElBpqE,OAAOE,eAAempF,EAAKruF,UAAW,kBAAmB,CAKrDgsB,IAAK,WACD,OAAOhrB,KAAKgoF,MAEhBz9D,IAAK,SAAUy9D,GACXhoF,KAAKgoF,KAAOA,GAEhBpgB,YAAY,EACZwG,cAAc,IAElBpqE,OAAOE,eAAempF,EAAKruF,UAAW,cAAe,CAKjDgsB,IAAK,WACD,OAAOhrB,KAAK+hE,MAEhBx3C,IAAK,SAAUw3C,GACX/hE,KAAK+hE,KAAOA,GAEhB6F,YAAY,EACZwG,cAAc,IAQlBif,EAAKruF,UAAU6tF,UAAY,SAAUU,GAEjC,YADkB,IAAdA,IAAwBA,GAAY,GACjCV,EAAU7sF,KAAMutF,IAEpBF,EApFc,GAsFzB31F,EAAQ21F,KAAOA,EAIf,IAAID,EAA0B,SAAUjc,GAMpC,SAASic,EAASnvF,EAAMnE,GACpB,IAAIkoD,EAAQmvB,EAAOjwE,KAAKlB,KAAM/B,IAAS+B,KAEvC,OADAgiD,EAAMloD,KAAOA,EACNkoD,EAgBX,OAxBA2qC,EAAUS,EAAUjc,GAUpBntE,OAAOE,eAAekpF,EAASpuF,UAAW,YAAa,CAKnDgsB,IAAK,WACD,OAAOhrB,KAAKlG,MAEhBywB,IAAK,SAAUzwB,GACXkG,KAAKlG,KAAOA,GAEhB8tE,YAAY,EACZwG,cAAc,IAEXgf,EAzBkB,CA0B3BC,GACF31F,EAAQ01F,SAAWA,EAInB,IAAI9C,EAAsB,SAAUnZ,GAEhC,SAASmZ,EAAKxwF,GACV,OAAOq3E,EAAOjwE,KAAKlB,KAAM2qF,EAAiBhC,YAAY2B,KAAMxwF,IAASkG,KAEzE,OAJA2sF,EAAUrC,EAAMnZ,GAITmZ,EALc,CAMvB8C,GACF11F,EAAQ4yF,KAAOA,EAIf,IAAIhB,EAAyB,SAAUnY,GAEnC,SAASmY,EAAQxvF,GACb,OAAOq3E,EAAOjwE,KAAKlB,KAAM2qF,EAAiBhC,YAAYW,QAASxvF,IAASkG,KAE5E,OAJA2sF,EAAUrD,EAASnY,GAIZmY,EALiB,CAM1B8D,GACF11F,EAAQ4xF,QAAUA,EAIlB,IAAIiD,EAAuC,SAAUpb,GAEjD,SAASob,EAAsBnrF,EAAMtH,GACjC,IAAIkoD,EAAQmvB,EAAOjwE,KAAKlB,KAAM2qF,EAAiBhC,YAAYS,UAAWtvF,IAASkG,KAE/E,OADAgiD,EAAM5gD,KAAOA,EACN4gD,EAEX,OANA2qC,EAAUJ,EAAuBpb,GAM1Bob,EAP+B,CAQxCa,GACF11F,EAAQ60F,sBAAwBA,EAIhC,IAAIH,EAAkC,SAAUjb,GAM5C,SAASib,EAAiBnuF,EAAM2lB,GAC5B,IAAIo+B,EAAQmvB,EAAOjwE,KAAKlB,KAAM/B,IAAS+B,KAEvC,OADAgiD,EAAMp+B,SAAWA,EACVo+B,EAoCX,OA5CA2qC,EAAUP,EAAkBjb,GAU5BntE,OAAOE,eAAekoF,EAAiBptF,UAAW,aAAc,CAG5DgsB,IAAK,WACD,IAAInM,EACJ,OAAmC,QAA3BA,EAAK7e,KAAK4jB,SAAS,UAAuB,IAAP/E,EAAgBA,EAAK,MAEpE+oD,YAAY,EACZwG,cAAc,IAElBpqE,OAAOE,eAAekoF,EAAiBptF,UAAW,YAAa,CAE3DgsB,IAAK,WACD,OAAOhrB,KAAK4jB,SAAStjB,OAAS,EACxBN,KAAK4jB,SAAS5jB,KAAK4jB,SAAStjB,OAAS,GACrC,MAEVsnE,YAAY,EACZwG,cAAc,IAElBpqE,OAAOE,eAAekoF,EAAiBptF,UAAW,aAAc,CAK5DgsB,IAAK,WACD,OAAOhrB,KAAK4jB,UAEhB2G,IAAK,SAAU3G,GACX5jB,KAAK4jB,SAAWA,GAEpBgkD,YAAY,EACZwG,cAAc,IAEXge,EA7C0B,CA8CnCiB,GACF31F,EAAQ00F,iBAAmBA,EAI3B,IAAIhB,EAA0B,SAAUja,GAEpC,SAASia,EAASxnE,GACd,OAAOutD,EAAOjwE,KAAKlB,KAAM2qF,EAAiBhC,YAAYQ,KAAMvlE,IAAa5jB,KAE7E,OAJA2sF,EAAUvB,EAAUja,GAIbia,EALkB,CAM3BgB,GACF10F,EAAQ0zF,SAAWA,EAInB,IAAIU,EAAyB,SAAU3a,GAOnC,SAAS2a,EAAQ1qF,EAAM2oF,EAASnmE,EAAU3lB,QACrB,IAAb2lB,IAAuBA,EAAW,SACzB,IAAT3lB,IAAmBA,EAAgB,WAATmD,EACxBupF,EAAiBhC,YAAYc,OACpB,UAATroF,EACIupF,EAAiBhC,YAAYe,MAC7BiB,EAAiBhC,YAAYgB,KACvC,IAAI3nC,EAAQmvB,EAAOjwE,KAAKlB,KAAM/B,EAAM2lB,IAAa5jB,KAGjD,OAFAgiD,EAAM5gD,KAAOA,EACb4gD,EAAM+nC,QAAUA,EACT/nC,EAiCX,OAjDA2qC,EAAUb,EAAS3a,GAkBnBntE,OAAOE,eAAe4nF,EAAQ9sF,UAAW,UAAW,CAMhDgsB,IAAK,WACD,OAAOhrB,KAAKoB,MAEhBmpB,IAAK,SAAUnpB,GACXpB,KAAKoB,KAAOA,GAEhBwmE,YAAY,EACZwG,cAAc,IAElBpqE,OAAOE,eAAe4nF,EAAQ9sF,UAAW,aAAc,CACnDgsB,IAAK,WACD,IAAIg3B,EAAQhiD,KACZ,OAAOgE,OAAOqC,KAAKrG,KAAK+pF,SAASr3E,KAAI,SAAUtR,GAC3C,IAAIyd,EAAIkJ,EACR,MAAO,CACH3mB,KAAMA,EACNxF,MAAOomD,EAAM+nC,QAAQ3oF,GACrBosF,UAAkD,QAAtC3uE,EAAKmjC,EAAM,6BAA0C,IAAPnjC,OAAgB,EAASA,EAAGzd,GACtFqsB,OAA4C,QAAnC1F,EAAKi6B,EAAM,0BAAuC,IAAPj6B,OAAgB,EAASA,EAAG3mB,QAI5FwmE,YAAY,EACZwG,cAAc,IAEX0d,EAlDiB,CAmD1BM,GAMF,SAAS5B,EAAMxB,GACX,OAAO,EAAI2B,EAAiBH,OAAOxB,GAOvC,SAASmE,EAAQnE,GACb,OAAOA,EAAK/qF,OAAS0sF,EAAiBhC,YAAYY,MAOtD,SAAS2D,EAAOlE,GACZ,OAAOA,EAAK/qF,OAAS0sF,EAAiBhC,YAAY2B,KAOtD,SAAS2C,EAAUjE,GACf,OAAOA,EAAK/qF,OAAS0sF,EAAiBhC,YAAYW,QAOtD,SAAS0D,EAAYhE,GACjB,OAAOA,EAAK/qF,OAAS0sF,EAAiBhC,YAAYS,UAOtD,SAAS2D,EAAW/D,GAChB,OAAOA,EAAK/qF,OAAS0sF,EAAiBhC,YAAYQ,KAiBtD,SAAS0D,EAAU7D,EAAMuE,GAErB,IAAIx/E,EACJ,QAFkB,IAAdw/E,IAAwBA,GAAY,GAEpCL,EAAOlE,GACPj7E,EAAS,IAAIu8E,EAAKtB,EAAKlvF,WAEtB,GAAImzF,EAAUjE,GACfj7E,EAAS,IAAIu7E,EAAQN,EAAKlvF,WAEzB,GAAI0wF,EAAMxB,GAAO,CAClB,IAAIplE,EAAW2pE,EAAYE,EAAczE,EAAKplE,UAAY,GACtD8pE,EAAU,IAAI5B,EAAQ9C,EAAK5nF,KAAMgnF,EAAS,GAAIY,EAAKe,SAAUnmE,GACjEA,EAASrmB,SAAQ,SAAUq8E,GAAS,OAAQA,EAAM91C,OAAS4pD,KACrC,MAAlB1E,EAAKwE,YACLE,EAAQF,UAAYxE,EAAKwE,WAEzBxE,EAAK,wBACL0E,EAAQ,sBAAwBtF,EAAS,GAAIY,EAAK,wBAElDA,EAAK,qBACL0E,EAAQ,mBAAqBtF,EAAS,GAAIY,EAAK,qBAEnDj7E,EAAS2/E,OAER,GAAIP,EAAQnE,GAAO,CAChBplE,EAAW2pE,EAAYE,EAAczE,EAAKplE,UAAY,GAA1D,IACI+pE,EAAU,IAAIvB,EAAiBzB,EAAiBhC,YAAYY,MAAO3lE,GACvEA,EAASrmB,SAAQ,SAAUq8E,GAAS,OAAQA,EAAM91C,OAAS6pD,KAC3D5/E,EAAS4/E,OAER,GAAIZ,EAAW/D,GAAO,CACnBplE,EAAW2pE,EAAYE,EAAczE,EAAKplE,UAAY,GAA1D,IACIgqE,EAAU,IAAIxC,EAASxnE,GAC3BA,EAASrmB,SAAQ,SAAUq8E,GAAS,OAAQA,EAAM91C,OAAS8pD,KACvD5E,EAAK,YACL4E,EAAQ,UAAY5E,EAAK,WAE7Bj7E,EAAS6/E,MAER,KAAIZ,EAAYhE,GAUjB,MAAM,IAAI5wF,MAAM,wBAAwB0K,OAAOkmF,EAAK/qF,OATpD,IAAI4vF,EAAc,IAAItB,EAAsBvD,EAAK5nF,KAAM4nF,EAAKlvF,MACtC,MAAlBkvF,EAAK,YACL6E,EAAY,UAAY7E,EAAK,UAC7B6E,EAAY,cAAgB7E,EAAK,cACjC6E,EAAY,cAAgB7E,EAAK,eAErCj7E,EAAS8/E,EAUb,OALA9/E,EAAO0+E,WAAazD,EAAKyD,WACzB1+E,EAAO69E,SAAW5C,EAAK4C,SACQ,MAA3B5C,EAAK8E,qBACL//E,EAAO+/E,mBAAqB9E,EAAK8E,oBAE9B//E,EAGX,SAAS0/E,EAAcM,GAEnB,IADA,IAAInqE,EAAWmqE,EAAOr7E,KAAI,SAAUknE,GAAS,OAAOiT,EAAUjT,GAAO,MAC5Dx5E,EAAI,EAAGA,EAAIwjB,EAAStjB,OAAQF,IACjCwjB,EAASxjB,GAAG4nF,KAAOpkE,EAASxjB,EAAI,GAChCwjB,EAASxjB,EAAI,GAAG2hE,KAAOn+C,EAASxjB,GAEpC,OAAOwjB,EAhIXlsB,EAAQo0F,QAAUA,EAQlBp0F,EAAQ8yF,MAAQA,EAQhB9yF,EAAQy1F,QAAUA,EAQlBz1F,EAAQw1F,OAASA,EAQjBx1F,EAAQu1F,UAAYA,EAQpBv1F,EAAQs1F,YAAcA,EAQtBt1F,EAAQq1F,WAAaA,EAQrBr1F,EAAQo1F,YAHR,SAAqB9D,GACjB,OAAOhlF,OAAOhF,UAAUuP,eAAerN,KAAK8nF,EAAM,aAmEtDtxF,EAAQm1F,UAAYA,gCClbpB7oF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQs2F,aAAU,EAClB,IAAIC,EAAc,EAAQ,OACtBC,EAAW,EAAQ,OAevBx2F,EAAQs2F,QARR,SAAiBG,GACb,IAAIC,EAAWC,EAAcC,EAAaH,GAC1C,OAAQC,EAEgB,SAAlBA,EAAShtF,KAWnB,SAAqBgtF,GACjB,IAAIvvE,EACAkvE,EAASK,EAASxqE,SAClB2qE,EAAO,CACPtwF,KAAM,OACN8b,OAAO,EAAIm0E,EAASx8C,sBAAsB,QAASq8C,GAAQr7E,KAAI,SAAUoC,GACrE,IAAI+J,EACA+E,EAAW9O,EAAK8O,SAChBrM,EAAQ,CAAEuhD,MAAO01B,EAAiB5qE,IACtC6qE,EAAiBl3E,EAAO,KAAM,KAAMqM,GACpC6qE,EAAiBl3E,EAAO,QAAS,QAASqM,GAC1C,IAAI3Y,EAAkD,QAA1C4T,EAAKwvE,EAAc,OAAQzqE,UAA8B,IAAP/E,OAAgB,EAASA,EAAGkrE,QAAQ9+E,KAC9FA,IACAsM,EAAMwhD,KAAO9tD,GAEjB,IAAIxH,EAAc6P,EAAM,UAAWsQ,IAAatQ,EAAM,UAAWsQ,GAC7DngB,IACA8T,EAAM9T,YAAcA,GAExB,IAAIirF,EAAUp7E,EAAM,UAAWsQ,GAI/B,OAHI8qE,IACAn3E,EAAMm3E,QAAU,IAAI1kF,KAAK0kF,IAEtBn3E,MAGfk3E,EAAiBF,EAAM,KAAM,KAAMR,GACnCU,EAAiBF,EAAM,QAAS,QAASR,GACzC,IAAI9iF,EAAgD,QAAxC4T,EAAKwvE,EAAc,OAAQN,UAA4B,IAAPlvE,OAAgB,EAASA,EAAGkrE,QAAQ9+E,KAC5FA,IACAsjF,EAAKx1B,KAAO9tD,GAEhBwjF,EAAiBF,EAAM,cAAe,WAAYR,GAClD,IAAIY,EAAUr7E,EAAM,UAAWy6E,GAK/B,OAJIY,IACAJ,EAAKI,QAAU,IAAI3kF,KAAK2kF,IAE5BF,EAAiBF,EAAM,SAAU,QAASR,GAAQ,GAC3CQ,EAhDGK,CAAYR,GAwD1B,SAAoBA,GAChB,IAAIvvE,EAAIkJ,EACJgmE,EAAwH,QAA9GhmE,EAA4D,QAAtDlJ,EAAKwvE,EAAc,UAAWD,EAASxqE,iBAA8B,IAAP/E,OAAgB,EAASA,EAAG+E,gBAA6B,IAAPmE,EAAgBA,EAAK,GACrJwmE,EAAO,CACPtwF,KAAMmwF,EAAShtF,KAAK8K,OAAO,EAAG,GAC9BtH,GAAI,GACJmV,OAAO,EAAIm0E,EAASx8C,sBAAsB,OAAQ08C,EAASxqE,UAAUlR,KAAI,SAAUoC,GAC/E,IAAI8O,EAAW9O,EAAK8O,SAChBrM,EAAQ,CAAEuhD,MAAO01B,EAAiB5qE,IACtC6qE,EAAiBl3E,EAAO,KAAM,OAAQqM,GACtC6qE,EAAiBl3E,EAAO,QAAS,QAASqM,GAC1C6qE,EAAiBl3E,EAAO,OAAQ,OAAQqM,GACxC6qE,EAAiBl3E,EAAO,cAAe,cAAeqM,GACtD,IAAI8qE,EAAUp7E,EAAM,UAAWsQ,GAG/B,OAFI8qE,IACAn3E,EAAMm3E,QAAU,IAAI1kF,KAAK0kF,IACtBn3E,MAGfk3E,EAAiBF,EAAM,QAAS,QAASR,GACzCU,EAAiBF,EAAM,OAAQ,OAAQR,GACvCU,EAAiBF,EAAM,cAAe,cAAeR,GACrD,IAAIY,EAAUr7E,EAAM,gBAAiBy6E,GAKrC,OAJIY,IACAJ,EAAKI,QAAU,IAAI3kF,KAAK2kF,IAE5BF,EAAiBF,EAAM,SAAU,iBAAkBR,GAAQ,GACpDQ,EAlFGM,CAAWT,GAHf,MAuFV,IAAIU,EAAoB,CAAC,MAAO,OAAQ,QACpCC,EAAiB,CACjB,WACA,UACA,YACA,eACA,WACA,WACA,SACA,SAQJ,SAASP,EAAiBQ,GACtB,OAAO,EAAId,EAASx8C,sBAAsB,gBAAiBs9C,GAAOt8E,KAAI,SAAUugD,GAM5E,IALA,IAAI82B,EAAU92B,EAAK82B,QACfjxB,EAAQ,CACRm2B,OAAQlF,EAAQkF,OAChBC,YAAanF,EAAQmF,WAEhBhb,EAAK,EAAGib,EAAsBL,EAAmB5a,EAAKib,EAAoB7uF,OAAQ4zE,IAEnF6V,EADAqF,EAASD,EAAoBjb,MAE7Bpb,EAAMs2B,GAAUrF,EAAQqF,IAGhC,IAAK,IAAIvwE,EAAK,EAAGwwE,EAAmBN,EAAgBlwE,EAAKwwE,EAAiB/uF,OAAQue,IAAM,CACpF,IAAIuwE,EACArF,EADAqF,EAASC,EAAiBxwE,MAE1Bi6C,EAAMs2B,GAAUlmD,SAAS6gD,EAAQqF,GAAS,KAOlD,OAJIrF,EAAQuF,aACRx2B,EAAMw2B,WACFvF,EAAQuF,YAETx2B,KAUf,SAASu1B,EAAch/D,EAAS25D,GAC5B,OAAO,EAAIkF,EAASx8C,sBAAsBriB,EAAS25D,GAAM,EAAM,GAAG,GAUtE,SAAS11E,EAAM+b,EAAS2/D,EAAOO,GAE3B,YADgB,IAAZA,IAAsBA,GAAU,IAC7B,EAAItB,EAAYuB,cAAa,EAAItB,EAASx8C,sBAAsBriB,EAAS2/D,EAAOO,EAAS,IAAIlnF,OAWxG,SAASomF,EAAiBlqF,EAAKyB,EAAMqpB,EAAS2/D,EAAOO,QACjC,IAAZA,IAAsBA,GAAU,GACpC,IAAI12F,EAAMya,EAAM+b,EAAS2/D,EAAOO,GAC5B12F,IACA0L,EAAIyB,GAAQnN,GAQpB,SAASy1F,EAAY1yF,GACjB,MAAiB,QAAVA,GAA6B,SAAVA,GAA8B,YAAVA,iCC3LlDoI,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQ+3F,WAAa/3F,EAAQg4F,wBAA0Bh4F,EAAQi4F,mBAAgB,EAC/E,IAAIC,EAAe,EAAQ,OA2D3B,SAASF,EAAwBG,EAAOC,GACpC,IAAIC,EAAW,GACXC,EAAW,GACf,GAAIH,IAAUC,EACV,OAAO,EAGX,IADA,IAAIG,GAAU,EAAIL,EAAa9C,aAAa+C,GAASA,EAAQA,EAAM/rD,OAC5DmsD,GACHF,EAASxtF,QAAQ0tF,GACjBA,EAAUA,EAAQnsD,OAGtB,IADAmsD,GAAU,EAAIL,EAAa9C,aAAagD,GAASA,EAAQA,EAAMhsD,OACxDmsD,GACHD,EAASztF,QAAQ0tF,GACjBA,EAAUA,EAAQnsD,OAItB,IAFA,IAAIosD,EAASzpF,KAAKkM,IAAIo9E,EAASzvF,OAAQ0vF,EAAS1vF,QAC5C6vF,EAAM,EACHA,EAAMD,GAAUH,EAASI,KAASH,EAASG,IAC9CA,IAEJ,GAAY,IAARA,EACA,OAAO,EAEX,IAAIC,EAAeL,EAASI,EAAM,GAC9BE,EAAWD,EAAaxsE,SACxB0sE,EAAWP,EAASI,GACpBI,EAAWP,EAASG,GACxB,OAAIE,EAAS/zF,QAAQg0F,GAAYD,EAAS/zF,QAAQi0F,GAC1CH,IAAiBN,EACV,GAEJ,EAEPM,IAAiBP,EACV,GAEJ,EA/DXn4F,EAAQi4F,cA1BR,SAAuB1G,GAMnB,IALA,IAAIkH,EAAMlH,EAAM3oF,SAKP6vF,GAAO,GAAG,CACf,IAAInH,EAAOC,EAAMkH,GAMjB,GAAIA,EAAM,GAAKlH,EAAMxjB,YAAYujB,EAAMmH,EAAM,IAAM,EAC/ClH,EAAMloF,OAAOovF,EAAK,QAGtB,IAAK,IAAIK,EAAWxH,EAAKllD,OAAQ0sD,EAAUA,EAAWA,EAAS1sD,OAC3D,GAAImlD,EAAMltE,SAASy0E,GAAW,CAC1BvH,EAAMloF,OAAOovF,EAAK,GAClB,OAIZ,OAAOlH,GAmEXvxF,EAAQg4F,wBAA0BA,EAuBlCh4F,EAAQ+3F,WAdR,SAAoBxG,GAYhB,OAXAA,EAAQA,EAAMv5E,QAAO,SAAUs5E,EAAM5oF,EAAGiM,GAAO,OAAQA,EAAI0P,SAASitE,EAAM5oF,EAAI,OACxEqS,MAAK,SAAUxD,EAAGC,GACpB,IAAIuhF,EAAWf,EAAwBzgF,EAAGC,GAC1C,OAAe,EAAXuhF,GACQ,EAEQ,EAAXA,EACE,EAEJ,KAEJxH,uCCzHX,IAAIX,EAAmBtoF,MAAQA,KAAKsoF,kBAAqBtkF,OAAO9E,OAAS,SAAU+gE,EAAGoF,EAAGvX,EAAGy6B,QAC7ElrF,IAAPkrF,IAAkBA,EAAKz6B,GAC3B9pD,OAAOE,eAAe+7D,EAAGsoB,EAAI,CAAE3gB,YAAY,EAAM58C,IAAK,WAAa,OAAOq6C,EAAEvX,OAC3E,SAAUmS,EAAGoF,EAAGvX,EAAGy6B,QACTlrF,IAAPkrF,IAAkBA,EAAKz6B,GAC3BmS,EAAEsoB,GAAMljB,EAAEvX,KAEV28B,EAAgBzqF,MAAQA,KAAKyqF,cAAiB,SAASplB,EAAG3tE,GAC1D,IAAK,IAAIg7B,KAAK2yC,EAAa,YAAN3yC,GAAoB1uB,OAAOhF,UAAUuP,eAAerN,KAAKxJ,EAASg7B,IAAI41D,EAAgB5wF,EAAS2tE,EAAG3yC,IAE3H1uB,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQo1F,YAAcp1F,EAAQq1F,WAAar1F,EAAQu1F,UAAYv1F,EAAQw1F,OAASx1F,EAAQy1F,QAAUz1F,EAAQ8yF,WAAQ,EAClHC,EAAa,EAAQ,OAAgB/yF,GACrC+yF,EAAa,EAAQ,OAAgB/yF,GACrC+yF,EAAa,EAAQ,OAAmB/yF,GACxC+yF,EAAa,EAAQ,OAAe/yF,GACpC+yF,EAAa,EAAQ,OAAa/yF,GAClC+yF,EAAa,EAAQ,OAAc/yF,GACnC+yF,EAAa,EAAQ,OAAY/yF,GAEjC,IAAIk4F,EAAe,EAAQ,OAC3B5rF,OAAOE,eAAexM,EAAS,QAAS,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO4kE,EAAapF,SACnGxmF,OAAOE,eAAexM,EAAS,UAAW,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO4kE,EAAazC,WACrGnpF,OAAOE,eAAexM,EAAS,SAAU,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO4kE,EAAa1C,UACpGlpF,OAAOE,eAAexM,EAAS,YAAa,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO4kE,EAAa3C,aACvGjpF,OAAOE,eAAexM,EAAS,aAAc,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO4kE,EAAa7C,cACxG/oF,OAAOE,eAAexM,EAAS,cAAe,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO4kE,EAAa9C,6CC1BzG9oF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQg5F,qBAAuBh5F,EAAQg6C,qBAAuBh6C,EAAQmgC,eAAiBngC,EAAQi5F,YAAcj5F,EAAQk5F,iBAAc,EACnI,IAAIhB,EAAe,EAAQ,OACvBiB,EAAa,EAAQ,OACrBC,EAAS,CACTC,SAAU,SAAU3vF,GAChB,MAAoB,mBAATA,EACA,SAAU6xD,GAAQ,OAAO,EAAI28B,EAAapF,OAAOv3B,IAAS7xD,EAAK6xD,EAAK7xD,OAE7D,MAATA,EACEwuF,EAAapF,MAEjB,SAAUv3B,GAAQ,OAAO,EAAI28B,EAAapF,OAAOv3B,IAASA,EAAK7xD,OAASA,IAEnF4vF,SAAU,SAAU/yF,GAChB,MAAoB,mBAATA,EACA,SAAUg1D,GAAQ,OAAOh1D,EAAKg1D,EAAKh1D,OAEvC,SAAUg1D,GAAQ,OAAOA,EAAKh1D,OAASA,IAElDgzF,aAAc,SAAUn3F,GACpB,MAAoB,mBAATA,EACA,SAAUm5D,GAAQ,OAAO,EAAI28B,EAAa1C,QAAQj6B,IAASn5D,EAAKm5D,EAAKn5D,OAEzE,SAAUm5D,GAAQ,OAAO,EAAI28B,EAAa1C,QAAQj6B,IAASA,EAAKn5D,OAASA,KAQxF,SAASo3F,EAAe9B,EAAQxzF,GAC5B,MAAqB,mBAAVA,EACA,SAAUq3D,GAAQ,OAAO,EAAI28B,EAAapF,OAAOv3B,IAASr3D,EAAMq3D,EAAK82B,QAAQqF,KAEjF,SAAUn8B,GAAQ,OAAO,EAAI28B,EAAapF,OAAOv3B,IAASA,EAAK82B,QAAQqF,KAAYxzF,GAQ9F,SAASu1F,EAAaliF,EAAGC,GACrB,OAAO,SAAU+jD,GAAQ,OAAOhkD,EAAEgkD,IAAS/jD,EAAE+jD,IAOjD,SAASm+B,EAAYn5F,GACjB,IAAIo5F,EAAQrtF,OAAOqC,KAAKpO,GAASya,KAAI,SAAUlV,GAC3C,IAAI5B,EAAQ3D,EAAQuF,GACpB,OAAOwG,OAAOhF,UAAUuP,eAAerN,KAAK4vF,EAAQtzF,GAC9CszF,EAAOtzF,GAAK5B,GACZs1F,EAAe1zF,EAAK5B,MAE9B,OAAwB,IAAjBy1F,EAAM/wF,OAAe,KAAO+wF,EAAMp/E,OAAOk/E,GAWpDz5F,EAAQk5F,YAJR,SAAqB34F,EAAS+wF,GAC1B,IAAIx+E,EAAO4mF,EAAYn5F,GACvB,OAAOuS,GAAOA,EAAKw+E,IAevBtxF,EAAQi5F,YALR,SAAqB14F,EAASgxF,EAAOsG,EAASh1E,QAC5B,IAAVA,IAAoBA,EAAQ3H,KAChC,IAAIpI,EAAO4mF,EAAYn5F,GACvB,OAAOuS,GAAO,EAAIqmF,EAAWnhF,QAAQlF,EAAMy+E,EAAOsG,EAASh1E,GAAS,IAexE7iB,EAAQmgC,eANR,SAAwBjzB,EAAIqkF,EAAOsG,GAI/B,YAHgB,IAAZA,IAAsBA,GAAU,GAC/B3sF,MAAMiD,QAAQojF,KACfA,EAAQ,CAACA,KACN,EAAI4H,EAAWS,SAASJ,EAAe,KAAMtsF,GAAKqkF,EAAOsG,IAepE73F,EAAQg6C,qBALR,SAA8BriB,EAAS45D,EAAOsG,EAASh1E,GAGnD,YAFgB,IAAZg1E,IAAsBA,GAAU,QACtB,IAAVh1E,IAAoBA,EAAQ3H,MACzB,EAAIi+E,EAAWnhF,QAAQohF,EAAOC,SAAS1hE,GAAU45D,EAAOsG,EAASh1E,IAe5E7iB,EAAQg5F,qBALR,SAA8BzyF,EAAMgrF,EAAOsG,EAASh1E,GAGhD,YAFgB,IAAZg1E,IAAsBA,GAAU,QACtB,IAAVh1E,IAAoBA,EAAQ3H,MACzB,EAAIi+E,EAAWnhF,QAAQohF,EAAOE,SAAS/yF,GAAOgrF,EAAOsG,EAASh1E,gCCjHzE,SAASg3E,EAAct+B,GAKnB,GAJIA,EAAK+0B,OACL/0B,EAAK+0B,KAAKjmB,KAAO9O,EAAK8O,MACtB9O,EAAK8O,OACL9O,EAAK8O,KAAKimB,KAAO/0B,EAAK+0B,MACtB/0B,EAAKnvB,OAAQ,CACb,IAAIiqD,EAAS96B,EAAKnvB,OAAOlgB,SACzBmqE,EAAOhtF,OAAOgtF,EAAOtoB,YAAYxS,GAAO,IAdhDjvD,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQ2pD,QAAU3pD,EAAQ85F,aAAe95F,EAAQuV,OAASvV,EAAQq/B,YAAcr/B,EAAQ+5F,eAAiB/5F,EAAQ65F,mBAAgB,EAgBjI75F,EAAQ65F,cAAgBA,EAsBxB75F,EAAQ+5F,eAfR,SAAwBx+B,EAAMy+B,GAC1B,IAAI1J,EAAQ0J,EAAY1J,KAAO/0B,EAAK+0B,KAChCA,IACAA,EAAKjmB,KAAO2vB,GAEhB,IAAI3vB,EAAQ2vB,EAAY3vB,KAAO9O,EAAK8O,KAChCA,IACAA,EAAKimB,KAAO0J,GAEhB,IAAI5tD,EAAU4tD,EAAY5tD,OAASmvB,EAAKnvB,OACxC,GAAIA,EAAQ,CACR,IAAIiqD,EAASjqD,EAAOlgB,SACpBmqE,EAAOA,EAAOtoB,YAAYxS,IAASy+B,IAuB3Ch6F,EAAQq/B,YAbR,SAAqBk8B,EAAM2mB,GAIvB,GAHA2X,EAAc3X,GACdA,EAAM7X,KAAO,KACb6X,EAAM91C,OAASmvB,EACXA,EAAKrvC,SAAS/iB,KAAK+4E,GAAS,EAAG,CAC/B,IAAI+X,EAAU1+B,EAAKrvC,SAASqvC,EAAKrvC,SAAStjB,OAAS,GACnDqxF,EAAQ5vB,KAAO6X,EACfA,EAAMoO,KAAO2J,OAGb/X,EAAMoO,KAAO,MA6BrBtwF,EAAQuV,OAnBR,SAAgBgmD,EAAM8O,GAClBwvB,EAAcxvB,GACd,IAAIj+B,EAASmvB,EAAKnvB,OACd8tD,EAAW3+B,EAAK8O,KAKpB,GAJAA,EAAKA,KAAO6vB,EACZ7vB,EAAKimB,KAAO/0B,EACZA,EAAK8O,KAAOA,EACZA,EAAKj+B,OAASA,EACV8tD,GAEA,GADAA,EAAS5J,KAAOjmB,EACZj+B,EAAQ,CACR,IAAIiqD,EAASjqD,EAAOlgB,SACpBmqE,EAAOhtF,OAAOgtF,EAAOtoB,YAAYmsB,GAAW,EAAG7vB,SAG9Cj+B,GACLA,EAAOlgB,SAAS/iB,KAAKkhE,IAuB7BrqE,EAAQ85F,aAbR,SAAsBv+B,EAAM2mB,GAIxB,GAHA2X,EAAc3X,GACdA,EAAM91C,OAASmvB,EACf2mB,EAAMoO,KAAO,KACwB,IAAjC/0B,EAAKrvC,SAASrhB,QAAQq3E,GAAc,CACpC,IAAI+X,EAAU1+B,EAAKrvC,SAAS,GAC5B+tE,EAAQ3J,KAAOpO,EACfA,EAAM7X,KAAO4vB,OAGb/X,EAAM7X,KAAO,MAyBrBrqE,EAAQ2pD,QAfR,SAAiB4R,EAAM+0B,GACnBuJ,EAAcvJ,GACd,IAAIlkD,EAASmvB,EAAKnvB,OAClB,GAAIA,EAAQ,CACR,IAAIiqD,EAASjqD,EAAOlgB,SACpBmqE,EAAOhtF,OAAOgtF,EAAOzxF,QAAQ22D,GAAO,EAAG+0B,GAEvC/0B,EAAK+0B,OACL/0B,EAAK+0B,KAAKjmB,KAAOimB,GAErBA,EAAKlkD,OAASA,EACdkkD,EAAKA,KAAO/0B,EAAK+0B,KACjBA,EAAKjmB,KAAO9O,EACZA,EAAK+0B,KAAOA,iCC7HhBhkF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQm6F,QAAUn6F,EAAQo6F,UAAYp6F,EAAQ45F,QAAU55F,EAAQq6F,aAAer6F,EAAQuZ,KAAOvZ,EAAQgY,YAAS,EAC/G,IAAIkgF,EAAe,EAAQ,OA2B3B,SAAS3+E,EAAKzG,EAAMy+E,EAAOsG,EAASh1E,GAEhC,IADA,IAAIxM,EAAS,GACJmmE,EAAK,EAAG8d,EAAU/I,EAAO/U,EAAK8d,EAAQ1xF,OAAQ4zE,IAAM,CACzD,IAAIjhB,EAAO++B,EAAQ9d,GACnB,GAAI1pE,EAAKyoD,KACLllD,EAAOlN,KAAKoyD,KACN14C,GAAS,GACX,MAER,GAAIg1E,IAAW,EAAIK,EAAa9C,aAAa75B,IAASA,EAAKrvC,SAAStjB,OAAS,EAAG,CAC5E,IAAIsjB,EAAW3S,EAAKzG,EAAMyoD,EAAKrvC,SAAU2rE,EAASh1E,GAGlD,GAFAxM,EAAOlN,KAAKgC,MAAMkL,EAAQ6V,IAC1BrJ,GAASqJ,EAAStjB,SACL,EACT,OAGZ,OAAOyN,EA3BXrW,EAAQgY,OAPR,SAAgBlF,EAAMw+E,EAAMuG,EAASh1E,GAKjC,YAJgB,IAAZg1E,IAAsBA,GAAU,QACtB,IAAVh1E,IAAoBA,EAAQ3H,KAC3BhQ,MAAMiD,QAAQmjF,KACfA,EAAO,CAACA,IACL/3E,EAAKzG,EAAMw+E,EAAMuG,EAASh1E,IA+BrC7iB,EAAQuZ,KAAOA,EAWfvZ,EAAQq6F,aAHR,SAAsBvnF,EAAMy+E,GACxB,OAAOA,EAAMh4E,KAAKzG,IA4BtB9S,EAAQ45F,QAjBR,SAASA,EAAQ9mF,EAAMy+E,EAAOsG,QACV,IAAZA,IAAsBA,GAAU,GAEpC,IADA,IAAIt8B,EAAO,KACF7yD,EAAI,EAAGA,EAAI6oF,EAAM3oF,SAAW2yD,EAAM7yD,IAAK,CAC5C,IAAI62B,EAAUgyD,EAAM7oF,IACf,EAAIwvF,EAAapF,OAAOvzD,KAGpBzsB,EAAKysB,GACVg8B,EAAOh8B,EAEFs4D,GAAWt4D,EAAQrT,SAAStjB,OAAS,IAC1C2yD,EAAOq+B,EAAQ9mF,EAAMysB,EAAQrT,YAGrC,OAAOqvC,GAgBXv7D,EAAQo6F,UARR,SAASA,EAAUtnF,EAAMy+E,GACrB,OAAOA,EAAMn3E,MAAK,SAAUmlB,GACxB,OAAO,EAAI24D,EAAapF,OAAOvzD,KAC1BzsB,EAAKysB,IACDA,EAAQrT,SAAStjB,OAAS,GACvBwxF,EAAUtnF,EAAMysB,EAAQrT,eA4B5ClsB,EAAQm6F,QAfR,SAAiBrnF,EAAMy+E,GAKnB,IAJA,IAAIpqE,EAGAo0C,EAFAllD,EAAS,GACTjK,EAAQmlF,EAAMv5E,OAAOkgF,EAAapF,OAE9Bv3B,EAAOnvD,EAAMf,SAAU,CAC3B,IAAI6gB,EAAoC,QAAxB/E,EAAKo0C,EAAKrvC,gBAA6B,IAAP/E,OAAgB,EAASA,EAAGnP,OAAOkgF,EAAapF,OAC5F5mE,GAAYA,EAAStjB,OAAS,GAC9BwD,EAAMvB,QAAQM,MAAMiB,EAAO8f,GAE3BpZ,EAAKyoD,IACLllD,EAAOlN,KAAKoyD,GAEpB,OAAOllD,uCC1HX,IAAIkkF,EAAmBjyF,MAAQA,KAAKiyF,iBAAoB,SAAUvJ,GAC9D,OAAQA,GAAOA,EAAIjK,WAAciK,EAAM,CAAE,QAAWA,IAExD1kF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQogC,UAAYpgC,EAAQ83F,YAAc93F,EAAQw6F,QAAUx6F,EAAQy6F,aAAez6F,EAAQ06F,kBAAe,EAC1G,IAAIxC,EAAe,EAAQ,OACvByC,EAAmBJ,EAAgB,EAAQ,QAC3CtH,EAAmB,EAAQ,OAO/B,SAASyH,EAAapJ,EAAM/wF,GACxB,OAAO,EAAIo6F,EAAiBrU,SAASgL,EAAM/wF,GAE/CP,EAAQ06F,aAAeA,EAYvB16F,EAAQy6F,aALR,SAAsBnJ,EAAM/wF,GACxB,OAAO,EAAI23F,EAAa9C,aAAa9D,GAC/BA,EAAKplE,SAASlR,KAAI,SAAUs2E,GAAQ,OAAOoJ,EAAapJ,EAAM/wF,MAAaqR,KAAK,IAChF,IAqBV5R,EAAQw6F,QAXR,SAASA,EAAQlJ,GACb,OAAIpmF,MAAMiD,QAAQmjF,GACPA,EAAKt2E,IAAIw/E,GAAS5oF,KAAK,KAC9B,EAAIsmF,EAAapF,OAAOxB,GACH,OAAdA,EAAK5nF,KAAgB,KAAO8wF,EAAQlJ,EAAKplE,WAChD,EAAIgsE,EAAazC,SAASnE,GACnBkJ,EAAQlJ,EAAKplE,WACpB,EAAIgsE,EAAa1C,QAAQlE,GAClBA,EAAKlvF,KACT,IAoBXpC,EAAQ83F,YAVR,SAASA,EAAYxG,GACjB,OAAIpmF,MAAMiD,QAAQmjF,GACPA,EAAKt2E,IAAI88E,GAAalmF,KAAK,KAClC,EAAIsmF,EAAa9C,aAAa9D,MAAU,EAAI4G,EAAa3C,WAAWjE,GAC7DwG,EAAYxG,EAAKplE,WAExB,EAAIgsE,EAAa1C,QAAQlE,GAClBA,EAAKlvF,KACT,IAoBXpC,EAAQogC,UAVR,SAASA,EAAUkxD,GACf,OAAIpmF,MAAMiD,QAAQmjF,GACPA,EAAKt2E,IAAIolB,GAAWxuB,KAAK,KAChC,EAAIsmF,EAAa9C,aAAa9D,KAAUA,EAAK/qF,OAAS0sF,EAAiBhC,YAAYgB,MAAO,EAAIiG,EAAazC,SAASnE,IAC7GlxD,EAAUkxD,EAAKplE,WAEtB,EAAIgsE,EAAa1C,QAAQlE,GAClBA,EAAKlvF,KACT,kCClFXkK,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQ46F,mBAAqB56F,EAAQ66F,mBAAqB76F,EAAQ86F,QAAU96F,EAAQ+6F,UAAY/6F,EAAQg7F,kBAAoBh7F,EAAQi7F,YAAcj7F,EAAQk7F,UAAYl7F,EAAQm7F,iBAAc,EAC5L,IAAIjD,EAAe,EAAQ,OACvBkD,EAAa,GAOjB,SAASD,EAAY5/B,GACjB,IAAIp0C,EACJ,OAAgC,QAAxBA,EAAKo0C,EAAKrvC,gBAA6B,IAAP/E,EAAgBA,EAAKi0E,EASjE,SAASF,EAAU3/B,GACf,OAAOA,EAAKnvB,QAAU,KAR1BpsC,EAAQm7F,YAAcA,EAUtBn7F,EAAQk7F,UAAYA,EA4BpBl7F,EAAQi7F,YAjBR,SAAqB1/B,GACjB,IACInvB,EAAS8uD,EAAU3/B,GACvB,GAAc,MAAVnvB,EACA,OAAO+uD,EAAY/uD,GAGvB,IAFA,IAAIusD,EAAW,CAACp9B,GACZ+0B,EAAO/0B,EAAK+0B,KAAMjmB,EAAO9O,EAAK8O,KACnB,MAARimB,GACHqI,EAAS9tF,QAAQylF,GACLA,EAANA,EAAgBA,KAE1B,KAAe,MAARjmB,GACHsuB,EAASxvF,KAAKkhE,GACFA,EAANA,EAAgBA,KAE1B,OAAOsuB,GAcX34F,EAAQg7F,kBAJR,SAA2Bz/B,EAAM7xD,GAC7B,IAAIyd,EACJ,OAA+B,QAAvBA,EAAKo0C,EAAK82B,eAA4B,IAAPlrE,OAAgB,EAASA,EAAGzd,IAevE1J,EAAQ+6F,UALR,SAAmBx/B,EAAM7xD,GACrB,OAAwB,MAAhB6xD,EAAK82B,SACT/lF,OAAOhF,UAAUuP,eAAerN,KAAK+xD,EAAK82B,QAAS3oF,IAC7B,MAAtB6xD,EAAK82B,QAAQ3oF,IAYrB1J,EAAQ86F,QAHR,SAAiBv/B,GACb,OAAOA,EAAK7xD,MAgBhB1J,EAAQ66F,mBAPR,SAA4Bt/B,GAGxB,IAFA,IACI8O,EAAO9O,EAAK8O,KACA,OAATA,KAAkB,EAAI6tB,EAAapF,OAAOzoB,IACjCA,EAANA,EAAgBA,KAC1B,OAAOA,GAgBXrqE,EAAQ46F,mBAPR,SAA4Br/B,GAGxB,IAFA,IACI+0B,EAAO/0B,EAAK+0B,KACA,OAATA,KAAkB,EAAI4H,EAAapF,OAAOxC,IACjCA,EAANA,EAAgBA,KAC1B,OAAOA,uCCjHX,IAAIiK,EAAmBjyF,MAAQA,KAAKiyF,iBAAoB,SAAUvJ,GAC9D,OAAQA,GAAOA,EAAIjK,WAAciK,EAAM,CAAE,QAAWA,IAExD1kF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQq7F,WAAar7F,EAAQs7F,iBAAmBt7F,EAAQu7F,eAAY,EACpE,IAAIC,EAAkBjB,EAAgB,EAAQ,QAC1CkB,EAAgBlB,EAAgB,EAAQ,QACxCmB,EAAanB,EAAgB,EAAQ,OACrCoB,EAAqBpB,EAAgB,EAAQ,KAC7CqB,EAAiB,4CAGrB,SAASC,EAAiB7gF,GACtB,IAAI1J,EAAUwqF,EAAY9gF,GAC1B,OAAO,SAAUvE,GAAO,OAAO4B,OAAO5B,GAAKnF,QAAQsqF,EAAgBtqF,IAJvEtR,EAAQu7F,UAAYM,EAAiBH,EAAWpV,SAChDtmF,EAAQs7F,iBAAmBO,EAAiBL,EAAgBlV,SAK5D,IAAIyV,EAAS,SAAUxkF,EAAGC,GAAK,OAAQD,EAAIC,EAAI,GAAK,GAuBpD,SAASskF,EAAY9gF,GACjB,OAAO,SAAiBvE,GACpB,GAAsB,MAAlBA,EAAI1C,OAAO,GAAY,CACvB,IAAIioF,EAAavlF,EAAI1C,OAAO,GAC5B,MAAmB,MAAfioF,GAAqC,MAAfA,EACfL,EAAmBrV,QAAQ90C,SAAS/6B,EAAIjC,OAAO,GAAI,KAEvDmnF,EAAmBrV,QAAQ90C,SAAS/6B,EAAIjC,OAAO,GAAI,KAG9D,OAAOwG,EAAIvE,EAAIrI,MAAM,GAAI,KAAOqI,GAhCxCzW,EAAQq7F,WAAa,WAGjB,IAFA,IAAIY,EAAS3vF,OAAOqC,KAAK8sF,EAAcnV,SAASvrE,KAAKghF,GACjDptF,EAAOrC,OAAOqC,KAAK6sF,EAAgBlV,SAASvrE,KAAKghF,GAC5CrzF,EAAI,EAAGu0D,EAAI,EAAGv0D,EAAIiG,EAAK/F,OAAQF,IAChCuzF,EAAOh/B,KAAOtuD,EAAKjG,IACnBiG,EAAKjG,IAAM,KACXu0D,KAGAtuD,EAAKjG,IAAM,IAGnB,IAAI4wE,EAAK,IAAI5mE,OAAO,OAAS/D,EAAKiD,KAAK,KAAO,gCAAiC,KAC3EN,EAAUwqF,EAAYN,EAAgBlV,SAC1C,SAASrqD,EAASxlB,GAGd,MAFuB,MAAnBA,EAAIjC,QAAQ,KACZiC,GAAO,KACJnF,EAAQmF,GAGnB,OAAO,SAAUA,GAAO,OAAO4B,OAAO5B,GAAKnF,QAAQgoE,EAAIr9C,IApBtC,oCCjBrB,IAAIs+D,EAAmBjyF,MAAQA,KAAKiyF,iBAAoB,SAAUvJ,GAC9D,OAAQA,GAAOA,EAAIjK,WAAciK,EAAM,CAAE,QAAWA,IAExD1kF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtD,IAAIg4F,EAAgB3B,EAAgB,EAAQ,QAExC4B,EAEJ9jF,OAAO8jF,eACH,SAAU1sB,GACN,IAAIxJ,EAAS,GAOb,OANIwJ,EAAY,QACZA,GAAa,MACbxJ,GAAU5tD,OAAOynD,aAAe2P,IAAc,GAAM,KAAS,OAC7DA,EAAY,MAAsB,KAAZA,GAE1BxJ,EAAU5tD,OAAOynD,aAAa2P,IAYtCzvE,EAAA,QATA,SAAyByvE,GACrB,OAAKA,GAAa,OAAUA,GAAa,OAAWA,EAAY,QACrD,KAEPA,KAAaysB,EAAc5V,UAC3B7W,EAAYysB,EAAc5V,QAAQ7W,IAE/B0sB,EAAc1sB,yCC1BzB,IAAI8qB,EAAmBjyF,MAAQA,KAAKiyF,iBAAoB,SAAUvJ,GAC9D,OAAQA,GAAOA,EAAIjK,WAAciK,EAAM,CAAE,QAAWA,IAExD1kF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQo8F,WAAap8F,EAAQw4B,OAASx4B,EAAQq8F,mBAAqBr8F,EAAQs8F,WAAat8F,EAAQwyF,eAAY,EAC5G,IACI+J,EAAaC,EADAjC,EAAgB,EAAQ,OACCjU,SACtCmW,EAAcC,EAAmBH,GAQrCv8F,EAAQwyF,UAAYmK,EAAgBJ,GACpC,IAiFoBK,EAAStjB,EAhFzBujB,EAAcL,EADIjC,EAAgB,EAAQ,QACEjU,SAC5CwW,EAAeJ,EAAmBG,GAoBtC,SAASL,EAAc3vF,GACnB,OAAOP,OAAOqC,KAAK9B,GACdkO,OACAR,QAAO,SAAUqiF,EAASlzF,GAE3B,OADAkzF,EAAQ/vF,EAAInD,IAAS,IAAMA,EAAO,IAC3BkzF,IACR,IAEP,SAASF,EAAmBE,GAGxB,IAFA,IAAIG,EAAS,GACTC,EAAW,GACNxgB,EAAK,EAAGr1D,EAAK7a,OAAOqC,KAAKiuF,GAAUpgB,EAAKr1D,EAAGve,OAAQ4zE,IAAM,CAC9D,IAAIpmB,EAAIjvC,EAAGq1D,GACM,IAAbpmB,EAAExtD,OAEFm0F,EAAO5zF,KAAK,KAAOitD,GAInB4mC,EAAS7zF,KAAKitD,GAItB2mC,EAAOhiF,OACP,IAAK,IAAI8oD,EAAQ,EAAGA,EAAQk5B,EAAOn0F,OAAS,EAAGi7D,IAAS,CAGpD,IADA,IAAImC,EAAMnC,EACHmC,EAAM+2B,EAAOn0F,OAAS,GACzBm0F,EAAO/2B,GAAKruD,WAAW,GAAK,IAAMolF,EAAO/2B,EAAM,GAAGruD,WAAW,IAC7DquD,GAAO,EAEX,IAAIz0B,EAAQ,EAAIy0B,EAAMnC,EAElBtyB,EAAQ,GAEZwrD,EAAO1zF,OAAOw6D,EAAOtyB,EAAOwrD,EAAOl5B,GAAS,IAAMk5B,EAAO/2B,IAG7D,OADAg3B,EAASnyF,QAAQ,IAAMkyF,EAAOnrF,KAAK,IAAM,KAClC,IAAIc,OAAOsqF,EAASprF,KAAK,KAAM,KA/C1C5R,EAAQs8F,YAoEYM,EApEYC,EAoEHvjB,EApEgBwjB,EAqElC,SAAU16F,GACb,OAAOA,EACFkP,QAAQgoE,GAAI,SAAU5vE,GAAQ,OAAOkzF,EAAQlzF,MAC7C4H,QAAQ2rF,EAAYC,KAhEjCl9F,EAAQq8F,mBAAqBM,EAAgBE,GA0C7C,IAAII,EAAa,0IACbE,EAE4B,MAAhC9kF,OAAO/Q,UAAU81F,YAET,SAAU3mF,GAAO,OAAOA,EAAI2mF,YAAY,IAExC,SAAU7zF,GACN,OAAoC,MAA5BA,EAAEoO,WAAW,GAAK,OACtBpO,EAAEoO,WAAW,GACb,MACA,OAEhB,SAASulF,EAAmB3zF,GACxB,MAAO,OAASA,EAAEX,OAAS,EAAIu0F,EAAa5zF,GAAKA,EAAEoO,WAAW,IACzDtI,SAAS,IACThL,cAAgB,IASzB,IAAIg5F,EAAgB,IAAI3qF,OAAO+pF,EAAYnzF,OAAS,IAAM2zF,EAAW3zF,OAAQ,KA0B7E,SAASqzF,EAAgB9vF,GACrB,OAAO,SAAUzK,GACb,OAAOA,EAAKkP,QAAQ+rF,GAAe,SAAU9zF,GAAK,OAAOsD,EAAItD,IAAM2zF,EAAmB3zF,OAf9FvJ,EAAQw4B,OAHR,SAAgBp2B,GACZ,OAAOA,EAAKkP,QAAQ+rF,EAAeH,IAcvCl9F,EAAQo8F,WAHR,SAAoBh6F,GAChB,OAAOA,EAAKkP,QAAQmrF,EAAaS,kCC/HrC5wF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQs9F,gBAAkBt9F,EAAQu9F,kBAAoBv9F,EAAQw9F,kBAAoBx9F,EAAQy9F,YAAcz9F,EAAQ09F,YAAc19F,EAAQs7F,iBAAmBt7F,EAAQq7F,WAAar7F,EAAQu7F,UAAYv7F,EAAQ29F,YAAc39F,EAAQ49F,YAAc59F,EAAQo8F,WAAap8F,EAAQw4B,OAASx4B,EAAQq8F,mBAAqBr8F,EAAQs8F,WAAat8F,EAAQwyF,UAAYxyF,EAAQqR,OAASrR,EAAQ69F,aAAe79F,EAAQq6B,YAAS,EACnZ,IAAIyjE,EAAW,EAAQ,OACnBC,EAAW,EAAQ,OAWvB/9F,EAAQq6B,OAHR,SAAgBj4B,EAAMy5E,GAClB,QAASA,GAASA,GAAS,EAAIiiB,EAASvC,UAAYuC,EAASzC,YAAYj5F,IAa7EpC,EAAQ69F,aAHR,SAAsBz7F,EAAMy5E,GACxB,QAASA,GAASA,GAAS,EAAIiiB,EAASvC,UAAYuC,EAASxC,kBAAkBl5F,IAanFpC,EAAQqR,OAHR,SAAgBjP,EAAMy5E,GAClB,QAASA,GAASA,GAAS,EAAIkiB,EAASvL,UAAYuL,EAASzB,YAAYl6F,IAG7E,IAAI47F,EAAW,EAAQ,OACvB1xF,OAAOE,eAAexM,EAAS,YAAa,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO0qE,EAASxL,aACnGlmF,OAAOE,eAAexM,EAAS,aAAc,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO0qE,EAAS1B,cACpGhwF,OAAOE,eAAexM,EAAS,qBAAsB,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO0qE,EAAS3B,sBAC5G/vF,OAAOE,eAAexM,EAAS,SAAU,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO0qE,EAASxlE,UAChGlsB,OAAOE,eAAexM,EAAS,aAAc,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO0qE,EAAS5B,cAEpG9vF,OAAOE,eAAexM,EAAS,cAAe,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO0qE,EAAS1B,cACrGhwF,OAAOE,eAAexM,EAAS,cAAe,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO0qE,EAAS1B,cACrG,IAAI2B,EAAW,EAAQ,OACvB3xF,OAAOE,eAAexM,EAAS,YAAa,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO2qE,EAAS1C,aACnGjvF,OAAOE,eAAexM,EAAS,aAAc,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO2qE,EAAS5C,cACpG/uF,OAAOE,eAAexM,EAAS,mBAAoB,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO2qE,EAAS3C,oBAE1GhvF,OAAOE,eAAexM,EAAS,cAAe,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO2qE,EAAS5C,cACrG/uF,OAAOE,eAAexM,EAAS,cAAe,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO2qE,EAAS5C,cACrG/uF,OAAOE,eAAexM,EAAS,oBAAqB,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO2qE,EAAS3C,oBAC3GhvF,OAAOE,eAAexM,EAAS,oBAAqB,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO2qE,EAAS3C,oBAC3GhvF,OAAOE,eAAexM,EAAS,kBAAmB,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO2qE,EAAS1C,oCCvDtCx7F,EAAOC,QAGjE,WAAe,aAEpB,IAAIk+F,EAAmBC,SAAS72F,UAAU+H,SACtC7H,EAAS8E,OAAO9E,OAAQgF,EAAiBF,OAAOE,eAAgBysE,EAA2B3sE,OAAO2sE,yBAA0B/gE,EAAsB5L,OAAO4L,oBAAqB4gE,EAAwBxsE,OAAOwsE,sBAAuBslB,EAAmB9xF,OAAOqK,eAC9PwQ,EAAK7a,OAAOhF,UAAWuP,EAAiBsQ,EAAGtQ,eAAgB84E,EAAuBxoE,EAAGwoE,qBACrF0O,EAAqD,mBAA1BvlB,EAC3BwlB,EAA8B,mBAAZ3kB,QASlB4kB,EAAc,WACd,GAAID,EACA,OAAO,WAAc,OAAO,IAAI3kB,SAEpC,IAAI6kB,EAAuB,WACvB,SAASA,IACLl2F,KAAKm2F,MAAQ,GACbn2F,KAAKo2F,QAAU,GAYnB,OAVAF,EAAMl3F,UAAU0jC,IAAM,SAAUllC,GAC5B,SAAUwC,KAAKm2F,MAAM75F,QAAQkB,IAEjC04F,EAAMl3F,UAAUgsB,IAAM,SAAUxtB,GAC5B,OAAOwC,KAAKo2F,QAAQp2F,KAAKm2F,MAAM75F,QAAQkB,KAE3C04F,EAAMl3F,UAAUurB,IAAM,SAAU/sB,EAAK5B,GACjCoE,KAAKm2F,MAAMt1F,KAAKrD,GAChBwC,KAAKo2F,QAAQv1F,KAAKjF,IAEfs6F,EAfe,GAiB1B,OAAO,WAAc,OAAO,IAAIA,GArBlB,GAiCdG,EAAgB,SAAUznB,EAAQ0nB,GAClC,IAAIt3F,EAAY4vE,EAAOmD,WAAa+jB,EAAiBlnB,GACrD,IAAK5vE,EACD,OAAOE,EAAO,MAElB,IAAIq3F,EAAcv3F,EAAU0P,YAC5B,GAAI6nF,IAAgBD,EAAMtyF,OACtB,OAAOhF,IAAcs3F,EAAMtyF,OAAOhF,UAAY,GAAKE,EAAOF,GAE9D,IAAK42F,EAAiB10F,KAAKq1F,GAAaj6F,QAAQ,iBAC5C,IACI,OAAO,IAAIi6F,EAEf,MAAO13E,IAEX,OAAO3f,EAAOF,IAcdw3F,EAAsB,SAAU5nB,EAAQ0nB,EAAOG,EAAYxoF,GAC3D,IAAIoiD,EAAQgmC,EAAcznB,EAAQ0nB,GAGlC,IAAK,IAAI94F,KADTyQ,EAAMsc,IAAIqkD,EAAQve,GACFue,EACRrgE,EAAerN,KAAK0tE,EAAQpxE,KAC5B6yD,EAAM7yD,GAAOi5F,EAAW7nB,EAAOpxE,GAAMyQ,IAG7C,GAAI8nF,EAEA,IADA,IAAItlB,EAAUD,EAAsB5B,GAC3B9tE,EAAQ,EAAG41F,EAAWjmB,EAAQnwE,OAAQ8mF,OAAS,EAAQtmF,EAAQ41F,IAAY51F,EAChFsmF,EAAS3W,EAAQ3vE,GACbumF,EAAqBnmF,KAAK0tE,EAAQwY,KAClC/2B,EAAM+2B,GAAUqP,EAAW7nB,EAAOwY,GAASn5E,IAIvD,OAAOoiD,GAcPsmC,EAAuB,SAAU/nB,EAAQ0nB,EAAOG,EAAYxoF,GAC5D,IAAIoiD,EAAQgmC,EAAcznB,EAAQ0nB,GAElCroF,EAAMsc,IAAIqkD,EAAQve,GAIlB,IAHA,IAAI7gB,EAAaumD,EACXnmF,EAAoBg/D,GAAQ9rE,OAAO0tE,EAAsB5B,IACzDh/D,EAAoBg/D,GACjB9tE,EAAQ,EAAG81F,EAAWpnD,EAAWlvC,OAAQknF,OAAW,EAAQqP,OAAa,EAAQ/1F,EAAQ81F,IAAY91F,EAE1G,GAAiB,YADjB0mF,EAAWh4C,EAAW1uC,KACoB,WAAb0mF,EAEzB,GADAqP,EAAalmB,EAAyB/B,EAAQ4Y,GAC9B,CAEPqP,EAAW7rE,KAAQ6rE,EAAWtsE,MAC/BssE,EAAWj7F,MAAQ66F,EAAW7nB,EAAO4Y,GAAWv5E,IAEpD,IACI/J,EAAemsD,EAAOm3B,EAAUqP,GAEpC,MAAO1zF,GAEHktD,EAAMm3B,GAAYqP,EAAWj7F,YAMjCy0D,EAAMm3B,GAAYiP,EAAW7nB,EAAO4Y,GAAWv5E,GAI3D,OAAOoiD,GAgCPxqD,EAAUjD,MAAMiD,QAChBwI,EAAiBrK,OAAOqK,eACxByoF,EAAc,WACd,MAA0B,oBAAfC,WACAA,WAES,oBAATj0D,KACAA,KAEW,oBAAXp3B,OACAA,YAEW,IAAX,EAAA+lE,EACA,EAAAA,GAEP/jE,SAAWA,QAAQvK,OACnBuK,QAAQvK,MAAM,qDAEXnD,MAhBO,GAqClB,SAAS4jE,EAAKhoE,EAAO3D,GAEjB,IAAI++F,KAAc/+F,IAAWA,EAAQ++F,UACjCV,EAASr+F,GAAWA,EAAQq+F,OAAUQ,EACtCG,EAAiBD,EAAWL,EAAuBH,EAUnDC,EAAa,SAAU76F,EAAOqS,GAC9B,IAAKrS,GAA0B,iBAAVA,EACjB,OAAOA,EAEX,GAAIqS,EAAMy0B,IAAI9mC,GACV,OAAOqS,EAAM+c,IAAIpvB,GAErB,IAMIy0D,EAvFmB6mC,EACvB5lB,EAgFItyE,EAAYpD,EAAMm2E,WAAa1jE,EAAezS,GAC9C26F,EAAcv3F,GAAaA,EAAU0P,YAEzC,IAAK6nF,GAAeA,IAAgBD,EAAMtyF,OACtC,OAAOizF,EAAer7F,EAAO06F,EAAOG,EAAYxoF,GAIpD,GAAIpI,EAAQjK,GAAQ,CAEhB,GAAIo7F,EACA,OAAOL,EAAqB/6F,EAAO06F,EAAOG,EAAYxoF,GAE1DoiD,EAAQ,IAAIkmC,EACZtoF,EAAMsc,IAAI3uB,EAAOy0D,GACjB,IAAK,IAAIvvD,EAAQ,EAAG41F,EAAW96F,EAAM0E,OAAQQ,EAAQ41F,IAAY51F,EAC7DuvD,EAAMvvD,GAAS21F,EAAW76F,EAAMkF,GAAQmN,GAE5C,OAAOoiD,EAGX,GAAIz0D,aAAiB06F,EAAMtsF,KACvB,OAAO,IAAIusF,EAAY36F,EAAMoxB,WAGjC,GAAIpxB,aAAiB06F,EAAMlsF,OAGvB,OAFAimD,EAAQ,IAAIkmC,EAAY36F,EAAMoF,OAAQpF,EAAM01E,QA3GzB4lB,EA2GiDt7F,EA1GxE01E,EAAQ,GACR4lB,EAAOzT,SACPnS,GAAS,KAET4lB,EAAOC,aACP7lB,GAAS,KAET4lB,EAAOE,YACP9lB,GAAS,KAET4lB,EAAOG,UACP/lB,GAAS,KAET4lB,EAAOI,SACPhmB,GAAS,KAENA,KA2FOthE,UAAYpU,EAAMoU,UACjBqgD,EAGX,GAAIimC,EAAM9mB,KAAO5zE,aAAiB06F,EAAM9mB,IAMpC,OALAnf,EAAQ,IAAIkmC,EACZtoF,EAAMsc,IAAI3uB,EAAOy0D,GACjBz0D,EAAM2B,SAAQ,SAAU3B,EAAO4B,GAC3B6yD,EAAM9lC,IAAI/sB,EAAKi5F,EAAW76F,EAAOqS,OAE9BoiD,EAGX,GAAIimC,EAAMr8E,KAAOre,aAAiB06F,EAAMr8E,IAMpC,OALAo2C,EAAQ,IAAIkmC,EACZtoF,EAAMsc,IAAI3uB,EAAOy0D,GACjBz0D,EAAM2B,SAAQ,SAAU3B,GACpBy0D,EAAMpqB,IAAIwwD,EAAW76F,EAAOqS,OAEzBoiD,EAGX,GAAIimC,EAAM7pF,MAAQ7Q,aAAiB06F,EAAM7pF,KACrC,OAAO7Q,EAAMkK,MAAM,EAAGlK,EAAM2oE,KAAM3oE,EAAMqC,MAG5C,GAAIq4F,EAAM5pF,QAAU4pF,EAAM5pF,OAAOzF,SAASrL,GAMtC,OALAy0D,EAAQimC,EAAM5pF,OAAO22D,YACfizB,EAAM5pF,OAAO22D,YAAYznE,EAAM0E,QAC/B,IAAIi2F,EAAY36F,EAAM0E,QAC5B2N,EAAMsc,IAAI3uB,EAAOy0D,GACjBz0D,EAAMgoE,KAAKvT,GACJA,EAGX,GAAIimC,EAAM1nF,YAAa,CAEnB,GAAI0nF,EAAM1nF,YAAYC,OAAOjT,GAGzB,OAFAy0D,EAAQ,IAAIkmC,EAAY36F,EAAM0L,OAAOxB,MAAM,IAC3CmI,EAAMsc,IAAI3uB,EAAOy0D,GACVA,EAGX,GAAIz0D,aAAiB06F,EAAM1nF,YAGvB,OAFAyhD,EAAQz0D,EAAMkK,MAAM,GACpBmI,EAAMsc,IAAI3uB,EAAOy0D,GACVA,EAIf,MAEsB,mBAAfz0D,EAAM9C,MAET8C,aAAiBxD,OAEhBk+F,EAAMjlB,SAAWz1E,aAAiB06F,EAAMjlB,SAExCilB,EAAMiB,SAAW37F,aAAiB06F,EAAMiB,QAClC37F,EAGJq7F,EAAer7F,EAAO06F,EAAOG,EAAYxoF,IAEpD,OAAOwoF,EAAW76F,EAAOq6F,KAwB7B,OAnBAryB,EAAKoa,QAAUpa,EAYfA,EAAKgP,OAAS,SAAoBh3E,EAAO3D,GACrC,OAAO2rE,EAAKhoE,EAAO,CACfo7F,UAAU,EACVV,MAAOr+F,EAAUA,EAAQq+F,WAAQ,KAIlC1yB,EA9VyE4zB,2BCGpF,IAAIC,EAAgB,kDAChB3xF,EAAQlD,MAAM5D,UAAU8G,MACxB4xF,EAAQ1zF,OAAOhF,UAAU+H,SACzB4wF,EAAW,oBAEflgG,EAAOC,QAAU,SAAckgG,GAC3B,IAAIjyF,EAAS3F,KACb,GAAsB,mBAAX2F,GAAyB+xF,EAAMx2F,KAAKyE,KAAYgyF,EACvD,MAAM,IAAI73F,UAAU23F,EAAgB9xF,GAyBxC,IAvBA,IAEIkyF,EAFAhvF,EAAO/C,EAAM5E,KAAK4H,UAAW,GAG7BgvF,EAAS,WACT,GAAI93F,gBAAgB63F,EAAO,CACvB,IAAI9pF,EAASpI,EAAO9C,MAChB7C,KACA6I,EAAK/F,OAAOgD,EAAM5E,KAAK4H,aAE3B,OAAI9E,OAAO+J,KAAYA,EACZA,EAEJ/N,KAEP,OAAO2F,EAAO9C,MACV+0F,EACA/uF,EAAK/F,OAAOgD,EAAM5E,KAAK4H,cAK/BivF,EAActxF,KAAKgiE,IAAI,EAAG9iE,EAAOrF,OAASuI,EAAKvI,QAC/C03F,EAAY,GACP53F,EAAI,EAAGA,EAAI23F,EAAa33F,IAC7B43F,EAAUn3F,KAAK,IAAMT,GAKzB,GAFAy3F,EAAQhC,SAAS,SAAU,oBAAsBmC,EAAU1uF,KAAK,KAAO,4CAA/DusF,CAA4GiC,GAEhHnyF,EAAO3G,UAAW,CAClB,IAAIi5F,EAAQ,aACZA,EAAMj5F,UAAY2G,EAAO3G,UACzB64F,EAAM74F,UAAY,IAAIi5F,EACtBA,EAAMj5F,UAAY,KAGtB,OAAO64F,iCChDX,IAAI7iC,EAAiB,EAAQ,OAE7Bv9D,EAAOC,QAAUm+F,SAAS72F,UAAUR,MAAQw2D,gCCF5C,IAAI33D,EAEA66F,EAAe7gF,YACf8gF,EAAYtC,SACZuC,EAAat4F,UAGbu4F,EAAwB,SAAUC,GACrC,IACC,OAAOH,EAAU,yBAA2BG,EAAmB,iBAAxDH,GACN,MAAO7vF,MAGNylE,EAAQ/pE,OAAO2sE,yBACnB,GAAI5C,EACH,IACCA,EAAM,GAAI,IACT,MAAOzlE,GACRylE,EAAQ,KAIV,IAAIwqB,EAAiB,WACpB,MAAM,IAAIH,GAEPI,EAAiBzqB,EACjB,WACF,IAGC,OAAOwqB,EACN,MAAOE,GACR,IAEC,OAAO1qB,EAAMjlE,UAAW,UAAUkiB,IACjC,MAAO0tE,GACR,OAAOH,IAVR,GAcAA,EAECI,EAAa,EAAQ,MAAR,GAEbC,EAAW50F,OAAOqK,gBAAkB,SAAUg5C,GAAK,OAAOA,EAAE0qB,WAE5D8mB,EAAY,GAEZrqF,EAAmC,oBAAfC,WAA6BpR,EAAYu7F,EAASnqF,YAEtEqqF,EAAa,CAChB,mBAA8C,oBAAnBC,eAAiC17F,EAAY07F,eACxE,UAAWn2F,MACX,gBAAwC,oBAAhBgM,YAA8BvR,EAAYuR,YAClE,2BAA4B+pF,EAAaC,EAAS,GAAG91B,OAAOyL,aAAelxE,EAC3E,mCAAoCA,EACpC,kBAAmBw7F,EACnB,mBAAoBA,EACpB,2BAA4BA,EAC5B,2BAA4BA,EAC5B,YAAgC,oBAAZG,QAA0B37F,EAAY27F,QAC1D,WAA8B,oBAAXC,OAAyB57F,EAAY47F,OACxD,YAAat7C,QACb,aAAkC,oBAAbwnC,SAA2B9nF,EAAY8nF,SAC5D,SAAUn7E,KACV,cAAekvF,UACf,uBAAwB7uF,mBACxB,cAAe8uF,UACf,uBAAwBp+F,mBACxB,UAAW3C,MACX,SAAUghG,KACV,cAAeC,UACf,iBAA0C,oBAAjBC,aAA+Bj8F,EAAYi8F,aACpE,iBAA0C,oBAAjBC,aAA+Bl8F,EAAYk8F,aACpE,yBAA0D,oBAAzBC,qBAAuCn8F,EAAYm8F,qBACpF,aAAcrB,EACd,sBAAuBU,EACvB,cAAoC,oBAAdY,UAA4Bp8F,EAAYo8F,UAC9D,eAAsC,oBAAfC,WAA6Br8F,EAAYq8F,WAChE,eAAsC,oBAAf13B,WAA6B3kE,EAAY2kE,WAChE,aAAc8G,SACd,UAAWmR,MACX,sBAAuB0e,EAAaC,EAASA,EAAS,GAAG91B,OAAOyL,cAAgBlxE,EAChF,SAA0B,iBAAT8K,KAAoBA,KAAO9K,EAC5C,QAAwB,oBAARmyE,IAAsBnyE,EAAYmyE,IAClD,yBAAyC,oBAARA,KAAwBmpB,EAAyBC,GAAS,IAAIppB,KAAM1M,OAAOyL,aAAtClxE,EACtE,SAAUoJ,KACV,WAAYw/D,OACZ,WAAYjiE,OACZ,eAAgB21F,WAChB,aAAczwD,SACd,YAAgC,oBAAZrxC,QAA0BwF,EAAYxF,QAC1D,UAA4B,oBAAV+hG,MAAwBv8F,EAAYu8F,MACtD,eAAgBr5B,WAChB,mBAAoBs5B,eACpB,YAAgC,oBAAZC,QAA0Bz8F,EAAYy8F,QAC1D,WAAY1vF,OACZ,QAAwB,oBAAR6P,IAAsB5c,EAAY4c,IAClD,yBAAyC,oBAARA,KAAwB0+E,EAAyBC,GAAS,IAAI3+E,KAAM6oD,OAAOyL,aAAtClxE,EACtE,sBAAoD,oBAAtB4mE,kBAAoC5mE,EAAY4mE,kBAC9E,WAAYl0D,OACZ,4BAA6B4oF,EAAaC,EAAS,GAAG91B,OAAOyL,aAAelxE,EAC5E,WAAYs7F,EAAa71B,OAASzlE,EAClC,gBAAiB66F,EACjB,mBAAoBM,EACpB,eAAgBhqF,EAChB,cAAe4pF,EACf,eAAsC,oBAAf3pF,WAA6BpR,EAAYoR,WAChE,sBAAoD,oBAAtBsrF,kBAAoC18F,EAAY08F,kBAC9E,gBAAwC,oBAAhBC,YAA8B38F,EAAY28F,YAClE,gBAAwC,oBAAhBl8B,YAA8BzgE,EAAYygE,YAClE,aAAcm8B,SACd,YAAgC,oBAAZ5oB,QAA0Bh0E,EAAYg0E,QAC1D,YAAgC,oBAAZ6oB,QAA0B78F,EAAY68F,QAC1D,YAAgC,oBAAZ3C,QAA0Bl6F,EAAYk6F,SAGvD4C,EAAS,SAASA,EAAO/4F,GAC5B,IAAIxF,EACJ,GAAa,oBAATwF,EACHxF,EAAQy8F,EAAsB,6BACxB,GAAa,wBAATj3F,EACVxF,EAAQy8F,EAAsB,wBACxB,GAAa,6BAATj3F,EACVxF,EAAQy8F,EAAsB,8BACxB,GAAa,qBAATj3F,EAA6B,CACvC,IAAIzJ,EAAKwiG,EAAO,4BACZxiG,IACHiE,EAAQjE,EAAGqH,gBAEN,GAAa,6BAAToC,EAAqC,CAC/C,IAAIg5F,EAAMD,EAAO,oBACbC,IACHx+F,EAAQg9F,EAASwB,EAAIp7F,YAMvB,OAFA85F,EAAW13F,GAAQxF,EAEZA,GAGJy+F,EAAiB,CACpB,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/B77F,EAAO,EAAQ,OACf87F,EAAS,EAAQ,OACjBC,EAAU/7F,EAAK0C,KAAK20F,SAAS30F,KAAM0B,MAAM5D,UAAU8D,QACnD03F,EAAeh8F,EAAK0C,KAAK20F,SAAShzF,MAAOD,MAAM5D,UAAU+B,QACzD05F,EAAWj8F,EAAK0C,KAAK20F,SAAS30F,KAAM6O,OAAO/Q,UAAUgK,SACrD0xF,EAAYl8F,EAAK0C,KAAK20F,SAAS30F,KAAM6O,OAAO/Q,UAAU8G,OACtD60F,EAAQn8F,EAAK0C,KAAK20F,SAAS30F,KAAMkJ,OAAOpL,UAAUmN,MAGlDyuF,EAAa,qGACbC,EAAe,WACfC,EAAe,SAAsBjlC,GACxC,IAAI7U,EAAQ05C,EAAU7kC,EAAQ,EAAG,GAC7BjB,EAAO8lC,EAAU7kC,GAAS,GAC9B,GAAc,MAAV7U,GAA0B,MAAT4T,EACpB,MAAM,IAAIsjC,EAAa,kDACjB,GAAa,MAATtjC,GAA0B,MAAV5T,EAC1B,MAAM,IAAIk3C,EAAa,kDAExB,IAAInqF,EAAS,GAIb,OAHA0sF,EAAS5kC,EAAQ+kC,GAAY,SAAUzwF,EAAOzG,EAAQq3F,EAAOC,GAC5DjtF,EAAOA,EAAOzN,QAAUy6F,EAAQN,EAASO,EAAWH,EAAc,MAAQn3F,GAAUyG,KAE9E4D,GAIJktF,EAAmB,SAA0B75F,EAAMssE,GACtD,IACIwtB,EADAC,EAAgB/5F,EAOpB,GALIk5F,EAAOD,EAAgBc,KAE1BA,EAAgB,KADhBD,EAAQb,EAAec,IACK,GAAK,KAG9Bb,EAAOxB,EAAYqC,GAAgB,CACtC,IAAIv/F,EAAQk9F,EAAWqC,GAIvB,GAHIv/F,IAAUi9F,IACbj9F,EAAQu+F,EAAOgB,SAEK,IAAVv/F,IAA0B8xE,EACpC,MAAM,IAAI0qB,EAAW,aAAeh3F,EAAO,wDAG5C,MAAO,CACN85F,MAAOA,EACP95F,KAAM+5F,EACNv/F,MAAOA,GAIT,MAAM,IAAIs8F,EAAa,aAAe92F,EAAO,qBAG9C3J,EAAOC,QAAU,SAAsB0J,EAAMssE,GAC5C,GAAoB,iBAATtsE,GAAqC,IAAhBA,EAAKd,OACpC,MAAM,IAAI83F,EAAW,6CAEtB,GAAItvF,UAAUxI,OAAS,GAA6B,kBAAjBotE,EAClC,MAAM,IAAI0qB,EAAW,6CAGtB,GAAoC,OAAhCuC,EAAM,eAAgBv5F,GACzB,MAAM,IAAI82F,EAAa,sFAExB,IAAIhvF,EAAQ4xF,EAAa15F,GACrBg6F,EAAoBlyF,EAAM5I,OAAS,EAAI4I,EAAM,GAAK,GAElDykE,EAAYstB,EAAiB,IAAMG,EAAoB,IAAK1tB,GAC5D2tB,EAAoB1tB,EAAUvsE,KAC9BxF,EAAQ+xE,EAAU/xE,MAClB0/F,GAAqB,EAErBJ,EAAQvtB,EAAUutB,MAClBA,IACHE,EAAoBF,EAAM,GAC1BV,EAAatxF,EAAOqxF,EAAQ,CAAC,EAAG,GAAIW,KAGrC,IAAK,IAAI96F,EAAI,EAAGm7F,GAAQ,EAAMn7F,EAAI8I,EAAM5I,OAAQF,GAAK,EAAG,CACvD,IAAIo6E,EAAOtxE,EAAM9I,GACb4gD,EAAQ05C,EAAUlgB,EAAM,EAAG,GAC3B5lB,EAAO8lC,EAAUlgB,GAAO,GAC5B,IAEa,MAAVx5B,GAA2B,MAAVA,GAA2B,MAAVA,GACtB,MAAT4T,GAAyB,MAATA,GAAyB,MAATA,IAElC5T,IAAU4T,EAEb,MAAM,IAAIsjC,EAAa,wDASxB,GAPa,gBAAT1d,GAA2B+gB,IAC9BD,GAAqB,GAMlBhB,EAAOxB,EAFXuC,EAAoB,KADpBD,GAAqB,IAAM5gB,GACmB,KAG7C5+E,EAAQk9F,EAAWuC,QACb,GAAa,MAATz/F,EAAe,CACzB,KAAM4+E,KAAQ5+E,GAAQ,CACrB,IAAK8xE,EACJ,MAAM,IAAI0qB,EAAW,sBAAwBh3F,EAAO,+CAErD,OAED,GAAI2sE,GAAU3tE,EAAI,GAAM8I,EAAM5I,OAAQ,CACrC,IAAIkN,EAAOugE,EAAMnyE,EAAO4+E,GAWvB5+E,GAVD2/F,IAAU/tF,IASG,QAASA,KAAU,kBAAmBA,EAAKwd,KAC/Cxd,EAAKwd,IAELpvB,EAAM4+E,QAGf+gB,EAAQjB,EAAO1+F,EAAO4+E,GACtB5+E,EAAQA,EAAM4+E,GAGX+gB,IAAUD,IACbxC,EAAWuC,GAAqBz/F,IAInC,OAAOA,iCC1UR,IAAI4/F,EAA+B,oBAAX14B,QAA0BA,OAC9C24B,EAAgB,EAAQ,OAE5BhkG,EAAOC,QAAU,WAChB,MAA0B,mBAAf8jG,GACW,mBAAX14B,QACsB,iBAAtB04B,EAAW,QACO,iBAAlB14B,OAAO,QAEX24B,6BCRRhkG,EAAOC,QAAU,WAChB,GAAsB,mBAAXorE,QAAiE,mBAAjC9+D,OAAOwsE,sBAAwC,OAAO,EACjG,GAA+B,iBAApB1N,OAAOyL,SAAyB,OAAO,EAElD,IAAIhqE,EAAM,GACNmsE,EAAM5N,OAAO,QACb44B,EAAS13F,OAAO0sE,GACpB,GAAmB,iBAARA,EAAoB,OAAO,EAEtC,GAA4C,oBAAxC1sE,OAAOhF,UAAU+H,SAAS7F,KAAKwvE,GAA8B,OAAO,EACxE,GAA+C,oBAA3C1sE,OAAOhF,UAAU+H,SAAS7F,KAAKw6F,GAAiC,OAAO,EAY3E,IAAKhrB,KADLnsE,EAAImsE,GADS,GAEDnsE,EAAO,OAAO,EAC1B,GAA2B,mBAAhBP,OAAOqC,MAAmD,IAA5BrC,OAAOqC,KAAK9B,GAAKjE,OAAgB,OAAO,EAEjF,GAA0C,mBAA/B0D,OAAO4L,qBAAiF,IAA3C5L,OAAO4L,oBAAoBrL,GAAKjE,OAAgB,OAAO,EAE/G,IAAIq7F,EAAO33F,OAAOwsE,sBAAsBjsE,GACxC,GAAoB,IAAhBo3F,EAAKr7F,QAAgBq7F,EAAK,KAAOjrB,EAAO,OAAO,EAEnD,IAAK1sE,OAAOhF,UAAUqoF,qBAAqBnmF,KAAKqD,EAAKmsE,GAAQ,OAAO,EAEpE,GAA+C,mBAApC1sE,OAAO2sE,yBAAyC,CAC1D,IAAIkmB,EAAa7yF,OAAO2sE,yBAAyBpsE,EAAKmsE,GACtD,GAdY,KAcRmmB,EAAWj7F,QAA8C,IAA1Bi7F,EAAWjvB,WAAuB,OAAO,EAG7E,OAAO,iCCtCR,IAAIppE,EAAO,EAAQ,OAEnB/G,EAAOC,QAAU8G,EAAK0C,KAAK20F,SAAS30F,KAAM8C,OAAOhF,UAAUuP,uCCJ3D,iBACE,SAASwrE,GAGV,IAQI6hB,GAL0CnkG,GAC7CA,EAAOC,QAI0B,iBAAV,EAAA+5E,GAAsB,EAAAA,GAC1CmqB,EAAWnY,SAAWmY,GAAcA,EAAWlwF,OAOnD,IAAImwF,EAAqB,kCAIrBC,EAAsB,eAItBC,EAAoB,+DAEpBC,EAAsB,klGACtBC,EAAY,CAAC,IAAO,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,MAAM,IAAS,iBAAiB,IAAS,UAAU,IAAS,YAAY,IAAS,OAAO,IAAS,SAAS,KAAK,MAAM,KAAK,UAAU,IAAS,SAAS,IAAS,cAAc,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAO,OAAO,KAAe,aAAa,IAAS,QAAQ,EAAI,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAI,QAAQ,IAAI,OAAO,IAAS,QAAQ,IAAI,QAAQ,IAAS,SAAS,IAAI,OAAO,IAAO,QAAQ,IAAI,QAAQ,IAAO,SAAS,IAAI,SAAS,IAAS,OAAO,IAAS,OAAO,IAAO,SAAS,IAAK,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAI,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAO,OAAO,IAAO,OAAO,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,UAAY,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAI,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAI,MAAM,IAAO,OAAO,IAAS,QAAQ,IAAS,MAAM,IAAO,MAAM,IAAS,OAAO,IAAS,QAAQ,IAAO,QAAQ,IAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,IAAO,MAAM,IAAO,OAAO,IAAO,MAAM,IAAS,SAAS,EAAS,KAAK,IAAS,KAAK,IAAS,MAAM,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,aAAa,IAAS,WAAW,IAAS,MAAM,IAAS,aAAa,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,MAAM,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,KAAe,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,MAAM,IAAS,KAAK,IAAS,QAAQ,IAAS,KAAK,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,SAAS,IAAS,MAAM,IAAI,OAAO,IAAO,KAAK,IAAO,MAAM,IAAO,QAAQ,IAAI,KAAK,IAAS,MAAM,KAAU,OAAO,IAAI,SAAS,IAAS,KAAK,KAAU,MAAM,IAAS,QAAQ,IAAI,KAAK,IAAS,MAAM,KAAU,OAAO,IAAO,MAAM,IAAI,OAAO,IAAO,SAAS,IAAS,QAAQ,IAAS,KAAK,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,KAAK,IAAS,MAAM,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,UAAU,IAAS,QAAQ,IAAS,WAAW,IAAS,WAAW,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,MAAM,IAAS,OAAO,KAAe,QAAQ,IAAS,OAAO,KAAe,OAAO,IAAS,KAAK,KAAe,MAAM,IAAS,MAAM,IAAS,KAAK,IAAS,OAAO,KAAe,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,KAAK,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,KAAe,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,YAAY,KAAe,OAAO,IAAS,OAAO,KAAe,QAAQ,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,KAAe,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,KAAe,UAAU,IAAS,KAAK,IAAS,MAAM,KAAe,OAAO,IAAS,KAAK,IAAS,MAAM,KAAe,OAAO,IAAS,KAAK,KAAe,MAAM,IAAS,KAAK,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,MAAM,KAAe,OAAO,IAAS,KAAK,KAAe,OAAO,KAAe,MAAM,IAAS,KAAK,KAAe,OAAO,KAAe,MAAM,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,KAAK,IAAS,OAAO,IAAS,KAAK,IAAS,OAAO,IAAS,KAAK,IAAS,MAAM,IAAS,KAAK,IAAS,MAAM,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,KAAe,mBAAmB,IAAS,MAAM,IAAS,OAAO,KAAe,QAAQ,IAAS,MAAM,IAAS,OAAO,KAAe,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,KAAe,kBAAkB,IAAS,QAAQ,KAAe,oBAAoB,IAAS,SAAS,IAAS,UAAU,IAAS,SAAS,IAAS,UAAU,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,KAAe,UAAU,IAAS,QAAQ,IAAS,SAAS,KAAe,UAAU,IAAS,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,KAAK,KAAe,MAAM,IAAS,KAAK,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,MAAM,KAAe,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,UAAU,KAAe,WAAW,IAAS,UAAU,IAAS,UAAU,IAAS,QAAQ,KAAe,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,WAAW,IAAS,WAAW,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,WAAW,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,WAAW,IAAS,kBAAkB,IAAS,mBAAmB,IAAS,YAAY,IAAS,aAAa,IAAS,WAAW,IAAS,WAAW,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,OAAO,IAAS,uBAAuB,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,mBAAmB,IAAS,oBAAoB,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,oBAAoB,IAAS,WAAW,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,WAAW,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,WAAW,IAAS,aAAa,IAAS,eAAe,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,KAAe,SAAS,IAAS,UAAU,IAAS,OAAO,IAAS,OAAO,IAAS,UAAU,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,UAAU,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,kBAAkB,IAAS,oBAAoB,IAAS,sBAAsB,IAAS,mBAAmB,IAAS,gBAAgB,IAAS,iBAAiB,IAAS,mBAAmB,IAAS,qBAAqB,IAAS,oBAAoB,IAAS,qBAAqB,IAAS,kBAAkB,IAAS,oBAAoB,IAAS,gBAAgB,IAAS,iBAAiB,IAAS,mBAAmB,IAAS,qBAAqB,IAAS,oBAAoB,IAAS,qBAAqB,IAAS,kBAAkB,IAAS,oBAAoB,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,eAAe,IAAS,QAAQ,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,SAAS,IAAS,WAAW,IAAS,OAAO,IAAS,QAAQ,IAAS,UAAU,IAAS,UAAU,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,WAAW,IAAS,WAAW,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,UAAU,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,UAAU,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,WAAW,IAAS,kBAAkB,KAAe,qBAAqB,IAAS,mBAAmB,KAAe,sBAAsB,IAAS,SAAS,IAAS,WAAW,IAAS,UAAU,IAAS,SAAS,IAAS,WAAW,IAAS,WAAW,IAAS,OAAO,IAAS,cAAc,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,WAAW,IAAS,WAAW,IAAS,QAAQ,IAAS,WAAW,IAAS,WAAW,IAAS,UAAU,IAAS,WAAW,IAAS,UAAU,IAAS,WAAW,IAAS,UAAU,IAAS,WAAW,IAAS,UAAU,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,WAAW,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,WAAW,IAAS,SAAS,IAAS,OAAO,IAAS,UAAU,IAAS,WAAW,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,WAAW,IAAS,WAAW,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,UAAU,IAAS,MAAM,IAAS,KAAK,IAAS,SAAS,IAAS,OAAO,IAAS,UAAU,IAAS,WAAW,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,UAAU,KAAe,WAAW,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,KAAe,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,UAAU,IAAS,UAAU,IAAS,MAAM,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,WAAW,IAAS,WAAW,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,KAAK,IAAS,KAAK,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,WAAW,KAAe,oBAAoB,IAAS,iBAAiB,KAAe,0BAA0B,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,KAAe,QAAQ,IAAS,OAAO,KAAe,QAAQ,IAAS,QAAQ,IAAS,MAAM,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,KAAK,IAAS,KAAK,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,OAAO,KAAe,QAAQ,IAAS,OAAO,KAAe,QAAQ,IAAS,SAAS,IAAS,SAAS,KAAe,SAAS,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,QAAQ,IAAS,UAAU,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,KAAe,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAO,SAAS,IAAO,OAAO,EAAI,SAAS,IAAO,QAAQ,IAAO,MAAM,IAAS,OAAO,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAO,OAAO,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAO,OAAO,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAS,SAAS,EAAS,SAAS,EAAO,QAAQ,EAAO,QAAQ,EAAO,QAAQ,EAAO,QAAQ,EAAO,OAAO,EAAO,OAAO,EAAO,SAAS,EAAO,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAO,QAAQ,EAAO,QAAQ,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,OAAO,GAAe,MAAM,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,EAAS,MAAM,GAAe,OAAO,EAAS,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAS,SAAS,EAAS,SAAS,EAAS,OAAO,EAAS,OAAO,EAAO,SAAS,EAAO,SAAS,IAAS,SAAS,GAAe,MAAM,EAAS,KAAK,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,KAAK,GAAe,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAO,MAAM,EAAO,MAAM,EAAS,KAAK,EAAS,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,OAAO,GAAe,MAAM,GAAe,OAAO,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,QAAQ,EAAO,QAAQ,EAAS,SAAS,EAAS,SAAS,EAAO,OAAO,EAAO,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,SAAS,EAAS,SAAS,EAAS,QAAQ,GAAK,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,SAAS,GAAe,MAAM,EAAS,UAAU,GAAe,OAAO,GAAe,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,OAAO,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,SAAS,EAAS,SAAS,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,KAAK,GAAe,OAAO,EAAS,OAAO,EAAS,KAAK,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,QAAQ,EAAO,QAAQ,EAAO,OAAO,EAAO,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,OAAO,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,SAAS,EAAS,SAAS,GAAe,MAAM,GAAe,OAAO,EAAS,MAAM,GAAe,OAAO,EAAS,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,EAAS,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAO,SAAS,EAAO,SAAS,EAAS,SAAS,EAAS,SAAS,IAAS,SAAS,EAAS,MAAM,EAAS,MAAM,GAAe,OAAO,GAAe,MAAM,EAAS,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAO,OAAO,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,QAAQ,EAAO,QAAQ,EAAO,OAAO,EAAO,OAAO,EAAS,SAAS,EAAS,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,EAAS,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,OAAO,EAAS,SAAS,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,EAAS,OAAO,EAAS,KAAK,EAAS,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,IAAS,KAAK,EAAS,SAAS,EAAS,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAO,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,IAAS,QAAQ,EAAS,SAAS,EAAS,SAAS,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAS,SAAS,EAAS,SAAS,EAAO,QAAQ,EAAO,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAO,OAAO,EAAO,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,QAAQ,EAAS,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAO,SAAS,EAAO,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAO,OAAO,EAAS,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,MAAM,EAAS,OAAO,GAAe,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAO,QAAQ,EAAO,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,QAAQ,EAAS,UAAU,EAAS,SAAS,EAAS,SAAS,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,SAAS,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,SAAS,EAAS,QAAQ,EAAS,SAAS,EAAS,SAAS,EAAS,KAAK,EAAO,QAAQ,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,UAAU,EAAS,UAAU,EAAS,KAAK,EAAS,MAAM,EAAS,KAAK,EAAS,MAAM,EAAS,OAAO,EAAS,MAAM,EAAS,QAAQ,EAAS,QAAQ,EAAS,SAAS,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,UAAU,EAAS,OAAO,EAAS,MAAM,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,SAAS,EAAS,SAAS,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,QAAQ,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,QAAQ,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,MAAM,EAAS,MAAM,EAAS,SAAS,EAAS,SAAS,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,OAAO,EAAS,QAAQ,EAAS,UAEpm0BC,EAAc,YACdC,EAAY,CACf,IAAK,SACL,IAAK,QACL,IAAM,SACN,IAAK,OAKL,IAAK,OAKL,IAAK,UAGFC,EAAqB,kCACrBC,EAA2B,qPAC3BC,EAAc,i8gBACdC,EAAY,CAAC,OAAS,IAAO,OAAS,IAAO,OAAS,IAAS,OAAS,IAAS,GAAK,IAAS,IAAM,IAAS,IAAM,KAAe,MAAQ,IAAO,MAAQ,IAAO,MAAQ,IAAO,IAAM,IAAS,IAAM,IAAS,MAAQ,IAAO,MAAQ,IAAO,GAAK,IAAS,IAAM,KAAe,IAAM,KAAe,OAAS,IAAO,OAAS,IAAO,QAAU,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,IAAM,IAAI,IAAM,IAAI,IAAM,IAAS,IAAM,IAAS,OAAS,IAAS,KAAO,IAAS,SAAW,IAAS,KAAO,IAAS,IAAM,IAAS,KAAO,IAAS,MAAQ,IAAS,OAAS,IAAS,SAAW,IAAS,SAAW,IAAS,SAAW,IAAS,SAAW,IAAS,SAAW,IAAS,SAAW,IAAS,SAAW,IAAS,SAAW,IAAS,MAAQ,IAAS,QAAU,IAAS,SAAW,IAAS,OAAS,IAAS,MAAQ,IAAO,QAAU,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,GAAK,IAAS,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,KAAO,IAAK,cAAgB,IAAS,OAAS,IAAS,SAAW,IAAS,MAAQ,IAAO,MAAQ,IAAO,KAAO,KAAe,KAAO,KAAe,OAAS,IAAS,IAAM,IAAI,MAAQ,IAAS,QAAU,IAAS,OAAS,IAAO,OAAS,IAAO,KAAO,IAAO,KAAO,IAAO,SAAW,IAAS,MAAQ,IAAS,SAAW,IAAS,YAAc,IAAS,UAAY,IAAS,QAAU,IAAS,UAAY,IAAS,UAAY,IAAS,KAAO,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,SAAW,IAAS,KAAO,IAAS,SAAW,IAAS,MAAQ,IAAS,IAAM,IAAS,IAAM,IAAS,MAAQ,IAAS,OAAS,IAAS,QAAU,IAAS,QAAU,IAAS,QAAU,IAAS,MAAQ,IAAS,OAAS,IAAS,WAAa,IAAS,KAAO,IAAS,KAAO,IAAS,KAAO,IAAS,QAAU,IAAS,IAAM,KAAe,IAAM,KAAe,OAAS,IAAS,QAAU,IAAS,OAAS,IAAS,QAAU,IAAS,SAAW,IAAS,UAAY,IAAS,SAAW,IAAS,QAAU,IAAS,gBAAkB,IAAS,cAAgB,IAAS,SAAW,IAAS,OAAS,IAAS,SAAW,IAAS,OAAS,IAAS,aAAe,IAAS,YAAc,IAAS,cAAgB,IAAS,kBAAoB,IAAS,kBAAoB,IAAS,mBAAqB,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,IAAM,KAAU,QAAU,KAAe,KAAO,IAAS,KAAO,IAAS,KAAO,KAAe,KAAO,KAAe,IAAM,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,SAAW,IAAS,QAAU,IAAS,SAAW,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAO,KAAO,KAAe,KAAO,IAAS,MAAQ,IAAS,KAAO,IAAS,MAAQ,IAAS,KAAO,KAAK,MAAQ,IAAS,SAAW,IAAS,KAAO,IAAS,OAAS,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,OAAS,IAAS,SAAW,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,qBAAuB,IAAS,KAAO,KAAe,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAO,OAAS,IAAO,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,MAAQ,IAAS,QAAU,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAO,QAAU,IAAO,QAAU,IAAS,KAAO,IAAO,UAAY,IAAO,UAAY,IAAO,IAAM,KAAe,IAAM,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,UAAY,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,OAAS,IAAS,gBAAkB,IAAS,iBAAmB,IAAS,WAAa,IAAS,YAAc,IAAS,YAAc,IAAS,UAAY,IAAS,SAAW,IAAO,SAAW,IAAS,YAAc,IAAS,WAAa,IAAS,YAAc,IAAS,KAAO,IAAS,KAAO,IAAS,SAAW,IAAS,OAAS,IAAS,QAAU,IAAS,yBAA2B,IAAS,sBAAwB,IAAS,gBAAkB,IAAS,MAAQ,IAAS,SAAW,IAAS,MAAQ,IAAI,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,QAAU,IAAS,MAAQ,IAAI,OAAS,IAAI,KAAO,IAAS,OAAS,IAAS,WAAa,IAAS,UAAY,IAAS,KAAO,IAAS,QAAU,IAAS,UAAY,IAAS,OAAS,IAAS,OAAS,IAAS,gBAAkB,IAAS,KAAO,KAAe,KAAO,IAAS,OAAS,IAAS,UAAY,IAAS,KAAO,IAAO,KAAO,IAAO,OAAS,IAAS,gCAAkC,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,KAAO,IAAS,MAAQ,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,QAAU,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,QAAU,IAAS,IAAM,IAAS,IAAM,IAAS,SAAW,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,KAAO,KAAe,OAAS,IAAS,QAAU,IAAS,YAAc,IAAS,YAAc,IAAS,SAAW,IAAS,WAAa,IAAS,OAAS,IAAO,eAAiB,IAAS,gBAAkB,IAAS,MAAQ,IAAS,MAAQ,IAAS,SAAW,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,KAAO,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,GAAK,IAAS,GAAK,IAAS,QAAU,IAAS,MAAQ,IAAS,SAAW,IAAS,QAAU,IAAS,IAAM,IAAO,IAAM,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,OAAS,IAAS,IAAM,KAAe,IAAM,KAAe,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,iBAAmB,IAAO,eAAiB,IAAS,uBAAyB,IAAS,iBAAmB,IAAI,iBAAmB,IAAS,KAAO,IAAS,QAAU,IAAS,QAAU,IAAS,YAAc,IAAS,MAAQ,IAAS,IAAM,IAAO,cAAgB,IAAS,QAAU,IAAS,MAAQ,IAAS,IAAM,IAAO,OAAS,IAAO,cAAgB,IAAS,OAAS,IAAS,KAAO,IAAS,KAAO,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAI,KAAO,KAAe,KAAO,KAAe,IAAM,IAAS,IAAM,IAAO,OAAS,IAAS,MAAQ,IAAS,SAAW,IAAS,SAAW,IAAS,SAAW,IAAS,QAAU,IAAS,UAAY,IAAS,eAAiB,IAAS,sBAAwB,IAAS,UAAY,IAAO,gBAAkB,IAAS,gBAAkB,IAAS,qBAAuB,IAAS,cAAgB,IAAS,oBAAsB,IAAS,yBAA2B,IAAS,qBAAuB,IAAS,iBAAmB,IAAS,eAAiB,IAAS,cAAgB,IAAS,kBAAoB,IAAS,kBAAoB,IAAS,UAAY,IAAS,UAAY,IAAS,UAAY,IAAS,aAAe,IAAS,iBAAmB,IAAS,UAAY,IAAS,eAAiB,IAAS,gBAAkB,IAAS,iBAAmB,IAAS,oBAAsB,IAAS,kBAAoB,IAAS,eAAiB,IAAS,kBAAoB,IAAS,mBAAqB,IAAS,gBAAkB,IAAS,mBAAqB,IAAS,QAAU,IAAS,aAAe,IAAS,SAAW,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,KAAe,KAAO,IAAS,KAAO,IAAS,KAAO,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,KAAO,IAAS,KAAO,IAAS,SAAW,IAAS,OAAS,IAAO,OAAS,IAAO,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,MAAQ,IAAO,MAAQ,IAAO,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,MAAQ,IAAS,KAAO,IAAS,KAAO,IAAS,KAAO,IAAS,GAAK,IAAS,MAAQ,IAAS,IAAM,KAAe,IAAM,KAAe,GAAK,IAAS,OAAS,IAAO,OAAS,IAAO,IAAM,IAAS,OAAS,IAAS,GAAK,IAAS,QAAU,IAAS,SAAW,IAAS,IAAM,IAAS,IAAM,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,SAAW,IAAS,iBAAmB,IAAS,OAAS,IAAS,qBAAuB,IAAS,KAAO,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,KAAO,IAAS,OAAS,IAAS,MAAQ,IAAS,KAAO,IAAS,QAAU,IAAS,QAAU,IAAS,MAAQ,IAAS,OAAS,IAAS,QAAU,IAAS,MAAQ,IAAS,WAAa,IAAS,YAAc,IAAS,MAAQ,IAAS,OAAS,IAAI,WAAa,IAAS,OAAS,IAAS,YAAc,IAAS,MAAQ,IAAS,QAAU,IAAS,SAAW,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,KAAO,IAAS,KAAO,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAO,IAAM,IAAO,KAAO,IAAO,KAAO,IAAO,KAAO,IAAS,KAAO,IAAI,MAAQ,IAAS,OAAS,IAAS,YAAc,IAAS,aAAe,IAAS,aAAe,IAAS,cAAgB,IAAS,IAAM,IAAS,IAAM,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,OAAS,IAAS,IAAM,KAAe,IAAM,KAAe,MAAQ,IAAS,kBAAoB,IAAS,sBAAwB,IAAS,MAAQ,KAAK,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,IAAS,KAAO,KAAe,KAAO,KAAe,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,MAAQ,IAAS,WAAa,IAAS,SAAW,IAAS,OAAS,IAAO,OAAS,IAAS,OAAS,IAAO,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAO,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,KAAO,IAAS,GAAK,IAAS,GAAK,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,SAAW,IAAS,IAAM,IAAS,MAAQ,IAAS,OAAS,IAAS,QAAU,IAAS,SAAW,IAAS,KAAO,KAAe,OAAS,IAAS,IAAM,KAAe,IAAM,KAAe,GAAK,IAAS,GAAK,IAAS,IAAM,IAAS,MAAQ,IAAS,KAAO,IAAS,KAAO,IAAS,GAAK,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,SAAW,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,MAAQ,IAAI,aAAe,IAAS,iBAAmB,IAAS,iBAAmB,IAAS,eAAiB,IAAS,YAAc,IAAS,kBAAoB,IAAS,aAAe,IAAS,KAAO,IAAS,KAAO,KAAe,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,GAAK,IAAI,GAAK,IAAS,GAAK,IAAI,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,QAAU,IAAS,UAAY,IAAS,OAAS,IAAS,OAAS,IAAS,UAAY,IAAS,WAAa,IAAS,QAAU,IAAS,OAAS,IAAS,UAAY,KAAe,KAAO,KAAe,MAAQ,IAAS,OAAS,IAAS,KAAO,IAAO,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,KAAO,IAAS,QAAU,IAAS,MAAQ,IAAS,IAAM,IAAI,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,UAAY,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,KAAe,IAAM,IAAS,aAAe,IAAS,SAAW,IAAS,SAAW,IAAS,MAAQ,IAAS,OAAS,IAAS,cAAgB,IAAS,eAAiB,IAAS,KAAO,KAAe,KAAO,IAAS,OAAS,IAAS,eAAiB,IAAS,KAAO,KAAe,KAAO,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,aAAe,IAAS,UAAY,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAO,OAAS,IAAO,GAAK,IAAS,MAAQ,IAAO,MAAQ,IAAO,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAO,IAAM,IAAS,IAAM,KAAe,IAAM,IAAS,OAAS,IAAO,OAAS,IAAO,GAAK,IAAS,OAAS,IAAS,MAAQ,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,GAAK,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,WAAa,IAAS,SAAW,IAAS,SAAW,IAAS,MAAQ,IAAS,KAAO,IAAS,MAAQ,IAAS,QAAU,IAAS,GAAK,IAAS,OAAS,IAAS,MAAQ,IAAS,SAAW,IAAS,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,OAAS,IAAS,SAAW,IAAS,SAAW,IAAS,SAAW,IAAS,aAAe,IAAS,SAAW,IAAS,QAAU,IAAS,eAAiB,IAAS,eAAiB,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,OAAS,IAAO,KAAO,KAAe,KAAO,IAAS,KAAO,IAAS,QAAU,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,MAAQ,IAAS,GAAK,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,IAAO,KAAO,IAAO,MAAQ,IAAS,MAAQ,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,KAAe,IAAM,KAAe,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,KAAO,KAAe,KAAO,KAAe,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,KAAe,IAAM,KAAe,OAAS,IAAS,KAAO,IAAS,KAAO,IAAS,KAAO,IAAS,KAAO,IAAS,KAAO,KAAe,KAAO,KAAe,KAAO,KAAe,KAAO,KAAe,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,SAAW,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,OAAS,IAAS,IAAM,IAAS,WAAa,IAAS,MAAQ,IAAO,KAAO,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,QAAU,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,QAAU,IAAS,OAAS,IAAS,IAAM,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,MAAQ,KAAe,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAI,OAAS,IAAI,MAAQ,IAAS,QAAU,IAAS,QAAU,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,KAAO,IAAI,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,MAAQ,IAAS,OAAS,IAAS,QAAU,IAAS,SAAW,IAAS,KAAO,IAAS,GAAK,IAAS,GAAK,IAAS,iBAAmB,IAAS,UAAY,IAAS,UAAY,IAAS,UAAY,IAAS,aAAe,IAAS,oBAAsB,IAAS,cAAgB,IAAS,YAAc,IAAS,kBAAoB,IAAS,kBAAoB,IAAS,eAAiB,IAAS,kBAAoB,IAAS,UAAY,IAAS,gBAAkB,IAAS,cAAgB,IAAS,eAAiB,IAAS,eAAiB,IAAS,eAAiB,IAAS,eAAiB,IAAS,gBAAkB,IAAS,kBAAoB,IAAS,oBAAsB,IAAS,gBAAkB,IAAS,QAAU,IAAS,aAAe,IAAS,cAAgB,IAAS,eAAiB,IAAS,aAAe,IAAS,gBAAkB,IAAS,kBAAoB,IAAS,iBAAmB,IAAS,gBAAkB,IAAS,aAAe,IAAS,gBAAkB,IAAS,WAAa,IAAS,cAAgB,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,SAAW,IAAS,IAAM,IAAS,MAAQ,IAAS,OAAS,IAAS,QAAU,IAAS,SAAW,IAAS,KAAO,KAAe,OAAS,IAAS,WAAa,IAAS,QAAU,IAAS,UAAY,IAAS,WAAa,IAAS,iBAAmB,IAAS,cAAgB,IAAS,YAAc,IAAS,QAAU,IAAS,SAAW,IAAS,QAAU,IAAS,eAAiB,IAAS,UAAY,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,KAAe,IAAM,KAAe,GAAK,IAAS,IAAM,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,MAAQ,IAAS,KAAO,IAAS,KAAO,IAAS,GAAK,IAAS,GAAK,IAAS,MAAQ,IAAS,SAAW,IAAS,WAAa,IAAS,OAAS,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,WAAa,IAAS,KAAO,IAAS,SAAW,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,cAAgB,IAAS,cAAgB,IAAS,cAAgB,IAAS,mBAAqB,IAAS,mBAAqB,IAAS,mBAAqB,IAAS,WAAa,IAAS,eAAiB,IAAS,eAAiB,IAAS,eAAiB,IAAS,cAAgB,IAAS,eAAiB,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,OAAS,IAAS,QAAU,IAAS,OAAS,IAAS,OAAS,IAAI,eAAiB,IAAS,gBAAkB,IAAS,IAAM,IAAS,QAAU,IAAS,KAAO,IAAS,KAAO,IAAI,OAAS,IAAS,MAAQ,IAAS,SAAW,IAAS,MAAQ,IAAS,OAAS,IAAS,IAAM,IAAS,MAAQ,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,IAAI,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,GAAK,IAAI,GAAK,IAAS,GAAK,IAAI,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,QAAU,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,SAAW,IAAS,QAAU,IAAS,UAAY,KAAe,KAAO,KAAe,KAAO,IAAO,KAAO,IAAS,KAAO,IAAS,QAAU,IAAS,IAAM,IAAS,IAAM,IAAS,OAAS,IAAS,WAAa,IAAS,WAAa,IAAS,SAAW,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,MAAQ,IAAS,MAAQ,IAAS,cAAgB,IAAS,YAAc,IAAS,UAAY,IAAS,IAAM,KAAe,IAAM,KAAe,IAAM,IAAS,MAAQ,IAAO,IAAM,IAAS,OAAS,IAAI,OAAS,IAAS,OAAS,IAAO,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,QAAU,IAAS,UAAY,IAAS,KAAO,IAAS,KAAO,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,KAAe,GAAK,IAAS,KAAO,KAAe,KAAO,IAAS,OAAS,IAAS,GAAK,IAAS,GAAK,IAAS,SAAW,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,KAAe,IAAM,IAAS,KAAO,KAAe,MAAQ,KAAe,MAAQ,IAAS,QAAU,IAAS,MAAQ,IAAS,QAAU,IAAS,SAAW,IAAS,KAAO,IAAO,MAAQ,KAAe,OAAS,KAAe,KAAO,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,SAAW,KAAe,KAAO,IAAS,IAAM,IAAS,IAAM,IAAS,MAAQ,IAAS,GAAK,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,MAAQ,KAAe,oBAAsB,IAAS,mBAAqB,IAAS,kBAAoB,IAAS,sBAAwB,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,KAAe,qBAAuB,IAAS,eAAiB,IAAS,QAAU,KAAK,OAAS,IAAS,QAAU,IAAS,IAAM,KAAe,IAAM,KAAe,IAAM,IAAS,IAAM,KAAe,KAAO,IAAS,MAAQ,KAAe,UAAY,KAAe,KAAO,KAAe,IAAM,KAAe,MAAQ,IAAS,IAAM,IAAS,IAAM,KAAe,KAAO,IAAS,KAAO,KAAe,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,GAAK,IAAS,IAAM,IAAS,KAAO,IAAS,IAAM,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,IAAS,IAAM,IAAS,IAAM,KAAe,WAAa,IAAS,WAAa,IAAS,gBAAkB,IAAS,gBAAkB,IAAS,KAAO,IAAS,MAAQ,KAAe,UAAY,KAAe,KAAO,KAAe,MAAQ,IAAS,IAAM,KAAe,MAAQ,IAAS,IAAM,IAAS,IAAM,KAAe,MAAQ,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,IAAS,QAAU,IAAS,iBAAmB,IAAO,KAAO,KAAe,KAAO,IAAS,IAAM,IAAO,IAAM,IAAS,aAAe,IAAS,UAAY,IAAS,qBAAuB,IAAS,WAAa,IAAS,SAAW,IAAS,cAAgB,KAAe,UAAY,IAAS,WAAa,IAAS,gBAAkB,IAAS,oBAAsB,KAAe,kBAAoB,KAAe,eAAiB,IAAS,qBAAuB,KAAe,gBAAkB,IAAS,gBAAkB,KAAe,aAAe,KAAe,MAAQ,IAAS,SAAW,KAAe,OAAS,KAAe,QAAU,IAAS,QAAU,IAAS,QAAU,IAAS,gBAAkB,IAAS,mBAAqB,KAAe,qBAAuB,IAAS,QAAU,IAAS,aAAe,IAAS,eAAiB,IAAS,YAAc,KAAe,kBAAoB,KAAe,aAAe,IAAS,wBAA0B,KAAe,kBAAoB,KAAe,MAAQ,IAAS,QAAU,IAAS,QAAU,IAAS,QAAU,IAAS,YAAc,IAAS,iBAAmB,KAAe,sBAAwB,IAAS,kBAAoB,IAAS,iBAAmB,IAAS,oBAAsB,KAAe,sBAAwB,IAAS,gBAAkB,KAAe,qBAAuB,IAAS,kBAAoB,KAAe,uBAAyB,IAAS,UAAY,KAAe,eAAiB,IAAS,YAAc,IAAS,iBAAmB,KAAe,sBAAwB,IAAS,iBAAmB,KAAe,YAAc,KAAe,iBAAmB,IAAS,SAAW,IAAS,cAAgB,IAAS,kBAAoB,IAAS,cAAgB,IAAS,eAAiB,IAAS,KAAO,IAAS,UAAY,IAAS,OAAS,KAAe,MAAQ,KAAe,QAAU,IAAS,IAAM,IAAS,OAAS,IAAS,KAAO,KAAe,MAAQ,IAAS,QAAU,KAAe,MAAQ,IAAS,MAAQ,IAAS,OAAS,KAAe,OAAS,KAAe,YAAc,IAAS,YAAc,IAAS,MAAQ,IAAS,OAAS,IAAS,IAAM,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,KAAe,KAAO,KAAe,UAAY,IAAS,eAAiB,IAAS,KAAO,IAAS,MAAQ,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,QAAU,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,KAAe,QAAU,KAAe,UAAY,IAAS,WAAa,KAAe,MAAQ,IAAS,QAAU,KAAe,KAAO,IAAS,MAAQ,IAAS,MAAQ,KAAe,QAAU,KAAe,UAAY,IAAS,WAAa,KAAe,KAAO,IAAS,OAAS,IAAO,OAAS,IAAO,KAAO,IAAS,cAAgB,IAAS,gBAAkB,IAAS,eAAiB,IAAS,iBAAmB,IAAS,GAAK,IAAS,GAAK,IAAS,IAAM,IAAI,OAAS,IAAS,MAAQ,IAAS,KAAO,KAAe,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,KAAU,OAAS,IAAS,QAAU,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,KAAU,QAAU,KAAe,OAAS,IAAS,QAAU,KAAe,MAAQ,KAAe,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,OAAS,IAAS,OAAS,IAAO,OAAS,IAAO,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAO,MAAQ,IAAO,IAAM,IAAS,IAAM,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,KAAO,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,IAAM,KAAe,IAAM,KAAe,KAAO,IAAS,OAAS,IAAO,OAAS,IAAO,IAAM,IAAS,MAAQ,IAAS,IAAM,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,MAAQ,IAAS,IAAM,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,QAAU,IAAS,KAAO,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,KAAe,KAAO,IAAS,qBAAuB,IAAS,eAAiB,IAAS,MAAQ,IAAS,MAAQ,IAAS,GAAK,IAAS,GAAK,IAAS,MAAQ,IAAS,IAAM,IAAS,MAAQ,IAAS,QAAU,IAAS,KAAO,IAAO,KAAO,IAAO,OAAS,IAAS,KAAO,IAAS,QAAU,IAAS,IAAM,IAAS,GAAK,IAAS,KAAO,IAAS,KAAO,KAAe,OAAS,IAAO,OAAS,IAAO,KAAO,IAAS,OAAS,IAAO,OAAS,IAAO,OAAS,IAAS,OAAS,IAAS,SAAW,IAAS,KAAO,IAAO,KAAO,IAAO,MAAQ,IAAS,QAAU,IAAS,UAAY,IAAS,YAAc,IAAS,gBAAkB,IAAS,IAAM,IAAS,KAAO,IAAO,SAAW,IAAS,OAAS,IAAS,MAAQ,IAAS,KAAO,IAAS,SAAW,IAAS,IAAM,IAAS,IAAM,IAAS,OAAS,IAAI,OAAS,IAAI,OAAS,IAAS,KAAO,IAAS,QAAU,IAAS,IAAM,KAAe,IAAM,KAAe,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,OAAS,IAAS,MAAQ,IAAS,GAAK,IAAS,GAAK,IAAS,UAAY,IAAS,IAAM,IAAS,OAAS,IAAS,QAAU,IAAS,OAAS,IAAS,KAAO,IAAI,SAAW,IAAS,MAAQ,IAAS,QAAU,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,UAAY,IAAO,OAAS,IAAO,QAAU,IAAS,QAAU,IAAS,GAAK,IAAO,cAAgB,IAAS,SAAW,IAAS,KAAO,KAAe,KAAO,IAAS,MAAQ,IAAO,GAAK,IAAS,GAAK,IAAS,KAAO,IAAS,MAAQ,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,WAAa,IAAS,YAAc,IAAS,SAAW,IAAS,cAAgB,IAAS,mBAAqB,IAAS,cAAgB,IAAS,OAAS,IAAS,YAAc,IAAS,SAAW,IAAS,SAAW,IAAS,QAAU,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,MAAQ,IAAS,KAAO,IAAS,OAAS,IAAS,KAAO,IAAS,QAAU,IAAS,SAAW,IAAS,SAAW,IAAS,SAAW,IAAS,KAAO,IAAS,WAAa,IAAS,aAAe,IAAS,OAAS,IAAS,MAAQ,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,KAAe,IAAM,IAAS,IAAM,IAAS,OAAS,IAAS,IAAM,KAAe,IAAM,KAAe,KAAO,IAAS,KAAO,KAAe,KAAO,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,KAAe,YAAc,IAAS,QAAU,IAAS,MAAQ,IAAI,QAAU,IAAS,KAAO,IAAI,KAAO,IAAI,MAAQ,IAAS,KAAO,KAAe,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,SAAW,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,MAAQ,IAAO,KAAO,IAAS,KAAO,IAAS,KAAO,IAAS,OAAS,IAAS,MAAQ,IAAS,QAAU,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,QAAU,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,UAAY,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAI,OAAS,IAAI,MAAQ,IAAS,QAAU,IAAS,QAAU,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,KAAO,IAAI,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,QAAU,IAAS,MAAQ,IAAS,OAAS,IAAS,KAAO,IAAS,GAAK,IAAS,KAAO,IAAS,QAAU,IAAS,SAAW,IAAS,MAAQ,IAAS,KAAO,IAAS,IAAM,IAAO,IAAM,IAAO,eAAiB,IAAS,mBAAqB,IAAS,qBAAuB,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,KAAe,IAAM,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,kBAAoB,IAAS,WAAa,IAAS,WAAa,IAAS,WAAa,IAAS,cAAgB,IAAS,oBAAsB,IAAS,eAAiB,IAAS,aAAe,IAAS,mBAAqB,IAAS,mBAAqB,IAAS,gBAAkB,IAAS,mBAAqB,IAAS,WAAa,IAAS,iBAAmB,IAAS,eAAiB,IAAS,gBAAkB,IAAS,kBAAoB,IAAS,iBAAmB,IAAS,gBAAkB,IAAS,SAAW,IAAS,cAAgB,IAAS,eAAiB,IAAS,gBAAkB,IAAS,cAAgB,IAAS,iBAAmB,IAAS,mBAAqB,IAAS,kBAAoB,IAAS,iBAAmB,IAAS,cAAgB,IAAS,iBAAmB,IAAS,YAAc,IAAS,eAAiB,IAAS,KAAO,IAAS,aAAe,IAAS,MAAQ,IAAS,MAAQ,IAAS,IAAM,IAAS,OAAS,IAAS,WAAa,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,IAAS,OAAS,IAAS,QAAU,IAAS,aAAe,IAAS,KAAO,IAAI,OAAS,IAAS,SAAW,IAAS,MAAQ,IAAS,YAAc,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAI,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,SAAW,IAAS,YAAc,IAAS,QAAU,IAAS,GAAK,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,GAAK,IAAS,GAAK,IAAS,KAAO,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,IAAM,IAAS,IAAM,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,IAAS,OAAS,IAAS,SAAW,IAAS,MAAQ,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,KAAO,IAAO,KAAO,IAAI,OAAS,IAAS,SAAW,IAAS,MAAQ,IAAS,KAAO,IAAS,IAAM,KAAe,IAAM,KAAe,OAAS,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,KAAO,IAAS,eAAiB,IAAS,eAAiB,IAAS,SAAW,IAAS,cAAgB,IAAS,gBAAkB,IAAS,aAAe,IAAS,IAAM,IAAO,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,IAAS,OAAS,IAAS,KAAO,IAAS,MAAQ,IAAS,KAAO,IAAS,MAAQ,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,QAAU,IAAS,MAAQ,IAAS,YAAc,IAAS,cAAgB,IAAS,OAAS,IAAS,SAAW,IAAS,KAAO,IAAS,MAAQ,IAAS,IAAM,IAAS,KAAO,IAAS,MAAQ,KAAe,OAAS,IAAS,OAAS,IAAS,IAAM,IAAI,KAAO,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,KAAe,OAAS,IAAS,UAAY,IAAS,KAAO,IAAS,MAAQ,IAAS,OAAS,KAAe,MAAQ,IAAS,OAAS,KAAe,KAAO,IAAS,MAAQ,IAAS,OAAS,IAAS,SAAW,IAAS,WAAa,IAAS,MAAQ,IAAS,OAAS,IAAS,SAAW,IAAS,WAAa,IAAS,IAAM,IAAS,OAAS,IAAS,OAAS,IAAS,mBAAqB,IAAS,aAAe,IAAS,kBAAoB,IAAS,eAAiB,IAAS,oBAAsB,IAAS,YAAc,IAAS,OAAS,IAAS,KAAO,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,gBAAkB,IAAS,YAAc,IAAS,MAAQ,IAAO,IAAM,IAAS,IAAM,IAAS,OAAS,IAAS,KAAO,IAAS,KAAO,IAAS,QAAU,IAAS,QAAU,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,QAAU,IAAS,OAAS,IAAS,OAAS,IAAS,SAAW,IAAS,UAAY,IAAS,YAAc,IAAS,UAAY,IAAS,WAAa,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,WAAa,IAAS,YAAc,IAAS,SAAW,IAAS,cAAgB,IAAS,mBAAqB,IAAS,cAAgB,IAAS,OAAS,IAAS,YAAc,IAAS,SAAW,IAAS,SAAW,IAAS,QAAU,IAAS,SAAW,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAO,KAAO,IAAO,KAAO,IAAO,OAAS,IAAS,QAAU,IAAS,KAAO,IAAS,KAAO,IAAS,QAAU,IAAS,SAAW,IAAS,cAAgB,IAAS,QAAU,IAAS,QAAU,IAAS,QAAU,IAAS,QAAU,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,OAAS,IAAS,OAAS,IAAS,SAAW,IAAS,UAAY,IAAS,UAAY,IAAS,WAAa,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,QAAU,IAAS,OAAS,IAAS,MAAQ,IAAO,IAAM,KAAK,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,OAAS,IAAS,IAAM,KAAe,IAAM,KAAe,OAAS,IAAS,UAAY,IAAS,UAAY,IAAS,MAAQ,IAAS,MAAQ,IAAS,SAAW,IAAS,OAAS,IAAS,YAAc,IAAS,SAAW,IAAS,WAAa,KAAe,OAAS,IAAS,UAAY,IAAS,MAAQ,IAAS,OAAS,IAAS,MAAQ,IAAO,MAAQ,IAAO,MAAQ,IAAS,MAAQ,IAAS,WAAa,IAAS,eAAiB,IAAS,WAAa,IAAS,MAAQ,IAAO,OAAS,IAAS,SAAW,IAAS,OAAS,IAAS,KAAO,IAAS,KAAO,IAAS,IAAM,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,KAAe,QAAU,IAAS,KAAO,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,SAAW,IAAS,aAAe,IAAS,aAAe,IAAS,eAAiB,IAAS,UAAY,IAAS,cAAgB,IAAS,gBAAkB,IAAS,OAAS,IAAS,KAAO,IAAS,SAAW,IAAS,UAAY,IAAS,QAAU,IAAS,MAAQ,IAAS,QAAU,IAAS,SAAW,IAAS,KAAO,KAAe,KAAO,KAAe,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,iBAAmB,IAAS,kBAAoB,IAAS,OAAS,IAAO,OAAS,IAAO,KAAO,IAAS,KAAO,IAAS,KAAO,IAAS,SAAW,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAO,MAAQ,IAAO,IAAM,IAAS,IAAM,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,OAAS,IAAS,IAAM,KAAe,IAAM,KAAe,OAAS,IAAO,OAAS,IAAO,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,SAAW,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,IAAM,IAAO,SAAW,IAAI,WAAa,IAAS,aAAe,IAAS,iBAAmB,IAAS,MAAQ,IAAS,UAAY,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,QAAU,IAAS,QAAU,IAAS,QAAU,IAAS,WAAa,IAAS,iBAAmB,IAAS,YAAc,IAAS,YAAc,IAAS,YAAc,IAAS,cAAgB,IAAS,cAAgB,IAAS,eAAiB,IAAS,MAAQ,IAAS,eAAiB,IAAS,gBAAkB,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,QAAU,IAAS,QAAU,IAAS,MAAQ,IAAS,WAAa,IAAS,WAAa,IAAS,OAAS,IAAS,SAAW,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,IAAO,KAAO,IAAO,QAAU,IAAS,OAAS,IAAS,WAAa,IAAS,SAAW,IAAS,WAAa,IAAS,OAAS,IAAS,MAAQ,IAAS,UAAY,IAAS,KAAO,IAAS,KAAO,IAAS,OAAS,IAAS,SAAW,IAAS,aAAe,KAAe,cAAgB,KAAe,aAAe,KAAe,cAAgB,KAAe,SAAW,IAAS,gBAAkB,IAAS,iBAAmB,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,IAAM,IAAS,IAAM,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,OAAS,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAI,OAAS,IAAS,KAAO,IAAI,KAAO,IAAS,YAAc,IAAS,aAAe,IAAI,kBAAoB,IAAS,cAAgB,IAAS,cAAgB,IAAS,IAAM,KAAe,IAAM,KAAe,MAAQ,IAAS,MAAQ,KAAe,MAAQ,KAAe,KAAO,KAAe,KAAO,KAAe,MAAQ,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,OAAS,KAAe,OAAS,KAAe,OAAS,KAAe,OAAS,KAAe,OAAS,IAAS,QAAU,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,KAAe,IAAM,KAAe,KAAO,KAAe,KAAO,KAAe,GAAK,IAAS,GAAK,IAAS,OAAS,IAAS,KAAO,KAAe,KAAO,KAAe,KAAO,IAAS,MAAQ,IAAS,KAAO,IAAS,MAAQ,IAAS,IAAM,KAAe,IAAM,KAAe,MAAQ,IAAS,MAAQ,IAAS,GAAK,IAAS,GAAK,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,MAAQ,IAAS,KAAO,KAAe,KAAO,KAAe,OAAS,IAAS,OAAS,IAAS,MAAQ,IAAS,KAAO,IAAS,OAAS,IAAS,OAAS,IAAO,OAAS,IAAO,KAAO,IAAS,KAAO,IAAS,MAAQ,IAAS,MAAQ,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAO,IAAM,KAAe,IAAM,KAAe,KAAO,IAAS,KAAO,IAAS,KAAO,KAAe,KAAO,KAAe,KAAO,KAAe,KAAO,KAAe,KAAO,IAAS,KAAO,IAAS,KAAO,IAAO,KAAO,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,OAAS,IAAS,IAAM,IAAS,IAAM,IAAS,KAAO,IAAS,KAAO,IAAS,OAAS,IAAS,eAAiB,IAAS,KAAO,IAAS,KAAO,IAAS,IAAM,KAAe,IAAM,IAAS,KAAO,IAAS,KAAO,IAAS,QAAU,IAAS,KAAO,KAAe,KAAO,IAAS,KAAO,KAAe,KAAO,KAAe,IAAM,IAAS,KAAO,KACx8uCC,EAAkB,CAAC,OAAS,IAAO,OAAS,IAAO,MAAQ,IAAO,MAAQ,IAAO,MAAQ,IAAO,MAAQ,IAAO,MAAQ,IAAO,OAAS,IAAO,OAAS,IAAO,IAAM,IAAI,IAAM,IAAI,MAAQ,IAAO,MAAQ,IAAO,OAAS,IAAO,OAAS,IAAO,KAAO,IAAO,KAAO,IAAO,OAAS,IAAO,OAAS,IAAO,OAAS,IAAO,MAAQ,IAAO,KAAO,IAAO,KAAO,IAAO,KAAO,IAAO,OAAS,IAAO,IAAM,IAAO,OAAS,IAAO,OAAS,IAAO,OAAS,IAAO,MAAQ,IAAO,MAAQ,IAAO,OAAS,IAAO,OAAS,IAAO,IAAM,IAAO,IAAM,IAAO,KAAO,IAAO,KAAO,IAAO,OAAS,IAAO,OAAS,IAAO,OAAS,IAAO,GAAK,IAAI,GAAK,IAAI,OAAS,IAAO,OAAS,IAAO,MAAQ,IAAO,MAAQ,IAAO,MAAQ,IAAO,OAAS,IAAO,OAAS,IAAO,OAAS,IAAO,KAAO,IAAO,KAAO,IAAO,MAAQ,IAAO,GAAK,IAAI,GAAK,IAAI,KAAO,IAAO,MAAQ,IAAO,OAAS,IAAO,KAAO,IAAO,IAAM,IAAO,OAAS,IAAO,OAAS,IAAO,OAAS,IAAO,OAAS,IAAO,MAAQ,IAAO,MAAQ,IAAO,OAAS,IAAO,OAAS,IAAO,KAAO,IAAO,KAAO,IAAO,OAAS,IAAO,OAAS,IAAO,OAAS,IAAO,OAAS,IAAO,KAAO,IAAO,KAAO,IAAO,KAAO,IAAO,OAAS,IAAO,MAAQ,IAAO,KAAO,IAAI,KAAO,IAAI,MAAQ,IAAO,IAAM,IAAO,IAAM,IAAO,KAAO,IAAO,IAAM,IAAO,KAAO,IAAO,KAAO,IAAO,KAAO,IAAO,MAAQ,IAAO,MAAQ,IAAO,MAAQ,IAAO,MAAQ,IAAO,OAAS,IAAO,OAAS,IAAO,MAAQ,IAAO,MAAQ,IAAO,OAAS,IAAO,OAAS,IAAO,IAAM,IAAO,KAAO,IAAO,KAAO,IAAO,OAAS,IAAO,OAAS,IAAO,IAAM,IAAO,KAAO,KACxhDC,EAAmB,CAAC,EAAI,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,IAAS,IAAM,KAC7aC,EAA6B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,QAAQ,QAAQ,QAAQ,SAItpBh9B,EAAqB3vD,OAAOynD,aAG5BjpD,EADS,GACeA,eACxBm0B,EAAM,SAASksC,EAAQ+tB,GAC1B,OAAOpuF,EAAerN,KAAK0tE,EAAQ+tB,IAchCv3F,EAAQ,SAASnN,EAAS0J,GAC7B,IAAK1J,EACJ,OAAO0J,EAER,IACInE,EADAuQ,EAAS,GAEb,IAAKvQ,KAAOmE,EAGXoM,EAAOvQ,GAAOklC,EAAIzqC,EAASuF,GAAOvF,EAAQuF,GAAOmE,EAASnE,GAE3D,OAAOuQ,GAIJ6uF,EAAoB,SAASz1B,EAAWyL,GAC3C,IAAIjV,EAAS,GACb,OAAKwJ,GAAa,OAAUA,GAAa,OAAWA,EAAY,SAK3DyL,GACHiqB,EAAW,6DAEL,KAEJn6D,EAAI+5D,EAAkBt1B,IACrByL,GACHiqB,EAAW,kCAELJ,EAAiBt1B,KAErByL,GA5CU,SAASpO,EAAO5oE,GAG9B,IAFA,IAAIkF,GAAS,EACTR,EAASkkE,EAAMlkE,SACVQ,EAAQR,GAChB,GAAIkkE,EAAM1jE,IAAUlF,EACnB,OAAO,EAGT,OAAO,EAoCOkhG,CAASJ,EAA4Bv1B,IAClD01B,EAAW,kCAER11B,EAAY,QAEfxJ,GAAU+B,GADVyH,GAAa,SAC8B,GAAK,KAAQ,OACxDA,EAAY,MAAqB,KAAZA,GAEtBxJ,GAAU+B,EAAmByH,KAI1B41B,EAAY,SAAS51B,GACxB,MAAO,MAAQA,EAAUpgE,SAAS,IAAIhL,cAAgB,KAGnDihG,EAAY,SAAS71B,GACxB,MAAO,KAAOA,EAAY,KAGvB01B,EAAa,SAASp8F,GACzB,MAAMrI,MAAM,gBAAkBqI,IAK3BsI,EAAS,SAAS8sD,EAAQ59D,IAC7BA,EAAUmN,EAAMnN,EAAS8Q,EAAO9Q,UACX26E,QACPypB,EAAyB7xF,KAAKqrD,IAC3CgnC,EAAW,wBAEZ,IAAII,EAAmBhlG,EAAQglG,iBAC3BC,EAAqBjlG,EAAQilG,mBAC7BC,EAAqBllG,EAAQklG,mBAC7BC,EAAkBnlG,EAAQolG,QAAUL,EAAYD,EAEhDO,EAAkB,SAASlW,GAC9B,OAAOgW,EAAgBhW,EAAO/3E,WAAW,KAoD1C,OAjDI4tF,GAEHpnC,EAASA,EAAO7sD,QAAQ8yF,GAAqB,SAAS1U,GAErD,OAAI8V,GAAsBx6D,EAAIu5D,EAAW7U,GACjC,IAAM6U,EAAU7U,GAAU,IAE3BkW,EAAgBlW,MAIpB8V,IACHrnC,EAASA,EACP7sD,QAAQ,cAAe,UACvBA,QAAQ,cAAe,UACvBA,QAAQ,gBAAiB,YAGxBk0F,IAEHrnC,EAASA,EAAO7sD,QAAQgzF,GAAqB,SAASnmC,GAErD,MAAO,IAAMomC,EAAUpmC,GAAU,SAIzBqnC,GAGLC,IACJtnC,EAASA,EAAO7sD,QAAQkzF,GAAa,SAASrmC,GAC7C,MAAO,IAAMomC,EAAUpmC,GAAU,QASnCA,GAJAA,EAASA,EACP7sD,QAAQ,cAAe,UACvBA,QAAQ,cAAe,WAETA,QAAQgzF,GAAqB,SAASnmC,GAErD,MAAO,IAAMomC,EAAUpmC,GAAU,QAEvBsnC,IAGXtnC,EAASA,EAAO7sD,QAAQkzF,EAAaoB,IAE/BznC,EAEL7sD,QAAQ6yF,GAAoB,SAASviB,GAErC,IAAIikB,EAAOjkB,EAAGjqE,WAAW,GACrBmuF,EAAMlkB,EAAGjqE,WAAW,GAExB,OAAO+tF,EAD2B,MAAjBG,EAAO,OAAkBC,EAAM,MAAS,UAKzDx0F,QAAQ+yF,EAAmBuB,IAG9Bv0F,EAAO9Q,QAAU,CAChB,oBAAsB,EACtB,kBAAoB,EACpB,QAAU,EACV,oBAAsB,EACtB,SAAY,GAGb,IAAI85B,EAAS,SAASjC,EAAM73B,GAE3B,IAAI26E,GADJ36E,EAAUmN,EAAMnN,EAAS85B,EAAO95B,UACX26E,OAIrB,OAHIA,GAAUwpB,EAAmB5xF,KAAKslB,IACrC+sE,EAAW,iCAEL/sE,EAAK9mB,QAAQszF,GAAa,SAAShjB,EAAImkB,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACzE,IAAI72B,EACA82B,EACAC,EACAC,EACAC,EACAr8B,EAEJ,OAAI07B,EAGIlB,EAFP6B,EAAYX,GAKTC,GAIHU,EAAYV,GACZ37B,EAAO47B,IACK1lG,EAAQomG,kBACfzrB,GAAkB,KAAR7Q,GACb86B,EAAW,2CAELvjB,IAEH1G,GACHiqB,EACC,+DAIKL,EAAgB4B,IAAcr8B,GAAQ,MAI3C67B,GAEHM,EAAYN,EACZK,EAAYJ,EACRjrB,IAAWqrB,GACdpB,EAAW,yDAEZ11B,EAAYj+B,SAASg1D,EAAW,IACzBtB,EAAkBz1B,EAAWyL,IAGjCkrB,GAEHK,EAAYL,EACZG,EAAYF,EACRnrB,IAAWqrB,GACdpB,EAAW,yDAEZ11B,EAAYj+B,SAASi1D,EAAW,IACzBvB,EAAkBz1B,EAAWyL,KAKjCA,GACHiqB,EACC,+DAGKvjB,OAITvnD,EAAO95B,QAAU,CAChB,kBAAoB,EACpB,QAAU,GAGX,IASIqmG,EAAK,CACR,QAAW,QACX,OAAUv1F,EACV,OAAUgpB,EACV,OAbY,SAAS8jC,GACrB,OAAOA,EAAO7sD,QAAQkzF,GAAa,SAAS5iB,GAE3C,OAAO6iB,EAAU7iB,OAWlB,SAAYvnD,QAYX,KAFD,aACC,OAAOusE,GACP,8BA1UF,gCCCD,IAAIC,EAAU,EAAQ,OAMlBC,EAAgB,CAClBC,mBAAmB,EACnBC,aAAa,EACbC,cAAc,EACdC,cAAc,EACd5iF,aAAa,EACb6iF,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACXhhG,MAAM,GAEJihG,EAAgB,CAClB99F,MAAM,EACNd,QAAQ,EACRtB,WAAW,EACXmgG,QAAQ,EACRC,QAAQ,EACRt2F,WAAW,EACXu2F,OAAO,GASLC,EAAe,CACjB,UAAY,EACZngC,SAAS,EACTy/B,cAAc,EACd5iF,aAAa,EACbijF,WAAW,EACXhhG,MAAM,GAEJshG,EAAe,GAInB,SAASC,EAAWC,GAElB,OAAIlB,EAAQmB,OAAOD,GACVH,EAIFC,EAAaE,EAAoB,WAAMjB,EAVhDe,EAAahB,EAAQoB,YAhBK,CACxB,UAAY,EACZpxC,QAAQ,EACRqwC,cAAc,EACd5iF,aAAa,EACbijF,WAAW,GAYbM,EAAahB,EAAQqB,MAAQN,EAY7B,IAAIp7F,EAAiBF,OAAOE,eACxB0L,EAAsB5L,OAAO4L,oBAC7B4gE,EAAwBxsE,OAAOwsE,sBAC/BG,EAA2B3sE,OAAO2sE,yBAClCtiE,EAAiBrK,OAAOqK,eACxBwxF,EAAkB77F,OAAOhF,UAsC7BvH,EAAOC,QArCP,SAASooG,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,iBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqB7xF,EAAe2xF,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,GAI9D,IAAI55F,EAAOuJ,EAAoBowF,GAE3BxvB,IACFnqE,EAAOA,EAAKvD,OAAO0tE,EAAsBwvB,KAM3C,IAHA,IAAIG,EAAgBX,EAAWO,GAC3BK,EAAgBZ,EAAWQ,GAEtB5/F,EAAI,EAAGA,EAAIiG,EAAK/F,SAAUF,EAAG,CACpC,IAAI5C,EAAM6I,EAAKjG,GAEf,KAAK8+F,EAAc1hG,IAAUyiG,GAAaA,EAAUziG,IAAW4iG,GAAiBA,EAAc5iG,IAAW2iG,GAAiBA,EAAc3iG,IAAO,CAC7I,IAAIq5F,EAAalmB,EAAyBqvB,EAAiBxiG,GAE3D,IAEE0G,EAAe67F,EAAiBviG,EAAKq5F,GACrC,MAAOvuF,OAKf,OAAOy3F,uCClGT,IACQrT,EADJC,EAAa3sF,MAAQA,KAAK2sF,YACtBD,EAAgB,SAAUxtD,EAAGhwB,GAI7B,OAHAw9E,EAAgB1oF,OAAOk/D,gBAClB,CAAE6O,UAAW,cAAgBnvE,OAAS,SAAUs8B,EAAGhwB,GAAKgwB,EAAE6yC,UAAY7iE,IACvE,SAAUgwB,EAAGhwB,GAAK,IAAK,IAAIwjB,KAAKxjB,EAAOlL,OAAOhF,UAAUuP,eAAerN,KAAKgO,EAAGwjB,KAAIwM,EAAExM,GAAKxjB,EAAEwjB,KACzFg6D,EAAcxtD,EAAGhwB,IAErB,SAAUgwB,EAAGhwB,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIpP,UAAU,uBAAyBiQ,OAAOb,GAAK,iCAE7D,SAAS09E,IAAO5sF,KAAK0O,YAAcwwB,EADnCwtD,EAAcxtD,EAAGhwB,GAEjBgwB,EAAElgC,UAAkB,OAANkQ,EAAalL,OAAO9E,OAAOgQ,IAAM09E,EAAG5tF,UAAYkQ,EAAElQ,UAAW,IAAI4tF,KAGnFtE,EAAmBtoF,MAAQA,KAAKsoF,kBAAqBtkF,OAAO9E,OAAS,SAAU+gE,EAAGoF,EAAGvX,EAAGy6B,QAC7ElrF,IAAPkrF,IAAkBA,EAAKz6B,GAC3B9pD,OAAOE,eAAe+7D,EAAGsoB,EAAI,CAAE3gB,YAAY,EAAM58C,IAAK,WAAa,OAAOq6C,EAAEvX,OAC3E,SAAUmS,EAAGoF,EAAGvX,EAAGy6B,QACTlrF,IAAPkrF,IAAkBA,EAAKz6B,GAC3BmS,EAAEsoB,GAAMljB,EAAEvX,KAEV06B,EAAsBxoF,MAAQA,KAAKwoF,qBAAwBxkF,OAAO9E,OAAS,SAAU+gE,EAAG92D,GACxFnF,OAAOE,eAAe+7D,EAAG,UAAW,CAAE2H,YAAY,EAAMhsE,MAAOuN,KAC9D,SAAS82D,EAAG92D,GACb82D,EAAW,QAAI92D,IAEfs/E,EAAgBzoF,MAAQA,KAAKyoF,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIjK,WAAY,OAAOiK,EAClC,IAAI36E,EAAS,GACb,GAAW,MAAP26E,EAAa,IAAK,IAAI56B,KAAK46B,EAAe,YAAN56B,GAAmB9pD,OAAOhF,UAAUuP,eAAerN,KAAKwnF,EAAK56B,IAAIw6B,EAAgBv6E,EAAQ26E,EAAK56B,GAEtI,OADA06B,EAAmBz6E,EAAQ26E,GACpB36E,GAEPkkF,EAAmBjyF,MAAQA,KAAKiyF,iBAAoB,SAAUvJ,GAC9D,OAAQA,GAAOA,EAAIjK,WAAciK,EAAM,CAAE,QAAWA,IAExD1kF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQ2oG,UAAY3oG,EAAQ4oG,iBAAc,EAC1C,IAGIC,EAQAC,EAXA5Q,EAAeqC,EAAgB,EAAQ,QACvCwO,EAAWhY,EAAa,EAAQ,QAChCiY,EAAW,EAAQ,QAEvB,SAAWH,GACPA,EAAoBA,EAA2B,MAAI,GAAK,QACxDA,EAAoBA,EAA2B,MAAI,GAAK,QACxDA,EAAoBA,EAA2B,MAAI,GAAK,QACxDA,EAAoBA,EAA8B,SAAI,GAAK,WAC3DA,EAAoBA,EAAgC,WAAI,GAAK,aALjE,CAMGA,IAAwBA,EAAsB,KAEjD,SAAWC,GACPA,EAAwBA,EAAgC,OAAI,GAAK,SACjEA,EAAwBA,EAA8B,KAAI,GAAK,OAC/DA,EAAwBA,EAAiC,QAAI,GAAK,UAHtE,CAIGA,IAA4BA,EAA0B,KAEzD,IAAIF,EAA6B,SAAUnvB,GAOvC,SAASmvB,EAAYl0F,EAAUnU,GAO3B,MALwB,iBAAbmU,IAEPnU,EADAmU,OAAW/O,GAGP8zE,EAAOjwE,KAAKlB,KAAMoM,EAAUnU,IAAY+H,KA4EpD,OAxFA2sF,EAAU2T,EAAanvB,GAevBmvB,EAAYthG,UAAUysF,MAAQ,WAC1B,IAAI5sE,EAAIkJ,EACJqmE,EAAWC,EAAcC,EAAatuF,KAAKmrF,KAC/C,GAAKiD,EAAL,CAIA,IAAIG,EAAO,GACX,GAAsB,SAAlBH,EAAShtF,KAAiB,CAC1B,IAAI2sF,EAASK,EAASxqE,SACtB2qE,EAAKtwF,KAAO,OACZwwF,EAAiBF,EAAM,KAAM,KAAMR,GACnCU,EAAiBF,EAAM,QAAS,QAASR,GACzC,IAAI9iF,EAAO01F,EAAa,OAAQtS,EAAc,OAAQN,IAClD9iF,IACAsjF,EAAKx1B,KAAO9tD,GAEhBwjF,EAAiBF,EAAM,cAAe,WAAYR,IAC9CY,EAAUr7E,EAAM,UAAWy6E,MAE3BQ,EAAKI,QAAU,IAAI3kF,KAAK2kF,IAE5BF,EAAiBF,EAAM,SAAU,QAASR,GAAQ,GAClDQ,EAAKx0E,MAAQ42E,EAAY,QAAS5C,GAAQr7E,KAAI,SAAUoC,GACpD,IAAIyC,EAAQ,GACRqM,EAAW9O,EAAK8O,SACpB6qE,EAAiBl3E,EAAO,KAAM,KAAMqM,GACpC6qE,EAAiBl3E,EAAO,QAAS,QAASqM,GAC1C,IAAI3Y,EAAO01F,EAAa,OAAQtS,EAAc,OAAQzqE,IAClD3Y,IACAsM,EAAMwhD,KAAO9tD,GAEjB,IAAIxH,EAAc6P,EAAM,UAAWsQ,IAAatQ,EAAM,UAAWsQ,GAC7DngB,IACA8T,EAAM9T,YAAcA,GAExB,IAAIirF,EAAUp7E,EAAM,UAAWsQ,GAK/B,OAJI8qE,IACAn3E,EAAMm3E,QAAU,IAAI1kF,KAAK0kF,IAE7Bn3E,EAAMuhD,MAAQ01B,EAAiB5qE,GACxBrM,SAGV,CACD,IAMIo3E,EANAZ,EAAwH,QAA9GhmE,EAA4D,QAAtDlJ,EAAKwvE,EAAc,UAAWD,EAASxqE,iBAA8B,IAAP/E,OAAgB,EAASA,EAAG+E,gBAA6B,IAAPmE,EAAgBA,EAAK,GACzJwmE,EAAKtwF,KAAOmwF,EAAShtF,KAAK8K,OAAO,EAAG,GACpCqiF,EAAK3pF,GAAK,GACV6pF,EAAiBF,EAAM,QAAS,QAASR,GACzCU,EAAiBF,EAAM,OAAQ,OAAQR,GACvCU,EAAiBF,EAAM,cAAe,cAAeR,IACjDY,EAAUr7E,EAAM,gBAAiBy6E,MAEjCQ,EAAKI,QAAU,IAAI3kF,KAAK2kF,IAE5BF,EAAiBF,EAAM,SAAU,iBAAkBR,GAAQ,GAC3DQ,EAAKx0E,MAAQ42E,EAAY,OAAQvC,EAASxqE,UAAUlR,KAAI,SAAUoC,GAC9D,IAAIyC,EAAQ,GACRqM,EAAW9O,EAAK8O,SACpB6qE,EAAiBl3E,EAAO,KAAM,OAAQqM,GACtC6qE,EAAiBl3E,EAAO,QAAS,QAASqM,GAC1C6qE,EAAiBl3E,EAAO,OAAQ,OAAQqM,GACxC6qE,EAAiBl3E,EAAO,cAAe,cAAeqM,GACtD,IAAI8qE,EAAUp7E,EAAM,UAAWsQ,GAI/B,OAHI8qE,IACAn3E,EAAMm3E,QAAU,IAAI1kF,KAAK0kF,IAC7Bn3E,EAAMuhD,MAAQ01B,EAAiB5qE,GACxBrM,KAGfvX,KAAKuuF,KAAOA,EACZvuF,KAAK0rF,eAAe,WAnEhB1rF,KAAK0rF,eAAe,IAAItzF,MAAM,gCAqE/BkoG,EAzFqB,CA0F9B1Q,EAAa5R,SAEf,SAASwQ,EAAiBQ,GACtB,OAAO2B,EAAY,gBAAiB3B,GAAOt8E,KAAI,SAAUugD,GACrD,IAAI6F,EAAQ,CACRm2B,OAAQh8B,EAAK82B,QAAQkF,OACrBC,YAAaj8B,EAAK82B,QAAQmF,WAuC9B,OArCIj8B,EAAK82B,QAAQ3uF,MACb09D,EAAM19D,IAAM63D,EAAK82B,QAAQ3uF,KAEzB63D,EAAK82B,QAAQ6W,WACb9nC,EAAM8nC,SAAW13D,SAAS+pB,EAAK82B,QAAQ6W,SAAU,KAEjD3tC,EAAK82B,QAAQ9rF,OACb66D,EAAM76D,KAAOg1D,EAAK82B,QAAQ9rF,MAE1Bg1D,EAAK82B,QAAQuF,aACbx2B,EAAMw2B,WAAar8B,EAAK82B,QACnBuF,YAELr8B,EAAK82B,QAAQ8W,UACb/nC,EAAM+nC,QAAU33D,SAAS+pB,EAAK82B,QAAQ8W,QAAS,KAE/C5tC,EAAK82B,QAAQ+W,YACbhoC,EAAMgoC,UAAY53D,SAAS+pB,EAAK82B,QAAQ+W,UAAW,KAEnD7tC,EAAK82B,QAAQgX,eACbjoC,EAAMioC,aAAe73D,SAAS+pB,EAAK82B,QAAQgX,aAAc,KAEzD9tC,EAAK82B,QAAQiX,WACbloC,EAAMkoC,SAAW93D,SAAS+pB,EAAK82B,QAAQiX,SAAU,KAEjD/tC,EAAK82B,QAAQkX,WACbnoC,EAAMmoC,SAAW/3D,SAAS+pB,EAAK82B,QAAQkX,SAAU,KAEjDhuC,EAAK82B,QAAQ9xB,SACba,EAAMb,OAAS/uB,SAAS+pB,EAAK82B,QAAQ9xB,OAAQ,KAE7ChF,EAAK82B,QAAQv0B,QACbsD,EAAMtD,MAAQtsB,SAAS+pB,EAAK82B,QAAQv0B,MAAO,KAE3CvC,EAAK82B,QAAQmX,OACbpoC,EAAMooC,KAAOjuC,EAAK82B,QAAQmX,MAEvBpoC,KAGf,SAAS63B,EAAYthE,EAAS2/D,GAC1B,OAAOyR,EAAS/uD,qBAAqBriB,EAAS2/D,GAAO,GAEzD,SAASX,EAAch/D,EAAS25D,GAC5B,OAAOyX,EAAS/uD,qBAAqBriB,EAAS25D,GAAM,EAAM,GAAG,GAEjE,SAAS11E,EAAM+b,EAAS2/D,EAAOO,GAE3B,YADgB,IAAZA,IAAsBA,GAAU,GAC7BkR,EAASvO,QAAQuO,EAAS/uD,qBAAqBriB,EAAS2/D,EAAOO,EAAS,IAAIlnF,OAEvF,SAASs4F,EAAav/F,EAAM6xD,GACxB,OAAKA,EAGSA,EAAK82B,QACJ3oF,GAHJ,KAKf,SAASqtF,EAAiBlqF,EAAKyB,EAAMm7F,EAAMnS,EAAOO,QAC9B,IAAZA,IAAsBA,GAAU,GACpC,IAAIhgC,EAAMj8C,EAAM6tF,EAAMnS,EAAOO,GACzBhgC,IACAhrD,EAAIyB,GAAQupD,GAEpB,SAAS++B,EAAY1yF,GACjB,MAAiB,QAAVA,GAA6B,SAAVA,GAA8B,YAAVA,EAvElDlE,EAAQ4oG,YAAcA,EAqFtB5oG,EAAQ2oG,UANR,SAAmB9R,EAAMt2F,QACL,IAAZA,IAAsBA,EAAU,CAAE2xF,SAAS,IAC/C,IAAIwX,EAAU,IAAId,EAAYroG,GAE9B,OADA,IAAIyoG,EAASW,OAAOD,EAASnpG,GAASylE,IAAI6wB,GACnC6S,EAAQ7S,0CCvOnB,IAAI0D,EAAmBjyF,MAAQA,KAAKiyF,iBAAoB,SAAUvJ,GAC9D,OAAQA,GAAOA,EAAIjK,WAAciK,EAAM,CAAE,QAAWA,IAExD1kF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQ2pG,YAAS,EACjB,IAAIC,EAAcrP,EAAgB,EAAQ,QACtCsP,EAAW,IAAItnF,IAAI,CACnB,QACA,SACA,WACA,SACA,SACA,WACA,aAEAunF,EAAO,IAAIvnF,IAAI,CAAC,MAChBwnF,EAAmB,CACnBC,GAAI,IAAIznF,IAAI,CAAC,KAAM,KAAM,OACzB0nF,GAAI,IAAI1nF,IAAI,CAAC,OACb2nF,GAAI,IAAI3nF,IAAI,CAAC,QAAS,KAAM,OAC5B1G,KAAM,IAAI0G,IAAI,CAAC,OAAQ,OAAQ,WAC/B4nF,GAAI,IAAI5nF,IAAI,CAAC,OACbyY,EAAG8uE,EACHM,GAAIN,EACJO,GAAIP,EACJQ,GAAIR,EACJS,GAAIT,EACJU,GAAIV,EACJW,GAAIX,EACJve,OAAQse,EACRpnC,MAAOonC,EACP5jC,OAAQ4jC,EACRa,OAAQb,EACRc,SAAUd,EACVe,SAAUf,EACVgB,OAAQ,IAAItoF,IAAI,CAAC,WACjBuoF,SAAU,IAAIvoF,IAAI,CAAC,WAAY,WAC/BwoF,GAAI,IAAIxoF,IAAI,CAAC,KAAM,OACnByoF,GAAI,IAAIzoF,IAAI,CAAC,KAAM,OACnB0oF,QAASnB,EACToB,QAASpB,EACTqB,MAAOrB,EACPsB,WAAYtB,EACZ3pB,QAAS2pB,EACTuB,IAAKvB,EACLwB,GAAIxB,EACJyB,SAAUzB,EACV0B,WAAY1B,EACZ2B,OAAQ3B,EACR4B,OAAQ5B,EACRpsE,KAAMosE,EACNxd,OAAQwd,EACR6B,GAAI7B,EACJ8B,KAAM9B,EACN+B,IAAK/B,EACLgC,GAAIhC,EACJiC,IAAKjC,EACLn+D,QAASm+D,EACTn0B,MAAOm0B,EACPkC,GAAIlC,EACJmC,GAAI,IAAI1pF,IAAI,CAAC,KAAM,OACnB2pF,GAAI,IAAI3pF,IAAI,CAAC,KAAM,OACnB4pF,MAAO,IAAI5pF,IAAI,CAAC,QAAS,UACzB6pF,MAAO,IAAI7pF,IAAI,CAAC,QAAS,WAEzB8pF,EAAe,IAAI9pF,IAAI,CACvB,OACA,OACA,WACA,KACA,MACA,UACA,QACA,QACA,KACA,MACA,QACA,UACA,SACA,OACA,OACA,QACA,SACA,QACA,QAEA+pF,EAAyB,IAAI/pF,IAAI,CAAC,OAAQ,QAC1CgqF,EAA0B,IAAIhqF,IAAI,CAClC,KACA,KACA,KACA,KACA,QACA,iBACA,gBACA,OACA,UAEAiqF,EAAY,QACZ7C,EAAwB,WACxB,SAASA,EAAO8C,EAAKlsG,GAEjB,IAAI4mB,EAAIkJ,EAAIq8E,EAAI/vB,EAAIlZ,OADJ,IAAZljE,IAAsBA,EAAU,IAGpC+H,KAAKysF,WAAa,EAElBzsF,KAAK4rF,SAAW,KAChB5rF,KAAKqkG,QAAU,GACfrkG,KAAKskG,WAAa,GAClBtkG,KAAKukG,YAAc,GACnBvkG,KAAK+pF,QAAU,KACf/pF,KAAK8D,MAAQ,GACb9D,KAAKwkG,eAAiB,GACtBxkG,KAAK/H,QAAUA,EACf+H,KAAKmkG,IAAMA,QAAiCA,EAAM,GAClDnkG,KAAKykG,kBAAqD,QAAhC5lF,EAAK5mB,EAAQysG,qBAAkC,IAAP7lF,EAAgBA,GAAM5mB,EAAQ2xF,QAChG5pF,KAAK2kG,wBAC0C,QAA1C58E,EAAK9vB,EAAQ0sG,+BAA4C,IAAP58E,EAAgBA,GAAM9vB,EAAQ2xF,QACrF5pF,KAAK4kG,UAAY,IAAkC,QAA5BR,EAAKnsG,EAAQ4sG,iBAA8B,IAAPT,EAAgBA,EAAK9C,EAAYtjB,SAASh+E,KAAK/H,QAAS+H,MAC3E,QAAvCm7D,GAAMkZ,EAAKr0E,KAAKmkG,KAAK5Y,oBAAiC,IAAPpwB,GAAyBA,EAAGj6D,KAAKmzE,EAAIr0E,MAkQzF,OAhQAqhG,EAAOriG,UAAU8lG,eAAiB,SAAUC,GAClB,OAAlB/kG,KAAK4rF,SACD5rF,KAAK4kG,UAAUI,cAAgBD,EAC/B/kG,KAAKysF,WAAa,EAGlBzsF,KAAKysF,WAAazsF,KAAK4kG,UAAUI,aAAeD,EAIpD/kG,KAAKysF,WAAazsF,KAAK4rF,SAAW,EAEtC5rF,KAAK4rF,SAAW5rF,KAAK4kG,UAAUK,oBAGnC5D,EAAOriG,UAAUgtF,OAAS,SAAUlyF,GAChC,IAAI+kB,EAAIkJ,EACR/nB,KAAK8kG,eAAe,GACpB9kG,KAAK4rF,WAC6B,QAAjC7jE,GAAMlJ,EAAK7e,KAAKmkG,KAAKnY,cAA2B,IAAPjkE,GAAyBA,EAAG7mB,KAAK2d,EAAI/kB,IAEnFunG,EAAOriG,UAAUkmG,cAAgB,SAAU9jG,GACvC,IAAIyd,EAAIkJ,EAKR,GAJI/nB,KAAKykG,oBACLrjG,EAAOA,EAAK3D,eAEhBuC,KAAKqkG,QAAUjjG,GACVpB,KAAK/H,QAAQ2xF,SACd5lF,OAAOhF,UAAUuP,eAAerN,KAAKugG,EAAkBrgG,GAEvD,IADA,IAAI4L,OAAK,EACFhN,KAAK8D,MAAMxD,OAAS,GACvBmhG,EAAiBrgG,GAAMshC,IAAK11B,EAAKhN,KAAK8D,MAAM9D,KAAK8D,MAAMxD,OAAS,KAChEN,KAAK2rF,WAAW3+E,IAGpBhN,KAAK/H,QAAQ2xF,SAAYma,EAAarhE,IAAIthC,KAC1CpB,KAAK8D,MAAMjD,KAAKO,GACZ4iG,EAAuBthE,IAAIthC,GAC3BpB,KAAKwkG,eAAe3jG,MAAK,GAEpBojG,EAAwBvhE,IAAIthC,IACjCpB,KAAKwkG,eAAe3jG,MAAK,IAGQ,QAAxCknB,GAAMlJ,EAAK7e,KAAKmkG,KAAKe,qBAAkC,IAAPn9E,GAAyBA,EAAG7mB,KAAK2d,EAAIzd,GAClFpB,KAAKmkG,IAAItY,YACT7rF,KAAK+pF,QAAU,KAEvBsX,EAAOriG,UAAUmmG,aAAe,WAC5B,IAAItmF,EAAIkJ,EACR/nB,KAAK8kG,eAAe,GAChB9kG,KAAK+pF,UACgC,QAApChiE,GAAMlJ,EAAK7e,KAAKmkG,KAAKtY,iBAA8B,IAAP9jE,GAAyBA,EAAG7mB,KAAK2d,EAAI7e,KAAKqkG,QAASrkG,KAAK+pF,SACrG/pF,KAAK+pF,QAAU,OAEd/pF,KAAK/H,QAAQ2xF,SACd5pF,KAAKmkG,IAAIxY,YACToY,EAAarhE,IAAI1iC,KAAKqkG,UACtBrkG,KAAKmkG,IAAIxY,WAAW3rF,KAAKqkG,SAE7BrkG,KAAKqkG,QAAU,IAEnBhD,EAAOriG,UAAU2sF,WAAa,SAAUvqF,GASpC,GARApB,KAAK8kG,eAAe,GAChB9kG,KAAKykG,oBACLrjG,EAAOA,EAAK3D,gBAEZumG,EAAuBthE,IAAIthC,IAC3B6iG,EAAwBvhE,IAAIthC,KAC5BpB,KAAKwkG,eAAet3F,OAEpBlN,KAAK8D,MAAMxD,SACVN,KAAK/H,QAAQ2xF,SAAYma,EAAarhE,IAAIthC,GAkBrCpB,KAAK/H,QAAQ2xF,SAAqB,OAATxoF,GAA0B,MAATA,IAChDpB,KAAKklG,cAAc9jG,GACnBpB,KAAKolG,uBApB8C,CACnD,IAAIl9B,EAAMloE,KAAK8D,MAAM2hE,YAAYrkE,GACjC,IAAa,IAAT8mE,EACA,GAAIloE,KAAKmkG,IAAIxY,WAET,IADAzjB,EAAMloE,KAAK8D,MAAMxD,OAAS4nE,EACnBA,KAEHloE,KAAKmkG,IAAIxY,WAAW3rF,KAAK8D,MAAMoJ,YAInClN,KAAK8D,MAAMxD,OAAS4nE,MAEV,MAAT9mE,GAAiBpB,KAAK/H,QAAQ2xF,UACnC5pF,KAAKklG,cAAc9jG,GACnBpB,KAAKolG,qBAQjB/D,EAAOriG,UAAUqmG,iBAAmB,WAC5BrlG,KAAK/H,QAAQ2xF,SACb5pF,KAAK/H,QAAQqtG,sBACbtlG,KAAKwkG,eAAexkG,KAAKwkG,eAAelkG,OAAS,GACjDN,KAAKolG,kBAGLplG,KAAKmlG,gBAGb9D,EAAOriG,UAAUomG,gBAAkB,WAC/B,IAAIvmF,EAAIkJ,EACJ3mB,EAAOpB,KAAKqkG,QAChBrkG,KAAKmlG,eAKDnlG,KAAK8D,MAAM9D,KAAK8D,MAAMxD,OAAS,KAAOc,IACA,QAArC2mB,GAAMlJ,EAAK7e,KAAKmkG,KAAKxY,kBAA+B,IAAP5jE,GAAyBA,EAAG7mB,KAAK2d,EAAIzd,GACnFpB,KAAK8D,MAAMoJ,QAGnBm0F,EAAOriG,UAAUumG,aAAe,SAAUnkG,GAClCpB,KAAK2kG,0BACLvjG,EAAOA,EAAK3D,eAEhBuC,KAAKskG,WAAaljG,GAEtBigG,EAAOriG,UAAUwmG,aAAe,SAAU5pG,GACtCoE,KAAKukG,aAAe3oG,GAExBylG,EAAOriG,UAAUymG,YAAc,SAAU1K,GACrC,IAAIl8E,EAAIkJ,EAC+B,QAAtCA,GAAMlJ,EAAK7e,KAAKmkG,KAAKuB,mBAAgC,IAAP39E,GAAyBA,EAAG7mB,KAAK2d,EAAI7e,KAAKskG,WAAYtkG,KAAKukG,YAAaxJ,GACnH/6F,KAAK+pF,UACJ/lF,OAAOhF,UAAUuP,eAAerN,KAAKlB,KAAK+pF,QAAS/pF,KAAKskG,cACzDtkG,KAAK+pF,QAAQ/pF,KAAKskG,YAActkG,KAAKukG,aAEzCvkG,KAAKskG,WAAa,GAClBtkG,KAAKukG,YAAc,IAEvBlD,EAAOriG,UAAU2mG,mBAAqB,SAAU/pG,GAC5C,IAAIu0F,EAAMv0F,EAAMwP,OAAO84F,GACnB9iG,EAAO+uF,EAAM,EAAIv0F,EAAQA,EAAMsQ,OAAO,EAAGikF,GAI7C,OAHInwF,KAAKykG,oBACLrjG,EAAOA,EAAK3D,eAET2D,GAEXigG,EAAOriG,UAAU4mG,cAAgB,SAAUhqG,GACvC,GAAIoE,KAAKmkG,IAAI7X,wBAAyB,CAClC,IAAIuZ,EAAS7lG,KAAK2lG,mBAAmB/pG,GACrCoE,KAAKmkG,IAAI7X,wBAAwB,IAAMuZ,EAAQ,IAAMjqG,KAG7DylG,EAAOriG,UAAUstF,wBAA0B,SAAU1wF,GACjD,GAAIoE,KAAKmkG,IAAI7X,wBAAyB,CAClC,IAAIwZ,EAAS9lG,KAAK2lG,mBAAmB/pG,GACrCoE,KAAKmkG,IAAI7X,wBAAwB,IAAMwZ,EAAQ,IAAMlqG,KAG7DylG,EAAOriG,UAAUitF,UAAY,SAAUrwF,GACnC,IAAIijB,EAAIkJ,EAAIq8E,EAAI/vB,EAChBr0E,KAAK8kG,eAAe,GACiB,QAApC/8E,GAAMlJ,EAAK7e,KAAKmkG,KAAKlY,iBAA8B,IAAPlkE,GAAyBA,EAAG7mB,KAAK2d,EAAIjjB,GAC1C,QAAvCy4E,GAAM+vB,EAAKpkG,KAAKmkG,KAAKjY,oBAAiC,IAAP7X,GAAyBA,EAAGnzE,KAAKkjG,IAErF/C,EAAOriG,UAAU+mG,QAAU,SAAUnqG,GACjC,IAAIijB,EAAIkJ,EAAIq8E,EAAI/vB,EAAIlZ,EAAI6qC,EACxBhmG,KAAK8kG,eAAe,GAChB9kG,KAAK/H,QAAQ2xF,SAAW5pF,KAAK/H,QAAQguG,gBACG,QAAvCl+E,GAAMlJ,EAAK7e,KAAKmkG,KAAKhY,oBAAiC,IAAPpkE,GAAyBA,EAAG7mB,KAAK2d,GAC/C,QAAjCw1D,GAAM+vB,EAAKpkG,KAAKmkG,KAAKnY,cAA2B,IAAP3X,GAAyBA,EAAGnzE,KAAKkjG,EAAIxoG,GACzC,QAArCoqG,GAAM7qC,EAAKn7D,KAAKmkG,KAAK9X,kBAA+B,IAAP2Z,GAAyBA,EAAG9kG,KAAKi6D,IAG/En7D,KAAKisF,UAAU,UAAYrwF,EAAQ,OAG3CylG,EAAOriG,UAAUtC,QAAU,SAAUvE,GACjC,IAAI0mB,EAAIkJ,EAC2B,QAAlCA,GAAMlJ,EAAK7e,KAAKmkG,KAAKznG,eAA4B,IAAPqrB,GAAyBA,EAAG7mB,KAAK2d,EAAI1mB,IAEpFkpG,EAAOriG,UAAUysF,MAAQ,WACrB,IAAI5sE,EAAIkJ,EACR,GAAI/nB,KAAKmkG,IAAIxY,WACT,IAAK,IAAIvrF,EAAIJ,KAAK8D,MAAMxD,OAAQF,EAAI,EAAGJ,KAAKmkG,IAAIxY,WAAW3rF,KAAK8D,QAAQ1D,KAG3C,QAAhC2nB,GAAMlJ,EAAK7e,KAAKmkG,KAAK1Y,aAA0B,IAAP1jE,GAAyBA,EAAG7mB,KAAK2d,IAK9EwiF,EAAOriG,UAAUwvD,MAAQ,WACrB,IAAI3vC,EAAIkJ,EAAIq8E,EAAI/vB,EACmB,QAAlCtsD,GAAMlJ,EAAK7e,KAAKmkG,KAAK3Y,eAA4B,IAAPzjE,GAAyBA,EAAG7mB,KAAK2d,GAC5E7e,KAAK4kG,UAAUp2C,QACfxuD,KAAKqkG,QAAU,GACfrkG,KAAKskG,WAAa,GAClBtkG,KAAK+pF,QAAU,KACf/pF,KAAK8D,MAAQ,GAC2B,QAAvCuwE,GAAM+vB,EAAKpkG,KAAKmkG,KAAK5Y,oBAAiC,IAAPlX,GAAyBA,EAAGnzE,KAAKkjG,EAAIpkG,OAQzFqhG,EAAOriG,UAAUknG,cAAgB,SAAUpsG,GACvCkG,KAAKwuD,QACLxuD,KAAK09D,IAAI5jE,IAObunG,EAAOriG,UAAUyK,MAAQ,SAAU08F,GAC/BnmG,KAAK4kG,UAAUn7F,MAAM08F,IAOzB9E,EAAOriG,UAAU0+D,IAAM,SAAUyoC,GAC7BnmG,KAAK4kG,UAAUlnC,IAAIyoC,IAKvB9E,EAAOriG,UAAUonG,MAAQ,WACrBpmG,KAAK4kG,UAAUwB,SAKnB/E,EAAOriG,UAAUqnG,OAAS,WACtBrmG,KAAK4kG,UAAUyB,UAQnBhF,EAAOriG,UAAUsnG,WAAa,SAAUH,GACpCnmG,KAAKyJ,MAAM08F,IAQf9E,EAAOriG,UAAU9E,KAAO,SAAUisG,GAC9BnmG,KAAK09D,IAAIyoC,IAEN9E,EAtRgB,GAwR3B3pG,EAAQ2pG,OAASA,sCC3XjB,IAAIpP,EAAmBjyF,MAAQA,KAAKiyF,iBAAoB,SAAUvJ,GAC9D,OAAQA,GAAOA,EAAIjK,WAAciK,EAAM,CAAE,QAAWA,IAExD1kF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtD,IAAIy3F,EAAqBpB,EAAgB,EAAQ,KAC7CiB,EAAkBjB,EAAgB,EAAQ,QAC1CkB,EAAgBlB,EAAgB,EAAQ,QACxCmB,EAAanB,EAAgB,EAAQ,OACzC,SAASsU,EAAWtlG,GAChB,MAAa,MAANA,GAAmB,OAANA,GAAoB,OAANA,GAAoB,OAANA,GAAoB,OAANA,EAElE,SAASulG,EAAavlG,GAClB,OAAQA,GAAK,KAAOA,GAAK,KAASA,GAAK,KAAOA,GAAK,IAEvD,SAASwlG,EAAYC,EAAOC,EAASC,GACjC,IAAIC,EAAQH,EAAMjpG,cAClB,OAAIipG,IAAUG,EACH,SAAUxe,EAAGpnF,GACZA,IAAM4lG,EACNxe,EAAEye,OAASH,GAGXte,EAAEye,OAASF,EACXve,EAAE0e,WAIP,SAAU1e,EAAGpnF,GACZA,IAAM4lG,GAAS5lG,IAAMylG,EACrBre,EAAEye,OAASH,GAGXte,EAAEye,OAASF,EACXve,EAAE0e,WAId,SAASC,EAAuBN,EAAOO,GACnC,IAAIJ,EAAQH,EAAMjpG,cAClB,OAAO,SAAU4qF,EAAGpnF,GACZA,IAAM4lG,GAAS5lG,IAAMylG,EACrBre,EAAEye,OAASG,GAGX5e,EAAEye,OAAS,EACXze,EAAE0e,WAId,IAAIG,EAAoBT,EAAY,IAAK,GAAuB,IAC5DU,EAAoBV,EAAY,IAAK,GAAuB,IAC5DW,EAAoBX,EAAY,IAAK,GAAuB,IAC5DY,EAAoBZ,EAAY,IAAK,GAAuB,IAC5Da,EAAoBb,EAAY,IAAK,GAAuB,IAC5Dc,EAAqBP,EAAuB,IAAK,IACjDQ,EAAqBR,EAAuB,IAAK,IACjDS,EAAqBT,EAAuB,IAAK,IACjDU,EAAqBV,EAAuB,IAAK,IACjDW,EAAoBlB,EAAY,IAAK,GAAuB,GAC5DmB,EAAoBnB,EAAY,IAAK,GAAuB,GAC5DoB,EAAoBpB,EAAY,IAAK,GAAuB,GAC5DqB,EAAoBrB,EAAY,IAAK,GAAuB,GAC5DsB,EAAoBf,EAAuB,IAAK,IAChDgB,EAAoBhB,EAAuB,IAAK,IAChDiB,EAAoBjB,EAAuB,IAAK,IAChDkB,EAAmBzB,EAAY,IAAK,GAAsB,GAC1D0B,EAAmB1B,EAAY,IAAK,GAAsB,GAC1D2B,EAAmB3B,EAAY,IAAK,GAAsB,GAC1D4B,EAAsBrB,EAAuB,IAAK,IAClDsB,EAAoBtB,EAAuB,IAAK,IAChDuB,EAAoBvB,EAAuB,IAAK,IAChDwB,EAAoBxB,EAAuB,IAAK,IAChDyB,EAAwBhC,EAAY,IAAK,GAAsB,GAC/DiC,EAAmBjC,EAAY,IAAK,GAAsB,GAC1DkC,EAAmBlC,EAAY,IAAK,GAAsB,GAC1DmC,EAAmBnC,EAAY,IAAK,GAAsB,GAC1DoC,EAAoBpC,EAAY,IAAK,GAA8B,IACnEqC,EAA2BrC,EAAY,IAAK,GAAsB,IAClE5B,EAA2B,WAC3B,SAASA,EAAU5sG,EAASksG,GACxB,IAAItlF,EAEJ7e,KAAK8mG,OAAS,EAEd9mG,KAAKsH,OAAS,GAEdtH,KAAKglG,aAAe,EAEpBhlG,KAAK+mG,OAAS,EAKd/mG,KAAK+oG,aAAe,EAEpB/oG,KAAKgpG,UAAY,EAEjBhpG,KAAKipG,QAAU,EAEfjpG,KAAKkpG,SAAU,EAEflpG,KAAKmpG,OAAQ,EACbnpG,KAAKmkG,IAAMA,EACXnkG,KAAK4pF,WAAa3xF,aAAyC,EAASA,EAAQ2xF,SAC5E5pF,KAAKiqF,eAAqG,QAAnFprE,EAAK5mB,aAAyC,EAASA,EAAQgyF,sBAAmC,IAAPprE,GAAgBA,EAiyBtI,OA/xBAgmF,EAAU7lG,UAAUwvD,MAAQ,WACxBxuD,KAAK8mG,OAAS,EACd9mG,KAAKsH,OAAS,GACdtH,KAAKglG,aAAe,EACpBhlG,KAAK+mG,OAAS,EACd/mG,KAAK+oG,aAAe,EACpB/oG,KAAKgpG,UAAY,EACjBhpG,KAAKipG,QAAU,EACfjpG,KAAKkpG,SAAU,EACflpG,KAAKmpG,OAAQ,GAEjBtE,EAAU7lG,UAAUyK,MAAQ,SAAU08F,GAC9BnmG,KAAKmpG,OACLnpG,KAAKmkG,IAAIznG,QAAQtE,MAAM,yBAC3B4H,KAAKsH,QAAU6+F,EACfnmG,KAAKoI,SAETy8F,EAAU7lG,UAAU0+D,IAAM,SAAUyoC,GAC5BnmG,KAAKmpG,OACLnpG,KAAKmkG,IAAIznG,QAAQtE,MAAM,uBACvB+tG,GACAnmG,KAAKyJ,MAAM08F,GACfnmG,KAAKmpG,OAAQ,EACTnpG,KAAKkpG,SACLlpG,KAAKwiE,UAEbqiC,EAAU7lG,UAAUonG,MAAQ,WACxBpmG,KAAKkpG,SAAU,GAEnBrE,EAAU7lG,UAAUqnG,OAAS,WACzBrmG,KAAKkpG,SAAU,EACXlpG,KAAK+mG,OAAS/mG,KAAKsH,OAAOhH,QAC1BN,KAAKoI,QAELpI,KAAKmpG,OACLnpG,KAAKwiE,UAMbqiC,EAAU7lG,UAAUimG,iBAAmB,WACnC,OAAOjlG,KAAK+oG,aAAe/oG,KAAK+mG,QAEpClC,EAAU7lG,UAAUoqG,UAAY,SAAUnoG,GAC5B,MAANA,GACIjB,KAAK+mG,OAAS/mG,KAAKglG,cACnBhlG,KAAKmkG,IAAInY,OAAOhsF,KAAKqpG,cAEzBrpG,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,SAEpB/mG,KAAKiqF,gBACJ,MAANhpF,GACkB,IAAjBjB,KAAKipG,SAA6C,IAAjBjpG,KAAKipG,UACnCjpG,KAAK+mG,OAAS/mG,KAAKglG,cACnBhlG,KAAKmkG,IAAInY,OAAOhsF,KAAKqpG,cAEzBrpG,KAAKgpG,UAAY,EACjBhpG,KAAK8mG,OAAS,GACd9mG,KAAKglG,aAAehlG,KAAK+mG,SASjClC,EAAU7lG,UAAUsqG,eAAiB,SAAUroG,GAC3C,OAAQulG,EAAavlG,IAChBjB,KAAK4pF,UAAY2c,EAAWtlG,IAAY,MAANA,GAAmB,MAANA,GAExD4jG,EAAU7lG,UAAUuqG,mBAAqB,SAAUtoG,GACrC,MAANA,EACAjB,KAAK8mG,OAAS,EAEH,MAAN7lG,GACLjB,KAAKmkG,IAAInY,OAAOhsF,KAAKqpG,cACrBrpG,KAAKglG,aAAehlG,KAAK+mG,QAEd,MAAN9lG,GACY,IAAjBjB,KAAKipG,SACL1C,EAAWtlG,GACXjB,KAAK8mG,OAAS,EAEH,MAAN7lG,GACLjB,KAAK8mG,OAAS,GACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,GAEvB,MAAN9lG,GACLjB,KAAK8mG,OAAS,GACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,GAE5B/mG,KAAKspG,eAAeroG,IAI1BjB,KAAK8mG,OACA9mG,KAAK4pF,SAAkB,MAAN3oF,GAAmB,MAANA,EAExBjB,KAAK4pF,SAAkB,MAAN3oF,GAAmB,MAANA,EAE3B,EADA,GAFJ,GAIVjB,KAAKglG,aAAehlG,KAAK+mG,QATzB/mG,KAAK8mG,OAAS,GAYtBjC,EAAU7lG,UAAUwqG,eAAiB,SAAUvoG,IACjC,MAANA,GAAmB,MAANA,GAAaslG,EAAWtlG,MACrCjB,KAAKypG,UAAU,iBACfzpG,KAAK8mG,OAAS,EACd9mG,KAAK+mG,WAGblC,EAAU7lG,UAAU0qG,0BAA4B,SAAUzoG,GAClDslG,EAAWtlG,KAGA,MAANA,EACLjB,KAAK8mG,OAAS,EAEQ,IAAjB9mG,KAAKipG,QACW,IAAjBjpG,KAAKipG,SAAoC,MAANhoG,GAAmB,MAANA,EAG1B,IAAjBjB,KAAKipG,SACH,MAANhoG,GAAmB,MAANA,GAIdjB,KAAK8mG,OAAS,EACd9mG,KAAK+mG,UAJL/mG,KAAK8mG,OAAS,GAJd9mG,KAAK8mG,OAAS,GAWZ9mG,KAAKspG,eAAeroG,IAK1BjB,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,SALzB/mG,KAAK8mG,OAAS,GACd9mG,KAAKglG,aAAehlG,KAAK+mG,UAOjClC,EAAU7lG,UAAU2qG,sBAAwB,SAAU1oG,IACxC,MAANA,GAAaslG,EAAWtlG,MACxBjB,KAAKypG,UAAU,cACfzpG,KAAK8mG,OAAS,EACd9mG,KAAK+mG,WAGblC,EAAU7lG,UAAU4qG,yBAA2B,SAAU3oG,GAE3C,MAANA,IACAjB,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,IAG1ClC,EAAU7lG,UAAU6qG,yBAA2B,SAAU5oG,GAC3C,MAANA,GACAjB,KAAKmkG,IAAIgB,eACTnlG,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,GAEvB,MAAN9lG,EACLjB,KAAK8mG,OAAS,EAERP,EAAWtlG,KACjBjB,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,SAGjClC,EAAU7lG,UAAU8qG,sBAAwB,SAAU7oG,GACxC,MAANA,GACAjB,KAAKmkG,IAAIkB,mBACTrlG,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,EAClC/mG,KAAKipG,QAAU,GAET1C,EAAWtlG,KACjBjB,KAAK8mG,OAAS,EACd9mG,KAAK+mG,WAGblC,EAAU7lG,UAAU+qG,qBAAuB,SAAU9oG,IACvC,MAANA,GAAmB,MAANA,GAAmB,MAANA,GAAaslG,EAAWtlG,MAClDjB,KAAKmkG,IAAIoB,aAAavlG,KAAKqpG,cAC3BrpG,KAAKglG,cAAgB,EACrBhlG,KAAK8mG,OAAS,GACd9mG,KAAK+mG,WAGblC,EAAU7lG,UAAUgrG,wBAA0B,SAAU/oG,GAC1C,MAANA,EACAjB,KAAK8mG,OAAS,GAEH,MAAN7lG,GAAmB,MAANA,GAClBjB,KAAKmkG,IAAIsB,iBAAYpoG,GACrB2C,KAAK8mG,OAAS,EACd9mG,KAAK+mG,UAECR,EAAWtlG,KACjBjB,KAAKmkG,IAAIsB,iBAAYpoG,GACrB2C,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,SAGjClC,EAAU7lG,UAAUirG,0BAA4B,SAAUhpG,GAC5C,MAANA,GACAjB,KAAK8mG,OAAS,GACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,GAEvB,MAAN9lG,GACLjB,KAAK8mG,OAAS,GACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,GAE5BR,EAAWtlG,KACjBjB,KAAK8mG,OAAS,GACd9mG,KAAKglG,aAAehlG,KAAK+mG,OACzB/mG,KAAK+mG,WAGblC,EAAU7lG,UAAUkrG,uBAAyB,SAAUjpG,EAAG85F,GAClD95F,IAAM85F,GACN/6F,KAAKypG,UAAU,gBACfzpG,KAAKmkG,IAAIsB,YAAY1K,GACrB/6F,KAAK8mG,OAAS,GAET9mG,KAAKiqF,gBAAwB,MAANhpF,IAC5BjB,KAAKypG,UAAU,gBACfzpG,KAAKgpG,UAAYhpG,KAAK8mG,OACtB9mG,KAAK8mG,OAAS,GACd9mG,KAAKglG,aAAehlG,KAAK+mG,SAGjClC,EAAU7lG,UAAUmrG,kCAAoC,SAAUlpG,GAC9DjB,KAAKkqG,uBAAuBjpG,EAAG,MAEnC4jG,EAAU7lG,UAAUorG,kCAAoC,SAAUnpG,GAC9DjB,KAAKkqG,uBAAuBjpG,EAAG,MAEnC4jG,EAAU7lG,UAAUqrG,8BAAgC,SAAUppG,GACtDslG,EAAWtlG,IAAY,MAANA,GACjBjB,KAAKypG,UAAU,gBACfzpG,KAAKmkG,IAAIsB,YAAY,MACrBzlG,KAAK8mG,OAAS,EACd9mG,KAAK+mG,UAEA/mG,KAAKiqF,gBAAwB,MAANhpF,IAC5BjB,KAAKypG,UAAU,gBACfzpG,KAAKgpG,UAAYhpG,KAAK8mG,OACtB9mG,KAAK8mG,OAAS,GACd9mG,KAAKglG,aAAehlG,KAAK+mG,SAGjClC,EAAU7lG,UAAUsrG,uBAAyB,SAAUrpG,GACnDjB,KAAK8mG,OACK,MAAN7lG,EACM,GACM,MAANA,EACI,GACA,IAElB4jG,EAAU7lG,UAAUurG,mBAAqB,SAAUtpG,GACrC,MAANA,IACAjB,KAAKmkG,IAAIyB,cAAc5lG,KAAKqpG,cAC5BrpG,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,IAG1ClC,EAAU7lG,UAAUwrG,6BAA+B,SAAUvpG,GAC/C,MAANA,IACAjB,KAAKmkG,IAAI7X,wBAAwBtsF,KAAKqpG,cACtCrpG,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,IAG1ClC,EAAU7lG,UAAUyrG,mBAAqB,SAAUxpG,GACrC,MAANA,GACAjB,KAAK8mG,OAAS,GACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,GAGlC/mG,KAAK8mG,OAAS,IAGtBjC,EAAU7lG,UAAU0rG,eAAiB,SAAUzpG,GACjC,MAANA,IACAjB,KAAK8mG,OAAS,KAEtBjC,EAAU7lG,UAAU2rG,sBAAwB,SAAU1pG,GACxC,MAANA,IACAjB,KAAKmkG,IAAIlY,UAAUjsF,KAAKsH,OAAOqgB,UAAU3nB,KAAKglG,aAAchlG,KAAK+mG,SACjE/mG,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,IAG1ClC,EAAU7lG,UAAU4rG,mBAAqB,SAAU3pG,GAE3CjB,KAAK8mG,OADC,MAAN7lG,EACc,GAGA,IAGtB4jG,EAAU7lG,UAAU6rG,mBAAqB,SAAU5pG,GACrC,MAANA,GAEAjB,KAAKmkG,IAAIlY,UAAUjsF,KAAKsH,OAAOqgB,UAAU3nB,KAAKglG,aAAchlG,KAAK+mG,OAAS,IAC1E/mG,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,GAEvB,MAAN9lG,IACLjB,KAAK8mG,OAAS,KAItBjC,EAAU7lG,UAAU8rG,kBAAoB,SAAU7pG,GACpC,MAANA,GACAjB,KAAK8mG,OAAS,GACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,IAGlC/mG,KAAK8mG,OAAS,GACd9mG,KAAK+mG,WAGblC,EAAU7lG,UAAU+rG,aAAe,SAAU9pG,GAC/B,MAANA,IACAjB,KAAK8mG,OAAS,KAEtBjC,EAAU7lG,UAAUgsG,iBAAmB,SAAU/pG,GAEzCjB,KAAK8mG,OADC,MAAN7lG,EACc,GAEA,IAEtB4jG,EAAU7lG,UAAUisG,iBAAmB,SAAUhqG,GACnC,MAANA,GAEAjB,KAAKmkG,IAAI4B,QAAQ/lG,KAAKsH,OAAOqgB,UAAU3nB,KAAKglG,aAAchlG,KAAK+mG,OAAS,IACxE/mG,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAAS,GAEvB,MAAN9lG,IACLjB,KAAK8mG,OAAS,KAItBjC,EAAU7lG,UAAUksG,oBAAsB,SAAUjqG,GACtC,MAANA,GAAmB,MAANA,EACbjB,KAAK8mG,OAAS,GAEH,MAAN7lG,GAAmB,MAANA,EAClBjB,KAAK8mG,OAAS,IAGd9mG,KAAK8mG,OAAS,EACd9mG,KAAK+mG,WAGblC,EAAU7lG,UAAUmsG,uBAAyB,SAAUlqG,GAC9B,IAAjBjB,KAAKipG,SAAqC,MAANhoG,GAAmB,MAANA,EAG3B,IAAjBjB,KAAKipG,SAAoC,MAANhoG,GAAmB,MAANA,EAIrDjB,KAAK8mG,OAAS,EAHd9mG,KAAK8mG,OAAS,GAHd9mG,KAAK8mG,OAAS,IAQtBjC,EAAU7lG,UAAUosG,uBAAyB,SAAUnqG,EAAGgoG,IAC5C,MAANhoG,GAAmB,MAANA,GAAaslG,EAAWtlG,MACrCjB,KAAKipG,QAAUA,GAEnBjpG,KAAK8mG,OAAS,EACd9mG,KAAK+mG,UAETlC,EAAU7lG,UAAUqsG,sBAAwB,SAAUpqG,EAAGqqG,GAC3C,MAANrqG,GAAaslG,EAAWtlG,IACxBjB,KAAKipG,QAAU,EACfjpG,KAAK8mG,OAAS,EACd9mG,KAAKglG,aAAehlG,KAAK+mG,OAASuE,EAClCtrG,KAAK+mG,UAGL/mG,KAAK8mG,OAAS,GAGtBjC,EAAU7lG,UAAUusG,iBAAmB,SAAU74F,GAG7C,QAFY,IAARA,IAAkBA,EAAM1S,KAAK4pF,QAAUwJ,EAAWpV,QAAUkV,EAAgBlV,SAE5Eh+E,KAAKglG,aAAe,EAAIhlG,KAAK+mG,OAAQ,CACrC,IAAIt3B,EAASzvE,KAAKsH,OAAOqgB,UAAU3nB,KAAKglG,aAAe,EAAGhlG,KAAK+mG,QAC3D/iG,OAAOhF,UAAUuP,eAAerN,KAAKwR,EAAK+8D,KAC1CzvE,KAAKwrG,YAAY94F,EAAI+8D,IACrBzvE,KAAKglG,aAAehlG,KAAK+mG,OAAS,KAK9ClC,EAAU7lG,UAAUysG,kBAAoB,WAIpC,IAHA,IAAIlwC,EAAQv7D,KAAKglG,aAAe,EAE5BzqF,EAAQ9T,KAAKkM,IAAI3S,KAAK+mG,OAASxrC,EAAO,GACnChhD,GAAS,GAAG,CAEf,IAAIk1D,EAASzvE,KAAKsH,OAAO4E,OAAOqvD,EAAOhhD,GACvC,GAAIvW,OAAOhF,UAAUuP,eAAerN,KAAKiyF,EAAcnV,QAASvO,GAG5D,OAFAzvE,KAAKwrG,YAAYrY,EAAcnV,QAAQvO,SACvCzvE,KAAKglG,cAAgBzqF,EAAQ,GAGjCA,MAGRsqF,EAAU7lG,UAAU0sG,mBAAqB,SAAUzqG,GACrC,MAANA,GACAjB,KAAKurG,mBAEkB,IAAnBvrG,KAAKgpG,WACLhpG,KAAKglG,aAAe,EAAIhlG,KAAK+mG,SAC5B/mG,KAAK4pF,SACN5pF,KAAKyrG,oBAETzrG,KAAK8mG,OAAS9mG,KAAKgpG,YAEb/nG,EAAI,KAAOA,EAAI,OAASulG,EAAavlG,KACvCjB,KAAK4pF,SAAW5pF,KAAKglG,aAAe,IAAMhlG,KAAK+mG,SAGvB,IAAnB/mG,KAAKgpG,UACA,MAAN/nG,GAEAjB,KAAKurG,iBAAiBpY,EAAcnV,SAIxCh+E,KAAKyrG,qBAETzrG,KAAK8mG,OAAS9mG,KAAKgpG,UACnBhpG,KAAK+mG,WAGblC,EAAU7lG,UAAU2sG,oBAAsB,SAAUjqC,EAAQkqC,EAAMh5B,GAC9D,IAAIoyB,EAAehlG,KAAKglG,aAAetjC,EACvC,GAAIsjC,IAAiBhlG,KAAK+mG,OAAQ,CAE9B,IAAIt3B,EAASzvE,KAAKsH,OAAOqgB,UAAUq9E,EAAchlG,KAAK+mG,QAClDl7F,EAASq9B,SAASumC,EAAQm8B,GAC9B5rG,KAAKwrG,YAAYnY,EAAmBrV,QAAQnyE,IAC5C7L,KAAKglG,aAAepyB,EAAS5yE,KAAK+mG,OAAS,EAAI/mG,KAAK+mG,OAExD/mG,KAAK8mG,OAAS9mG,KAAKgpG,WAEvBnE,EAAU7lG,UAAU6sG,qBAAuB,SAAU5qG,GACvC,MAANA,EACAjB,KAAK2rG,oBAAoB,EAAG,IAAI,IAE3B1qG,EAAI,KAAOA,EAAI,OACfjB,KAAK4pF,QAIN5pF,KAAK8mG,OAAS9mG,KAAKgpG,UAHnBhpG,KAAK2rG,oBAAoB,EAAG,IAAI,GAKpC3rG,KAAK+mG,WAGblC,EAAU7lG,UAAU8sG,iBAAmB,SAAU7qG,GACnC,MAANA,EACAjB,KAAK2rG,oBAAoB,EAAG,IAAI,IAE1B1qG,EAAI,KAAOA,EAAI,OACpBA,EAAI,KAAOA,EAAI,OACfA,EAAI,KAAOA,EAAI,OACXjB,KAAK4pF,QAIN5pF,KAAK8mG,OAAS9mG,KAAKgpG,UAHnBhpG,KAAK2rG,oBAAoB,EAAG,IAAI,GAKpC3rG,KAAK+mG,WAGblC,EAAU7lG,UAAU+sG,QAAU,WACtB/rG,KAAKglG,aAAe,GACpBhlG,KAAKsH,OAAS,GACdtH,KAAK+oG,cAAgB/oG,KAAK+mG,OAC1B/mG,KAAK+mG,OAAS,GAET/mG,KAAKkpG,UACU,IAAhBlpG,KAAK8mG,QACD9mG,KAAKglG,eAAiBhlG,KAAK+mG,QAC3B/mG,KAAKmkG,IAAInY,OAAOhsF,KAAKsH,OAAO4E,OAAOlM,KAAKglG,eAE5ChlG,KAAKsH,OAAS,GACdtH,KAAK+oG,cAAgB/oG,KAAK+mG,OAC1B/mG,KAAK+mG,OAAS,GAET/mG,KAAKglG,eAAiBhlG,KAAK+mG,QAEhC/mG,KAAKsH,OAAS,GACdtH,KAAK+oG,cAAgB/oG,KAAK+mG,OAC1B/mG,KAAK+mG,OAAS,IAId/mG,KAAKsH,OAAStH,KAAKsH,OAAO4E,OAAOlM,KAAKglG,cACtChlG,KAAK+mG,QAAU/mG,KAAKglG,aACpBhlG,KAAK+oG,cAAgB/oG,KAAKglG,cAE9BhlG,KAAKglG,aAAe,IAQ5BH,EAAU7lG,UAAUoJ,MAAQ,WACxB,KAAOpI,KAAK+mG,OAAS/mG,KAAKsH,OAAOhH,QAAUN,KAAKkpG,SAAS,CACrD,IAAIjoG,EAAIjB,KAAKsH,OAAOmE,OAAOzL,KAAK+mG,QACZ,IAAhB/mG,KAAK8mG,OACL9mG,KAAKopG,UAAUnoG,GAEM,KAAhBjB,KAAK8mG,OACV9mG,KAAKmqG,kCAAkClpG,GAElB,IAAhBjB,KAAK8mG,OACV9mG,KAAK+pG,qBAAqB9oG,GAEL,KAAhBjB,KAAK8mG,OACV9mG,KAAK0qG,eAAezpG,GAEC,KAAhBjB,KAAK8mG,OACV9mG,KAAK2qG,sBAAsB1pG,GAEN,IAAhBjB,KAAK8mG,OACV9mG,KAAK6pG,yBAAyB5oG,GAET,IAAhBjB,KAAK8mG,OACV9mG,KAAKwpG,eAAevoG,GAEC,IAAhBjB,KAAK8mG,OACV9mG,KAAK2pG,sBAAsB1oG,GAEN,IAAhBjB,KAAK8mG,OACV9mG,KAAKupG,mBAAmBtoG,GAEH,KAAhBjB,KAAK8mG,OACV9mG,KAAKgqG,wBAAwB/oG,GAER,KAAhBjB,KAAK8mG,OACV9mG,KAAKoqG,kCAAkCnpG,GAElB,KAAhBjB,KAAK8mG,OACV9mG,KAAKiqG,0BAA0BhpG,GAEV,IAAhBjB,KAAK8mG,OACV9mG,KAAK0pG,0BAA0BzoG,GAEV,IAAhBjB,KAAK8mG,OACV9mG,KAAK4pG,yBAAyB3oG,GAET,KAAhBjB,KAAK8mG,OACV9mG,KAAKkrG,oBAAoBjqG,GAEJ,KAAhBjB,KAAK8mG,OACV9mG,KAAK4qG,mBAAmB3pG,GAEH,KAAhBjB,KAAK8mG,OACV9mG,KAAKqqG,8BAA8BppG,GAEd,IAAhBjB,KAAK8mG,OACV9mG,KAAK8pG,sBAAsB7oG,GAEN,KAAhBjB,KAAK8mG,OACV9mG,KAAKuqG,mBAAmBtpG,GAEH,KAAhBjB,KAAK8mG,OACV9mG,KAAKsqG,uBAAuBrpG,GAEP,KAAhBjB,KAAK8mG,OACV9mG,KAAK6qG,mBAAmB5pG,GAEH,KAAhBjB,KAAK8mG,OACV9mG,KAAKyqG,mBAAmBxpG,GAEH,KAAhBjB,KAAK8mG,OACV9mG,KAAKmrG,uBAAuBlqG,GAEP,KAAhBjB,KAAK8mG,OACV2B,EAAsBzoG,KAAMiB,GAEP,KAAhBjB,KAAK8mG,OACVa,EAAkB3nG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACVc,EAAkB5nG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACVe,EAAkB7nG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACVS,EAAmBvnG,KAAMiB,GAEJ,KAAhBjB,KAAK8mG,OACVU,EAAmBxnG,KAAMiB,GAEJ,KAAhBjB,KAAK8mG,OACVW,EAAmBznG,KAAMiB,GAEJ,KAAhBjB,KAAK8mG,OACVY,EAAmB1nG,KAAMiB,GAEJ,KAAhBjB,KAAK8mG,OACV9mG,KAAKorG,uBAAuBnqG,EAAG,GAEV,KAAhBjB,KAAK8mG,OACVgB,EAAkB9nG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACV9mG,KAAKqrG,sBAAsBpqG,EAAG,GAET,KAAhBjB,KAAK8mG,OACViB,EAAkB/nG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACV9mG,KAAK+qG,aAAa9pG,GAEG,KAAhBjB,KAAK8mG,OACVkB,EAAkBhoG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACVmB,EAAkBjoG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACV9mG,KAAKorG,uBAAuBnqG,EAAG,GAEV,KAAhBjB,KAAK8mG,OACVoB,EAAiBloG,KAAMiB,GAEF,KAAhBjB,KAAK8mG,OACVqB,EAAiBnoG,KAAMiB,GAEF,KAAhBjB,KAAK8mG,OACVsB,EAAiBpoG,KAAMiB,GAEF,KAAhBjB,KAAK8mG,OACV9mG,KAAKqrG,sBAAsBpqG,EAAG,GAET,KAAhBjB,KAAK8mG,OACVuB,EAAoBroG,KAAMiB,GAEL,KAAhBjB,KAAK8mG,OACVwB,EAAkBtoG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACVyB,EAAkBvoG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACV0B,EAAkBxoG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACV9mG,KAAKorG,uBAAuBnqG,EAAG,GAEV,KAAhBjB,KAAK8mG,OACV4B,EAAiB1oG,KAAMiB,GAEF,KAAhBjB,KAAK8mG,OACV6B,EAAiB3oG,KAAMiB,GAEF,KAAhBjB,KAAK8mG,OACV8B,EAAiB5oG,KAAMiB,GAEF,KAAhBjB,KAAK8mG,OACV9mG,KAAKqrG,sBAAsBpqG,EAAG,GAET,KAAhBjB,KAAK8mG,OACV9mG,KAAKwqG,6BAA6BvpG,GAEb,KAAhBjB,KAAK8mG,OACV9mG,KAAK0rG,mBAAmBzqG,GAEH,KAAhBjB,KAAK8mG,OACVI,EAAkBlnG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACV+B,EAAkB7oG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACVK,EAAkBnnG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACVM,EAAkBpnG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACV9mG,KAAKgrG,iBAAiB/pG,GAED,KAAhBjB,KAAK8mG,OACV9mG,KAAKirG,iBAAiBhqG,GAED,KAAhBjB,KAAK8mG,OACVO,EAAkBrnG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACVQ,EAAkBtnG,KAAMiB,GAEH,KAAhBjB,KAAK8mG,OACV9mG,KAAK8qG,kBAAkB7pG,GAEF,KAAhBjB,KAAK8mG,OACV9mG,KAAK8rG,iBAAiB7qG,GAED,KAAhBjB,KAAK8mG,OACV9mG,KAAK6rG,qBAAqB5qG,GAGL,KAAhBjB,KAAK8mG,OACVgC,EAAyB9oG,KAAMiB,GAG/BjB,KAAKmkG,IAAIznG,QAAQtE,MAAM,kBAAmB4H,KAAK8mG,QAEnD9mG,KAAK+mG,SAET/mG,KAAK+rG,WAETlH,EAAU7lG,UAAUwjE,OAAS,WAErBxiE,KAAKglG,aAAehlG,KAAK+mG,QACzB/mG,KAAKgsG,qBAEThsG,KAAKmkG,IAAI1Y,SAEboZ,EAAU7lG,UAAUgtG,mBAAqB,WACrC,IAAIlyG,EAAOkG,KAAKsH,OAAO4E,OAAOlM,KAAKglG,cACf,KAAhBhlG,KAAK8mG,QACW,KAAhB9mG,KAAK8mG,QACW,KAAhB9mG,KAAK8mG,OACL9mG,KAAKmkG,IAAI4B,QAAQjsG,GAEI,KAAhBkG,KAAK8mG,QACM,KAAhB9mG,KAAK8mG,QACW,KAAhB9mG,KAAK8mG,OACL9mG,KAAKmkG,IAAIlY,UAAUnyF,GAEE,KAAhBkG,KAAK8mG,QAAsC9mG,KAAK4pF,QAOhC,KAAhB5pF,KAAK8mG,QAAwC9mG,KAAK4pF,QAOlC,KAAhB5pF,KAAK8mG,QAAoC9mG,KAAK4pF,QAO9B,IAAhB5pF,KAAK8mG,QACM,IAAhB9mG,KAAK8mG,QACW,KAAhB9mG,KAAK8mG,QACW,KAAhB9mG,KAAK8mG,QACW,IAAhB9mG,KAAK8mG,QACW,KAAhB9mG,KAAK8mG,QACW,KAAhB9mG,KAAK8mG,QACW,KAAhB9mG,KAAK8mG,QACW,IAAhB9mG,KAAK8mG,QACL9mG,KAAKmkG,IAAInY,OAAOlyF,IAfhBkG,KAAK2rG,oBAAoB,EAAG,IAAI,GAC5B3rG,KAAKglG,aAAehlG,KAAK+mG,SACzB/mG,KAAK8mG,OAAS9mG,KAAKgpG,UACnBhpG,KAAKgsG,wBAVThsG,KAAK2rG,oBAAoB,EAAG,IAAI,GAC5B3rG,KAAKglG,aAAehlG,KAAK+mG,SACzB/mG,KAAK8mG,OAAS9mG,KAAKgpG,UACnBhpG,KAAKgsG,wBAVThsG,KAAKyrG,oBACDzrG,KAAKglG,aAAehlG,KAAK+mG,SACzB/mG,KAAK8mG,OAAS9mG,KAAKgpG,UACnBhpG,KAAKgsG,wBAiCjBnH,EAAU7lG,UAAUqqG,WAAa,WAC7B,OAAOrpG,KAAKsH,OAAOqgB,UAAU3nB,KAAKglG,aAAchlG,KAAK+mG,SAEzDlC,EAAU7lG,UAAUyqG,UAAY,SAAUroG,GACtCpB,KAAKmkG,IAAI/iG,GAAMpB,KAAKqpG,cACpBrpG,KAAKglG,cAAgB,GAEzBH,EAAU7lG,UAAUwsG,YAAc,SAAU5vG,GACjB,IAAnBoE,KAAKgpG,UACLhpG,KAAKmkG,IAAIqB,aAAa5pG,GAGtBoE,KAAKmkG,IAAInY,OAAOpwF,IAGjBipG,EA3zBmB,GA6zB9BntG,EAAA,QAAkBmtG,sCC34BlB,IAAIvc,EAAmBtoF,MAAQA,KAAKsoF,kBAAqBtkF,OAAO9E,OAAS,SAAU+gE,EAAGoF,EAAGvX,EAAGy6B,QAC7ElrF,IAAPkrF,IAAkBA,EAAKz6B,GAC3B9pD,OAAOE,eAAe+7D,EAAGsoB,EAAI,CAAE3gB,YAAY,EAAM58C,IAAK,WAAa,OAAOq6C,EAAEvX,OAC3E,SAAUmS,EAAGoF,EAAGvX,EAAGy6B,QACTlrF,IAAPkrF,IAAkBA,EAAKz6B,GAC3BmS,EAAEsoB,GAAMljB,EAAEvX,KAEV06B,EAAsBxoF,MAAQA,KAAKwoF,qBAAwBxkF,OAAO9E,OAAS,SAAU+gE,EAAG92D,GACxFnF,OAAOE,eAAe+7D,EAAG,UAAW,CAAE2H,YAAY,EAAMhsE,MAAOuN,KAC9D,SAAS82D,EAAG92D,GACb82D,EAAW,QAAI92D,IAEfs/E,EAAgBzoF,MAAQA,KAAKyoF,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIjK,WAAY,OAAOiK,EAClC,IAAI36E,EAAS,GACb,GAAW,MAAP26E,EAAa,IAAK,IAAI56B,KAAK46B,EAAe,YAAN56B,GAAmB9pD,OAAOhF,UAAUuP,eAAerN,KAAKwnF,EAAK56B,IAAIw6B,EAAgBv6E,EAAQ26E,EAAK56B,GAEtI,OADA06B,EAAmBz6E,EAAQ26E,GACpB36E,GAEP08E,EAAgBzqF,MAAQA,KAAKyqF,cAAiB,SAASplB,EAAG3tE,GAC1D,IAAK,IAAIg7B,KAAK2yC,EAAa,YAAN3yC,GAAoB1uB,OAAOhF,UAAUuP,eAAerN,KAAKxJ,EAASg7B,IAAI41D,EAAgB5wF,EAAS2tE,EAAG3yC,IAEvHu/D,EAAmBjyF,MAAQA,KAAKiyF,iBAAoB,SAAUvJ,GAC9D,OAAQA,GAAOA,EAAIjK,WAAciK,EAAM,CAAE,QAAWA,IAExD1kF,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IACtDlE,EAAQu0G,WAAav0G,EAAQw0G,eAAiBx0G,EAAQ+oG,SAAW/oG,EAAQixF,YAAcjxF,EAAQmtG,UAAYntG,EAAQy0G,gBAAkBz0G,EAAQ00G,SAAW10G,EAAQ20G,cAAgB30G,EAAQgzF,WAAahzF,EAAQ2pG,YAAS,EACtN,IAAIX,EAAW,EAAQ,OACvB18F,OAAOE,eAAexM,EAAS,SAAU,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO01E,EAASW,UAChG,IAAIzR,EAAe,EAAQ,OAU3B,SAASyc,EAAcvyG,EAAM7B,GACzB,IAAImpG,EAAU,IAAIxR,EAAalF,gBAAWrtF,EAAWpF,GAErD,OADA,IAAIyoG,EAASW,OAAOD,EAASnpG,GAASylE,IAAI5jE,GACnCsnG,EAAQrnB,KAZnB/1E,OAAOE,eAAexM,EAAS,aAAc,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO4kE,EAAalF,cACxG1mF,OAAOE,eAAexM,EAAS,iBAAkB,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAO4kE,EAAalF,cAa5GhzF,EAAQ20G,cAAgBA,EAcxB30G,EAAQ00G,SAHR,SAAkBtyG,EAAM7B,GACpB,OAAOo0G,EAAcvyG,EAAM7B,GAAS2rB,UAcxClsB,EAAQy0G,gBAJR,SAAyBxiE,EAAI1xC,EAASq0G,GAClC,IAAIlL,EAAU,IAAIxR,EAAalF,WAAW/gD,EAAI1xC,EAASq0G,GACvD,OAAO,IAAI5L,EAASW,OAAOD,EAASnpG,IAGxC,IAAIqpG,EAAc,EAAQ,OAC1Bt9F,OAAOE,eAAexM,EAAS,YAAa,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAOinE,EAAgBqP,GAAatjB,WACvH,IAAI2K,EAAcF,EAAa,EAAQ,QACvC/wF,EAAQixF,YAAcA,EAKtB8B,EAAa,EAAQ,OAAkB/yF,GACvCA,EAAQ+oG,SAAWhY,EAAa,EAAQ,QACxC,IAAI8jB,EAAgB,EAAQ,OAC5BvoG,OAAOE,eAAexM,EAAS,aAAc,CAAEkwE,YAAY,EAAM58C,IAAK,WAAc,OAAOuhF,EAAcjM,8BClFzG5oG,EAAQ0F,KAAO,SAAUkK,EAAQo6D,EAAQ8qC,EAAMC,EAAMC,GACnD,IAAIpkG,EAAG+8D,EACHsnC,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACT1sG,EAAIosG,EAAQE,EAAS,EAAK,EAC1BxtE,EAAIstE,GAAQ,EAAI,EAChBn3C,EAAI/tD,EAAOo6D,EAASthE,GAOxB,IALAA,GAAK8+B,EAEL52B,EAAI+sD,GAAM,IAAOy3C,GAAU,EAC3Bz3C,KAAQy3C,EACRA,GAASH,EACFG,EAAQ,EAAGxkG,EAAS,IAAJA,EAAWhB,EAAOo6D,EAASthE,GAAIA,GAAK8+B,EAAG4tE,GAAS,GAKvE,IAHAznC,EAAI/8D,GAAM,IAAOwkG,GAAU,EAC3BxkG,KAAQwkG,EACRA,GAASL,EACFK,EAAQ,EAAGznC,EAAS,IAAJA,EAAW/9D,EAAOo6D,EAASthE,GAAIA,GAAK8+B,EAAG4tE,GAAS,GAEvE,GAAU,IAANxkG,EACFA,EAAI,EAAIukG,MACH,IAAIvkG,IAAMskG,EACf,OAAOvnC,EAAI0nC,IAAsBn6F,KAAdyiD,GAAK,EAAI,GAE5BgQ,GAAQ5+D,KAAKikE,IAAI,EAAG+hC,GACpBnkG,GAAQukG,EAEV,OAAQx3C,GAAK,EAAI,GAAKgQ,EAAI5+D,KAAKikE,IAAI,EAAGpiE,EAAImkG,IAG5C/0G,EAAQ+R,MAAQ,SAAUnC,EAAQ1L,EAAO8lE,EAAQ8qC,EAAMC,EAAMC,GAC3D,IAAIpkG,EAAG+8D,EAAGpkE,EACN0rG,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBjJ,EAAe,KAAT8I,EAAchmG,KAAKikE,IAAI,GAAI,IAAMjkE,KAAKikE,IAAI,GAAI,IAAM,EAC1DtqE,EAAIosG,EAAO,EAAKE,EAAS,EACzBxtE,EAAIstE,EAAO,GAAK,EAChBn3C,EAAIz5D,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ6K,KAAKumG,IAAIpxG,GAEbq+E,MAAMr+E,IAAUA,IAAUgX,KAC5ByyD,EAAI4U,MAAMr+E,GAAS,EAAI,EACvB0M,EAAIskG,IAEJtkG,EAAI7B,KAAKC,MAAMD,KAAK2mB,IAAIxxB,GAAS6K,KAAKwmG,KAClCrxG,GAASqF,EAAIwF,KAAKikE,IAAI,GAAIpiE,IAAM,IAClCA,IACArH,GAAK,IAGLrF,GADE0M,EAAIukG,GAAS,EACNlJ,EAAK1iG,EAEL0iG,EAAKl9F,KAAKikE,IAAI,EAAG,EAAImiC,IAEpB5rG,GAAK,IACfqH,IACArH,GAAK,GAGHqH,EAAIukG,GAASD,GACfvnC,EAAI,EACJ/8D,EAAIskG,GACKtkG,EAAIukG,GAAS,GACtBxnC,GAAMzpE,EAAQqF,EAAK,GAAKwF,KAAKikE,IAAI,EAAG+hC,GACpCnkG,GAAQukG,IAERxnC,EAAIzpE,EAAQ6K,KAAKikE,IAAI,EAAGmiC,EAAQ,GAAKpmG,KAAKikE,IAAI,EAAG+hC,GACjDnkG,EAAI,IAIDmkG,GAAQ,EAAGnlG,EAAOo6D,EAASthE,GAAS,IAAJilE,EAAUjlE,GAAK8+B,EAAGmmC,GAAK,IAAKonC,GAAQ,GAI3E,IAFAnkG,EAAKA,GAAKmkG,EAAQpnC,EAClBsnC,GAAQF,EACDE,EAAO,EAAGrlG,EAAOo6D,EAASthE,GAAS,IAAJkI,EAAUlI,GAAK8+B,EAAG52B,GAAK,IAAKqkG,GAAQ,GAE1ErlG,EAAOo6D,EAASthE,EAAI8+B,IAAU,IAAJm2B,kCCjF5B39D,EAAUD,EAAOC,QAAU,EAAjB,gBACV,QAAqBA,8BCDrBA,EAAiB,QAAI,WAenB,SAASw1G,EAAgBzsG,EAAS0sG,EAAUpnC,EAAOp6D,GACjD3L,KAAKS,QAAWA,EAChBT,KAAKmtG,SAAWA,EAChBntG,KAAK+lE,MAAWA,EAChB/lE,KAAK2L,SAAWA,EAChB3L,KAAKoB,KAAW,cAEuB,mBAA5BhJ,MAAMg1G,mBACfh1G,MAAMg1G,kBAAkBptG,KAAMktG,GAy1ClC,OAv2CA,SAAsBtzB,EAAO91C,GAC3B,SAAS0wB,IAASx0D,KAAK0O,YAAckrE,EACrCplB,EAAKx1D,UAAY8kC,EAAO9kC,UACxB46E,EAAM56E,UAAY,IAAIw1D,EAexB64C,CAAaH,EAAiB90G,OAq1CvB,CACLif,YAAa61F,EACb9kG,MAr1CF,SAAmB+xD,GACjB,IAkKImzC,EAlKAr1G,EAAU6Q,UAAUxI,OAAS,EAAIwI,UAAU,GAAK,GAGhDykG,EAAa,GAEbC,EAAyB,CAAEjyC,MAAOkyC,IAClCC,EAAyBD,GAEzBE,EAAS,SAASC,GACV,MAAO,CACH3vG,KAAU,uBACV2vG,SAAUA,EACVjiG,SAAUA,OAGtBkiG,EAAS,SAASv5F,GACV,IACIlU,EAAGu0D,EAAGm5C,EAAUC,EAAOC,EADvBn4C,EAAS,GAGb,IAAKz1D,EAAI,EAAG0tG,EAAWx5F,EAAKhU,OAAQF,EAAI0tG,EAAU1tG,GAAK,EAGnD,IAAKu0D,EAAI,EAAGq5C,GAFZD,EAAQz5F,EAAKlU,IAEgBE,OAAQq0D,EAAIq5C,EAAUr5C,GAAK,EACpDkB,GAAUk4C,EAAMp5C,GAIxB,OAAOkB,GAEfo4C,EAAS,SAASC,GACV,MAAO,CACHjwG,KAAO,qBACPrC,MAAOsyG,EACPviG,SAAUA,OAGtBwiG,EAAS,qBACTC,EAAS,CAAEnwG,KAAM,QAASrC,MAAO,uBAAwB6H,YAAa,wBACtE4qG,EAAS,IACTC,EAAS,CAAErwG,KAAM,UAAWrC,MAAO,IAAK6H,YAAa,OACrD8qG,EAAS,IACTC,EAAS,CAAEvwG,KAAM,UAAWrC,MAAO,IAAK6H,YAAa,OACrDgrG,EAAS,IACTC,EAAU,CAAEzwG,KAAM,UAAWrC,MAAO,IAAK6H,YAAa,OACtDkrG,EAAU,SAAS/pG,EAAI+2E,GACf,MAAO,CACH19E,KAAQ,kBACR2G,GAAQA,EACR+2E,OAAQA,GAAUA,EAAO,GACzBhwE,SAAUA,OAGtBijG,EAAU,SACVC,EAAU,CAAE5wG,KAAM,UAAWrC,MAAO,SAAU6H,YAAa,YAC3DqrG,EAAU,OACVC,EAAU,CAAE9wG,KAAM,UAAWrC,MAAO,OAAQ6H,YAAa,UACzDurG,EAAU,OACVC,EAAU,CAAEhxG,KAAM,UAAWrC,MAAO,OAAQ6H,YAAa,UACzDyrG,EAAU,SAASjxG,EAAM24C,GACjB,MAAO,CACH34C,KAAOA,EAAO,SACd24C,MAAOA,GAASA,EAAM,GACtBjrC,SAAUA,OAGtBwjG,EAAU,SACVC,EAAU,CAAEnxG,KAAM,UAAWrC,MAAO,SAAU6H,YAAa,YAC3D4rG,EAAU,SAASC,GACX,MAAO,CACHrxG,KAASqxG,EAAYrxG,KACrBsxG,SAAS,EACT7tC,OAAS4tC,EAAY5tC,QAAU,EAC/BzpE,QAASq3G,EAAYr3G,QACrB0T,SAAUA,OAGtB6jG,EAAU,gBACVC,EAAU,CAAExxG,KAAM,UAAWrC,MAAO,gBAAiB6H,YAAa,mBAClEisG,EAAU,SAASJ,GACX,MAAO,CACHrxG,KAASqxG,EAAYrxG,KACrBsxG,SAAS,EACT7tC,OAAS4tC,EAAY5tC,QAAU,EAC/BzpE,QAASq3G,EAAYr3G,QACrB0T,SAAUA,OAGtBgkG,EAAU,SACVC,EAAU,CAAE3xG,KAAM,UAAWrC,MAAO,SAAU6H,YAAa,YAC3DosG,EAAU,SAAS53G,GACX,MAAO,CACHgG,KAAS,eACThG,QAASA,EACT0T,SAAUA,OAGtBmkG,EAAU,IACVC,EAAU,CAAE9xG,KAAM,UAAWrC,MAAO,IAAK6H,YAAa,OACtDusG,EAAU,SAASC,EAAUthG,GACrB,MAAO,CACH1Q,KAAU,wBACVgyG,SAAUA,EACVr0G,MAAU+S,EACVhD,SAAUA,OAGtBukG,EAAU,UACVC,EAAU,CAAElyG,KAAM,UAAWrC,MAAO,UAAW6H,YAAa,aAC5D2sG,EAAU,SAAS1sG,GACX,OAAOA,GAEf2sG,EAAU,SAAS3uC,EAAQzpE,GACnB,MAAO,CACHgG,KAAS,eACTyjE,OAASA,EACTzpE,QAASA,EACT0T,SAAUA,OAGtB2kG,EAAU,CAAEryG,KAAM,QAASwF,YAAa,cACxC8sG,EAAU,aACVC,EAAU,CAAEvyG,KAAM,QAASrC,MAAO,eAAgB6H,YAAa,gBAC/DgtG,EAAU,CAAExyG,KAAM,QAASwF,YAAa,sBACxCitG,EAAU,SACVC,EAAU,CAAE1yG,KAAM,QAASrC,MAAO,QAAS6H,YAAa,SACxDmtG,EAAU,aACVC,EAAU,CAAE5yG,KAAM,QAASrC,MAAO,YAAa6H,YAAa,aAC5DqtG,EAAU,IACVC,EAAU,CAAE9yG,KAAM,UAAWrC,MAAO,IAAK6H,YAAa,OACtDutG,EAAU,SACVC,EAAU,CAAEhzG,KAAM,QAASrC,MAAO,QAAS6H,YAAa,SACxDytG,GAAU,SAASC,GACf,OAAOjoE,SAASioE,EAAQ,KAE5BC,GAAU,0BACVC,GAAU,CAAEpzG,KAAM,QAASrC,MAAO,oCAAqC6H,YAAa,qCACpF6tG,GAAU,OACVC,GAAU,CAAEtzG,KAAM,UAAWrC,MAAO,OAAQ6H,YAAa,cACzD+tG,GAAU,WAAa,MAAO,MAC9BC,GAAU,MACVC,GAAU,CAAEzzG,KAAM,UAAWrC,MAAO,MAAO6H,YAAa,WACxDkuG,GAAU,WAAa,MAAO,OAC9BC,GAAU,MACVC,GAAU,CAAE5zG,KAAM,UAAWrC,MAAO,MAAO6H,YAAa,WACxDquG,GAAU,WAAa,MAAO,KAC9BC,GAAU,MACVC,GAAU,CAAE/zG,KAAM,UAAWrC,MAAO,MAAO6H,YAAa,WACxDwuG,GAAU,WAAa,MAAO,KAC9BC,GAAU,MACVC,GAAU,CAAEl0G,KAAM,UAAWrC,MAAO,MAAO6H,YAAa,WACxD2uG,GAAU,SAASjB,GACX,OAAOphG,OAAOynD,aAAatuB,SAASioE,EAAQ,MAEpDkB,GAAU,SAAS9sB,GAAS,OAAOA,EAAMj8E,KAAK,KAE9CgpG,GAAuB,EACvBC,GAAuB,EACvBC,GAAuB,CAAC,CAAEvmG,KAAM,EAAGwmG,OAAQ,EAAGC,QAAQ,IACtDC,GAAuB,EACvBC,GAAuB,GACvBC,GAAuB,EAI3B,GAAI,cAAe56G,EAAS,CAC1B,KAAMA,EAAQ66G,aAAatF,GACzB,MAAM,IAAIp1G,MAAM,mCAAqCH,EAAQ66G,UAAY,MAG3EpF,EAAwBF,EAAuBv1G,EAAQ66G,WAOzD,SAASnnG,KACP,OAAOonG,GAAoBR,GAAcD,IAqB3C,SAASU,GAAsB9qC,GAC7B,IACIx1C,EAAGugF,EADHp7B,EAAU26B,GAAoBtqC,GAGlC,GAAI2P,EACF,OAAOA,EAGP,IADAnlD,EAAIw1C,EAAM,GACFsqC,GAAoB9/E,IAC1BA,IAUF,IANAmlD,EAAU,CACR5rE,MAFF4rE,EAAU26B,GAAoB9/E,IAEZzmB,KAChBwmG,OAAQ56B,EAAQ46B,OAChBC,OAAQ76B,EAAQ66B,QAGXhgF,EAAIw1C,GAEE,QADX+qC,EAAK94C,EAAM1uD,OAAOinB,KAEXmlD,EAAQ66B,QAAU76B,EAAQ5rE,OAC/B4rE,EAAQ46B,OAAS,EACjB56B,EAAQ66B,QAAS,GACD,OAAPO,GAAsB,WAAPA,GAA0B,WAAPA,GAC3Cp7B,EAAQ5rE,OACR4rE,EAAQ46B,OAAS,EACjB56B,EAAQ66B,QAAS,IAEjB76B,EAAQ46B,SACR56B,EAAQ66B,QAAS,GAGnBhgF,IAIF,OADA8/E,GAAoBtqC,GAAO2P,EACpBA,EAIX,SAASk7B,GAAoBG,EAAUC,GACrC,IAAIC,EAAkBJ,GAAsBE,GACxCG,EAAkBL,GAAsBG,GAE5C,MAAO,CACL53C,MAAO,CACLmG,OAAQwxC,EACRjnG,KAAQmnG,EAAgBnnG,KACxBwmG,OAAQW,EAAgBX,QAE1B/0C,IAAK,CACHgE,OAAQyxC,EACRlnG,KAAQonG,EAAcpnG,KACtBwmG,OAAQY,EAAcZ,SAK5B,SAASa,GAASnG,GACZmF,GAAcK,KAEdL,GAAcK,KAChBA,GAAiBL,GACjBM,GAAsB,IAGxBA,GAAoB/xG,KAAKssG,IAG3B,SAASoG,GAAmB9yG,EAAS0sG,EAAUpnC,EAAOp6D,GA+DpD,OAJiB,OAAbwhG,GA1DJ,SAAyBA,GACvB,IAAI/sG,EAAI,EAYR,IAVA+sG,EAAS16F,MAAK,SAASxD,EAAGC,GACxB,OAAID,EAAExL,YAAcyL,EAAEzL,aACZ,EACCwL,EAAExL,YAAcyL,EAAEzL,YACpB,EAEA,KAIJrD,EAAI+sG,EAAS7sG,QACd6sG,EAAS/sG,EAAI,KAAO+sG,EAAS/sG,GAC/B+sG,EAASpsG,OAAOX,EAAG,GAEnBA,IA0CJozG,CAAgBrG,GAGX,IAAID,EACG,OAAZzsG,EAAmBA,EAzCrB,SAAsB0sG,EAAUpnC,GAkB9B,IAC6B3lE,EADzBqzG,EAAgB,IAAI7wG,MAAMuqG,EAAS7sG,QAGvC,IAAKF,EAAI,EAAGA,EAAI+sG,EAAS7sG,OAAQF,IAC/BqzG,EAAcrzG,GAAK+sG,EAAS/sG,GAAGqD,YAWjC,MAAO,aARQ0pG,EAAS7sG,OAAS,EAC7BmzG,EAAc3tG,MAAM,GAAI,GAAGwD,KAAK,MAC5B,OACAmqG,EAActG,EAAS7sG,OAAS,GACpCmzG,EAAc,IAIkB,SAFxB1tC,EAAQ,IA9BpB,SAAsB1Q,GACpB,SAASq+C,EAAIT,GAAM,OAAOA,EAAG5jG,WAAW,GAAGtI,SAAS,IAAIhL,cAExD,OAAOs5D,EACJrsD,QAAQ,MAAS,QACjBA,QAAQ,KAAS,OACjBA,QAAQ,QAAS,OACjBA,QAAQ,MAAS,OACjBA,QAAQ,MAAS,OACjBA,QAAQ,MAAS,OACjBA,QAAQ,MAAS,OACjBA,QAAQ,4BAA4B,SAASiqG,GAAM,MAAO,OAASS,EAAIT,MACvEjqG,QAAQ,yBAA4B,SAASiqG,GAAM,MAAO,MAASS,EAAIT,MACvEjqG,QAAQ,oBAA4B,SAASiqG,GAAM,MAAO,OAASS,EAAIT,MACvEjqG,QAAQ,oBAA4B,SAASiqG,GAAM,MAAO,MAASS,EAAIT,MAgBjDU,CAAa5tC,GAAS,IAAO,gBAEE,UAQ7B6tC,CAAazG,EAAUpnC,GACpDonC,EACApnC,EACAp6D,GAIJ,SAAS8hG,KAKP,OAFKoG,KAKP,SAASA,KACP,IAAIC,EAAIC,EAAIC,EAKZ,IAHAF,EAAKxB,GACLyB,EAAK,GACLC,EAAKC,KACED,IAAOzG,GACZwG,EAAGlzG,KAAKmzG,GACRA,EAAKC,KAQP,OANIF,IAAOxG,IACTgF,GAAeuB,EACfC,EAAKpG,EAAOoG,IAETA,EAKP,SAASE,KACP,IAAIH,EAOJ,OALAA,EAAKI,QACM3G,IACTuG,EAAKK,MAGAL,EAGT,SAASM,KACP,IAAIN,EAAIC,EAAIC,EAAIK,EAAIC,EAAIC,EAyBxB,GAvBAT,EAAKxB,GACLyB,EAAK,GACLC,EAAK1B,IACL+B,EAAKG,QACMjH,IACT+G,EAAKG,QACMlH,IACTgH,EAAKC,QACMjH,EAETyG,EADAK,EAAK,CAACA,EAAIC,EAAIC,IAWlBjC,GAAc0B,EACdA,EAAKzG,GAEHyG,IAAOzG,EACT,KAAOyG,IAAOzG,GACZwG,EAAGlzG,KAAKmzG,GACRA,EAAK1B,IACL+B,EAAKG,QACMjH,IACT+G,EAAKG,QACMlH,IACTgH,EAAKC,QACMjH,EAETyG,EADAK,EAAK,CAACA,EAAIC,EAAIC,IAWlBjC,GAAc0B,EACdA,EAAKzG,QAITwG,EAAKxG,EAiBP,OAfIwG,IAAOxG,IACTgF,GAAeuB,EACfC,EAAKlG,EAAOkG,KAEdD,EAAKC,KACMxG,IACTuG,EAAKxB,GAGHwB,GAFFC,EAAKW,QACMnH,EACJpzC,EAAMxyC,UAAUmsF,EAAIxB,IAEpByB,GAIFD,EAGT,SAASI,KACP,IAAIJ,EAAIC,EAUR,OARAD,EAAKxB,IACLyB,EAAKK,QACM7G,IACTgF,GAAeuB,EACfC,EAAK9F,EAAO8F,IAETA,EAKP,SAASY,KACP,IAAIb,EAAIC,EAAIC,EAGZ,IADAF,EAAKc,QACMrH,EAAY,CAUrB,GATAuG,EAAKxB,GACLyB,EAAK,GACD5F,EAAO3jG,KAAK2vD,EAAM1uD,OAAO6mG,MAC3B0B,EAAK75C,EAAM1uD,OAAO6mG,IAClBA,OAEA0B,EAAKzG,EACmB,IAApBsF,IAAyBS,GAASlF,IAEpC4F,IAAOzG,EACT,KAAOyG,IAAOzG,GACZwG,EAAGlzG,KAAKmzG,GACJ7F,EAAO3jG,KAAK2vD,EAAM1uD,OAAO6mG,MAC3B0B,EAAK75C,EAAM1uD,OAAO6mG,IAClBA,OAEA0B,EAAKzG,EACmB,IAApBsF,IAAyBS,GAASlF,SAI1C2F,EAAKxG,EAGLuG,EADEC,IAAOxG,EACJpzC,EAAMxyC,UAAUmsF,EAAIxB,IAEpByB,EAIT,OAAOD,EAGT,SAASK,KACP,IAAIL,EAAIC,EAAQM,EAAQE,EAAIM,EAAIC,EAAIC,EA0FpC,OAxFAjB,EAAKxB,GACiC,MAAlCn4C,EAAM9qD,WAAWijG,KACnByB,EAAK1F,EACLiE,OAEAyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAAShF,IAEpCyF,IAAOxG,GACJiH,OACMjH,IACT8G,EAAKM,QACMpH,GACJiH,OACMjH,GACTgH,EAAKjC,GACiC,KAAlCn4C,EAAM9qD,WAAWijG,KACnBuC,EAAKtG,EACL+D,OAEAuC,EAAKtH,EACmB,IAApBsF,IAAyBS,GAAS9E,IAEpCqG,IAAOtH,IACTuH,EAAKN,QACMjH,IACTwH,EAAKC,QACMzH,EAETgH,EADAM,EAAK,CAACA,EAAIC,EAAIC,IAWlBzC,GAAciC,EACdA,EAAKhH,GAEHgH,IAAOhH,IACTgH,EAAK,MAEHA,IAAOhH,IACTsH,EAAKL,QACMjH,GAC6B,MAAlCpzC,EAAM9qD,WAAWijG,KACnBwC,EAAKrG,EACL6D,OAEAwC,EAAKvH,EACmB,IAApBsF,IAAyBS,GAAS5E,IAEpCoG,IAAOvH,GACTgF,GAAeuB,EAEfA,EADAC,EAAKpF,EAAQ0F,EAAIE,KAGjBjC,GAAcwB,EACdA,EAAKvG,KAOT+E,GAAcwB,EACdA,EAAKvG,KAeb+E,GAAcwB,EACdA,EAAKvG,GAGAuG,EAGT,SAASkB,KACP,IAAIlB,EAaJ,OAXAA,EAAKmB,QACM1H,IACTuG,EAAKoB,QACM3H,IACTuG,EAAKqB,QACM5H,IACTuG,EAAKsB,MAKJtB,EAGT,SAASmB,KACP,IAAInB,EAAIC,EAAQM,EAAIC,EAAIC,EAAIM,EA8E5B,OA5EAf,EAAKxB,GACDn4C,EAAMjuD,OAAOomG,GAAa,KAAO1D,GACnCmF,EAAKnF,EACL0D,IAAe,IAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAASzE,IAEpCkF,IAAOxG,IACLpzC,EAAMjuD,OAAOomG,GAAa,KAAOxD,GACnCiF,EAAKjF,EACLwD,IAAe,IAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAASvE,IAEpCgF,IAAOxG,IACLpzC,EAAMjuD,OAAOomG,GAAa,KAAOtD,GACnC+E,EAAK/E,EACLsD,IAAe,IAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAASrE,MAIxC8E,IAAOxG,GACJiH,OACMjH,GACT8G,EAAK/B,GACiC,KAAlCn4C,EAAM9qD,WAAWijG,KACnBgC,EAAK/F,EACL+D,OAEAgC,EAAK/G,EACmB,IAApBsF,IAAyBS,GAAS9E,IAEpC8F,IAAO/G,IACTgH,EAAKC,QACMjH,IACTsH,EAAKJ,QACMlH,EAET8G,EADAC,EAAK,CAACA,EAAIC,EAAIM,IAWlBvC,GAAc+B,EACdA,EAAK9G,GAEH8G,IAAO9G,IACT8G,EAAK,MAEHA,IAAO9G,GACTgF,GAAeuB,EAEfA,EADAC,EAAK7E,EAAQ6E,EAAIM,KAGjB/B,GAAcwB,EACdA,EAAKvG,KAOT+E,GAAcwB,EACdA,EAAKvG,GAGAuG,EAGT,SAASoB,KACP,IAAIpB,EAAIC,EAAQM,EAAQE,EAiDxB,OA/CAT,EAAKxB,GACDn4C,EAAMjuD,OAAOomG,GAAa,KAAOnD,GACnC4E,EAAK5E,EACLmD,IAAe,IAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAASlE,IAEpC2E,IAAOxG,GACJiH,OACMjH,GAC6B,KAAlCpzC,EAAM9qD,WAAWijG,KACnB+B,EAAK9F,EACL+D,OAEA+B,EAAK9G,EACmB,IAApBsF,IAAyBS,GAAS9E,IAEpC6F,IAAO9G,GACJiH,OACMjH,IACTgH,EAAKc,QACM9H,GACTgF,GAAeuB,EAEfA,EADAC,EAAK1E,EAAQkF,KAWjBjC,GAAcwB,EACdA,EAAKvG,KAOT+E,GAAcwB,EACdA,EAAKvG,GAGAuG,EAGT,SAASqB,KACP,IAAIrB,EAAIC,EAAQM,EAAQE,EAiDxB,OA/CAT,EAAKxB,GACDn4C,EAAMjuD,OAAOomG,GAAa,MAAQ9C,GACpCuE,EAAKvE,EACL8C,IAAe,KAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAAS7D,IAEpCsE,IAAOxG,GACJiH,OACMjH,GAC6B,KAAlCpzC,EAAM9qD,WAAWijG,KACnB+B,EAAK9F,EACL+D,OAEA+B,EAAK9G,EACmB,IAApBsF,IAAyBS,GAAS9E,IAEpC6F,IAAO9G,GACJiH,OACMjH,IACTgH,EAAKc,QACM9H,GACTgF,GAAeuB,EAEfA,EADAC,EAAKrE,EAAQ6E,KAWjBjC,GAAcwB,EACdA,EAAKvG,KAOT+E,GAAcwB,EACdA,EAAKvG,GAGAuG,EAGT,SAASsB,KACP,IAAItB,EAAIC,EAAQM,EAAQE,EAAIM,EAU5B,GARAf,EAAKxB,GACDn4C,EAAMjuD,OAAOomG,GAAa,KAAO3C,GACnCoE,EAAKpE,EACL2C,IAAe,IAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAAS1D,IAEpCmE,IAAOxG,EAET,GADKiH,OACMjH,EAQT,GAPsC,KAAlCpzC,EAAM9qD,WAAWijG,KACnB+B,EAAK9F,EACL+D,OAEA+B,EAAK9G,EACmB,IAApBsF,IAAyBS,GAAS9E,IAEpC6F,IAAO9G,EAET,GADKiH,OACMjH,EAAY,CAGrB,GAFAgH,EAAK,IACLM,EAAKS,QACM/H,EACT,KAAOsH,IAAOtH,GACZgH,EAAG1zG,KAAKg0G,GACRA,EAAKS,UAGPf,EAAKhH,EAEHgH,IAAOhH,GACTgF,GAAeuB,EAEfA,EADAC,EAAKlE,EAAQ0E,KAGbjC,GAAcwB,EACdA,EAAKvG,QAGP+E,GAAcwB,EACdA,EAAKvG,OAGP+E,GAAcwB,EACdA,EAAKvG,OAGP+E,GAAcwB,EACdA,EAAKvG,OAGP+E,GAAcwB,EACdA,EAAKvG,EAGP,OAAOuG,EAGT,SAASyB,KACP,IAAIzB,EAAIC,EAAIC,EAAIK,EAiChB,OA/BAP,EAAKxB,GACLyB,EAAKzB,GACiC,KAAlCn4C,EAAM9qD,WAAWijG,KACnB0B,EAAKlE,EACLwC,OAEA0B,EAAKzG,EACmB,IAApBsF,IAAyBS,GAASvD,IAEpCiE,IAAOzG,IACT8G,EAAKO,QACMrH,EAETwG,EADAC,EAAK,CAACA,EAAIK,IAOZ/B,GAAcyB,EACdA,EAAKxG,IAGLuG,EADEC,IAAOxG,EACJpzC,EAAMxyC,UAAUmsF,EAAIxB,IAEpByB,KAEIxG,IACTuG,EAAKW,MAGAX,EAGT,SAASwB,KACP,IAAIxB,EAAQE,EAAQM,EAAQO,EAAQE,EAmEpC,OAjEAjB,EAAKxB,GACAkC,OACMjH,IACTyG,EAAKuB,QACMhI,GACJiH,OACMjH,GAC6B,MAAlCpzC,EAAM9qD,WAAWijG,KACnBgC,EAAKjG,EACLiE,OAEAgC,EAAK/G,EACmB,IAApBsF,IAAyBS,GAAShF,IAEpCgG,IAAO/G,GACJiH,OACMjH,IACTsH,EAAKhB,QACMtG,GACJiH,OACMjH,GAC6B,MAAlCpzC,EAAM9qD,WAAWijG,KACnByC,EAAKtG,EACL6D,OAEAyC,EAAKxH,EACmB,IAApBsF,IAAyBS,GAAS5E,IAEpCqG,IAAOxH,GACTgF,GAAeuB,EAEfA,EADK9D,EAAQgE,EAAIa,KAGjBvC,GAAcwB,EACdA,EAAKvG,KAeb+E,GAAcwB,EACdA,EAAKvG,KAWX+E,GAAcwB,EACdA,EAAKvG,GAGAuG,EAGT,SAAS0B,KACP,IAAI1B,EAAIC,EAAQM,EA+BhB,OA7BAP,EAAKxB,GACDn4C,EAAMjuD,OAAOomG,GAAa,KAAOpC,GACnC6D,EAAK7D,EACLoC,IAAe,IAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAASnD,IAEpC4D,IAAOxG,GACJiH,OACMjH,IACT8G,EAAKO,QACMrH,GACTgF,GAAeuB,EAEfA,EADAC,EAAK3D,EAAQiE,KAWjB/B,GAAcwB,EACdA,EAAKvG,GAGAuG,EAGT,SAASuB,KACP,IAAIvB,EAAIC,EAAQM,EAAIC,EAOpB,GALAR,EAAKxB,IACLyB,EAAKyB,QACMjI,IACTwG,EAAK,MAEHA,IAAOxG,EAET,GADKiH,OACMjH,EAAY,CAGrB,GAFA8G,EAAK,IACLC,EAAKgB,QACM/H,EACT,KAAO+G,IAAO/G,GACZ8G,EAAGxzG,KAAKyzG,GACRA,EAAKgB,UAGPjB,EAAK9G,EAEH8G,IAAO9G,GACTgF,GAAeuB,EAEfA,EADAC,EAAK1D,EAAQ0D,EAAIM,KAGjB/B,GAAcwB,EACdA,EAAKvG,QAGP+E,GAAcwB,EACdA,EAAKvG,OAGP+E,GAAcwB,EACdA,EAAKvG,EAGP,OAAOuG,EAGT,SAASY,KACP,IAAIZ,EAAIC,EAWR,GATAlB,KACAiB,EAAK,GACDvD,EAAQ/lG,KAAK2vD,EAAM1uD,OAAO6mG,MAC5ByB,EAAK55C,EAAM1uD,OAAO6mG,IAClBA,OAEAyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAAS9C,IAEpCuD,IAAOxG,EACT,KAAOwG,IAAOxG,GACZuG,EAAGjzG,KAAKkzG,GACJxD,EAAQ/lG,KAAK2vD,EAAM1uD,OAAO6mG,MAC5ByB,EAAK55C,EAAM1uD,OAAO6mG,IAClBA,OAEAyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAAS9C,SAI1CsD,EAAKvG,EAQP,OANAsF,KACIiB,IAAOvG,IACTwG,EAAKxG,EACmB,IAApBsF,IAAyBS,GAAShD,IAGjCwD,EAGT,SAASU,KACP,IAAIV,EAAIC,EAAIC,EAMZ,IAJAnB,KACAiB,EAAKxB,GACLyB,EAAK,GACLC,EAAKU,KACEV,IAAOzG,GACZwG,EAAGlzG,KAAKmzG,GACRA,EAAKU,KAaP,OAVEZ,EADEC,IAAOxG,EACJpzC,EAAMxyC,UAAUmsF,EAAIxB,IAEpByB,EAEPlB,KACIiB,IAAOvG,IACTwG,EAAKxG,EACmB,IAApBsF,IAAyBS,GAAS7C,IAGjCqD,EAGT,SAAS2B,KACP,IAAI3B,EAUJ,OARIpD,EAAQlmG,KAAK2vD,EAAM1uD,OAAO6mG,MAC5BwB,EAAK35C,EAAM1uD,OAAO6mG,IAClBA,OAEAwB,EAAKvG,EACmB,IAApBsF,IAAyBS,GAAS3C,IAGjCmD,EAGT,SAAS4B,KACP,IAAI5B,EAUJ,OARIlD,EAAQpmG,KAAK2vD,EAAM1uD,OAAO6mG,MAC5BwB,EAAK35C,EAAM1uD,OAAO6mG,IAClBA,OAEAwB,EAAKvG,EACmB,IAApBsF,IAAyBS,GAASzC,IAGjCiD,EAGT,SAASc,KACP,IAAId,EAAIC,EAAIC,EAAIK,EAAIC,EAAIC,EAUxB,GARAT,EAAKxB,GACiC,KAAlCn4C,EAAM9qD,WAAWijG,KACnByB,EAAKjD,EACLwB,OAEAyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAASvC,IAEpCgD,IAAOxG,EAAY,CAUrB,GATAwG,EAAKzB,GACL0B,EAAK1B,GACDtB,EAAQxmG,KAAK2vD,EAAM1uD,OAAO6mG,MAC5B+B,EAAKl6C,EAAM1uD,OAAO6mG,IAClBA,OAEA+B,EAAK9G,EACmB,IAApBsF,IAAyBS,GAASrC,IAEpCoD,IAAO9G,EAAY,CAGrB,IAFA+G,EAAK,GACLC,EAAKkB,KACElB,IAAOhH,GACZ+G,EAAGzzG,KAAK0zG,GACRA,EAAKkB,KAEHnB,IAAO/G,EAETyG,EADAK,EAAK,CAACA,EAAIC,IAGVhC,GAAc0B,EACdA,EAAKzG,QAGP+E,GAAc0B,EACdA,EAAKzG,EAGLwG,EADEC,IAAOzG,EACJpzC,EAAMxyC,UAAUosF,EAAIzB,IAEpB0B,EAST,OANID,IAAOxG,IACTgF,GAAeuB,EACfC,EAAK7C,GAAQ6C,IAEVA,EAKP,SAAS4B,KACP,IAAI7B,EAAIC,EAAIC,EAAIK,EAAIC,EAAIC,EAAIM,EAAIC,EA8HhC,OA5HI1D,GAAQ5mG,KAAK2vD,EAAM1uD,OAAO6mG,MAC5BwB,EAAK35C,EAAM1uD,OAAO6mG,IAClBA,OAEAwB,EAAKvG,EACmB,IAApBsF,IAAyBS,GAASjC,KAEpCyC,IAAOvG,IACTuG,EAAKxB,GACDn4C,EAAMjuD,OAAOomG,GAAa,KAAOhB,IACnCyC,EAAKzC,GACLgB,IAAe,IAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAAS/B,KAEpCwC,IAAOxG,IACTgF,GAAeuB,EACfC,EAAKvC,OAEPsC,EAAKC,KACMxG,IACTuG,EAAKxB,GACDn4C,EAAMjuD,OAAOomG,GAAa,KAAOb,IACnCsC,EAAKtC,GACLa,IAAe,IAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAAS5B,KAEpCqC,IAAOxG,IACTgF,GAAeuB,EACfC,EAAKpC,OAEPmC,EAAKC,KACMxG,IACTuG,EAAKxB,GACDn4C,EAAMjuD,OAAOomG,GAAa,KAAOV,IACnCmC,EAAKnC,GACLU,IAAe,IAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAASzB,KAEpCkC,IAAOxG,IACTgF,GAAeuB,EACfC,EAAKjC,OAEPgC,EAAKC,KACMxG,IACTuG,EAAKxB,GACDn4C,EAAMjuD,OAAOomG,GAAa,KAAOP,IACnCgC,EAAKhC,GACLO,IAAe,IAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAAStB,KAEpC+B,IAAOxG,IACTgF,GAAeuB,EACfC,EAAK9B,OAEP6B,EAAKC,KACMxG,IACTuG,EAAKxB,GACDn4C,EAAMjuD,OAAOomG,GAAa,KAAOJ,IACnC6B,EAAK7B,GACLI,IAAe,IAEfyB,EAAKxG,EACmB,IAApBsF,IAAyBS,GAASnB,KAEpC4B,IAAOxG,GACTyG,EAAK1B,GACL+B,EAAK/B,IACLgC,EAAKoB,QACMnI,IACTgH,EAAKmB,QACMnI,IACTsH,EAAKa,QACMnI,IACTuH,EAAKY,QACMnI,EAET8G,EADAC,EAAK,CAACA,EAAIC,EAAIM,EAAIC,IAexBxC,GAAc+B,EACdA,EAAK9G,IAGLyG,EADEK,IAAO9G,EACJpzC,EAAMxyC,UAAUqsF,EAAI1B,IAEpB+B,KAEI9G,GACTgF,GAAeuB,EAEfA,EADAC,EAAK3B,GAAQ4B,KAGb1B,GAAcwB,EACdA,EAAKvG,KAGP+E,GAAcwB,EACdA,EAAKvG,QAQVuG,EAGT,SAASW,KACP,IAAIX,EAAIC,EAAIC,EAKZ,GAHAF,EAAKxB,GACLyB,EAAK,IACLC,EAAK2B,QACMpI,EACT,KAAOyG,IAAOzG,GACZwG,EAAGlzG,KAAKmzG,GACRA,EAAK2B,UAGP5B,EAAKxG,EAQP,OANIwG,IAAOxG,IACTgF,GAAeuB,EACfC,EAAK1B,GAAQ0B,IAEVA,EAOP,IAFAzG,EAAaI,OAEMH,GAAc+E,KAAgBn4C,EAAM75D,OACrD,OAAOgtG,EAMP,MAJIA,IAAeC,GAAc+E,GAAcn4C,EAAM75D,QACnDgzG,GAAS,CAAEr1G,KAAM,MAAOwF,YAAa,iBAGjC8vG,GACJ,KACAX,GACAD,GAAiBx4C,EAAM75D,OAAS65D,EAAM1uD,OAAOknG,IAAkB,KAC/DA,GAAiBx4C,EAAM75D,OACnByyG,GAAoBJ,GAAgBA,GAAiB,GACrDI,GAAoBJ,GAAgBA,OA32C3B,iCCErB,IAAIiD,EAAqB,WAIzB,EAAQ,QAKRl+G,EAAUD,EAAOC,QAAUk+G,GAC3B,QAAqBl+G,gCCRrBsM,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IAEtD,IAAIi6G,EAAuB,EAAQ,OAC/BC,EAAS,EAAQ,OACjBC,EAAQ,EAAQ,OACpBr+G,EAAA,QAAkBs+G,EAElB,IAAIC,EAAS,CACT,SAAU,eACV,SAAU,eACV,OAAQ,aACR,MAAO,YACP,QAAS,cACT,OAAQ,cAERC,EAAS,CAAC,WAAY,WAE1B,SAASF,EAAeG,EAASl+G,GAC7BA,EAAUA,GAAW,GAGjB89G,EAAMlwG,QAAQswG,KACdA,EAAUA,EAAQrzG,UAEtBizG,EAAM7xG,eAAelE,KAAM,UAAW,CAAEpE,MAAOoE,KAAKo2G,eAAeD,KACnEJ,EAAM7xG,eAAelE,KAAM,WAAY,CAAEpE,MAAO,CACxCg7C,MAAO52C,KAAKq2G,cAAcp+G,EAAQ2+C,OAClCnmC,MAAOzQ,KAAKs2G,cAAcr+G,EAAQwY,QAAUxY,EAAQwY,SAE5DslG,EAAM7xG,eAAelE,KAAM,WAAY,CAAEpE,MAAOu6G,IAChDJ,EAAM7xG,eAAelE,KAAM,UAAW,CAAEpE,MAAOoE,KAAKu2G,YAAYv2G,KAAKw2G,WACrET,EAAM7xG,eAAelE,KAAM,YAAa,CAAEpE,MAAOm6G,EAAMU,UAAU,QAGjE,IAAIC,EAAiB12G,KACrBA,KAAK27E,OAAS,SAAgB7uD,EAAM70B,GAChC,OAAOy+G,EAAeC,QAAQ7pF,EAAM70B,IAI5C89G,EAAM7xG,eAAe8xG,EAAgB,iBAAkB,CAAEp6G,MAAOm6G,EAAMU,UAAU,QAChFV,EAAM7xG,eAAe8xG,EAAgB,kBAAmB,CAAEp6G,MAAO,WACzD,IAAK,IAAIwE,EAAI,EAAGA,EAAI0I,UAAUxI,OAAQF,IAAK,CACvC,IAAIw2G,EAAQ9tG,UAAU1I,GACtB,IAAMw2G,IAASA,EAAM7lG,OACjB,MAAM,IAAI3Y,MAAM,mFAGpB49G,EAAea,eAAeD,EAAM7lG,OAAOtT,eAAiBm5G,EAE5Df,EAAqB73B,QAAQ84B,gBAAgBF,OAMzDb,EAAM7xG,eAAe8xG,EAAgB,gBAAiB,CAClDpuC,YAAY,EACZgK,UAAU,EACVh2E,WAAOyB,IAIX04G,EAAM7xG,eAAe8xG,EAAgB,aAAc,CAC/CpuC,YAAY,EACZhsE,MAAO,CACHm7G,OAAQ,GAAI,eAAgB,GAC5BC,OAAQ,GAAI,eAAgB,GAC5BC,KAAM,GAAI,aAAc,GACxBC,IAAK,GAAI,YAAa,GACtBC,MAAO,GAAI,cAAe,MAGlCnB,EAAeh3G,UAAUo4G,gBAAkB,WACvC,MAAO,CACHrmG,OAAQ/Q,KAAKw2G,QACb5/D,MAAO52C,KAAKq3G,SAASzgE,MACrBnmC,MAAOzQ,KAAKq3G,SAAS5mG,QAG7BulG,EAAeh3G,UAAUs4G,gBAAkB,SAAU7mG,GAGjD,IAMIrQ,EANA+1G,EAAUn2G,KAAKu3G,SAGfC,GAFiBx3G,KAAKw2G,QACdx2G,KAAKy3G,QAAQhnG,GACA+mG,cACrBE,EAAS,GACTC,EAAO,GAEX,IAAKv3G,KAAKo3G,EAAaE,OACfF,EAAaE,OAAOnpG,eAAenO,KACnCs3G,GAAU,IAAMt3G,EAAI,KAChBo3G,EAAaE,OAAOt3G,GAAG4I,QAAQ,MAAO,KAAO,KAGzD,IAAK5I,KAAKo3G,EAAaG,KACfH,EAAaG,KAAKppG,eAAenO,KACjCu3G,GAAQ,IAAMv3G,EAAI,KACdo3G,EAAaG,KAAKv3G,GAAG4I,QAAQ,MAAO,KAAO,KAGvD,IAAIvI,EAAU,sCAAwCi3G,EAAxC,uBACaC,EAAO,MAIlC,OAAO,IAAI9B,EAAqB73B,QAAQv9E,EAAS01G,IAErDH,EAAeh3G,UAAU44G,YAAc,SAAUnnG,GAC7C,IAAIid,EAAW1tB,KAAK63G,UAKpB,OAHKnqF,EAASjd,KACVid,EAASjd,GAASzQ,KAAKs3G,gBAAgB7mG,IAEpCid,EAASjd,IAEpBulG,EAAeh3G,UAAU84G,kBAAoB,SAAUC,EAAMtnG,GACzD,IAAIunG,EAAQh4G,KAAKy3G,QAAQhnG,GACzB,GAAIunG,EAAMvnB,SACN,OAAOunB,EAAMvnB,SAASsnB,IAG9B/B,EAAeh3G,UAAUu3G,YAAc,SAAUxlG,GAK7C,IAJA,IAAIknG,EAAajC,EAAea,eAC5B/8G,EAAOm+G,EAAWlnG,EAAOtT,eAGtB3D,GAAM,CACT,GAAIA,EAAK0d,OACL,OAAO1d,EAAK0d,OAEhB1d,EAAOA,EAAKo+G,cAAgBD,EAAWn+G,EAAKo+G,aAAaz6G,eAE7D,MAAM,IAAIrF,MAAM,oEACZ2Y,IAERilG,EAAeh3G,UAAU23G,QAAU,SAAU7pF,EAAM70B,GAC/C,IAAIsS,EAAMtS,QAA2BoF,IAAhBpF,EAAQsS,IAAoBtS,EAAQsS,IAAMwrG,EAAMoC,UAMrE,QALa96G,IAATyvB,IACAA,EAAOviB,IAINu+D,SAASv+D,GACV,MAAM,IAAIg2D,WAAW,mFAGzB,IAAKuI,SAASh8C,GACV,MAAM,IAAIyzC,WAAW,iFAGzB,IAAI63C,EAAatC,EAAO93B,QAAQzzE,EAAKuiB,GACjCrc,EAAQzQ,KAAKq3G,SAAS5mG,OAASzQ,KAAKq4G,aAAaD,GACjDE,EAAcF,EAAW3nG,GAC7B,GAA4B,YAAxBzQ,KAAKq3G,SAASzgE,MAAqB,CACnC,IAAI2hE,EAAgBv4G,KAAK83G,kBAAkBQ,EAAa7nG,GACxD,GAAI8nG,EACA,OAAOA,EAGf,OAAOv4G,KAAK43G,YAAYnnG,GAAOkrE,OAAO,CAClC,EAAKl1E,KAAKumG,IAAIsL,GACdE,KAAMF,EAAc,EAAI,OAAS,YAGzCtC,EAAeh3G,UAAUs3G,cAAgB,SAAU7lG,GAC/C,IAAKA,GAASslG,EAAM0C,WAAWv3G,KAAK+0G,EAAQxlG,IAAU,EAClD,OAAO,EAEX,GAAqB,iBAAVA,EAAoB,CAC3B,IAAIioG,EAAa,KAAKluG,KAAKiG,IAAUA,EAAMvE,OAAO,EAAGuE,EAAMnQ,OAAS,GACpE,GAAIo4G,GAAc3C,EAAM0C,WAAWv3G,KAAK+0G,EAAQyC,IAAe,EAC3D,MAAM,IAAItgH,MAAM,IAAMqY,EAAN,oEACcioG,GAGtC,MAAM,IAAItgH,MAAM,IAAMqY,EAAN,0EACUwlG,EAAO3sG,KAAK,QAAU,MAEpD0sG,EAAeh3G,UAAUo3G,eAAiB,SAAUD,GACzB,iBAAZA,IACPA,EAAU,CAACA,IAGfA,GAAWA,GAAW,IAAIrzG,OAAOkzG,EAAe2C,eAChD,IACIv4G,EAAG68D,EAAK27C,EAAa9+G,EADrBm+G,EAAajC,EAAea,eAOhC,IAAKz2G,EAAI,EAAG68D,EAAMk5C,EAAQ71G,OAAQF,EAAI68D,EAAK78D,GAAK,EAE5C,IADAw4G,EAAczC,EAAQ/1G,GAAG3C,cAAcuO,MAAM,KACtC4sG,EAAYt4G,QAAQ,CAEvB,GADAxG,EAAOm+G,EAAWW,EAAYtvG,KAAK,MAI/B,OAAOxP,EAAKiX,OAEhB6nG,EAAY1rG,MAGpB,IAAIyrG,EAAgBxC,EAAQjpG,MAC5B,MAAM,IAAI9U,MAAM,4DACZ+9G,EAAQ7sG,KAAK,MAAQ,4BAA8BqvG,IAE3D3C,EAAeh3G,UAAUq3G,cAAgB,SAAUz/D,GAE/C,IAAKA,EACD,OAAOs/D,EAAO,GAElB,GAAIH,EAAM0C,WAAWv3G,KAAKg1G,EAAQt/D,IAAU,EACxC,OAAOA,EAEX,MAAM,IAAIx+C,MAAM,IAAMw+C,EAAN,0EACUs/D,EAAO5sG,KAAK,QAAU,MAEpD0sG,EAAeh3G,UAAUq5G,aAAe,SAAUD,GAC9C,IAAIh4G,EAAGC,EAAGoQ,EACN+G,EAASy+F,EAAOvmG,QAAO,SAAUsoG,GACjC,OAAOA,EAAM17G,QAAQ,UAAY,KAErC,IAAK8D,EAAI,EAAGC,EAAImX,EAAOlX,OAAQF,EAAIC,IAC/BoQ,EAAQ+G,EAAOpX,KACXqG,KAAKumG,IAAIoL,EAAW3nG,IAAUulG,EAAe6C,WAAWpoG,KAF1BrQ,GAAK,GAM3C,OAAOqQ,+BCvOXzM,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IAEtD,IAAI42E,EAAQ/rE,KAAK+rE,MAUjB,SAASsmC,EAAWC,GAChB,IAAIjsF,EAAO,IAAI9iB,KAAK+uG,GAEpB,OADAjsF,EAAKksF,SAAS,EAAG,EAAG,EAAG,GAChBlsF,EA2CXp1B,EAAA,QA7BA,SAAmByM,EAAM80G,GAIrB,IAhB6CC,EACzCC,EACAC,EACAC,EAEAC,EAWAC,EAAc/mC,GADlBymC,GAAMA,IADN90G,GAAQA,IAE4B4yG,EAASvkC,EAAM+mC,EAAc,KAAOvC,EAASxkC,EAAMukC,EAAS,IAAKE,EAAOzkC,EAAMwkC,EAAS,IAIvHE,GApByCgC,EAoBN/0G,EAnBnCg1G,EAAiBL,EAmBcG,GAlB/BG,EAAkBN,EAAWI,GAC7BG,EAAgBF,EAAensF,UAVV,IAWrBmsF,EAAeK,oBACfF,EAAiBF,EAAgBpsF,UAZZ,IAarBosF,EAAgBI,oBAIb/yG,KAAK+rE,OAAO6mC,EAAgBC,GAhBb,QA2BlBG,EAAOjnC,EAAM0kC,EAAM,GACnBwC,EAlCU,IAkCaxC,EAlCP,OAkCaC,EAAQ3kC,EAAiB,GAAXknC,GAAgBC,EAAOnnC,EAAMknC,GAC5E,MAAO,CACHH,YAAaA,EACbxC,OAAQA,EACR,eAAgBA,EAChBC,OAAQA,EACR,eAAgBA,EAChBC,KAAMA,EACN,aAAcA,EACdC,IAAKA,EACL,YAAaA,EACbuC,KAAMA,EACN,aAAcA,EACdtC,MAAOA,EACP,cAAeA,EACfwC,KAAMA,EACN,aAAcA,gCC5DtB31G,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IAEtDlE,EAAA,QAAkB,CAAE,OAAU,KAAM,mBAAsB,SAAUggE,EAAGkiD,GAC/D,IAAIvkD,EAAItlD,OAAO2nD,GAAG1rD,MAAM,KAAM6tG,GAAMxkD,EAAE,GAAIykD,EAAK7zC,OAAO5Q,EAAE,KAAOqC,EAAGqiD,EAAMD,GAAMzkD,EAAE,GAAGvvD,OAAO,GAAIk0G,EAAOF,GAAMzkD,EAAE,GAAGvvD,OAAO,GACvH,OAAI8zG,EACe,GAAPG,GAAoB,IAARC,EAAc,MACpB,GAAPD,GAAoB,IAARC,EAAc,MACf,GAAPD,GAAoB,IAARC,EAAc,MACvB,QACL,GAALtiD,GAAUmiD,EAAM,MAAQ,SACjC,OAAU,CAAE,KAAQ,CAAE,YAAe,OAAQ,SAAY,CAAE,EAAK,YAAa,EAAK,YAAa,KAAM,aAAe,aAAgB,CAAE,OAAU,CAAE,IAAO,cAAe,MAAS,gBAAkB,KAAQ,CAAE,IAAO,eAAgB,MAAS,mBAAuB,aAAc,CAAE,YAAe,MAAO,SAAY,CAAE,EAAK,WAAY,EAAK,WAAY,KAAM,YAAc,aAAgB,CAAE,OAAU,CAAE,IAAO,aAAc,MAAS,cAAgB,KAAQ,CAAE,IAAO,cAAe,MAAS,iBAAqB,MAAS,CAAE,YAAe,QAAS,SAAY,CAAE,EAAK,aAAc,EAAK,aAAc,KAAM,cAAgB,aAAgB,CAAE,OAAU,CAAE,IAAO,eAAgB,MAAS,iBAAmB,KAAQ,CAAE,IAAO,gBAAiB,MAAS,oBAAwB,cAAe,CAAE,YAAe,MAAO,SAAY,CAAE,EAAK,WAAY,EAAK,WAAY,KAAM,YAAc,aAAgB,CAAE,OAAU,CAAE,IAAO,aAAc,MAAS,cAAgB,KAAQ,CAAE,IAAO,cAAe,MAAS,iBAAqB,KAAQ,CAAE,YAAe,OAAQ,eAAkB,kBAAmB,SAAY,CAAE,EAAK,YAAa,EAAK,YAAa,KAAM,aAAe,aAAgB,CAAE,OAAU,CAAE,IAAO,cAAe,MAAS,gBAAkB,KAAQ,CAAE,IAAO,eAAgB,MAAS,mBAAuB,aAAc,CAAE,YAAe,MAAO,eAAkB,kBAAmB,SAAY,CAAE,EAAK,WAAY,EAAK,WAAY,KAAM,YAAc,aAAgB,CAAE,OAAU,CAAE,IAAO,aAAc,MAAS,cAAgB,KAAQ,CAAE,IAAO,cAAe,MAAS,iBAAqB,IAAO,CAAE,YAAe,MAAO,SAAY,CAAE,EAAK,QAAS,EAAK,WAAY,KAAM,aAAe,aAAgB,CAAE,OAAU,CAAE,IAAO,aAAc,MAAS,eAAiB,KAAQ,CAAE,IAAO,cAAe,MAAS,kBAAsB,YAAa,CAAE,YAAe,MAAO,SAAY,CAAE,EAAK,QAAS,EAAK,WAAY,KAAM,aAAe,aAAgB,CAAE,OAAU,CAAE,IAAO,aAAc,MAAS,eAAiB,KAAQ,CAAE,IAAO,cAAe,MAAS,kBAAsB,KAAQ,CAAE,YAAe,OAAQ,SAAY,CAAE,EAAK,aAAe,aAAgB,CAAE,OAAU,CAAE,IAAO,cAAe,MAAS,gBAAkB,KAAQ,CAAE,IAAO,eAAgB,MAAS,mBAAuB,aAAc,CAAE,YAAe,MAAO,SAAY,CAAE,EAAK,aAAe,aAAgB,CAAE,OAAU,CAAE,IAAO,aAAc,MAAS,cAAgB,KAAQ,CAAE,IAAO,cAAe,MAAS,iBAAqB,OAAU,CAAE,YAAe,SAAU,SAAY,CAAE,EAAK,eAAiB,aAAgB,CAAE,OAAU,CAAE,IAAO,gBAAiB,MAAS,kBAAoB,KAAQ,CAAE,IAAO,iBAAkB,MAAS,qBAAyB,eAAgB,CAAE,YAAe,OAAQ,SAAY,CAAE,EAAK,eAAiB,aAAgB,CAAE,OAAU,CAAE,IAAO,cAAe,MAAS,eAAiB,KAAQ,CAAE,IAAO,eAAgB,MAAS,kBAAsB,OAAU,CAAE,YAAe,SAAU,SAAY,CAAE,EAAK,OAAS,aAAgB,CAAE,OAAU,CAAE,IAAO,gBAAiB,MAAS,kBAAoB,KAAQ,CAAE,IAAO,iBAAkB,MAAS,qBAAyB,eAAgB,CAAE,YAAe,OAAQ,SAAY,CAAE,EAAK,OAAS,aAAgB,CAAE,OAAU,CAAE,IAAO,cAAe,MAAS,eAAiB,KAAQ,CAAE,IAAO,eAAgB,MAAS,gDCLlwG71G,OAAOE,eAAexM,EAAS,aAAc,CAAEkE,OAAO,IAItD,IAAIq+G,EAAMj2G,OAAOhF,UAAUuP,eACvBxH,EAAW/C,OAAOhF,UAAU+H,SAC5BmzG,EAAiB,WACjB,IACI,QAASl2G,OAAOE,eAAe,GAAI,IAAK,IAE5C,MAAOoE,GACH,OAAO,GALM,GASjBpE,IADOg2G,GAAmBl2G,OAAOhF,UAAUm7G,iBAC1BD,EAAiBl2G,OAAOE,eACzC,SAAUK,EAAKnD,EAAMoM,GACb,QAASA,GAAQjJ,EAAI41G,iBACrB51G,EAAI41G,iBAAiB/4G,EAAMoM,EAAKwd,KAE1BivF,EAAI/4G,KAAKqD,EAAKnD,MAAS,UAAWoM,KACxCjJ,EAAInD,GAAQoM,EAAK5R,SAG7BlE,EAAQwM,eAAiBA,EACzB,IAAIuyG,EAAYzyG,OAAO9E,QAAU,SAAUuoE,EAAOl4D,GAC9C,IAAIhL,EAAKupD,EACT,SAAS2oB,KAGT,IAAK3oB,KAFL2oB,EAAEz3E,UAAYyoE,EACdljE,EAAM,IAAIkyE,EACAlnE,EACF0qG,EAAI/4G,KAAKqO,EAAOu+C,IAChB5pD,EAAeK,EAAKupD,EAAGv+C,EAAMu+C,IAGrC,OAAOvpD,GAEX7M,EAAQ++G,UAAYA,EACpB,IAAIgC,EAAa71G,MAAM5D,UAAU1C,SAAW,SAAU8O,EAAQgvG,GAE1D,IAAI/tG,EAAMrM,KACV,IAAKqM,EAAI/L,OACL,OAAQ,EAEZ,IAAK,IAAIF,EAAIg6G,GAAa,EAAG3xC,EAAMp8D,EAAI/L,OAAQF,EAAIqoE,EAAKroE,IACpD,GAAIiM,EAAIjM,KAAOgL,EACX,OAAOhL,EAGf,OAAQ,GAEZ1I,EAAQ+gH,WAAaA,EACrB,IAAI5yG,EAAUjD,MAAMiD,SAAW,SAAUtB,GACrC,MAA8B,mBAAvBwC,EAAS7F,KAAKqD,IAEzB7M,EAAQmO,QAAUA,EAClB,IAAIsyG,EAAUnuG,KAAKO,KAAO,WACtB,OAAO,IAAIP,MAAOgjB,WAEtBt1B,EAAQygH,QAAUA,gCC9DlB,IAAIkC,EAAS,EAAQ,OACjBC,EAAO,EAAQ,OACnBD,EAAOr8B,QAAQ84B,gBAAgBwD,EAAKt8B,SACpCq8B,EAAOr8B,QAAQ26B,cAAgB,KAC/BjhH,EAAQ,EAAU2iH,EAAOr8B,sCCHzB,IAAIu8B,EAAoB,WAIxB,EAAQ,QAKR7iH,EAAUD,EAAOC,QAAU6iH,GAC3B,QAAqB7iH,8BCHrB,SAAS8iH,EAASrE,EAAS79B,EAASmiC,GAChCz6G,KAAKm2G,QAAWA,EAChBn2G,KAAKs4E,QAAWA,EAChBt4E,KAAKy6G,SAAWA,EA4IpB,SAASC,EAAa91G,GAClB5E,KAAK4E,GAAKA,EAWd,SAAS+1G,EAAa/1G,EAAIg2G,EAAYl5C,EAAQzpE,EAASwiH,GACnDz6G,KAAK4E,GAAaA,EAClB5E,KAAK46G,WAAaA,EAClB56G,KAAK0hE,OAAaA,EAClB1hE,KAAK/H,QAAaA,EAClB+H,KAAKy6G,SAAaA,EAYtB,SAASI,EAAmBj2G,EAAI88D,EAAQo5C,EAAcjlD,GAClD71D,KAAK4E,GAAeA,EACpB5E,KAAK0hE,OAAeA,EACpB1hE,KAAK86G,aAAeA,EACpB96G,KAAK61D,OAAeA,EAWxB,SAASklD,EAAan2G,EAAI3M,GACtB+H,KAAK4E,GAAUA,EACf5E,KAAK/H,QAAUA,EA/LnBP,EAAiB,QAAI8iH,EAQrBA,EAASx7G,UAAUg8G,QAAU,SAAUC,GAKnC,OAJAj7G,KAAKk7G,YAAqB,GAC1Bl7G,KAAKm7G,cAAqB,KAC1Bn7G,KAAKo7G,mBAAqB,KAEnBp7G,KAAKq7G,eAAeJ,IAG/BT,EAASx7G,UAAUq8G,eAAiB,SAAUJ,GAC1C,IAAMA,GAAoB,yBAAbA,EAAIh9G,KACb,MAAM,IAAI7F,MAAM,sDAGpB,IAGIgI,EAAG68D,EAAK3L,EAHRs8C,EAAWqN,EAAIrN,SACfj/F,EAAW,GAIf,IAAKvO,EAAI,EAAG68D,EAAM2wC,EAASttG,OAAQF,EAAI68D,EAAK78D,GAAK,EAG7C,QAFAkxD,EAAUs8C,EAASxtG,IAEHnC,MACZ,IAAK,qBACD0Q,EAAQ9N,KAAKb,KAAKs7G,mBAAmBhqD,IACrC,MAEJ,IAAK,kBACD3iD,EAAQ9N,KAAKb,KAAKu7G,gBAAgBjqD,IAClC,MAEJ,QACI,MAAM,IAAIl5D,MAAM,8CAI5B,OAAOuW,GAGX6rG,EAASx7G,UAAUs8G,mBAAqB,SAAUhqD,GAI9C,OAAItxD,KAAKm7G,eAAiB,cAAc3wG,KAAK8mD,EAAQ11D,QAG5CoE,KAAKo7G,qBACNp7G,KAAKo7G,mBAAqB,IAAII,KAAKC,aAAaz7G,KAAKm2G,UAGlD,IAAI0E,EACH76G,KAAKm7G,cAAcv2G,GACnB5E,KAAKm7G,cAAcx/B,OAAOja,OAC1B1hE,KAAKo7G,mBACL9pD,EAAQ11D,QAIb01D,EAAQ11D,MAAMoN,QAAQ,OAAQ,MAGzCwxG,EAASx7G,UAAUu8G,gBAAkB,SAAUjqD,GAC3C,IAAIqqB,EAASrqB,EAAQqqB,OAErB,IAAKA,EACD,OAAO,IAAI++B,EAAappD,EAAQ1sD,IAGpC,IAGI3M,EAHAqgF,EAAWt4E,KAAKs4E,QAChB69B,EAAWn2G,KAAKm2G,QAChBsE,EAAWz6G,KAAKy6G,SAGpB,OAAQ9+B,EAAO19E,MACX,IAAK,eAED,OADAhG,EAAUqgF,EAAQ50E,OAAOi4E,EAAO/kC,OACzB,CACHhyC,GAAQ0sD,EAAQ1sD,GAChB+2E,OAAQ,IAAI6/B,KAAKC,aAAatF,EAASl+G,GAAS0jF,QAGxD,IAAK,aAED,OADA1jF,EAAUqgF,EAAQxrD,KAAK6uD,EAAO/kC,OACvB,CACHhyC,GAAQ0sD,EAAQ1sD,GAChB+2E,OAAQ,IAAI6/B,KAAKE,eAAevF,EAASl+G,GAAS0jF,QAG1D,IAAK,aAED,OADA1jF,EAAUqgF,EAAQqjC,KAAKhgC,EAAO/kC,OACvB,CACHhyC,GAAQ0sD,EAAQ1sD,GAChB+2E,OAAQ,IAAI6/B,KAAKE,eAAevF,EAASl+G,GAAS0jF,QAG1D,IAAK,eAED,OADA1jF,EAAU+H,KAAK47G,eAAetqD,GACvB,IAAIqpD,EACPrpD,EAAQ1sD,GAAI+2E,EAAO4zB,QAAS5zB,EAAOja,OAAQzpE,EAASwiH,GAG5D,IAAK,eAED,OADAxiH,EAAU+H,KAAK47G,eAAetqD,GACvB,IAAIypD,EAAazpD,EAAQ1sD,GAAI3M,GAExC,QACI,MAAM,IAAIG,MAAM,uDAI5BoiH,EAASx7G,UAAU48G,eAAiB,SAAUtqD,GAC1C,IAUIlxD,EAAG68D,EAAKslC,EAVR5mB,EAAcrqB,EAAQqqB,OACtB1jF,EAAc0jF,EAAO1jF,QACrB4jH,EAAc,GAUlB,IALA77G,KAAKk7G,YAAYr6G,KAAKb,KAAKm7G,eAC3Bn7G,KAAKm7G,cAAgC,iBAAhBx/B,EAAO19E,KAA0BqzD,EAAU,KAI3DlxD,EAAI,EAAG68D,EAAMhlE,EAAQqI,OAAQF,EAAI68D,EAAK78D,GAAK,EAI5Cy7G,GAHAtZ,EAAStqG,EAAQmI,IAGE6vG,UAAYjwG,KAAKq7G,eAAe9Y,EAAO3mG,OAM9D,OAFAoE,KAAKm7G,cAAgBn7G,KAAKk7G,YAAYhuG,MAE/B2uG,GASXnB,EAAa17G,UAAU28E,OAAS,SAAU//E,GACtC,OAAKA,GAA0B,iBAAVA,EAIG,iBAAVA,EAAqBA,EAAQmU,OAAOnU,GAHvC,IAcf++G,EAAa37G,UAAU88G,UAAY,SAAUlgH,GACzC,IAAI3D,EAAU+H,KAAK/H,QAKnB,OAHaA,EAAQ,IAAM2D,IACnB3D,EAAQ+H,KAAKy6G,SAAS7+G,EAAQoE,KAAK0hE,OAAQ1hE,KAAK46G,cAEvC3iH,EAAQ8jH,OAU7BlB,EAAmB77G,UAAU28E,OAAS,SAAU//E,GAC5C,IAAI8H,EAAS1D,KAAK86G,aAAan/B,OAAO//E,EAAQoE,KAAK0hE,QAEnD,OAAO1hE,KAAK61D,OACH7sD,QAAQ,cAAe,KAAOtF,GAC9BsF,QAAQ,OAAQ,MAQ7B+xG,EAAa/7G,UAAU88G,UAAY,SAAUlgH,GACzC,IAAI3D,EAAU+H,KAAK/H,QACnB,OAAOA,EAAQ2D,IAAU3D,EAAQ8jH,qCCpMrC,IAAIC,EAAc,EAAQ,OAAYC,EAAY,EAAQ,OAAUC,EAAiB,EAAQ,OAAeC,EAA8B,EAAQ,OAKlJ,SAASC,EAAc37G,EAAS01G,EAAS79B,GAErC,IAAI2iC,EAAyB,iBAAZx6G,EACT27G,EAAcC,QAAQ57G,GAAWA,EAEzC,IAAMw6G,GAAoB,yBAAbA,EAAIh9G,KACb,MAAM,IAAI6B,UAAU,kDAKxBw4E,EAAUt4E,KAAKs8G,cAAcF,EAAc9jC,QAASA,GAGpD2jC,EAAU/3G,eAAelE,KAAM,UAAY,CAACpE,MAAOoE,KAAKo2G,eAAeD,KAKvE,IAAIsE,EAAWz6G,KAAKu8G,wBAAwBv8G,KAAKw2G,SAC7C7nG,EAAW3O,KAAKw8G,gBAAgBvB,EAAK9E,EAAS79B,EAASmiC,GAIvDgC,EAAgBz8G,KACpBA,KAAK27E,OAAS,SAAUzhE,GACtB,IACE,OAAOuiG,EAAc9F,QAAQhoG,EAASuL,GACtC,MAAO5R,GACP,MAAIA,EAAEo0G,WACE,IAAItkH,MACR,qCAAwCkQ,EAAEo0G,WAA1C,qCACuCj8G,EAAU,KAG7C6H,IAvChB5Q,EAAiB,QAAI0kH,EAgDrBH,EAAU/3G,eAAek4G,EAAe,UAAW,CAC/Cx0C,YAAY,EAEZhsE,MAAO,CACH8H,OAAQ,CACJ,SAAY,CACRkzC,MAAO,YAGX,QAAW,CACPA,MAAO,YAIf9pB,KAAM,CACF,MAAS,CACLqqF,MAAO,UACPD,IAAO,UACPyC,KAAO,WAGX,OAAU,CACNxC,MAAO,QACPD,IAAO,UACPyC,KAAO,WAGX,KAAQ,CACJxC,MAAO,OACPD,IAAO,UACPyC,KAAO,WAGX,KAAQ,CACJgD,QAAS,OACTxF,MAAS,OACTD,IAAS,UACTyC,KAAS,YAIjBgC,KAAM,CACF,MAAS,CACL1E,KAAQ,UACRD,OAAQ,WAGZ,OAAW,CACPC,KAAQ,UACRD,OAAQ,UACRD,OAAQ,WAGZ,KAAQ,CACJE,KAAc,UACdD,OAAc,UACdD,OAAc,UACd6F,aAAc,SAGlB,KAAQ,CACJ3F,KAAc,UACdD,OAAc,UACdD,OAAc,UACd6F,aAAc,aAO9BX,EAAU/3G,eAAek4G,EAAe,iBAAkB,CAACxgH,MAAOqgH,EAAUxF,UAAU,QACtFwF,EAAU/3G,eAAek4G,EAAe,kBAAmB,CAACxgH,MAAO,SAAU9B,GACzE,IAAMA,IAAQA,EAAKiX,OACf,MAAM,IAAI3Y,MACN,4EAKRgkH,EAAcvF,eAAe/8G,EAAKiX,OAAOtT,eAAiB3D,KAI9DmiH,EAAU/3G,eAAek4G,EAAe,UAAW,CAACxgH,MAAOugH,EAAqC,QAAE/zG,QAIlG6zG,EAAU/3G,eAAek4G,EAAe,gBAAiB,CACrDx0C,YAAY,EACZgK,UAAY,EACZh2E,WAAYyB,IAGhB++G,EAAcp9G,UAAUo4G,gBAAkB,WAEtC,MAAO,CACHrmG,OAAQ/Q,KAAKw2G,UAIrB4F,EAAcp9G,UAAUw9G,gBAAkB,SAAUvB,EAAK9E,EAAS79B,EAASmiC,GAEvE,OADe,IAAIyB,EAAwB,QAAE/F,EAAS79B,EAASmiC,GAC/CO,QAAQC,IAG5BmB,EAAcp9G,UAAUu9G,wBAA0B,SAAUxrG,GAMxD,IALA,IAAIknG,EAAamE,EAAcvF,eAC3B/8G,EAAam+G,EAAWlnG,EAAOtT,eAI5B3D,GAAM,CACT,GAAIA,EAAK+iH,mBACL,OAAO/iH,EAAK+iH,mBAGhB/iH,EAAOA,EAAKo+G,cAAgBD,EAAWn+G,EAAKo+G,aAAaz6G,eAG7D,MAAM,IAAIrF,MACN,iFAC+B2Y,IAIvCqrG,EAAcp9G,UAAU23G,QAAU,SAAUhoG,EAASuL,GACjD,IACI9Z,EAAG68D,EAAKud,EAAM51E,EAAIhJ,EAAOzD,EADzB4V,EAAS,GAGb,IAAK3N,EAAI,EAAG68D,EAAMtuD,EAAQrO,OAAQF,EAAI68D,EAAK78D,GAAK,EAI5C,GAAoB,iBAHpBo6E,EAAO7rE,EAAQvO,IAGf,CAQA,GAHAwE,EAAK41E,EAAK51E,IAGJsV,IAAU8hG,EAAY/B,IAAI/4G,KAAKgZ,EAAQtV,GAG3C,MAFAzM,EAAM,IAAIC,MAAM,iCAAmCwM,IAC/C83G,WAAa93G,EACXzM,EAGRyD,EAAQse,EAAOtV,GAKX41E,EAAKviF,QACL8V,GAAU/N,KAAK22G,QAAQn8B,EAAKshC,UAAUlgH,GAAQse,GAE9CnM,GAAUysE,EAAKmB,OAAO//E,QArBtBmS,GAAUysE,EAyBlB,OAAOzsE,GAGXquG,EAAcp9G,UAAUs9G,cAAgB,SAAU36G,EAAU22E,GACxD,IACIr6E,EAAM6+G,EADNC,EAAgB,GAGpB,IAAK9+G,KAAQ0D,EACJq6G,EAAY/B,IAAI/4G,KAAKS,EAAU1D,KAEpC8+G,EAAc9+G,GAAQ6+G,EAAab,EAAUxF,UAAU90G,EAAS1D,IAE5Dq6E,GAAW0jC,EAAY/B,IAAI/4G,KAAKo3E,EAASr6E,IACzC+9G,EAAY/8G,OAAO69G,EAAYxkC,EAAQr6E,KAI/C,OAAO8+G,GAGXX,EAAcp9G,UAAUo3G,eAAiB,SAAUD,GACxB,iBAAZA,IACPA,EAAU,CAACA,IAIfA,GAAWA,GAAW,IAAIrzG,OAAOs5G,EAAczD,eAE/C,IACIv4G,EAAG68D,EAAK27C,EAAa9+G,EADrBm+G,EAAamE,EAAcvF,eAQ/B,IAAKz2G,EAAI,EAAG68D,EAAMk5C,EAAQ71G,OAAQF,EAAI68D,EAAK78D,GAAK,EAG5C,IAFAw4G,EAAczC,EAAQ/1G,GAAG3C,cAAcuO,MAAM,KAEtC4sG,EAAYt4G,QAAQ,CAEvB,GADAxG,EAAOm+G,EAAWW,EAAYtvG,KAAK,MAI/B,OAAOxP,EAAKiX,OAGhB6nG,EAAY1rG,MAIpB,IAAIyrG,EAAgBxC,EAAQjpG,MAC5B,MAAM,IAAI9U,MACN,2DACA+9G,EAAQ7sG,KAAK,MAAQ,4BAA8BqvG,gCC9Q3DjhH,EAAiB,QAAI,CAAC,OAAS,KAAK,mBAAqB,SAAUggE,EAAEkiD,GAAK,IAAIvkD,EAAEtlD,OAAO2nD,GAAG1rD,MAAM,KAAK6tG,GAAIxkD,EAAE,GAAGykD,EAAG7zC,OAAO5Q,EAAE,KAAKqC,EAAEqiD,EAAID,GAAIzkD,EAAE,GAAGvvD,OAAO,GAAGk0G,EAAKF,GAAIzkD,EAAE,GAAGvvD,OAAO,GAAG,OAAG8zG,EAAgB,GAALG,GAAc,IAANC,EAAS,MAAW,GAALD,GAAc,IAANC,EAAS,MAAW,GAALD,GAAc,IAANC,EAAS,MAAM,QAAkB,GAAHtiD,GAAMmiD,EAAG,MAAM,wCCOjS,IAAImC,EAAc,EAAQ,OAKtB9B,EAAiB,WACjB,IAAM,QAASl2G,OAAOE,eAAe,GAAI,IAAK,IAC9C,MAAOoE,GAAK,OAAO,GAFF,GAOjBpE,IAFOg2G,GAAmBl2G,OAAOhF,UAAUm7G,iBAE1BD,EAAiBl2G,OAAOE,eACrC,SAAUK,EAAKnD,EAAMoM,GAErB,QAASA,GAAQjJ,EAAI41G,iBACrB51G,EAAI41G,iBAAiB/4G,EAAMoM,EAAKwd,KACxBgxF,EAAY/B,IAAI/4G,KAAKqD,EAAKnD,MAAS,UAAWoM,KACtDjJ,EAAInD,GAAQoM,EAAK5R,SAIrB66G,EAAYzyG,OAAO9E,QAAU,SAAUuoE,EAAOl4D,GAC9C,IAAIhL,EAAKupD,EAET,SAAS2oB,KAIT,IAAK3oB,KAHL2oB,EAAEz3E,UAAYyoE,EACdljE,EAAM,IAAIkyE,EAEAlnE,EACFysG,EAAY/B,IAAI/4G,KAAKqO,EAAOu+C,IAC5B5pD,EAAeK,EAAKupD,EAAGv+C,EAAMu+C,IAIrC,OAAOvpD,GAGX7M,EAAQwM,eAAiBA,EAAgBxM,EAAQ++G,UAAYA,gCC5C7D,IAAIuG,EAAa,EAAQ,OAAWC,EAAW,EAAQ,OAEvDD,EAAoB,QAAElG,gBAAgBmG,EAAkB,SACxDD,EAAoB,QAAErE,cAAgB,KAEtCjhH,EAAA,EAAqBslH,EAAoB,oCCCzCtlH,EAAQuH,OAGR,SAAgBsF,GACZ,IACInE,EAAG68D,EAAKj8D,EAAQxD,EADhB0/G,EAAUt6G,MAAM5D,UAAU8G,MAAM5E,KAAK4H,UAAW,GAGpD,IAAK1I,EAAI,EAAG68D,EAAMigD,EAAQ58G,OAAQF,EAAI68D,EAAK78D,GAAK,EAE5C,GADAY,EAASk8G,EAAQ98G,GAGjB,IAAK5C,KAAOwD,EACJi5G,EAAI/4G,KAAKF,EAAQxD,KACjB+G,EAAI/G,GAAOwD,EAAOxD,IAK9B,OAAO+G,GAjBX,IAAI01G,EAAMj2G,OAAOhF,UAAUuP,eAmB3B7W,EAAQuiH,IAAMA,0BCmBdxiH,EAAOC,QA5BS,SAASylH,EAAWxhC,EAAQ1sE,EAAGC,EAAGjO,EAAGi+B,EAAG52B,EAAGouE,GAOzD,IAAKymC,EAAW,CACd,IAAIh6G,EACJ,QAAe9F,IAAXs+E,EACFx4E,EAAQ,IAAI/K,MACV,qIAGG,CACL,IAAIyQ,EAAO,CAACoG,EAAGC,EAAGjO,EAAGi+B,EAAG52B,EAAGouE,GACvB0mC,EAAW,GACfj6G,EAAQ,IAAI/K,MACVujF,EAAO3yE,QAAQ,OAAO,WAAa,OAAOH,EAAKu0G,UAE3Ch8G,KAAO,sBAIf,MADA+B,EAAMk6G,YAAc,EACdl6G,qBC5CV,QAOYq0F,IAkBV,WACD,SAASv4F,IAGR,IAFA,IAAImB,EAAI,EACJ2N,EAAS,GACN3N,EAAI0I,UAAUxI,OAAQF,IAAK,CACjC,IAAI+9B,EAAar1B,UAAW1I,GAC5B,IAAK,IAAI5C,KAAO2gC,EACfpwB,EAAOvQ,GAAO2gC,EAAW3gC,GAG3B,OAAOuQ,EAGR,SAASgkB,EAAQsjC,GAChB,OAAOA,EAAErsD,QAAQ,mBAAoBqB,oBA0HtC,OAvHA,SAASurB,EAAM0nF,GACd,SAAS7nD,KAET,SAASlrC,EAAK/sB,EAAK5B,EAAOuiC,GACzB,GAAwB,oBAAbj0B,SAAX,CAQkC,iBAJlCi0B,EAAal/B,EAAO,CACnB0K,KAAM,KACJ8rD,EAAI9zD,SAAUw8B,IAEKz0B,UACrBy0B,EAAWz0B,QAAU,IAAIM,KAAkB,EAAb,IAAIA,KAAkC,MAArBm0B,EAAWz0B,UAI3Dy0B,EAAWz0B,QAAUy0B,EAAWz0B,QAAUy0B,EAAWz0B,QAAQujB,cAAgB,GAE7E,IACC,IAAIlf,EAAS5F,KAAKI,UAAU3M,GACxB,UAAU4O,KAAKuD,KAClBnS,EAAQmS,GAER,MAAOzF,IAET1M,EAAQ0hH,EAAU7zG,MACjB6zG,EAAU7zG,MAAM7N,EAAO4B,GACvBzC,mBAAmBgV,OAAOnU,IACxBoN,QAAQ,4DAA6DqB,oBAExE7M,EAAMzC,mBAAmBgV,OAAOvS,IAC9BwL,QAAQ,2BAA4BqB,oBACpCrB,QAAQ,UAAWknB,QAErB,IAAIqtF,EAAwB,GAC5B,IAAK,IAAIC,KAAiBr/E,EACpBA,EAAWq/E,KAGhBD,GAAyB,KAAOC,GACE,IAA9Br/E,EAAWq/E,KAWfD,GAAyB,IAAMp/E,EAAWq/E,GAAexxG,MAAM,KAAK,KAGrE,OAAQ9B,SAASJ,OAAStM,EAAM,IAAM5B,EAAQ2hH,GAG/C,SAASvyF,EAAKxtB,EAAKgX,GAClB,GAAwB,oBAAbtK,SAAX,CAUA,IANA,IAAIuzG,EAAM,GAGNvkH,EAAUgR,SAASJ,OAASI,SAASJ,OAAOkC,MAAM,MAAQ,GAC1D5L,EAAI,EAEDA,EAAIlH,EAAQoH,OAAQF,IAAK,CAC/B,IAAI8I,EAAQhQ,EAAQkH,GAAG4L,MAAM,KACzBlC,EAASZ,EAAMpD,MAAM,GAAGwD,KAAK,KAE5BkL,GAA6B,MAArB1K,EAAO2B,OAAO,KAC1B3B,EAASA,EAAOhE,MAAM,GAAI,IAG3B,IACC,IAAI1E,EAAO2wB,EAAO7oB,EAAM,IAIxB,GAHAY,GAAUwzG,EAAUlgH,MAAQkgH,GAAWxzG,EAAQ1I,IAC9C2wB,EAAOjoB,GAEJ0K,EACH,IACC1K,EAAS3B,KAAKC,MAAM0B,GACnB,MAAOxB,IAKV,GAFAm1G,EAAIr8G,GAAQ0I,EAERtM,IAAQ4D,EACX,MAEA,MAAOkH,KAGV,OAAO9K,EAAMigH,EAAIjgH,GAAOigH,GAoBzB,OAjBAhoD,EAAIlrC,IAAMA,EACVkrC,EAAIzqC,IAAM,SAAUxtB,GACnB,OAAOwtB,EAAIxtB,GAAK,IAEjBi4D,EAAIioD,QAAU,SAAUlgH,GACvB,OAAOwtB,EAAIxtB,GAAK,IAEjBi4D,EAAInrD,OAAS,SAAU9M,EAAK2gC,GAC3B5T,EAAI/sB,EAAK,GAAIyB,EAAOk/B,EAAY,CAC/Bz0B,SAAU,MAIZ+rD,EAAI9zD,SAAW,GAEf8zD,EAAIkoD,cAAgB/nF,EAEb6/B,EAGD7/B,EAAK,qBAvJG,0BAAd,KAAc,kCAIdn+B,EAAOC,QAAU8/F,mBCPnB,SAAS3V,EAAWluD,EAAUiqF,GAC5B,IAAI95G,EAAQ,GAAIuC,EAAO,GAOvB,OALqB,MAAjBu3G,IAAuBA,EAAgB,SAASpgH,EAAK5B,GACvD,OAAIkI,EAAM,KAAOlI,EAAc,eACxB,eAAiByK,EAAKP,MAAM,EAAGhC,EAAMxH,QAAQV,IAAQ0N,KAAK,KAAO,MAGnE,SAAS9L,EAAK5B,GACnB,GAAIkI,EAAMxD,OAAS,EAAG,CACpB,IAAIu9G,EAAU/5G,EAAMxH,QAAQ0D,OAC3B69G,EAAU/5G,EAAM/C,OAAO88G,EAAU,GAAK/5G,EAAMjD,KAAKb,OACjD69G,EAAUx3G,EAAKtF,OAAO88G,EAASjrG,IAAUpV,GAAO6I,EAAKxF,KAAKrD,IACtDsG,EAAMxH,QAAQV,KAAQA,EAAQgiH,EAAc18G,KAAKlB,KAAMxC,EAAK5B,SAE9DkI,EAAMjD,KAAKjF,GAEhB,OAAmB,MAAZ+3B,EAAmB/3B,EAAQ+3B,EAASzyB,KAAKlB,KAAMxC,EAAK5B,KAxBrDnE,EAAOC,QAGjB,SAAmB6M,EAAKovB,EAAUmqF,EAAQF,GACxC,OAAOz1G,KAAKI,UAAUhE,EAAKs9E,EAAWluD,EAAUiqF,GAAgBE,KAH1DC,aAAel8B,mBCDvB,MACiB5yE,KAAE,WAAW,aAAa,IAAUomD,EAAE,CAAC2oD,IAAI,MAAMC,KAAK,KAAKC,OAAO,IAAIC,OAAO,IAAIC,cAAc,KAAKC,UAAU,MAAMC,YAAY,CAAC,iBAAiB,CAAC,oBAAoB,kBAAkB,CAAC,uBAAuB,mBAAmB,CAAC,uBAAuB,oBAAoB,qBAAqB,CAAC,oBAAoB,oBAAoB,cAAc,CAAC,aAAa,iBAAiB,kBAAkB,gBAAgB,eAAe,YAAY,eAAe,mBAAmB,mBAAmB,CAAC,gBAAgB,sBAAsB,CAAC,wBAAwB,mBAAmB,CAAC,kBAAkB,kBAAkB,CAAC,qBAAqB,kBAAkB,CAAC,oBAAoB,aAAa,CAAC,gBAAgB,eAAe,CAAC,oBAAoB,gBAAgB,CAAC,eAAe,mBAAmB,mBAAmB,CAAC,uBAAuB,aAAa,CAAC,gBAAgB,aAAa,CAAC,aAAa,YAAY,CAAC,gBAAgB,qBAAqB,CAAC,oBAAoB,iBAAiB,CAAC,oBAAoB,iBAAiB,CAAC,iBAAiB,gBAAgB,oBAAoB,CAAC,gBAAgB,eAAe,CAAC,eAAe,iBAAiB,eAAe,CAAC,sBAAsB,sBAAsB,CAAC,YAAY,kBAAkBl+G,EAAE,SAASkI,GAAG,IAAI2G,GAAG3G,EAAEkxG,oBAAoB,OAAO,OAAOvqG,EAAEA,EAAE,GAAG6Y,EAAE,WAAW,IAAI,IAAIxf,EAAE,GAAG2G,EAAE,EAAEA,GAAG,GAAGA,IAAI,IAAI,IAAI6Y,EAAE,EAAEA,GAAG,GAAGA,IAAI,CAAC,IAAI4vC,EAAEt3D,EAAE,IAAI4J,KAAKqrD,EAAE+oD,cAAcnvG,EAAE6Y,IAAIxf,EAAEA,GAAGA,EAAEA,EAAEhI,OAAO,KAAKo3D,GAAGpvD,EAAEzH,KAAK62D,GAAGpvD,EAAEzH,OAAO,OAAOyH,GAA8Y+/E,EAAE,SAAS//E,GAAG,IAAI,IAAI2G,EAAE,IAAIjF,KAAK1B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG0kB,UAAUqoC,EAAE,IAAIrrD,KAAK1B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI0kB,UAAU5sB,EAAE6O,EAAE6Y,EAAE,IAAI9d,KAAK5J,GAAGo5G,oBAAoB9hD,EAAE,KAAKuI,EAAE,KAAK7/D,EAAEi1D,EAAE,OAAO,CAAC,IAAIgzB,EAAE,IAAIr+E,KAAK5J,GAAGm+G,EAAEl2B,EAAEmxB,oBAAoB+E,IAAIz2F,IAAIy2F,EAAEz2F,IAAI4vC,EAAE2wB,GAAGk2B,EAAEz2F,IAAIm4C,EAAEooB,GAAGvgE,EAAEy2F,GAAGn+G,GAAG,MAAM,SAASs3D,IAAIuI,IAAI,CAAC5K,EAAEmpD,EAAE9mD,GAAG1qC,UAAU1kB,EAAEk2G,EAAEv+C,GAAGjzC,YAAYwxF,EAAE,SAAS9nC,EAAEpuE,EAAE2G,EAAE7O,QAAG,IAAoB6O,IAAIA,EAAEomD,EAAE2oD,IAAI59G,EAAEi1D,EAAE4oD,MAAM,IAAI,IAAIn2F,EAAE,IAAI9d,KAAK1B,EAAE0kB,UAAU/d,GAAG+d,UAAU0qC,EAAEpvD,EAAE0kB,UAAU/d,EAAEgxD,EAAE,IAAIj2D,KAAK8d,GAAG0xF,oBAAoBnxB,EAAEvgE,EAAE02F,EAAE,KAAKn2B,EAAE3wB,EAAEt3D,GAAG,CAAC,IAAIm+G,EAAE,IAAIv0G,KAAKq+E,GAA2B,GAAtBk2B,EAAE/E,sBAA2Bv5C,EAAE,CAACu+C,EAAED,EAAE,MAAMl2B,GAAGjoF,EAAE,OAAO6O,IAAIomD,EAAE2oD,IAAItnC,EAAE8nC,EAAEnpD,EAAE4oD,KAAK5oD,EAAE6oD,QAAQjvG,IAAIomD,EAAE4oD,KAAKvnC,EAAE8nC,EAAEnpD,EAAE6oD,OAAO7oD,EAAE8oD,QAAQK,GAA+nCn5C,EAAE,SAAS/8D,GAAG,IAAyMwf,EAAnM,WAAW,IAAI,IAAIxf,EAAE,GAAG+sD,EAAE,EAAEA,EAAEpmD,EAAEwvG,MAAMC,UAAUC,MAAMr+G,OAAO+0D,IAAI,CAAC,IAAIj1D,EAAEioF,EAAEp5E,EAAEwvG,MAAMC,UAAUC,MAAMtpD,IAAI/sD,EAAEzH,KAAKT,GAAG,OAAOkI,EAA8E+sD,GAAIqC,EAA7E,SAASpvD,GAAG,IAAI,IAAI2G,EAAE,EAAEA,EAAE3G,EAAEhI,OAAO2O,IAAI,IAAU,IAAP3G,EAAE2G,GAAQ,OAAM,EAAG,OAAM,EAAY7O,CAAE0nB,GAAG,OAAO4vC,EAAvtB,SAASpvD,EAAElI,GAAG,IAAI,IAAI0nB,EAAE,SAAS7Y,GAAG,IAAI,IAAI6Y,EAAE,EAAE4vC,EAAE,EAAEA,EAAEpvD,EAAEhI,OAAOo3D,IAAI,GAAGzoD,EAAE2vG,MAAMlnD,IAAIpvD,EAAEovD,GAAG,CAAC,KAAKpvD,EAAEovD,GAAGrC,GAAGpmD,EAAE2vG,MAAMlnD,GAAGrC,GAAG/sD,EAAEovD,GAAGpvD,GAAG2G,EAAE2vG,MAAMlnD,GAAGpvD,GAAG,CAACwf,EAAE,MAAM,MAAM,GAAGA,EAAE,EAAEA,GAAGrhB,KAAKumG,IAAI1kG,EAAEovD,GAAGrC,EAAEpmD,EAAE2vG,MAAMlnD,GAAGrC,IAAGvtC,GAAGrhB,KAAKumG,IAAI/9F,EAAE2vG,MAAMlnD,GAAGpvD,EAAEA,EAAEovD,GAAGpvD,IAAK+sD,EAAEgpD,UAAU,CAACv2F,EAAE,MAAM,OAAO,OAA74B,SAASxf,EAAE2G,EAAEomD,EAAEj1D,GAAG,GAAG,QAAQi1D,EAAE,OAAOA,EAAE,GAAG,gBAAgBpmD,EAAE,CAAC,GAAG,iBAAiB7O,EAAEgB,MAAM,aAAakH,EAAE,GAAG+sD,GAAG,aAAa/sD,EAAE,GAAGA,EAAE,OAAO,EAAE,GAAG,mBAAmBlI,EAAEgB,MAAM,aAAakH,EAAE,GAAG+sD,GAAG,aAAa/sD,EAAE,GAAGA,EAAE,OAAO,OAAO,GAAG,qBAAqB2G,EAAE,CAAC,GAAG,qBAAqB7O,EAAEgB,MAAM,aAAakH,EAAE,GAAG+sD,GAAG,YAAY/sD,EAAE,GAAGA,EAAE,OAAO,EAAE,GAAG,yBAAyBlI,EAAEgB,MAAM,aAAakH,EAAE,GAAG+sD,GAAG,aAAa/sD,EAAE,GAAGA,EAAE,OAAO,OAAO,GAAG,uBAAuB2G,GAAG,GAAG,sBAAsB7O,EAAEgB,MAAM,aAAakH,EAAE,GAAG+sD,GAAG,YAAY/sD,EAAE,GAAGA,EAAE,OAAO,OAAO,GAAG,qBAAqB2G,GAAG,iBAAiB7O,EAAEgB,MAAM,aAAakH,EAAE,GAAG+sD,GAAG,aAAa/sD,EAAE,GAAGA,EAAE,OAAO,EAAE,OAAO+sD,EAA6QkpD,CAAEj2G,EAAElI,EAAE0nB,EAAE7Y,IAAIyoD,EAAE,GAAGuI,EAAEhxD,EAAEwvG,MAAMC,UAAUG,MAAMx2B,EAAEpoB,EAAE3/D,OAAOk+G,EAAEnpD,EAAEipD,YAAYl+G,GAAGa,EAAE,EAAEA,EAAEonF,EAAEpnF,IAAI,CAAC,IAAIokE,EAAEpF,EAAEh/D,GAAGZ,EAAEynB,EAAEm4C,EAAEh/D,IAAI,QAAQZ,IAAIq3D,EAAE2N,EAAEjkE,MAAMf,GAAG,IAAI,IAAIq2E,KAAKhf,EAAE,GAAGA,EAAEnpD,eAAemoE,GAAG,IAAI,IAAIx3C,EAAE,EAAEA,EAAEs/E,EAAEl+G,OAAO4+B,IAAI,GAAGs/E,EAAEt/E,KAAKw3C,EAAE,OAAOA,EAAE,OAAOt2E,EAAgPa,CAAE6mB,EAAExf,GAAGA,GAA2O,MAAM,CAACw2G,UAA7O,SAASx2G,GAAG,IAAIlI,GAAE,EAAGioF,EAA73E,WAAW,IAAIp5E,EAAE,EAAEomD,EAAEvtC,IAAI,OAAOutC,EAAE/0D,OAAO,IAAI2O,EAAEomD,EAAE,GAAGA,EAAE,IAAIA,EAAE/0D,OAAO,EAAE+0D,EAAE,GAAG,WAAWpmD,EAAE,EAAEomD,EAAE,GAAG,KAAKpmD,EAAE,EAAEomD,EAAE,GAAFA,OAAaA,EAAE,GAAG,KAAswEqC,GAAI,OAAOpvD,QAAG,IAAoBA,KAAKlI,EAAryE,WAAW,IAAIkI,EAAE2G,EAAE,GAAGusG,MAAM,oBAAoBA,WAAM,IAAoBA,KAAKE,qBAAyC,KAAxBpzG,EAAEkzG,KAAKE,wBAAwC,IAAoBpzG,EAAE8uG,gBAAiB,OAAOnoG,EAAE3G,EAAE8uG,kBAAkB5qE,YAAav9B,EAAE3S,QAAQ,MAAM,GAAG,QAAQ2S,GAAGA,OAAE,EAAuiEgxD,IAAK7/D,IAAIA,EAAE6O,EAAEwvG,MAAMM,UAAU12B,QAAG,IAAoBhzB,EAAEipD,YAAYl+G,KAAKA,EAAEilE,EAAEjlE,KAAK,CAACgB,KAAK,WAAW,OAAOhB,GAAG4+G,WAAW12G,QAAG,IAAoBA,EAAE22G,OAAO52B,EAAE62B,QAAQp3F,OAA9+H,IAA6gI22F,MAAMxvG,EAAEwvG,OAAO,GAAGxvG,EAAEwvG,MAAMM,UAAU,CAAC,SAAS,aAAa,SAAS,oBAAoB,WAAW,eAAe,SAAS,eAAe,SAAS,mBAAmB,SAAS,oBAAoB,SAAS,kBAAkB,SAAS,oBAAoB,SAAS,sBAAsB,SAAS,mBAAmB,SAAS,kBAAkB,SAAS,iBAAiB,SAAS,oBAAoB,SAAS,kBAAkB,WAAW,iBAAiB,SAAS,iBAAiB,SAAS,mBAAmB,SAAS,kBAAkB,SAAS,kBAAkB,SAAS,wBAAwB,WAAW,mBAAmB,SAAS,mBAAmB,SAAS,kBAAkB,SAAS,uBAAuB,WAAW,qBAAqB,SAAS,kBAAkB,SAAS,kBAAkB,QAAQ,kBAAkB,QAAQ,sBAAsB,MAAM,MAAM,MAAM,gBAAgB,YAAY,oBAAoB,OAAO,gBAAgB,OAAO,eAAe,aAAa,oBAAoB,QAAQ,cAAc,cAAc,eAAe,QAAQ,sBAAsB,QAAQ,eAAe,QAAQ,gBAAgB,QAAQ,cAAc,QAAQ,aAAa,QAAQ,YAAY,QAAQ,aAAa,QAAQ,qBAAqB,QAAQ,eAAe,QAAQ,gBAAgB,QAAQ,gBAAgB,QAAQ,aAAa,QAAQ,YAAY,QAAQ,eAAe,QAAQ,mBAAmB,QAAQ,eAAe,QAAQ,gBAAgB,QAAQ,eAAe,QAAQ,kBAAkB,UAAU,kBAAkB,QAAQ,eAAe,QAAQ,aAAa,QAAQ,mBAAmB,UAAU,qBAAqB,QAAQ,qBAAqB,QAAQ,mBAAmB,UAAU,mBAAmB,UAAU,sBAAsB,QAAQ,iBAAiB,QAAQ,iBAAiB,QAAQ,kBAAkB,UAAU,mBAAmB,QAAQ,iBAAiB,UAAU,kBAAkB,QAAQ,oBAAoB,UAAU,eAAe,QAAQ,sBAAsB9vG,EAAEwvG,MAAMC,UAAU,CAACC,MAAM,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAME,MAAM,CAAC,CAACz9G,KAAK,eAAew9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAY,GAAG,GAAG,EAAG,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAa,CAACj0D,KAAK,mBAAmBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,uBAAuBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,SAAS+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,oBAAoBw9G,MAAM,CAAC,CAACt2G,EAAE,YAAY+sD,EAAE,aAAa,CAAC/sD,EAAE,YAAY+sD,EAAE,aAAa,CAAC/sD,EAAE,YAAY+sD,EAAE,aAAa,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAa,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,iBAAiBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,mBAAmBw9G,MAAM,CAAC,CAACt2G,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,sBAAsBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,mBAAmBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,uBAAuBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,SAAS+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,UAAU,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,mBAAmBw9G,MAAM,CAAC,CAACt2G,EAAE,UAAU+sD,EAAE,WAAW,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,SAAS+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,oBAAoBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,UAAU+sD,EAAE,cAAc,CAACj0D,KAAK,aAAaw9G,MAAM,CAAC,CAACt2G,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAY,GAAG,EAAG,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,gBAAgBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,UAAU,CAAC/sD,EAAE,SAAS+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,aAAaw9G,MAAM,EAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAK,CAACx9G,KAAK,YAAYw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,aAAa,CAAC/sD,EAAE,UAAU+sD,EAAE,aAAa,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,UAAU+sD,EAAE,cAAc,CAACj0D,KAAK,eAAew9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAY,GAAG,GAAG,GAAG,IAAK,CAACj0D,KAAK,iBAAiBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,WAAW,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,SAAS+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,cAAc,CAACj0D,KAAK,iBAAiBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAY,GAAG,GAAG,GAAG,IAAK,CAACj0D,KAAK,mBAAmBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAY,GAAG,GAAG,GAAG,IAAK,CAACj0D,KAAK,YAAYw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAU,GAAG,GAAG,GAAG,IAAK,CAACj0D,KAAK,mBAAmBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,QAAQ+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAY,GAAG,GAAG,GAAG,IAAK,CAACj0D,KAAK,eAAew9G,MAAM,CAAC,CAACt2G,EAAE,UAAU+sD,EAAE,UAAU,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,aAAY,GAAG,GAAG,GAAG,IAAK,CAACj0D,KAAK,qBAAqBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAY,GAAG,GAAG,GAAG,IAAK,CAACj0D,KAAK,eAAew9G,MAAM,CAAC,CAACt2G,EAAE,UAAU+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAY,GAAG,GAAG,IAAK,CAACj0D,KAAK,sBAAsBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,SAAS+sD,EAAE,cAAc,CAACj0D,KAAK,kBAAkBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,aAAY,GAAG,GAAG,GAAG,GAAG,GAAG,IAAK,CAACj0D,KAAK,kBAAkBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,eAAew9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAY,GAAG,GAAG,GAAG,IAAK,CAACj0D,KAAK,gBAAgBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,aAAY,GAAG,GAAG,GAAG,IAAK,CAACj0D,KAAK,eAAew9G,MAAM,EAAC,GAAG,GAAG,EAAG,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,eAAew9G,MAAM,EAAC,GAAG,EAAG,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,SAAS+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,gBAAgBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,WAAW,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,cAAc,CAACj0D,KAAK,kBAAkBw9G,MAAM,CAAC,CAACt2G,EAAE,WAAW+sD,EAAE,UAAU,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,UAAU+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,YAAY,CAAC/sD,EAAE,WAAW+sD,EAAE,qBAA4C,IAAoB59D,EAAOC,QAAQD,EAAOC,QAAQuX,EAA8B,OAAO,QAAQ,MAAM,YAAyC,KAArB,aAAY,OAAOA,GAAE,QAAvB,OAAuB,aAAwBvD,OAAO+gC,KAAKx9B,YC6CvgY,IAPiBk/D,EAAMgxC,EAOnBC,EAAYvpB,SAAS72F,UACrBqgH,EAAcr7G,OAAOhF,UAGrBsgH,EAAeF,EAAUr4G,SAGzBwH,EAAiB8wG,EAAY9wG,eAG7BgxG,EAAmBD,EAAap+G,KAAK8C,QAOrCw7G,EAAiBH,EAAYt4G,SAG7B04G,GA3BatxC,EA2BUnqE,OAAOqK,eA3BX8wG,EA2B2Bn7G,OA1BzC,SAASm/D,GACd,OAAOgL,EAAKgxC,EAAUh8C,MAiG1B1rE,EAAOC,QAdP,SAAuBkE,GACrB,IAjCF,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EAgCpB8jH,CAAa9jH,IAnHJ,mBAoHV4jH,EAAet+G,KAAKtF,IA3G1B,SAAsBA,GAGpB,IAAImS,GAAS,EACb,GAAa,MAATnS,GAA0C,mBAAlBA,EAAMmL,SAChC,IACEgH,KAAYnS,EAAQ,IACpB,MAAO0M,IAEX,OAAOyF,EAkGwC4xG,CAAa/jH,GAC1D,OAAO,EAET,IAAI6rE,EAAQg4C,EAAa7jH,GACzB,GAAc,OAAV6rE,EACF,OAAO,EAET,IAAIm4C,EAAOrxG,EAAerN,KAAKumE,EAAO,gBAAkBA,EAAM/4D,YAC9D,MAAuB,mBAARkxG,GACbA,aAAgBA,GAAQN,EAAap+G,KAAK0+G,IAASL,cC7HvD,IASIC,EANcx7G,OAAOhF,UAMQ+H,SAyB7BlB,EAAUjD,MAAMiD,QAkDpBpO,EAAOC,QALP,SAAkBkE,GAChB,MAAuB,iBAATA,IACViK,EAAQjK,IAtBd,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EAqBH8jH,CAAa9jH,IAjFrB,mBAiF+B4jH,EAAet+G,KAAKtF,qBC3FnE,IAAIikH,EAAwB,mBAARrwC,KAAsBA,IAAIxwE,UAC1C8gH,EAAoB97G,OAAO2sE,0BAA4BkvC,EAAS77G,OAAO2sE,yBAAyBnB,IAAIxwE,UAAW,QAAU,KACzH+gH,EAAUF,GAAUC,GAAsD,mBAA1BA,EAAkB90F,IAAqB80F,EAAkB90F,IAAM,KAC/Gg1F,EAAaH,GAAUrwC,IAAIxwE,UAAUzB,QACrC0iH,EAAwB,mBAARhmG,KAAsBA,IAAIjb,UAC1CkhH,EAAoBl8G,OAAO2sE,0BAA4BsvC,EAASj8G,OAAO2sE,yBAAyB12D,IAAIjb,UAAW,QAAU,KACzHmhH,EAAUF,GAAUC,GAAsD,mBAA1BA,EAAkBl1F,IAAqBk1F,EAAkBl1F,IAAM,KAC/Go1F,EAAaH,GAAUhmG,IAAIjb,UAAUzB,QAErC8iH,EADgC,mBAAZhvC,SAA0BA,QAAQryE,UAC5BqyE,QAAQryE,UAAU0jC,IAAM,KAElD49E,EADgC,mBAAZ/oB,SAA0BA,QAAQv4F,UAC5Bu4F,QAAQv4F,UAAU0jC,IAAM,KAElD69E,EADgC,mBAAZrmB,SAA0BA,QAAQl7F,UAC1Bk7F,QAAQl7F,UAAUwhH,MAAQ,KACtDC,EAAiB9iE,QAAQ3+C,UAAUklE,QACnCs7C,EAAiBx7G,OAAOhF,UAAU+H,SAClC25G,EAAmB7qB,SAAS72F,UAAU+H,SACtC45G,EAAS5wG,OAAO/Q,UAAUmL,MAC1By2G,EAAS7wG,OAAO/Q,UAAU8G,MAC1B20F,EAAW1qF,OAAO/Q,UAAUgK,QAC5B63G,EAAe9wG,OAAO/Q,UAAUjD,YAChC+kH,EAAe/wG,OAAO/Q,UAAUvB,YAChCsjH,EAAQ32G,OAAOpL,UAAUwL,KACzB+vF,EAAU33F,MAAM5D,UAAU8D,OAC1Bk+G,EAAQp+G,MAAM5D,UAAUsK,KACxB23G,EAAYr+G,MAAM5D,UAAU8G,MAC5Bo7G,EAASz6G,KAAKC,MACdy6G,EAAkC,mBAAXloB,OAAwBA,OAAOj6F,UAAUklE,QAAU,KAC1Ek9C,EAAOp9G,OAAOwsE,sBACd6wC,EAAgC,mBAAXv+C,QAAoD,iBAApBA,OAAOyL,SAAwBzL,OAAO9jE,UAAU+H,SAAW,KAChHu6G,EAAsC,mBAAXx+C,QAAoD,iBAApBA,OAAOyL,SAElEgzC,EAAgC,mBAAXz+C,QAAyBA,OAAOy+C,cAAuBz+C,OAAOy+C,YAAf,GAClEz+C,OAAOy+C,YACP,KACFC,EAAex9G,OAAOhF,UAAUqoF,qBAEhCo6B,GAA0B,mBAAZ3nB,QAAyBA,QAAQzrF,eAAiBrK,OAAOqK,kBACvE,GAAG0jE,YAAcnvE,MAAM5D,UACjB,SAAU0iH,GACR,OAAOA,EAAE3vC,WAEX,MAGV,SAAS4vC,EAAoBrpH,EAAK6V,GAC9B,GACI7V,IAAQsa,KACLta,KAAQ,KACRA,GAAQA,GACPA,GAAOA,GAAO,KAAQA,EAAM,KAC7ByoH,EAAM7/G,KAAK,IAAKiN,GAEnB,OAAOA,EAEX,IAAIyzG,EAAW,mCACf,GAAmB,iBAARtpH,EAAkB,CACzB,IAAIupH,EAAMvpH,EAAM,GAAK4oH,GAAQ5oH,GAAO4oH,EAAO5oH,GAC3C,GAAIupH,IAAQvpH,EAAK,CACb,IAAIwpH,EAAS/xG,OAAO8xG,GAChBE,EAAMnB,EAAO1/G,KAAKiN,EAAK2zG,EAAOxhH,OAAS,GAC3C,OAAOm6F,EAASv5F,KAAK4gH,EAAQF,EAAU,OAAS,IAAMnnB,EAASv5F,KAAKu5F,EAASv5F,KAAK6gH,EAAK,cAAe,OAAQ,KAAM,KAG5H,OAAOtnB,EAASv5F,KAAKiN,EAAKyzG,EAAU,OAGxC,IAAII,EAAc,EAAQ,OACtBC,EAAgBD,EAAY/jF,OAC5BikF,EAAgBC,EAASF,GAAiBA,EAAgB,KAwL9D,SAASG,EAAW/sD,EAAGgtD,EAAczqH,GACjC,IAAI0qH,EAAkD,YAArC1qH,EAAK2qH,YAAcF,GAA6B,IAAM,IACvE,OAAOC,EAAYjtD,EAAIitD,EAG3B,SAASvnB,EAAM1lC,GACX,OAAOolC,EAASv5F,KAAK6O,OAAOslD,GAAI,KAAM,UAG1C,SAASxvD,EAAQtB,GAAO,QAAsB,mBAAfmzF,EAAMnzF,IAA+Bg9G,GAAgC,iBAARh9G,GAAoBg9G,KAAeh9G,GAE/H,SAAS41E,EAAS51E,GAAO,QAAsB,oBAAfmzF,EAAMnzF,IAAgCg9G,GAAgC,iBAARh9G,GAAoBg9G,KAAeh9G,GAOjI,SAAS49G,EAAS59G,GACd,GAAI+8G,EACA,OAAO/8G,GAAsB,iBAARA,GAAoBA,aAAeu+D,OAE5D,GAAmB,iBAARv+D,EACP,OAAO,EAEX,IAAKA,GAAsB,iBAARA,IAAqB88G,EACpC,OAAO,EAEX,IAEI,OADAA,EAAYngH,KAAKqD,IACV,EACT,MAAO+D,IACT,OAAO,EAtNX7Q,EAAOC,QAAU,SAAS8qH,EAASj+G,EAAKtM,EAAS8gF,EAAO0pC,GACpD,IAAI7qH,EAAOK,GAAW,GAEtB,GAAIyqC,EAAI9qC,EAAM,eAAsC,WAApBA,EAAK2qH,YAA+C,WAApB3qH,EAAK2qH,WACjE,MAAM,IAAIziH,UAAU,oDAExB,GACI4iC,EAAI9qC,EAAM,qBAAuD,iBAAzBA,EAAK8qH,gBACvC9qH,EAAK8qH,gBAAkB,GAAK9qH,EAAK8qH,kBAAoB9vG,IAC5B,OAAzBhb,EAAK8qH,iBAGX,MAAM,IAAI5iH,UAAU,0FAExB,IAAI6iH,GAAgBjgF,EAAI9qC,EAAM,kBAAmBA,EAAK+qH,cACtD,GAA6B,kBAAlBA,GAAiD,WAAlBA,EACtC,MAAM,IAAI7iH,UAAU,iFAGxB,GACI4iC,EAAI9qC,EAAM,WACS,OAAhBA,EAAKkqF,QACW,OAAhBlqF,EAAKkqF,UACH54C,SAAStxC,EAAKkqF,OAAQ,MAAQlqF,EAAKkqF,QAAUlqF,EAAKkqF,OAAS,GAEhE,MAAM,IAAIhiF,UAAU,4DAExB,GAAI4iC,EAAI9qC,EAAM,qBAAwD,kBAA1BA,EAAKgrH,iBAC7C,MAAM,IAAI9iH,UAAU,qEAExB,IAAI8iH,EAAmBhrH,EAAKgrH,iBAE5B,QAAmB,IAARr+G,EACP,MAAO,YAEX,GAAY,OAARA,EACA,MAAO,OAEX,GAAmB,kBAARA,EACP,OAAOA,EAAM,OAAS,QAG1B,GAAmB,iBAARA,EACP,OAAOs+G,EAAct+G,EAAK3M,GAE9B,GAAmB,iBAAR2M,EAAkB,CACzB,GAAY,IAARA,EACA,OAAOqO,IAAWrO,EAAM,EAAI,IAAM,KAEtC,IAAI4J,EAAM4B,OAAOxL,GACjB,OAAOq+G,EAAmBjB,EAAoBp9G,EAAK4J,GAAOA,EAE9D,GAAmB,iBAAR5J,EAAkB,CACzB,IAAIu+G,EAAY/yG,OAAOxL,GAAO,IAC9B,OAAOq+G,EAAmBjB,EAAoBp9G,EAAKu+G,GAAaA,EAGpE,IAAIC,OAAiC,IAAfnrH,EAAKmhF,MAAwB,EAAInhF,EAAKmhF,MAE5D,QADqB,IAAVA,IAAyBA,EAAQ,GACxCA,GAASgqC,GAAYA,EAAW,GAAoB,iBAARx+G,EAC5C,OAAOsB,EAAQtB,GAAO,UAAY,WAGtC,IAwQe8iD,EAxQXy6B,EA8TR,SAAmBlqF,EAAMmhF,GACrB,IAAIiqC,EACJ,GAAoB,OAAhBprH,EAAKkqF,OACLkhC,EAAa,SACV,MAA2B,iBAAhBprH,EAAKkqF,QAAuBlqF,EAAKkqF,OAAS,GAGxD,OAAO,KAFPkhC,EAAahC,EAAM9/G,KAAK0B,MAAMhL,EAAKkqF,OAAS,GAAI,KAIpD,MAAO,CACH8pB,KAAMoX,EACNh7B,KAAMg5B,EAAM9/G,KAAK0B,MAAMm2E,EAAQ,GAAIiqC,IAzU1BC,CAAUrrH,EAAMmhF,GAE7B,QAAoB,IAAT0pC,EACPA,EAAO,QACJ,GAAInmH,EAAQmmH,EAAMl+G,IAAQ,EAC7B,MAAO,aAGX,SAASikE,EAAQ5sE,EAAOuI,EAAM++G,GAK1B,GAJI/+G,IACAs+G,EAAOxB,EAAU//G,KAAKuhH,IACjB5hH,KAAKsD,GAEV++G,EAAU,CACV,IAAIC,EAAU,CACVpqC,MAAOnhF,EAAKmhF,OAKhB,OAHIr2C,EAAI9qC,EAAM,gBACVurH,EAAQZ,WAAa3qH,EAAK2qH,YAEvBC,EAAS5mH,EAAOunH,EAASpqC,EAAQ,EAAG0pC,GAE/C,OAAOD,EAAS5mH,EAAOhE,EAAMmhF,EAAQ,EAAG0pC,GAG5C,GAAmB,mBAARl+G,IAAuB41E,EAAS51E,GAAM,CAC7C,IAAInD,EAoJZ,SAAgBs1E,GACZ,GAAIA,EAAEt1E,KAAQ,OAAOs1E,EAAEt1E,KACvB,IAAIikE,EAAIs7C,EAAOz/G,KAAKw/G,EAAiBx/G,KAAKw1E,GAAI,wBAC9C,OAAIrR,EAAYA,EAAE,GACX,KAxJQ+9C,CAAO7+G,GACd8B,GAAOg9G,EAAW9+G,EAAKikE,GAC3B,MAAO,aAAepnE,EAAO,KAAOA,EAAO,gBAAkB,KAAOiF,GAAK/F,OAAS,EAAI,MAAQ0gH,EAAM9/G,KAAKmF,GAAM,MAAQ,KAAO,IAElI,GAAI87G,EAAS59G,GAAM,CACf,IAAI++G,GAAYhC,EAAoB7mB,EAASv5F,KAAK6O,OAAOxL,GAAM,yBAA0B,MAAQ88G,EAAYngH,KAAKqD,GAClH,MAAsB,iBAARA,GAAqB+8G,EAA2CgC,GAAvBC,EAAUD,IAErE,IAsOej8D,EAtOD9iD,IAuOS,iBAAN8iD,IACU,oBAAhBm8D,aAA+Bn8D,aAAam8D,aAG1B,iBAAfn8D,EAAEo8D,UAAmD,mBAAnBp8D,EAAEs5C,cA3O9B,CAGhB,IAFA,IAAItrC,GAAI,IAAMyrD,EAAa5/G,KAAK6O,OAAOxL,EAAIk/G,WACvChlF,GAAQl6B,EAAI45B,YAAc,GACrB/9B,GAAI,EAAGA,GAAIq+B,GAAMn+B,OAAQF,KAC9Bi1D,IAAK,IAAM52B,GAAMr+B,IAAGgB,KAAO,IAAMghH,EAAWrnB,EAAMt8D,GAAMr+B,IAAGxE,OAAQ,SAAUhE,GAKjF,OAHAy9D,IAAK,IACD9wD,EAAIm/G,YAAcn/G,EAAIm/G,WAAWpjH,SAAU+0D,IAAK,OACpDA,GAAK,KAAOyrD,EAAa5/G,KAAK6O,OAAOxL,EAAIk/G,WAAa,IAG1D,GAAI59G,EAAQtB,GAAM,CACd,GAAmB,IAAfA,EAAIjE,OAAgB,MAAO,KAC/B,IAAIqjH,GAAKN,EAAW9+G,EAAKikE,GACzB,OAAIsZ,IAqQZ,SAA0B6hC,GACtB,IAAK,IAAIvjH,EAAI,EAAGA,EAAIujH,EAAGrjH,OAAQF,IAC3B,GAAI9D,EAAQqnH,EAAGvjH,GAAI,OAAS,EACxB,OAAO,EAGf,OAAO,EA3QYwjH,CAAiBD,IACrB,IAAME,EAAaF,GAAI7hC,GAAU,IAErC,KAAOk/B,EAAM9/G,KAAKyiH,GAAI,MAAQ,KAEzC,GA8EJ,SAAiBp/G,GAAO,QAAsB,mBAAfmzF,EAAMnzF,IAA+Bg9G,GAAgC,iBAARh9G,GAAoBg9G,KAAeh9G,GA9EvHu/G,CAAQv/G,GAAM,CACd,IAAI2E,GAAQm6G,EAAW9+G,EAAKikE,GAC5B,MAAM,UAAWpwE,MAAM4G,aAAc,UAAWuF,IAAQi9G,EAAatgH,KAAKqD,EAAK,SAG1D,IAAjB2E,GAAM5I,OAAuB,IAAMyP,OAAOxL,GAAO,IAC9C,MAAQwL,OAAOxL,GAAO,KAAOy8G,EAAM9/G,KAAKgI,GAAO,MAAQ,KAHnD,MAAQ6G,OAAOxL,GAAO,KAAOy8G,EAAM9/G,KAAKq5F,EAAQr5F,KAAK,YAAcsnE,EAAQjkE,EAAIgf,OAAQra,IAAQ,MAAQ,KAKtH,GAAmB,iBAAR3E,GAAoBo+G,EAAe,CAC1C,GAAIT,GAA+C,mBAAvB39G,EAAI29G,IAAiCF,EAC7D,OAAOA,EAAYz9G,EAAK,CAAEw0E,MAAOgqC,EAAWhqC,IACzC,GAAsB,WAAlB4pC,GAAqD,mBAAhBp+G,EAAIikE,QAChD,OAAOjkE,EAAIikE,UAGnB,GAyHJ,SAAenhB,GACX,IAAK04D,IAAY14D,GAAkB,iBAANA,EACzB,OAAO,EAEX,IACI04D,EAAQ7+G,KAAKmmD,GACb,IACI84D,EAAQj/G,KAAKmmD,GACf,MAAOgO,GACL,OAAO,EAEX,OAAOhO,aAAamoB,IACtB,MAAOlnE,IACT,OAAO,EAtIHy7G,CAAMx/G,GAAM,CACZ,IAAIy/G,GAAW,GAIf,OAHAhE,EAAW9+G,KAAKqD,GAAK,SAAU3I,EAAO4B,GAClCwmH,GAASnjH,KAAK2nE,EAAQhrE,EAAK+G,GAAK,GAAQ,OAASikE,EAAQ5sE,EAAO2I,OAE7D0/G,EAAa,MAAOlE,EAAQ7+G,KAAKqD,GAAMy/G,GAAUliC,GAE5D,GA6JJ,SAAez6B,GACX,IAAK84D,IAAY94D,GAAkB,iBAANA,EACzB,OAAO,EAEX,IACI84D,EAAQj/G,KAAKmmD,GACb,IACI04D,EAAQ7+G,KAAKmmD,GACf,MAAOge,GACL,OAAO,EAEX,OAAOhe,aAAaptC,IACtB,MAAO3R,IACT,OAAO,EA1KH47G,CAAM3/G,GAAM,CACZ,IAAI4/G,GAAW,GAIf,OAHA/D,EAAWl/G,KAAKqD,GAAK,SAAU3I,GAC3BuoH,GAAStjH,KAAK2nE,EAAQ5sE,EAAO2I,OAE1B0/G,EAAa,MAAO9D,EAAQj/G,KAAKqD,GAAM4/G,GAAUriC,GAE5D,GA2HJ,SAAmBz6B,GACf,IAAKg5D,IAAeh5D,GAAkB,iBAANA,EAC5B,OAAO,EAEX,IACIg5D,EAAWn/G,KAAKmmD,EAAGg5D,GACnB,IACIC,EAAWp/G,KAAKmmD,EAAGi5D,GACrB,MAAOjrD,GACL,OAAO,EAEX,OAAOhO,aAAagqB,QACtB,MAAO/oE,IACT,OAAO,EAxIH87G,CAAU7/G,GACV,OAAO8/G,EAAiB,WAE5B,GAmKJ,SAAmBh9D,GACf,IAAKi5D,IAAej5D,GAAkB,iBAANA,EAC5B,OAAO,EAEX,IACIi5D,EAAWp/G,KAAKmmD,EAAGi5D,GACnB,IACID,EAAWn/G,KAAKmmD,EAAGg5D,GACrB,MAAOhrD,GACL,OAAO,EAEX,OAAOhO,aAAakwC,QACtB,MAAOjvF,IACT,OAAO,EAhLHg8G,CAAU//G,GACV,OAAO8/G,EAAiB,WAE5B,GAqIJ,SAAmBh9D,GACf,IAAKk5D,IAAiBl5D,GAAkB,iBAANA,EAC9B,OAAO,EAEX,IAEI,OADAk5D,EAAar/G,KAAKmmD,IACX,EACT,MAAO/+C,IACT,OAAO,EA7IHi8G,CAAUhgH,GACV,OAAO8/G,EAAiB,WAE5B,GA0CJ,SAAkB9/G,GAAO,QAAsB,oBAAfmzF,EAAMnzF,IAAgCg9G,GAAgC,iBAARh9G,GAAoBg9G,KAAeh9G,GA1CzHwF,CAASxF,GACT,OAAOg/G,EAAU/6C,EAAQvC,OAAO1hE,KAEpC,GA4DJ,SAAkBA,GACd,IAAKA,GAAsB,iBAARA,IAAqB48G,EACpC,OAAO,EAEX,IAEI,OADAA,EAAcjgH,KAAKqD,IACZ,EACT,MAAO+D,IACT,OAAO,EApEHk8G,CAASjgH,GACT,OAAOg/G,EAAU/6C,EAAQ24C,EAAcjgH,KAAKqD,KAEhD,GAqCJ,SAAmBA,GAAO,QAAsB,qBAAfmzF,EAAMnzF,IAAiCg9G,GAAgC,iBAARh9G,GAAoBg9G,KAAeh9G,GArC3HkgH,CAAUlgH,GACV,OAAOg/G,EAAU9C,EAAev/G,KAAKqD,IAEzC,GAgCJ,SAAkBA,GAAO,QAAsB,oBAAfmzF,EAAMnzF,IAAgCg9G,GAAgC,iBAARh9G,GAAoBg9G,KAAeh9G,GAhCzH2D,CAAS3D,GACT,OAAOg/G,EAAU/6C,EAAQz4D,OAAOxL,KAEpC,IA0BJ,SAAgBA,GAAO,QAAsB,kBAAfmzF,EAAMnzF,IAA8Bg9G,GAAgC,iBAARh9G,GAAoBg9G,KAAeh9G,GA1BpH6E,CAAO7E,KAAS41E,EAAS51E,GAAM,CAChC,IAAImgH,GAAKrB,EAAW9+G,EAAKikE,GACrB5iE,GAAgB67G,EAAMA,EAAIl9G,KAASP,OAAOhF,UAAYuF,aAAeP,QAAUO,EAAImK,cAAgB1K,OACnG2gH,GAAWpgH,aAAeP,OAAS,GAAK,iBACxC4gH,IAAah/G,IAAiB27G,GAAev9G,OAAOO,KAASA,GAAOg9G,KAAeh9G,EAAMq8G,EAAO1/G,KAAKw2F,EAAMnzF,GAAM,GAAI,GAAKogH,GAAW,SAAW,GAEhJtlC,IADiBz5E,IAA4C,mBAApBrB,EAAImK,YAA6B,GAAKnK,EAAImK,YAAYtN,KAAOmD,EAAImK,YAAYtN,KAAO,IAAM,KAC3GwjH,IAAaD,GAAW,IAAM3D,EAAM9/G,KAAKq5F,EAAQr5F,KAAK,GAAI0jH,IAAa,GAAID,IAAY,IAAK,MAAQ,KAAO,IACvI,OAAkB,IAAdD,GAAGpkH,OAAuB++E,GAAM,KAChCyC,EACOzC,GAAM,IAAMwkC,EAAaa,GAAI5iC,GAAU,IAE3CzC,GAAM,KAAO2hC,EAAM9/G,KAAKwjH,GAAI,MAAQ,KAE/C,OAAO30G,OAAOxL,IAiDlB,IAAI+1F,EAASt2F,OAAOhF,UAAUuP,gBAAkB,SAAU/Q,GAAO,OAAOA,KAAOwC,MAC/E,SAAS0iC,EAAIn+B,EAAK/G,GACd,OAAO88F,EAAOp5F,KAAKqD,EAAK/G,GAG5B,SAASk6F,EAAMnzF,GACX,OAAOi7G,EAAet+G,KAAKqD,GAU/B,SAASjI,EAAQqnH,EAAIt8D,GACjB,GAAIs8D,EAAGrnH,QAAW,OAAOqnH,EAAGrnH,QAAQ+qD,GACpC,IAAK,IAAIjnD,EAAI,EAAGC,EAAIsjH,EAAGrjH,OAAQF,EAAIC,EAAGD,IAClC,GAAIujH,EAAGvjH,KAAOinD,EAAK,OAAOjnD,EAE9B,OAAQ,EAsFZ,SAASyiH,EAAc10G,EAAKvW,GACxB,GAAIuW,EAAI7N,OAAS1I,EAAK8qH,gBAAiB,CACnC,IAAIx8C,EAAY/3D,EAAI7N,OAAS1I,EAAK8qH,gBAC9BmC,EAAU,OAAS3+C,EAAY,mBAAqBA,EAAY,EAAI,IAAM,IAC9E,OAAO28C,EAAcjC,EAAO1/G,KAAKiN,EAAK,EAAGvW,EAAK8qH,iBAAkB9qH,GAAQitH,EAI5E,OAAOzC,EADC3nB,EAASv5F,KAAKu5F,EAASv5F,KAAKiN,EAAK,WAAY,QAAS,eAAgB22G,GACzD,SAAUltH,GAGnC,SAASktH,EAAQ7jH,GACb,IAAIy2D,EAAIz2D,EAAEoO,WAAW,GACjBg4C,EAAI,CACJ,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,GAAI,KACNqQ,GACF,OAAIrQ,EAAY,KAAOA,EAChB,OAASqQ,EAAI,GAAO,IAAM,IAAMmpD,EAAa3/G,KAAKw2D,EAAE3wD,SAAS,KAGxE,SAASw8G,EAAUp1G,GACf,MAAO,UAAYA,EAAM,IAG7B,SAASk2G,EAAiBpmH,GACtB,OAAOA,EAAO,SAGlB,SAASgmH,EAAahmH,EAAMsmE,EAAM32C,EAASk0D,GAEvC,OAAO7jF,EAAO,KAAOsmE,EAAO,OADRud,EAAS+hC,EAAaj2F,EAASk0D,GAAUk/B,EAAM9/G,KAAK0sB,EAAS,OAC7B,IA2BxD,SAASi2F,EAAaF,EAAI7hC,GACtB,GAAkB,IAAd6hC,EAAGrjH,OAAgB,MAAO,GAC9B,IAAIykH,EAAa,KAAOjjC,EAAOkG,KAAOlG,EAAO8pB,KAC7C,OAAOmZ,EAAa/D,EAAM9/G,KAAKyiH,EAAI,IAAMoB,GAAc,KAAOjjC,EAAOkG,KAGzE,SAASq7B,EAAW9+G,EAAKikE,GACrB,IAAIw8C,EAAQn/G,EAAQtB,GAChBo/G,EAAK,GACT,GAAIqB,EAAO,CACPrB,EAAGrjH,OAASiE,EAAIjE,OAChB,IAAK,IAAIF,EAAI,EAAGA,EAAImE,EAAIjE,OAAQF,IAC5BujH,EAAGvjH,GAAKsiC,EAAIn+B,EAAKnE,GAAKooE,EAAQjkE,EAAInE,GAAImE,GAAO,GAGrD,IACI0gH,EADAtpB,EAAuB,mBAATylB,EAAsBA,EAAK78G,GAAO,GAEpD,GAAI+8G,EAAmB,CACnB2D,EAAS,GACT,IAAK,IAAIn3D,EAAI,EAAGA,EAAI6tC,EAAKr7F,OAAQwtD,IAC7Bm3D,EAAO,IAAMtpB,EAAK7tC,IAAM6tC,EAAK7tC,GAIrC,IAAK,IAAItwD,KAAO+G,EACPm+B,EAAIn+B,EAAK/G,KACVwnH,GAASj1G,OAAOk2D,OAAOzoE,MAAUA,GAAOA,EAAM+G,EAAIjE,QAClDghH,GAAqB2D,EAAO,IAAMznH,aAAgBslE,SAG3Ci+C,EAAM7/G,KAAK,SAAU1D,GAC5BmmH,EAAG9iH,KAAK2nE,EAAQhrE,EAAK+G,GAAO,KAAOikE,EAAQjkE,EAAI/G,GAAM+G,IAErDo/G,EAAG9iH,KAAKrD,EAAM,KAAOgrE,EAAQjkE,EAAI/G,GAAM+G,MAG/C,GAAoB,mBAAT68G,EACP,IAAK,IAAIzsD,EAAI,EAAGA,EAAIgnC,EAAKr7F,OAAQq0D,IACzB6sD,EAAatgH,KAAKqD,EAAKo3F,EAAKhnC,KAC5BgvD,EAAG9iH,KAAK,IAAM2nE,EAAQmzB,EAAKhnC,IAAM,MAAQ6T,EAAQjkE,EAAIo3F,EAAKhnC,IAAKpwD,IAI3E,OAAOo/G,2BC5fX,MAAMuB,UAAmB9sH,MACxBsW,cACCoF,MAAM,8BACN9T,KAAKoB,KAAO,cA+Fd3J,EAAOC,QA3FW,EAAE6iB,QAAOo4D,WAAUC,aACpC,IAAK3M,OAAO6C,SAASvuD,GACpB,MAAM,IAAIza,UAAU,0CAGrB,IAAKmmE,OAAO6C,SAAS6J,GACpB,MAAM,IAAI7yE,UAAU,6CAGrB,MAAMm9E,EAAQ,IAAIzN,IAElB,IAAI21C,EAAc,EACdC,EAAc,EAqBlB,MAAMC,EAAc,GAqBdC,EAAW1yC,EAnBjB,WACC,MAAMroE,EAAMP,KAAKO,MAEjB,GAAI86G,EAAY/kH,OAASia,EAExB,OADA8qG,EAAYxkH,KAAK0J,GACV,EAGR,MAAMg7G,EAAeF,EAAYtiH,QAAU4vE,EAE3C,OAAIpoE,GAAOg7G,GACVF,EAAYxkH,KAAK0J,GACV,IAGR86G,EAAYxkH,KAAK0kH,GACVA,EAAeh7G,IArCvB,WACC,MAAMA,EAAMP,KAAKO,MAEjB,OAAKA,EAAM46G,EAAexyC,GACzByyC,EAAc,EACdD,EAAc56G,EACP,IAGJ66G,EAAc7qG,EACjB6qG,KAEAD,GAAexyC,EACfyyC,EAAc,GAGRD,EAAc56G,IA0BtB,OAAOi7G,IACN,MAAMC,EAAY,YAAa58G,GAC9B,IAAK48G,EAAUC,UACd,MAAO,UAAaF,EAAU3iH,MAAM7C,KAAM6I,GAAnC,GAGR,IAAI3M,EACJ,OAAO,IAAIrE,SAAQ,CAACC,EAASC,KAM5BmE,EAAUK,YALM,KACfzE,EAAQ0tH,EAAU3iH,MAAM7C,KAAM6I,IAC9Bo0E,EAAMhrD,OAAO/1B,KAGgBopH,KAE9BroC,EAAM1yD,IAAIruB,EAASnE,OAgBrB,OAZA0tH,EAAUvnH,MAAQ,KACjB,IAAK,MAAMhC,KAAW+gF,EAAM52E,OAC3BgmD,aAAanwD,GACb+gF,EAAMjyD,IAAI9uB,EAAV+gF,CAAmB,IAAIioC,GAGxBjoC,EAAM7zC,QACNi8E,EAAYtkH,OAAO,EAAGskH,EAAY/kH,SAGnCmlH,EAAUC,WAAY,EAEfD,IAKThuH,EAAOC,QAAQwtH,WAAaA,uBCrG5B,aAmBoB,0BAAP,EAUL,WAGP,OAAO,SAAU/qD,GAOhB,SAASwrD,EAAQ1kH,GAChB,MAAc,MAANA,GACF,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,EAGD,SAAS2kH,EAAkBC,GAC1B,IAAItgC,EACHp7E,EAAQ07G,EAAM15G,KAAKguD,EAAMxyC,UAAUugD,IACpC,GAAI/9D,EAGH,OAFAo7E,EAAQp7E,EAAO,GACf+9D,GAAOqd,EAAMjlF,OACNilF,EAoCT,IAhCA,IAgBCnqF,EACA2I,EACA+hH,EACA5xF,EACAjzB,EApBG8kH,EAAc5rD,EAAM75D,OAGvB0lH,EAAqB,oBACrBC,EAA6B,qBAC7BC,EAAwB,qBACxBC,EAAsB,QACtBC,EAA0B,QAO1BC,EAAqB,oDAUrBn+C,EAAM,EAGNo+C,EAAa,KAKD,CAIZ,GAHAV,EAAkBK,GAGd/9C,GAAO69C,EACV,OAAOO,EAKRlrH,EAAMwqH,EAAkBM,GAGxBniH,EAAc,GAKQ,MAAlB3I,EAAI0K,OAAO,IACd1K,EAAMA,EAAI4N,QAAQm9G,EAAqB,IAEvCI,KAIAC,IAUF,SAASA,IAWR,IARAZ,EAAkBI,GAGlBF,EAAoB,GAGpB5xF,EAAQ,kBAEK,CAUZ,GAPAjzB,EAAIk5D,EAAM1uD,OAAOy8D,GAOH,kBAAVh0C,EAOH,GAAIyxF,EAAQ1kH,GACP6kH,IACH/hH,EAAYlD,KAAKilH,GACjBA,EAAoB,GACpB5xF,EAAQ,wBAOH,IAAU,MAANjzB,EAMV,OALAinE,GAAO,EACH49C,GACH/hH,EAAYlD,KAAKilH,QAElBS,IAKM,GAAU,MAANtlH,EACV6kH,GAAwC7kH,EACxCizB,EAAQ,gBAKF,IAAU,KAANjzB,EAKV,OAJI6kH,GACH/hH,EAAYlD,KAAKilH,QAElBS,IAMAT,GAAwC7kH,QAKnC,GAAc,cAAVizB,EAIV,GAAU,MAANjzB,EACH6kH,GAAwC7kH,EACxCizB,EAAQ,oBAKF,IAAU,KAANjzB,EAGV,OAFA8C,EAAYlD,KAAKilH,QACjBS,IAMAT,GAAwC7kH,OAInC,GAAc,qBAAVizB,EAIV,GAAIyxF,EAAQ1kH,QAGL,IAAU,KAANA,EAEV,YADAslH,IAMAryF,EAAQ,gBACRg0C,GAAO,EAMTA,GAAO,GAWT,SAASq+C,IAGR,IAKCE,EAAGvnF,EAAGr6B,EAAGzE,EAEToN,EAAMk5G,EAAU9qH,EAAO+qH,EAAQC,EAP5BC,GAAS,EAMZC,EAAY,GAKb,IAAK1mH,EAAI,EAAIA,EAAI2D,EAAYzD,OAAQF,IAGpCsmH,GAFAl5G,EAAOzJ,EAAa3D,IAEHoN,EAAKlN,OAAS,GAC/B1E,EAAQ4R,EAAKma,UAAU,EAAGna,EAAKlN,OAAS,GACxCqmH,EAASz9E,SAASttC,EAAO,IACzBgrH,EAAWjtB,WAAW/9F,GAIlBwqH,EAAwB57G,KAAK5O,IAAwB,MAAb8qH,IAGvCD,GAAKvnF,KAAI2nF,GAAS,GAKP,IAAXF,EAAeE,GAAS,EAAaJ,EAAIE,GAInCN,EAAmB77G,KAAK5O,IAAwB,MAAb8qH,IAIzCD,GAAKvnF,GAAKr6B,KAAIgiH,GAAS,GAKvBD,EAAW,EAAIC,GAAS,EAAa3nF,EAAI0nF,GAInCR,EAAwB57G,KAAK5O,IAAwB,MAAb8qH,IAG9C7hH,GAAKq6B,KAAI2nF,GAAS,GAKP,IAAXF,EAAeE,GAAS,EAAahiH,EAAI8hH,GAGtCE,GAAS,EAMbA,EAMMn5G,SAAWA,QAAQ0f,KAC7B1f,QAAQ0f,IAAI,uCACX+sC,EAAQ,SAAW3sD,EAAO,OAP3Bs5G,EAAU1rH,IAAMA,EACZqrH,IAAKK,EAAUL,EAAIA,GACnBvnF,IAAK4nF,EAAU5nF,EAAIA,GACnBr6B,IAAKiiH,EAAUjiH,EAAIA,GACvByhH,EAAWzlH,KAAKimH,QA9SA,UAAX,IAAW,6BCnBpB,IAAIz/D,EAAEt3C,OACF7Q,EAAO,WAAY,MAAO,CAAC6nH,kBAAiB,EAAMv4D,MAAMnH,EAAE2/D,KAAK3/D,EAAE4/D,IAAI5/D,EAAE6/D,OAAO7/D,EAAE8/D,UAAU9/D,EAAEitC,QAAQjtC,EAAE+/D,OAAO//D,EAAEggE,cAAchgE,EAAEigE,MAAMjgE,EAAEkgE,IAAIlgE,EAAEmgE,MAAMngE,EAAEogE,OAAOpgE,EAAEqgE,KAAKrgE,EAAEsgE,QAAQtgE,EAAEugE,KAAKvgE,EAAEwgE,MAAMxgE,EAAEygE,KAAKzgE,EAAE0gE,QAAQ1gE,EAAE2gE,MAAM3gE,EAAE4gE,QAAQ5gE,EAAE6gE,SAAS7gE,EAAE8gE,OAAO9gE,EAAE+gE,UAAU/gE,EAAEghE,OAAOhhE,EAAEihE,QAAQjhE,IACtR5vD,EAAOC,QAAQwH,IACfzH,EAAOC,QAAQ6wH,aAAerpH,gCCM9B,IAAIspH,EAAuB,EAAQ,OAEnC,SAASC,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3ChxH,EAAOC,QAAU,WACf,SAASkxH,EAAKr5G,EAAOs5G,EAAUC,EAAen9G,EAAUo9G,EAAcC,GACpE,GAAIA,IAAWR,EAAf,CAIA,IAAIrwH,EAAM,IAAIC,MACZ,mLAKF,MADAD,EAAIiJ,KAAO,sBACLjJ,GAGR,SAAS8wH,IACP,OAAOL,EAFTA,EAAKM,WAAaN,EAMlB,IAAIO,EAAiB,CACnB3kD,MAAOokD,EACPQ,OAAQR,EACRS,KAAMT,EACNz6C,KAAMy6C,EACNllH,OAAQklH,EACRh6C,OAAQg6C,EACR/yD,OAAQ+yD,EACRxhC,OAAQwhC,EAERU,IAAKV,EACLW,QAASN,EACT33D,QAASs3D,EACTY,YAAaZ,EACba,WAAYR,EACZjgC,KAAM4/B,EACNc,SAAUT,EACVU,MAAOV,EACPW,UAAWX,EACXY,MAAOZ,EACPa,MAAOb,EAEPc,eAAgBrB,EAChBC,kBAAmBF,GAKrB,OAFAU,EAAea,UAAYb,EAEpBA,oBC9CP1xH,EAAOC,QAAU,EAAQ,MAAR,2BCNnBD,EAAOC,QAFoB,uECiB3B,SAAS6W,EAAehK,EAAKyB,GAC3B,OAAOhC,OAAOhF,UAAUuP,eAAerN,KAAKqD,EAAKyB,GAGnDvO,EAAOC,QAAU,SAASuwB,EAAIgiG,EAAKC,EAAIjyH,GACrCgyH,EAAMA,GAAO,IACbC,EAAKA,GAAM,IACX,IAAI3lH,EAAM,GAEV,GAAkB,iBAAP0jB,GAAiC,IAAdA,EAAG3nB,OAC/B,OAAOiE,EAGT,IAAI4lH,EAAS,MACbliG,EAAKA,EAAGjc,MAAMi+G,GAEd,IAAIG,EAAU,IACVnyH,GAAsC,iBAApBA,EAAQmyH,UAC5BA,EAAUnyH,EAAQmyH,SAGpB,IAAIntD,EAAMh1C,EAAG3nB,OAET8pH,EAAU,GAAKntD,EAAMmtD,IACvBntD,EAAMmtD,GAGR,IAAK,IAAIhqH,EAAI,EAAGA,EAAI68D,IAAO78D,EAAG,CAC5B,IAEIiqH,EAAMC,EAAMx8D,EAAG3kD,EAFfk+C,EAAIp/B,EAAG7nB,GAAG4I,QAAQmhH,EAAQ,OAC1Bh6B,EAAM9oC,EAAE/qD,QAAQ4tH,GAGhB/5B,GAAO,GACTk6B,EAAOhjE,EAAEn7C,OAAO,EAAGikF,GACnBm6B,EAAOjjE,EAAEn7C,OAAOikF,EAAM,KAEtBk6B,EAAOhjE,EACPijE,EAAO,IAGTx8D,EAAIzjD,mBAAmBggH,GACvBlhH,EAAIkB,mBAAmBigH,GAElB/7G,EAAehK,EAAKupD,GAEdlrD,MAAMiD,QAAQtB,EAAIupD,IAC3BvpD,EAAIupD,GAAGjtD,KAAKsI,GAEZ5E,EAAIupD,GAAK,CAACvpD,EAAIupD,GAAI3kD,GAJlB5E,EAAIupD,GAAK3kD,EAQb,OAAO5E,2BCvDT,IAAIgmH,EAAqB,SAASphH,GAChC,cAAeA,GACb,IAAK,SACH,OAAOA,EAET,IAAK,UACH,OAAOA,EAAI,OAAS,QAEtB,IAAK,SACH,OAAO2/D,SAAS3/D,GAAKA,EAAI,GAE3B,QACE,MAAO,KAIb1R,EAAOC,QAAU,SAAS6M,EAAK0lH,EAAKC,EAAI9oH,GAOtC,OANA6oH,EAAMA,GAAO,IACbC,EAAKA,GAAM,IACC,OAAR3lH,IACFA,OAAMlH,GAGW,iBAARkH,EACFP,OAAOqC,KAAK9B,GAAKmO,KAAI,SAASo7C,GACnC,IAAI08D,EAAKzvH,mBAAmBwvH,EAAmBz8D,IAAMo8D,EACrD,OAAItnH,MAAMiD,QAAQtB,EAAIupD,IACbvpD,EAAIupD,GAAGp7C,KAAI,SAASvJ,GACzB,OAAOqhH,EAAKzvH,mBAAmBwvH,EAAmBphH,OACjDG,KAAK2gH,GAEDO,EAAKzvH,mBAAmBwvH,EAAmBhmH,EAAIupD,QAEvDxkD,KAAK2gH,GAIL7oH,EACErG,mBAAmBwvH,EAAmBnpH,IAAS8oH,EAC/CnvH,mBAAmBwvH,EAAmBhmH,IAF3B,kCC1DpB7M,EAAQq6B,OAASr6B,EAAQ0Q,MAAQ,EAAhB,OACjB1Q,EAAQqR,OAASrR,EAAQ6Q,UAAY,EAApB,wPCIjB,SAASkiH,EAAWC,GAChB,OAAOviH,KAAKI,UAAUmiH,EAAOh4G,KAAI,SAAUynD,GACvC,OAAOA,GAA0B,iBAAVA,GAGT51D,EAH2C41D,EAItDn2D,OAAOqC,KAAK9B,GACdkO,OACAC,KAAI,SAAUo7C,GACf,IAAIjvC,EACJ,OAAQA,EAAK,IAAOivC,GAAKvpD,EAAIupD,GAAIjvC,MARiCs7C,EAG1E,IAAsB51D,MA2BtB,QAnB+B,SAAUomH,EAAmB18G,GAExD,YADc,IAAVA,IAAoBA,EAAQ,IACzB,WAGH,IAFA,IAAI4Q,EACAhW,EAAO,GACFqrE,EAAK,EAAGA,EAAKprE,UAAUxI,OAAQ4zE,IACpCrrE,EAAKqrE,GAAMprE,UAAUorE,GAEzB,IAAI02C,EAAUH,EAAW5hH,GACrB8yE,EAASivC,GAAW38G,EAAM28G,GAO9B,OANKjvC,IACDA,EAAS,KAAM98D,EAAK8rG,GAAmBnsH,KAAKqE,MAAMgc,EAAI,MAAC,GAAQ/b,OAAO+F,KAClE+hH,IACA38G,EAAM28G,GAAWjvC,IAGlBA,ICpBf,IAAIkvC,EAAoB,CAAE,OAAU,KAAM,mBAAsB,SAA4BnzD,EAAGkiD,GAC3F,IAAIvkD,EAAItlD,OAAO2nD,GAAG1rD,MAAM,KACpB6tG,GAAMxkD,EAAE,GACRykD,EAAK7zC,OAAO5Q,EAAE,KAAOqC,EACrBqiD,EAAMD,GAAMzkD,EAAE,GAAGvvD,OAAO,GACxBk0G,EAAOF,GAAMzkD,EAAE,GAAGvvD,OAAO,GAAG,OAAI8zG,EAAmB,GAAPG,GAAoB,IAARC,EAAa,MAAe,GAAPD,GAAoB,IAARC,EAAa,MAAe,GAAPD,GAAoB,IAARC,EAAa,MAAQ,QAAoB,GAALtiD,GAAUmiD,EAAK,MAAQ,SACxL,OAAU,CAAE,KAAQ,CAAE,YAAe,OAAQ,SAAY,CAAE,EAAK,YAAa,EAAK,YAAa,KAAM,aAAe,aAAgB,CAAE,OAAU,CAAE,IAAO,cAAe,MAAS,gBAAkB,KAAQ,CAAE,IAAO,eAAgB,MAAS,mBAAuB,aAAc,CAAE,YAAe,MAAO,SAAY,CAAE,EAAK,WAAY,EAAK,WAAY,KAAM,YAAc,aAAgB,CAAE,OAAU,CAAE,IAAO,aAAc,MAAS,cAAgB,KAAQ,CAAE,IAAO,cAAe,MAAS,iBAAqB,MAAS,CAAE,YAAe,QAAS,SAAY,CAAE,EAAK,aAAc,EAAK,aAAc,KAAM,cAAgB,aAAgB,CAAE,OAAU,CAAE,IAAO,eAAgB,MAAS,iBAAmB,KAAQ,CAAE,IAAO,gBAAiB,MAAS,oBAAwB,cAAe,CAAE,YAAe,MAAO,SAAY,CAAE,EAAK,WAAY,EAAK,WAAY,KAAM,YAAc,aAAgB,CAAE,OAAU,CAAE,IAAO,aAAc,MAAS,cAAgB,KAAQ,CAAE,IAAO,cAAe,MAAS,iBAAqB,IAAO,CAAE,YAAe,MAAO,SAAY,CAAE,EAAK,QAAS,EAAK,WAAY,KAAM,aAAe,aAAgB,CAAE,OAAU,CAAE,IAAO,aAAc,MAAS,eAAiB,KAAQ,CAAE,IAAO,cAAe,MAAS,kBAAsB,YAAa,CAAE,YAAe,MAAO,SAAY,CAAE,EAAK,QAAS,EAAK,WAAY,KAAM,aAAe,aAAgB,CAAE,OAAU,CAAE,IAAO,aAAc,MAAS,eAAiB,KAAQ,CAAE,IAAO,cAAe,MAAS,kBAAsB,KAAQ,CAAE,YAAe,OAAQ,SAAY,CAAE,EAAK,aAAe,aAAgB,CAAE,OAAU,CAAE,IAAO,cAAe,MAAS,gBAAkB,KAAQ,CAAE,IAAO,eAAgB,MAAS,mBAAuB,aAAc,CAAE,YAAe,MAAO,SAAY,CAAE,EAAK,aAAe,aAAgB,CAAE,OAAU,CAAE,IAAO,aAAc,MAAS,cAAgB,KAAQ,CAAE,IAAO,cAAe,MAAS,iBAAqB,OAAU,CAAE,YAAe,SAAU,SAAY,CAAE,EAAK,eAAiB,aAAgB,CAAE,OAAU,CAAE,IAAO,gBAAiB,MAAS,kBAAoB,KAAQ,CAAE,IAAO,iBAAkB,MAAS,qBAAyB,eAAgB,CAAE,YAAe,OAAQ,SAAY,CAAE,EAAK,eAAiB,aAAgB,CAAE,OAAU,CAAE,IAAO,cAAe,MAAS,eAAiB,KAAQ,CAAE,IAAO,eAAgB,MAAS,kBAAsB,OAAU,CAAE,YAAe,SAAU,SAAY,CAAE,EAAK,OAAS,aAAgB,CAAE,OAAU,CAAE,IAAO,gBAAiB,MAAS,kBAAoB,KAAQ,CAAE,IAAO,iBAAkB,MAAS,qBAAyB,eAAgB,CAAE,YAAe,OAAQ,SAAY,CAAE,EAAK,OAAS,aAAgB,CAAE,OAAU,CAAE,IAAO,cAAe,MAAS,eAAiB,KAAQ,CAAE,IAAO,eAAgB,MAAS,oBAQ1sF,SAASiR,IACP,IAAIhxH,EAAOgP,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAE3EqtG,EAAUvzG,MAAMiD,QAAQ/L,GAAQA,EAAO,CAACA,GAE5Cq8G,EAAQ54G,SAAQ,SAAU06G,GACpBA,GAAcA,EAAWlnG,SAC3B,oBAAkCknG,GAClC,oBAAmCA,OAmBzC,SAAS8S,EAAuBh6G,GAC9B,IAAIi6G,EAAmBj6G,GAAUA,EAAOtT,cAExC,SAAU,mBAAiCutH,KAAqB,mBAAkCA,IAGpG,IAAI18C,EAA4B,mBAAXxL,QAAoD,iBAApBA,OAAOyL,SAAwB,SAAUhqE,GAC5F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAyB,mBAAXu+D,QAAyBv+D,EAAImK,cAAgBo0D,QAAUv+D,IAAQu+D,OAAO9jE,UAAY,gBAAkBuF,GA4HvH0mH,GArHiB,WACnB,SAASC,EAAWtvH,GAClBoE,KAAKpE,MAAQA,EAGf,SAASuvH,EAAe/wB,GACtB,IAAIgxB,EAAOC,EAqBX,SAAShlB,EAAO7oG,EAAK2lE,GACnB,IACE,IAAIp1D,EAASqsF,EAAI58F,GAAK2lE,GAClBvnE,EAAQmS,EAAOnS,MAEfA,aAAiBsvH,EACnBrzH,QAAQC,QAAQ8D,EAAMA,OAAO9C,MAAK,SAAUqqE,GAC1CkjC,EAAO,OAAQljC,MACd,SAAUA,GACXkjC,EAAO,QAASljC,MAGlBlqE,EAAO8U,EAAO7T,KAAO,SAAW,SAAU6T,EAAOnS,OAEnD,MAAOzD,GACPc,EAAO,QAASd,IAIpB,SAASc,EAAOgF,EAAMrC,GACpB,OAAQqC,GACN,IAAK,SACHmtH,EAAMtzH,QAAQ,CACZ8D,MAAOA,EACP1B,MAAM,IAER,MAEF,IAAK,QACHkxH,EAAMrzH,OAAO6D,GACb,MAEF,QACEwvH,EAAMtzH,QAAQ,CACZ8D,MAAOA,EACP1B,MAAM,KAKZkxH,EAAQA,EAAMrpD,MAGZskC,EAAO+kB,EAAM5tH,IAAK4tH,EAAMjoD,KAExBkoD,EAAO,KAIXrrH,KAAKsrH,QApEL,SAAc9tH,EAAK2lE,GACjB,OAAO,IAAItrE,SAAQ,SAAUC,EAASC,GACpC,IAAI0C,EAAU,CACZ+C,IAAKA,EACL2lE,IAAKA,EACLrrE,QAASA,EACTC,OAAQA,EACRgqE,KAAM,MAGJspD,EACFA,EAAOA,EAAKtpD,KAAOtnE,GAEnB2wH,EAAQC,EAAO5wH,EACf4rG,EAAO7oG,EAAK2lE,QAwDQ,mBAAfi3B,EAAItjB,SACb92E,KAAK82E,YAASz5E,GAII,mBAAXylE,QAAyBA,OAAOyoD,gBACzCJ,EAAensH,UAAU8jE,OAAOyoD,eAAiB,WAC/C,OAAOvrH,OAIXmrH,EAAensH,UAAU+iE,KAAO,SAAUoB,GACxC,OAAOnjE,KAAKsrH,QAAQ,OAAQnoD,IAG9BgoD,EAAensH,UAAUwsH,MAAQ,SAAUroD,GACzC,OAAOnjE,KAAKsrH,QAAQ,QAASnoD,IAG/BgoD,EAAensH,UAAU83E,OAAS,SAAU3T,GAC1C,OAAOnjE,KAAKsrH,QAAQ,SAAUnoD,IAlGb,GAqHA,SAAUpkE,EAAUw3F,GACvC,KAAMx3F,aAAoBw3F,GACxB,MAAM,IAAIz2F,UAAU,uCAIpB2rH,EAAc,WAChB,SAASxnH,EAAiB0B,EAAQ4J,GAChC,IAAK,IAAInP,EAAI,EAAGA,EAAImP,EAAMjP,OAAQF,IAAK,CACrC,IAAIy2F,EAAatnF,EAAMnP,GACvBy2F,EAAWjvB,WAAaivB,EAAWjvB,aAAc,EACjDivB,EAAWzoB,cAAe,EACtB,UAAWyoB,IAAYA,EAAWjlB,UAAW,GACjD5tE,OAAOE,eAAeyB,EAAQkxF,EAAWr5F,IAAKq5F,IAIlD,OAAO,SAAUN,EAAam1B,EAAYC,GAGxC,OAFID,GAAYznH,EAAiBsyF,EAAYv3F,UAAW0sH,GACpDC,GAAa1nH,EAAiBsyF,EAAao1B,GACxCp1B,GAdO,GAsBdryF,EAAiB,SAAUK,EAAK/G,EAAK5B,GAYvC,OAXI4B,KAAO+G,EACTP,OAAOE,eAAeK,EAAK/G,EAAK,CAC9B5B,MAAOA,EACPgsE,YAAY,EACZwG,cAAc,EACdwD,UAAU,IAGZrtE,EAAI/G,GAAO5B,EAGN2I,GAGLqnH,EAAW5nH,OAAOQ,QAAU,SAAUmB,GACxC,IAAK,IAAIvF,EAAI,EAAGA,EAAI0I,UAAUxI,OAAQF,IAAK,CACzC,IAAIY,EAAS8H,UAAU1I,GAEvB,IAAK,IAAI5C,KAAOwD,EACVgD,OAAOhF,UAAUuP,eAAerN,KAAKF,EAAQxD,KAC/CmI,EAAOnI,GAAOwD,EAAOxD,IAK3B,OAAOmI,GAKLtE,EAAW,SAAUwwE,EAAUC,GACjC,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIhyE,UAAU,kEAAoEgyE,GAG1FD,EAAS7yE,UAAYgF,OAAO9E,OAAO4yE,GAAcA,EAAW9yE,UAAW,CACrE0P,YAAa,CACX9S,MAAOi2E,EACPjK,YAAY,EACZgK,UAAU,EACVxD,cAAc,KAGd0D,IAAY9tE,OAAOk/D,eAAiBl/D,OAAOk/D,eAAe2O,EAAUC,GAAcD,EAASE,UAAYD,IAuBzG+5C,EAA4B,SAAU/oF,EAAM5hC,GAC9C,IAAK4hC,EACH,MAAM,IAAI+2D,eAAe,6DAG3B,OAAO34F,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B4hC,EAAP5hC,GAqBxE4qH,EAAoB,SAAUz/G,GAChC,GAAIzJ,MAAMiD,QAAQwG,GAAM,CACtB,IAAK,IAAIjM,EAAI,EAAGquE,EAAO7rE,MAAMyJ,EAAI/L,QAASF,EAAIiM,EAAI/L,OAAQF,IAAKquE,EAAKruE,GAAKiM,EAAIjM,GAE7E,OAAOquE,EAEP,OAAO7rE,MAAMuB,KAAKkI,IAUlBg9G,EAAO,SACP3lH,EAAS,WACTmyD,EAAS,WACTsY,EAAO,SACPS,EAAS,WACT+6C,EAAQ,UACRE,EAAQ,UACRP,EAAM,QACNM,EAAY,cAEZmC,EAAgBpC,EAAM,CAAC,WAAY,WACnCqC,EAAkBrC,EAAM,CAAC,SAAU,QAAS,SAC5CsC,EAAgBtC,EAAM,CAAC,UAAW,YAClCuC,EAAU/9C,EAAK+6C,WAEfiD,EAAsB,CACxBp7G,OAAQ8kD,EACRrpB,SAAUqpB,EACVyiB,QAAS1J,EACTlhD,SAAUkhD,EACVw9C,cAAe9C,EAEf3Q,cAAe9iD,EACfw2D,eAAgBz9C,EAEhBv2E,QAAS81E,GAGPm+C,EAAsB,CACxBC,WAAYL,EACZM,WAAYN,EACZO,eAAgBP,EAChBQ,aAAcR,EACdS,aAAcT,EACd5+G,cAAe4+G,EACfU,kBAAmBV,GAGjBW,EAAYhD,EAAM+B,EAAS,GAAIO,EAAqBG,EAAqB,CAC3En0C,WAAYvJ,EACZrkE,IAAK2hH,KASHY,GALEj3D,EAAOqzD,WACEU,EAAU,CAAC/zD,EAAQ+Y,IAIJ,CAC5Bm9C,cAAeA,EACfgB,cAAepD,EAAM,CAAC,QAAS,aAE/Bn9E,SAAUqpB,EACVm3D,OAAQ3D,EAER1M,QAASqP,EACTiB,IAAKjB,EACLrS,KAAMsS,EACN9U,MAAOwS,EAAM,CAAC,UAAW,UAAW,SAAU,QAAS,SACvDzS,IAAK+U,EACLhV,KAAMgV,EACNjV,OAAQiV,EACRlV,OAAQkV,EACRrP,aAAc+M,EAAM,CAAC,QAAS,WAG5BuD,EAAwB,CAC1BnB,cAAeA,EAEfn1E,MAAO+yE,EAAM,CAAC,UAAW,WAAY,YACrCz4G,SAAU2kD,EACVs3D,gBAAiBxD,EAAM,CAAC,SAAU,OAAQ,SAC1CyD,YAAa/D,EAEbgE,qBAAsB3pH,EACtB4pH,sBAAuB5pH,EACvB6pH,sBAAuB7pH,EACvB8pH,yBAA0B9pH,EAC1B+pH,yBAA0B/pH,GAGxBgqH,EAA0B,CAC5B92E,MAAO+yE,EAAM,CAAC,WAAY,YAC1Bl5G,MAAOk5G,EAAM,CAAC,SAAU,SAAU,OAAQ,MAAO,QAAS,OAAQ,eAAgB,eAAgB,aAAc,YAAa,cAAe,gBAG1IgE,EAAwB,CAC1B/2E,MAAO+yE,EAAM,CAAC,WAAY,aAcxBiE,EAAsB5pH,OAAOqC,KAAK8lH,GAElC0B,EAAgB,CAClB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,UAGHC,EAAqB,WAEzB,SAAS,EAAO3/G,GACd,OAAQ,GAAKA,GAAKnF,QAAQ8kH,GAAoB,SAAU3jH,GACtD,OAAO0jH,EAAc1jH,MAIzB,SAAS4jH,EAAYx+G,EAAOy+G,GAC1B,IAAIC,EAAcnlH,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAEtF,OAAOklH,EAAU/7G,QAAO,SAAUi8G,EAAU9sH,GAO1C,OANImO,EAAMhB,eAAenN,GACvB8sH,EAAS9sH,GAAQmO,EAAMnO,GACd6sH,EAAY1/G,eAAenN,KACpC8sH,EAAS9sH,GAAQ6sH,EAAY7sH,IAGxB8sH,IACN,IAGL,SAASC,KACP,IAAIj4C,EAAOptE,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAC3EslH,EAAOl4C,EAAKk4C,KAEhB,IAAUA,EAAM,gHAGlB,SAASC,GAAcC,EAAMC,GAC3B,GAAID,IAASC,EACX,OAAO,EAGT,GAAoE,iBAA/C,IAATD,EAAuB,YAAchgD,EAAQggD,KAAgC,OAATA,GAAiF,iBAA/C,IAATC,EAAuB,YAAcjgD,EAAQigD,KAAgC,OAATA,EAC3K,OAAO,EAGT,IAAIC,EAAQxqH,OAAOqC,KAAKioH,GACpBG,EAAQzqH,OAAOqC,KAAKkoH,GAExB,GAAIC,EAAMluH,SAAWmuH,EAAMnuH,OACzB,OAAO,EAKT,IADA,IAAIouH,EAAkB1qH,OAAOhF,UAAUuP,eAAe/P,KAAK+vH,GAClDnuH,EAAI,EAAGA,EAAIouH,EAAMluH,OAAQF,IAChC,IAAKsuH,EAAgBF,EAAMpuH,KAAOkuH,EAAKE,EAAMpuH,MAAQmuH,EAAKC,EAAMpuH,IAC9D,OAAO,EAIX,OAAO,EAGT,SAASuuH,GAA0BC,EAAOC,EAAWC,GACnD,IAAIv/G,EAAQq/G,EAAMr/G,MACd2kB,EAAQ06F,EAAM16F,MACd66F,EAAgBH,EAAM9vH,QACtBA,OAA4BzB,IAAlB0xH,EAA8B,GAAKA,EAC7CC,EAAclmH,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAClFmmH,EAAgBnwH,EAAQsvH,KACxBA,OAAyB/wH,IAAlB4xH,EAA8B,GAAKA,EAC1CC,EAAoBF,EAAYZ,KAChCe,OAAiC9xH,IAAtB6xH,EAAkC,GAAKA,EAGtD,OAAQb,GAAcQ,EAAWt/G,KAAW8+G,GAAcS,EAAW56F,MAAYi7F,IAAaf,GAAQC,GAAcN,EAAYoB,EAAUvB,GAAsBG,EAAYK,EAAMR,KAGpL,SAASwB,GAAY3uH,EAAS4uH,GAE5B,MAAO,gBAAkB5uH,GADd4uH,EAAY,KAAOA,EAAY,IAI5C,SAASC,GAAoBnsH,IAe7B,SAASosH,GAAeC,GACtB,OAAOA,EAAaxzG,aAAewzG,EAAapuH,MAAQ,YAG1D,SAASquH,GAAWC,GAClB,IAAIz3H,EAAU6Q,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAC9E6mH,EAAwB13H,EAAQ23H,aAChCA,OAAyCvyH,IAA1BsyH,EAAsC,OAASA,EAC9DE,EAAmB53H,EAAQ63H,QAC3BA,OAA+BzyH,IAArBwyH,GAAyCA,EAEnDE,EAAa,SAAUC,GAGzB,SAASD,EAAWxgH,EAAOzQ,GACzBmsH,EAAejrH,KAAM+vH,GAErB,IAAI/tE,EAAQ6pE,EAA0B7rH,MAAO+vH,EAAWh+C,WAAa/tE,OAAOqK,eAAe0hH,IAAa7uH,KAAKlB,KAAMuP,EAAOzQ,IAG1H,OADAqvH,GAAqBrvH,GACdkjD,EAsBT,OA9BA3gD,EAAS0uH,EAAYC,GAWrBvE,EAAYsE,EAAY,CAAC,CACvBvyH,IAAK,qBACL5B,MAAO,WAGL,OAFA,IAAUk0H,EAAS,sHAEZ9vH,KAAKiwH,mBAEb,CACDzyH,IAAK,SACL5B,MAAO,WACL,IAAIs0H,EAASlwH,KAEb,OAAO,gBAAoB0vH,EAAkB9D,EAAS,GAAI5rH,KAAKuP,MAAOrL,EAAe,GAAI0rH,EAAc5vH,KAAKlB,QAAQsvH,MAAO,CACzH+B,IAAKL,EAAoC,SAAUK,GACjD,OAAOD,EAAOD,iBAAmBE,GAC/B,YAIHJ,EA/BQ,CAgCf,EAAAzgG,WASF,OAPAygG,EAAW/zG,YAAc,cAAgBuzG,GAAeG,GAAoB,IAC5EK,EAAWpxB,aAAe,CACxByvB,KAAMvB,GAERkD,EAAWL,iBAAmBA,EAGvB,IAAqBK,EAAYL,GAS1C,SAAS5hG,GAAesiG,GAGtB,OAAOA,EAWT,SAASC,GAAcla,GAErB,OAAO,6BAA2CA,GAGpD,SAASma,GAAmBv/G,GAE1B,OAAO,sCAAoDA,GAG7D,IAAIw/G,GAAmB,SAASA,EAAiBpa,GAC/C,IAAIl+G,EAAU6Q,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAClFmiH,EAAejrH,KAAMuwH,GAErB,IAAI3V,EAA+B,YAAlB3iH,EAAQ2+C,MACrB6jE,EAAW6V,GAAmBD,GAAcla,IAEhDn2G,KAAK27E,OAAS,SAAU//E,GACtB,OAAO6+G,EAAS7+G,EAAOg/G,KAUvB4V,GAA2BxsH,OAAOqC,KAAKymH,GACvC2D,GAAwBzsH,OAAOqC,KAAK6mH,GACpCwD,GAA0B1sH,OAAOqC,KAAKqnH,GACtCiD,GAAwB3sH,OAAOqC,KAAKsnH,GAEpCiD,GAA6B,CAC/B7Z,OAAQ,GACRC,OAAQ,GACRC,KAAM,GACNC,IAAK,GACLC,MAAO,IAET,SAAS0Z,GAA+BC,GACtC,IAAIjY,EAAa,eACjBA,EAAW9B,OAAS+Z,EAAc/Z,OAClC8B,EAAW7B,OAAS8Z,EAAc9Z,OAClC6B,EAAW5B,KAAO6Z,EAAc7Z,KAChC4B,EAAW3B,IAAM4Z,EAAc5Z,IAC/B2B,EAAW1B,MAAQ2Z,EAAc3Z,MACjC0B,EAAW,gBAAkBiY,EAAc,gBAC3CjY,EAAW,gBAAkBiY,EAAc,gBAC3CjY,EAAW,cAAgBiY,EAAc,cACzCjY,EAAW,aAAeiY,EAAc,aACxCjY,EAAW,eAAiBiY,EAAc,eAG5C,SAASC,GAAez4C,EAASr6E,EAAMmD,EAAM/I,GAC3C,IAAIsjF,EAASrD,GAAWA,EAAQr6E,IAASq6E,EAAQr6E,GAAMmD,GACvD,GAAIu6E,EACF,OAAOA,EAGTtjF,EAAQ+2H,GAAY,MAAQnxH,EAAO,kBAAoBmD,IAwHzD,SAASkM,GAAc3T,EAAQu6B,GAC7B,IAAIvE,EAAoB7mB,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GACxFoR,EAASpR,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAC7EiI,EAASpX,EAAOoX,OAChBunE,EAAU3+E,EAAO2+E,QACjB5qD,EAAW/zB,EAAO+zB,SAClBirF,EAAgBh/G,EAAOg/G,cACvB0T,EAAiB1yH,EAAO0yH,eACxBznH,EAAK+qB,EAAkB/qB,GACvBipB,EAAiB8B,EAAkB9B,eASvC,IAAUjpB,EAAI,8DAEd,IAAInE,EAAUitB,GAAYA,EAAS9oB,GAC/BosH,EAAYhtH,OAAOqC,KAAK6T,GAAQ5Z,OAAS,EAI7C,IAAK0wH,EACH,OAAOvwH,GAAWotB,GAAkBjpB,EAGtC,IAAIqsH,OAAmB,EACnB54H,EAAUsB,EAAOtB,SAAWi3H,GAEhC,GAAI7uH,EACF,IACE,IAAIm7E,EAAY1nD,EAAMg9F,iBAAiBzwH,EAASsQ,EAAQunE,GAExD24C,EAAmBr1C,EAAUD,OAAOzhE,GACpC,MAAO5R,GACPjQ,EAAQ+2H,GAAY,8BAAgCxqH,EAAK,kBAAoBmM,EAAS,KAAO8c,EAAiB,uCAAyC,IAAKvlB,UAMzJulB,GAAkB9c,GAAUA,EAAOtT,gBAAkBk7G,EAAcl7G,gBACtEpF,EAAQ+2H,GAAY,qBAAuBxqH,EAAK,kBAAoBmM,EAAS,KAAO8c,EAAiB,uCAAyC,MAIlJ,IAAKojG,GAAoBpjG,EACvB,IACE,IAAIsjG,EAAaj9F,EAAMg9F,iBAAiBrjG,EAAgB8qF,EAAe0T,GAEvE4E,EAAmBE,EAAWx1C,OAAOzhE,GACrC,MAAO5R,GACPjQ,EAAQ+2H,GAAY,8CAAgDxqH,EAAK,IAAK0D,IAQlF,OAJK2oH,GACH54H,EAAQ+2H,GAAY,2BAA6BxqH,EAA7B,qBAA+DnE,GAAWotB,EAAiB,SAAW,MAAQ,kBAG7HojG,GAAoBxwH,GAAWotB,GAAkBjpB,EAoB1D,IAAI+2E,GAAS33E,OAAOgzE,OAAO,CAC1Bu1C,WAzMD,SAAoB5yH,EAAQu6B,EAAOt4B,GACjC,IAAI3D,EAAU6Q,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAC9EiI,EAASpX,EAAOoX,OAChBunE,EAAU3+E,EAAO2+E,QACjB9rC,EAAW7yC,EAAO6yC,SAClBmvC,EAAS1jF,EAAQ0jF,OAGjBtjF,EAAUsB,EAAOtB,SAAWi3H,GAC5BxiG,EAAO,IAAI9iB,KAAKpO,GAChBqyH,EAAcrC,EAAS,GAAIp/E,GAAY,CAAEA,SAAUA,GAAYmvC,GAAUo1C,GAAez4C,EAAS,OAAQqD,EAAQtjF,IACjH+4H,EAAkBrD,EAAY91H,EAASu4H,GAA0BvC,GAErE,IACE,OAAO/5F,EAAMm9F,kBAAkBtgH,EAAQqgH,GAAiBz1C,OAAO7uD,GAC/D,MAAOxkB,GACPjQ,EAAQ+2H,GAAY,yBAA0B9mH,IAGhD,OAAOyH,OAAO+c,IAuLf0/F,WApLD,SAAoB7yH,EAAQu6B,EAAOt4B,GACjC,IAAI3D,EAAU6Q,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAC9EiI,EAASpX,EAAOoX,OAChBunE,EAAU3+E,EAAO2+E,QACjB9rC,EAAW7yC,EAAO6yC,SAClBmvC,EAAS1jF,EAAQ0jF,OAGjBtjF,EAAUsB,EAAOtB,SAAWi3H,GAC5BxiG,EAAO,IAAI9iB,KAAKpO,GAChBqyH,EAAcrC,EAAS,GAAIp/E,GAAY,CAAEA,SAAUA,GAAYmvC,GAAUo1C,GAAez4C,EAAS,OAAQqD,EAAQtjF,IACjH+4H,EAAkBrD,EAAY91H,EAASu4H,GAA0BvC,GAEhEmD,EAAgBna,MAASma,EAAgBpa,QAAWoa,EAAgBra,SAEvEqa,EAAkBxF,EAAS,GAAIwF,EAAiB,CAAEna,KAAM,UAAWD,OAAQ,aAG7E,IACE,OAAO9iF,EAAMm9F,kBAAkBtgH,EAAQqgH,GAAiBz1C,OAAO7uD,GAC/D,MAAOxkB,GACPjQ,EAAQ+2H,GAAY,yBAA0B9mH,IAGhD,OAAOyH,OAAO+c,IA6Jf2/F,eA1JD,SAAwB9yH,EAAQu6B,EAAOt4B,GACrC,IAAI3D,EAAU6Q,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAC9EiI,EAASpX,EAAOoX,OAChBunE,EAAU3+E,EAAO2+E,QACjBqD,EAAS1jF,EAAQ0jF,OAGjBtjF,EAAUsB,EAAOtB,SAAWi3H,GAC5BxiG,EAAO,IAAI9iB,KAAKpO,GAChB2O,EAAM,IAAIP,KAAK/R,EAAQsS,KACvB0jH,EAActyC,GAAUo1C,GAAez4C,EAAS,WAAYqD,EAAQtjF,GACpE+4H,EAAkBrD,EAAY91H,EAASy4H,GAAyBzC,GAIhEqD,EAAgB1F,EAAS,GAAI,gBACjCiF,GAA+BD,IAE/B,IACE,OAAO18F,EAAMq9F,kBAAkBxgH,EAAQqgH,GAAiBz1C,OAAO7uD,EAAM,CACnEviB,IAAKu+D,SAASv+D,GAAOA,EAAM2pB,EAAM3pB,QAEnC,MAAOjC,GACPjQ,EAAQ+2H,GAAY,kCAAmC9mH,IACvD,QACAuoH,GAA+BS,GAGjC,OAAOvhH,OAAO+c,IA+Hf4/F,aA5HD,SAAsB/yH,EAAQu6B,EAAOt4B,GACnC,IAAI3D,EAAU6Q,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAC9EiI,EAASpX,EAAOoX,OAChBunE,EAAU3+E,EAAO2+E,QACjBqD,EAAS1jF,EAAQ0jF,OAGjBtjF,EAAUsB,EAAOtB,SAAWi3H,GAC5BrB,EAActyC,GAAUo1C,GAAez4C,EAAS,SAAUqD,EAAQtjF,GAClE+4H,EAAkBrD,EAAY91H,EAASw4H,GAAuBxC,GAElE,IACE,OAAO/5F,EAAMs9F,gBAAgBzgH,EAAQqgH,GAAiBz1C,OAAO//E,GAC7D,MAAO0M,GACPjQ,EAAQ+2H,GAAY,2BAA4B9mH,IAGlD,OAAOyH,OAAOnU,IA4Gf+wH,aAzGD,SAAsBhzH,EAAQu6B,EAAOt4B,GACnC,IAAI3D,EAAU6Q,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAC9EiI,EAASpX,EAAOoX,OAGhBqgH,EAAkBrD,EAAY91H,EAAS04H,IACvCt4H,EAAUsB,EAAOtB,SAAWi3H,GAEhC,IACE,OAAOp7F,EAAMu9F,gBAAgB1gH,EAAQqgH,GAAiBz1C,OAAO//E,GAC7D,MAAO0M,GACPjQ,EAAQ+2H,GAAY,2BAA4B9mH,IAGlD,MAAO,SA4FRgF,cAAeA,GACfs/G,kBAxBD,SAA2BjzH,EAAQu6B,EAAOvE,GACxC,IAAI+hG,EAAY5oH,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAKhF6oH,EAAgB3tH,OAAOqC,KAAKqrH,GAAWz/G,QAAO,SAAU2/G,EAASxwH,GACnE,IAAIxF,EAAQ81H,EAAUtwH,GAEtB,OADAwwH,EAAQxwH,GAAyB,iBAAVxF,EAAqB,EAAOA,GAASA,EACrDg2H,IACN,IAEH,OAAOtkH,GAAc3T,EAAQu6B,EAAOvE,EAAmBgiG,MAqBrDE,GAAwB7tH,OAAOqC,KAAK8lH,GACpC2F,GAAsB9tH,OAAOqC,KAAKimH,GAIlC1tB,GAAe,CACjBtmB,QAAS,GACT5qD,SAAU,GACV8e,SAAU,KACV4/E,cAAe,OAEfzT,cAAe,KACf0T,eAAgB,GAEhBh0H,QAASi3H,IAGPyC,GAAe,SAAU/B,GAG3B,SAAS+B,EAAaxiH,GACpB,IAAIzQ,EAAUgK,UAAUxI,OAAS,QAAsBjD,IAAjByL,UAAU,GAAmBA,UAAU,GAAK,GAClFmiH,EAAejrH,KAAM+xH,GAErB,IAAI/vE,EAAQ6pE,EAA0B7rH,MAAO+xH,EAAahgD,WAAa/tE,OAAOqK,eAAe0jH,IAAe7wH,KAAKlB,KAAMuP,EAAOzQ,IAE9H,IAA0B,oBAAT08G,KAAsB,+LAEvC,IAAIwW,EAAclzH,EAAQsvH,KAKtB6D,OAAa,EAEfA,EADEnpD,SAASv5D,EAAM0iH,YACJhsD,OAAO12D,EAAM0iH,YAKbD,EAAcA,EAAYznH,MAAQP,KAAKO,MAQtD,IAAI2rE,EAAO87C,GAAe,GACtBE,EAAkBh8C,EAAKiC,WACvBA,OAAiC96E,IAApB60H,EAAgC,CAC/Cb,kBAAmB,EAAuB7V,KAAKE,gBAC/C8V,gBAAiB,EAAuBhW,KAAKC,cAC7CyV,iBAAkB,EAAuB,KACzCK,kBAAmB,EAAuB,KAC1CE,gBAAiB,EAAuBlB,KACtC2B,EASJ,OAPAlwE,EAAM9tB,MAAQ03F,EAAS,GAAIzzC,EAAY,CAGrC5tE,IAAK,WACH,OAAOy3C,EAAMmwE,YAAcnoH,KAAKO,MAAQ0nH,KAGrCjwE,EA8FT,OA7IA3gD,EAAS0wH,EAAc/B,GAkDvBvE,EAAYsG,EAAc,CAAC,CACzBv0H,IAAK,YACL5B,MAAO,WACL,IAAIo2H,EAAchyH,KAAKlB,QAAQsvH,KAK3Bz0H,EAASo0H,EAAY/tH,KAAKuP,MAAOsiH,GAAuBG,GAK5D,IAAK,IAAInJ,KAAYjqB,QACMvhG,IAArB1D,EAAOkvH,KACTlvH,EAAOkvH,GAAYjqB,GAAaiqB,IAIpC,IAh6BN,SAAuB93G,GAGrB,IAFA,IAAI6nG,GAAe7nG,GAAU,IAAI/E,MAAM,KAEhC4sG,EAAYt4G,OAAS,GAAG,CAC7B,GAAIyqH,EAAuBnS,EAAYtvG,KAAK,MAC1C,OAAO,EAGTsvG,EAAY1rG,MAGd,OAAO,EAq5BEklH,CAAcz4H,EAAOoX,QAAS,CACjC,IAAIshH,EAAU14H,EACVoX,EAASshH,EAAQthH,OACjB4nG,EAAgB0Z,EAAQ1Z,cACxB0T,EAAiBgG,EAAQhG,gBAI7Bh0H,EAHcg6H,EAAQh6H,SAGd+2H,GAAY,oCAAsCr+G,EAAtC,6BAAoF4nG,EAAgB,mBAOxHh/G,EAASiyH,EAAS,GAAIjyH,EAAQ,CAC5BoX,OAAQ4nG,EACRrgC,QAAS+zC,EACT3+F,SAAUkxE,GAAalxE,WAI3B,OAAO/zB,IAER,CACD6D,IAAK,oBACL5B,MAAO,SAA2BjC,EAAQu6B,GACxC,OAAO49F,GAAoB7/G,QAAO,SAAUqgH,EAAgBlxH,GAE1D,OADAkxH,EAAelxH,GAAQu6E,GAAOv6E,GAAM5C,KAAK,KAAM7E,EAAQu6B,GAChDo+F,IACN,MAEJ,CACD90H,IAAK,kBACL5B,MAAO,WACL,IAAIjC,EAASqG,KAAKuyH,YAGdD,EAAiBtyH,KAAKwyH,kBAAkB74H,EAAQqG,KAAKk0B,OAErD4yE,EAAS9mG,KAAKk0B,MACd3pB,EAAMu8F,EAAOv8F,IACb4tE,EApuBoB,SAAU5zE,EAAK8B,GAC3C,IAAIV,EAAS,GAEb,IAAK,IAAIvF,KAAKmE,EACR8B,EAAK/J,QAAQ8D,IAAM,GAClB4D,OAAOhF,UAAUuP,eAAerN,KAAKqD,EAAKnE,KAC/CuF,EAAOvF,GAAKmE,EAAInE,IAGlB,OAAOuF,EA2tBc8sH,CAAwB3rB,EAAQ,CAAC,QAGlD,MAAO,CACLsnB,KAAMxC,EAAS,GAAIjyH,EAAQ24H,EAAgB,CACzCn6C,WAAYA,EACZ5tE,IAAKA,OAIV,CACD/M,IAAK,wBACL5B,MAAO,WACL,IAAK,IAAI82H,EAAO5pH,UAAUxI,OAAQyhE,EAAOn/D,MAAM8vH,GAAOlxD,EAAO,EAAGA,EAAOkxD,EAAMlxD,IAC3EO,EAAKP,GAAQ14D,UAAU04D,GAGzB,OAAOmtD,GAA0B9rH,WAAMxF,EAAW,CAAC2C,MAAM8C,OAAOi/D,MAEjE,CACDvkE,IAAK,oBACL5B,MAAO,WACLoE,KAAKmyH,aAAc,IAEpB,CACD30H,IAAK,SACL5B,MAAO,WACL,OAAO,EAAA+2H,SAAA,KAAc3yH,KAAKuP,MAAMqU,cAG7BmuG,EA9IU,CA+IjB,EAAAziG,WAEFyiG,GAAa/1G,YAAc,eAC3B+1G,GAAapzB,aAAe,CAC1ByvB,KAAMvB,GAERkF,GAAatzB,kBAAoB,CAC/B2vB,KAAMvB,EAAU3D,YAalB,IAAI0J,GAAgB,SAAU5C,GAG5B,SAAS4C,EAAcrjH,EAAOzQ,GAC5BmsH,EAAejrH,KAAM4yH,GAErB,IAAI5wE,EAAQ6pE,EAA0B7rH,MAAO4yH,EAAc7gD,WAAa/tE,OAAOqK,eAAeukH,IAAgB1xH,KAAKlB,KAAMuP,EAAOzQ,IAGhI,OADAqvH,GAAqBrvH,GACdkjD,EAoCT,OA5CA3gD,EAASuxH,EAAe5C,GAWxBvE,EAAYmH,EAAe,CAAC,CAC1Bp1H,IAAK,wBACL5B,MAAO,WACL,IAAK,IAAI82H,EAAO5pH,UAAUxI,OAAQyhE,EAAOn/D,MAAM8vH,GAAOlxD,EAAO,EAAGA,EAAOkxD,EAAMlxD,IAC3EO,EAAKP,GAAQ14D,UAAU04D,GAGzB,OAAOmtD,GAA0B9rH,WAAMxF,EAAW,CAAC2C,MAAM8C,OAAOi/D,MAEjE,CACDvkE,IAAK,SACL5B,MAAO,WACL,IAAIqzH,EAAgBjvH,KAAKlB,QAAQsvH,KAC7B7B,EAAa0C,EAAc1C,WAC3BjiC,EAAO2kC,EAAc7C,cACrByG,EAAS7yH,KAAKuP,MACd3T,EAAQi3H,EAAOj3H,MACfgoB,EAAWivG,EAAOjvG,SAGlBkvG,EAAgBvG,EAAW3wH,EAAOoE,KAAKuP,OAE3C,MAAwB,mBAAbqU,EACFA,EAASkvG,GAGX,gBACLxoC,EACA,KACAwoC,OAICF,EA7CW,CA8ClB,EAAAtjG,WAEFsjG,GAAc52G,YAAc,gBAC5B42G,GAAcj0B,aAAe,CAC3ByvB,KAAMvB,GAcR,IAAIkG,GAAgB,SAAU/C,GAG5B,SAAS+C,EAAcxjH,EAAOzQ,GAC5BmsH,EAAejrH,KAAM+yH,GAErB,IAAI/wE,EAAQ6pE,EAA0B7rH,MAAO+yH,EAAchhD,WAAa/tE,OAAOqK,eAAe0kH,IAAgB7xH,KAAKlB,KAAMuP,EAAOzQ,IAGhI,OADAqvH,GAAqBrvH,GACdkjD,EAoCT,OA5CA3gD,EAAS0xH,EAAe/C,GAWxBvE,EAAYsH,EAAe,CAAC,CAC1Bv1H,IAAK,wBACL5B,MAAO,WACL,IAAK,IAAI82H,EAAO5pH,UAAUxI,OAAQyhE,EAAOn/D,MAAM8vH,GAAOlxD,EAAO,EAAGA,EAAOkxD,EAAMlxD,IAC3EO,EAAKP,GAAQ14D,UAAU04D,GAGzB,OAAOmtD,GAA0B9rH,WAAMxF,EAAW,CAAC2C,MAAM8C,OAAOi/D,MAEjE,CACDvkE,IAAK,SACL5B,MAAO,WACL,IAAIqzH,EAAgBjvH,KAAKlB,QAAQsvH,KAC7B5B,EAAayC,EAAczC,WAC3BliC,EAAO2kC,EAAc7C,cACrByG,EAAS7yH,KAAKuP,MACd3T,EAAQi3H,EAAOj3H,MACfgoB,EAAWivG,EAAOjvG,SAGlBovG,EAAgBxG,EAAW5wH,EAAOoE,KAAKuP,OAE3C,MAAwB,mBAAbqU,EACFA,EAASovG,GAGX,gBACL1oC,EACA,KACA0oC,OAICD,EA7CW,CA8ClB,EAAAzjG,WAEFyjG,GAAc/2G,YAAc,gBAC5B+2G,GAAcp0B,aAAe,CAC3ByvB,KAAMvB,GAcR,IAEI5O,GAAO,KACPD,GAAM,MAoDNiV,GAAoB,SAAUjD,GAGhC,SAASiD,EAAkB1jH,EAAOzQ,GAChCmsH,EAAejrH,KAAMizH,GAErB,IAAIjxE,EAAQ6pE,EAA0B7rH,MAAOizH,EAAkBlhD,WAAa/tE,OAAOqK,eAAe4kH,IAAoB/xH,KAAKlB,KAAMuP,EAAOzQ,IAExIqvH,GAAqBrvH,GAErB,IAAIyL,EAAMu+D,SAASv5D,EAAM0iH,YAAchsD,OAAO12D,EAAM0iH,YAAcnzH,EAAQsvH,KAAK7jH,MAK/E,OADAy3C,EAAM9tB,MAAQ,CAAE3pB,IAAKA,GACdy3C,EAiGT,OA/GA3gD,EAAS4xH,EAAmBjD,GAiB5BvE,EAAYwH,EAAmB,CAAC,CAC9Bz1H,IAAK,qBACL5B,MAAO,SAA4B2T,EAAO2kB,GACxC,IAAIg8F,EAASlwH,KAGbqsD,aAAarsD,KAAKkzH,QAElB,IAAIt3H,EAAQ2T,EAAM3T,MACd6U,EAAQlB,EAAMkB,MACd0iH,EAAiB5jH,EAAM4jH,eAEvBxX,EAAO,IAAI3xG,KAAKpO,GAAOoxB,UAK3B,GAAKmmG,GAAmBrqD,SAAS6yC,GAAjC,CAIA,IAAIyX,EAAQzX,EAAOznF,EAAM3pB,IACrB8oH,EAlEV,SAAsB5iH,GACpB,OAAQA,GACN,IAAK,SACH,OAhCO,IAiCT,IAAK,SACH,OAjCO,IAkCT,IAAK,OACH,OAAOwtG,GACT,IAAK,MACH,OAAOD,GACT,QACE,OAjCgB,YAwFAsV,CAAa7iH,GAtFnC,SAAqB2iH,GACnB,IAAIG,EAAW9sH,KAAKumG,IAAIomB,GAExB,OAAIG,EAXO,IAYF,SAGLA,EAAWtV,GACN,SAGLsV,EAAWvV,GACN,OAKF,MAqEmCwV,CAAYJ,IAC9CK,EAAgBhtH,KAAKumG,IAAIomB,EAAQC,GAMjCxgD,EAAQugD,EAAQ,EAAI3sH,KAAKgiE,IAAI0qD,EAAgBE,EAAYI,GAAiBhtH,KAAKgiE,IAAI0qD,EAAgBM,GAEvGzzH,KAAKkzH,OAAS32H,YAAW,WACvB2zH,EAAOwD,SAAS,CAAEnpH,IAAK2lH,EAAOpxH,QAAQsvH,KAAK7jH,UAC1CsoE,MAEJ,CACDr1E,IAAK,oBACL5B,MAAO,WACLoE,KAAK2zH,mBAAmB3zH,KAAKuP,MAAOvP,KAAKk0B,SAE1C,CACD12B,IAAK,4BACL5B,MAAO,SAAmCs6E,IAvE9C,SAAoBjnE,EAAGC,GACrB,GAAID,IAAMC,EACR,OAAO,EAGT,IAAI0kH,EAAQ,IAAI5pH,KAAKiF,GAAG+d,UACpB6mG,EAAQ,IAAI7pH,KAAKkF,GAAG8d,UAExB,OAAO87C,SAAS8qD,IAAU9qD,SAAS+qD,IAAUD,IAAUC,GAoE9CC,CAJW59C,EAAKt6E,MAIMoE,KAAKuP,MAAM3T,QACpCoE,KAAK0zH,SAAS,CAAEnpH,IAAKvK,KAAKlB,QAAQsvH,KAAK7jH,UAG1C,CACD/M,IAAK,wBACL5B,MAAO,WACL,IAAK,IAAI82H,EAAO5pH,UAAUxI,OAAQyhE,EAAOn/D,MAAM8vH,GAAOlxD,EAAO,EAAGA,EAAOkxD,EAAMlxD,IAC3EO,EAAKP,GAAQ14D,UAAU04D,GAGzB,OAAOmtD,GAA0B9rH,WAAMxF,EAAW,CAAC2C,MAAM8C,OAAOi/D,MAEjE,CACDvkE,IAAK,sBACL5B,MAAO,SAA6BizH,EAAWC,GAC7C9uH,KAAK2zH,mBAAmB9E,EAAWC,KAEpC,CACDtxH,IAAK,uBACL5B,MAAO,WACLywD,aAAarsD,KAAKkzH,UAEnB,CACD11H,IAAK,SACL5B,MAAO,WACL,IAAIqzH,EAAgBjvH,KAAKlB,QAAQsvH,KAC7B3B,EAAiBwC,EAAcxC,eAC/BniC,EAAO2kC,EAAc7C,cACrByG,EAAS7yH,KAAKuP,MACd3T,EAAQi3H,EAAOj3H,MACfgoB,EAAWivG,EAAOjvG,SAGlBmwG,EAAoBtH,EAAe7wH,EAAOgwH,EAAS,GAAI5rH,KAAKuP,MAAOvP,KAAKk0B,QAE5E,MAAwB,mBAAbtQ,EACFA,EAASmwG,GAGX,gBACLzpC,EACA,KACAypC,OAICd,EAhHe,CAiHtB,EAAA3jG,WAEF2jG,GAAkBj3G,YAAc,oBAChCi3G,GAAkBt0B,aAAe,CAC/ByvB,KAAMvB,GAERoG,GAAkBr0B,aAAe,CAC/Bu0B,eAAgB,KAgBlB,IAAIa,GAAkB,SAAUhE,GAG9B,SAASgE,EAAgBzkH,EAAOzQ,GAC9BmsH,EAAejrH,KAAMg0H,GAErB,IAAIhyE,EAAQ6pE,EAA0B7rH,MAAOg0H,EAAgBjiD,WAAa/tE,OAAOqK,eAAe2lH,IAAkB9yH,KAAKlB,KAAMuP,EAAOzQ,IAGpI,OADAqvH,GAAqBrvH,GACdkjD,EAoCT,OA5CA3gD,EAAS2yH,EAAiBhE,GAW1BvE,EAAYuI,EAAiB,CAAC,CAC5Bx2H,IAAK,wBACL5B,MAAO,WACL,IAAK,IAAI82H,EAAO5pH,UAAUxI,OAAQyhE,EAAOn/D,MAAM8vH,GAAOlxD,EAAO,EAAGA,EAAOkxD,EAAMlxD,IAC3EO,EAAKP,GAAQ14D,UAAU04D,GAGzB,OAAOmtD,GAA0B9rH,WAAMxF,EAAW,CAAC2C,MAAM8C,OAAOi/D,MAEjE,CACDvkE,IAAK,SACL5B,MAAO,WACL,IAAIqzH,EAAgBjvH,KAAKlB,QAAQsvH,KAC7B1B,EAAeuC,EAAcvC,aAC7BpiC,EAAO2kC,EAAc7C,cACrByG,EAAS7yH,KAAKuP,MACd3T,EAAQi3H,EAAOj3H,MACfgoB,EAAWivG,EAAOjvG,SAGlBqwG,EAAkBvH,EAAa9wH,EAAOoE,KAAKuP,OAE/C,MAAwB,mBAAbqU,EACFA,EAASqwG,GAGX,gBACL3pC,EACA,KACA2pC,OAICD,EA7Ca,CA8CpB,EAAA1kG,WAEF0kG,GAAgBh4G,YAAc,kBAC9Bg4G,GAAgBr1B,aAAe,CAC7ByvB,KAAMvB,GAcR,IAAIqH,GAAkB,SAAUlE,GAG9B,SAASkE,EAAgB3kH,EAAOzQ,GAC9BmsH,EAAejrH,KAAMk0H,GAErB,IAAIlyE,EAAQ6pE,EAA0B7rH,MAAOk0H,EAAgBniD,WAAa/tE,OAAOqK,eAAe6lH,IAAkBhzH,KAAKlB,KAAMuP,EAAOzQ,IAGpI,OADAqvH,GAAqBrvH,GACdkjD,EAsCT,OA9CA3gD,EAAS6yH,EAAiBlE,GAW1BvE,EAAYyI,EAAiB,CAAC,CAC5B12H,IAAK,wBACL5B,MAAO,WACL,IAAK,IAAI82H,EAAO5pH,UAAUxI,OAAQyhE,EAAOn/D,MAAM8vH,GAAOlxD,EAAO,EAAGA,EAAOkxD,EAAMlxD,IAC3EO,EAAKP,GAAQ14D,UAAU04D,GAGzB,OAAOmtD,GAA0B9rH,WAAMxF,EAAW,CAAC2C,MAAM8C,OAAOi/D,MAEjE,CACDvkE,IAAK,SACL5B,MAAO,WACL,IAAIqzH,EAAgBjvH,KAAKlB,QAAQsvH,KAC7BzB,EAAesC,EAActC,aAC7BriC,EAAO2kC,EAAc7C,cACrByG,EAAS7yH,KAAKuP,MACd3T,EAAQi3H,EAAOj3H,MACfmgH,EAAQ8W,EAAO9W,MACfn4F,EAAWivG,EAAOjvG,SAGlBuwG,EAAiBxH,EAAa/wH,EAAOoE,KAAKuP,OAC1C6kH,EAAkBp0H,KAAKuP,MAAM4kH,IAAmBpY,EAEpD,MAAwB,mBAAbn4F,EACFA,EAASwwG,GAGX,gBACL9pC,EACA,KACA8pC,OAICF,EA/Ca,CAgDpB,EAAA5kG,WAEF4kG,GAAgBl4G,YAAc,kBAC9Bk4G,GAAgBv1B,aAAe,CAC7ByvB,KAAMvB,GAERqH,GAAgBt1B,aAAe,CAC7BhoD,MAAO,YAqBT,IAAIy9E,GAAuB,SAA8Bx9B,EAAY38E,GAInE,OAAO5M,GAAc,GAAI,CAAE4jH,iBAAkB,EAAuB,MAAsBr6B,EAAY38E,IAGpG0V,GAAmB,SAAUogG,GAG/B,SAASpgG,EAAiBrgB,EAAOzQ,GAC/BmsH,EAAejrH,KAAM4vB,GAErB,IAAIoyB,EAAQ6pE,EAA0B7rH,MAAO4vB,EAAiBmiD,WAAa/tE,OAAOqK,eAAeuhB,IAAmB1uB,KAAKlB,KAAMuP,EAAOzQ,IAKtI,OAHKyQ,EAAMse,gBACTsgG,GAAqBrvH,GAEhBkjD,EAqHT,OA/HA3gD,EAASuuB,EAAkBogG,GAa3BvE,EAAY77F,EAAkB,CAAC,CAC7BpyB,IAAK,wBACL5B,MAAO,SAA+BizH,GACpC,IAAI30G,EAASla,KAAKuP,MAAM2K,OACpBo6G,EAAazF,EAAU30G,OAG3B,IAAKm0G,GAAciG,EAAYp6G,GAC7B,OAAO,EAUT,IAJA,IAAIq6G,EAAmB3I,EAAS,GAAIiD,EAAW,CAC7C30G,OAAQA,IAGDw4G,EAAO5pH,UAAUxI,OAAQyhE,EAAOn/D,MAAM8vH,EAAO,EAAIA,EAAO,EAAI,GAAIlxD,EAAO,EAAGA,EAAOkxD,EAAMlxD,IAC9FO,EAAKP,EAAO,GAAK14D,UAAU04D,GAG7B,OAAOmtD,GAA0B9rH,WAAMxF,EAAW,CAAC2C,KAAMu0H,GAAkBzxH,OAAOi/D,MAEnF,CACDvkE,IAAK,SACL5B,MAAO,WACL,IA2BQqzC,EA3BJinC,EAAOl2E,KAAKlB,QAAQsvH,MAAQ,GAC5BoG,EAAqBt+C,EAAK5oE,cAC1BmnH,OAA0Cp3H,IAAvBm3H,EAAmCH,GAAuBG,EAC7EE,EAAqBx+C,EAAKk2C,cAC1B9hC,OAA8BjtF,IAAvBq3H,EAAmC,OAASA,EAEnD7B,EAAS7yH,KAAKuP,MACd3K,EAAKiuH,EAAOjuH,GACZnB,EAAcovH,EAAOpvH,YACrBoqB,EAAiBglG,EAAOhlG,eACxB3T,EAAS24G,EAAO34G,OAChBy6G,EAAiB9B,EAAOxjG,QACxBmgG,OAAkCnyH,IAAnBs3H,EAA+BrqC,EAAOqqC,EACrD/wG,EAAWivG,EAAOjvG,SAGlBgxG,OAAiB,EACjBC,OAAkB,EAClBjnB,OAAW,EAGf,GADgB1zF,GAAUlW,OAAOqC,KAAK6T,GAAQ5Z,OAAS,EACxC,CAGb,IAAIw0H,EAAMruH,KAAKC,MAAsB,cAAhBD,KAAKoqC,UAA0B9pC,SAAS,IAEzDguH,GACE9lF,EAAU,EACP,WACL,MAAO,WAAa6lF,EAAM,KAAO7lF,GAAW,KAOhD2lF,EAAiB,MAAQE,EAAM,MAC/BD,EAAkB,GAClBjnB,EAAW,GAOX5pG,OAAOqC,KAAK6T,GAAQ3c,SAAQ,SAAU6D,GACpC,IAAIxF,EAAQse,EAAO9Y,GAEnB,IAAI,IAAA4zH,gBAAep5H,GAAQ,CACzB,IAAIsE,EAAQ60H,IACZF,EAAgBzzH,GAAQwzH,EAAiB10H,EAAQ00H,EACjDhnB,EAAS1tG,GAAStE,OAElBi5H,EAAgBzzH,GAAQxF,KAK9B,IAGIqtF,EAFAgoC,EAAmBwD,EADN,CAAE7vH,GAAIA,EAAInB,YAAaA,EAAaoqB,eAAgBA,GACjBgnG,GAAmB36G,GAmBvE,OATE+uE,EANgB2kB,GAAY5pG,OAAOqC,KAAKunG,GAAUttG,OAAS,EAMnD2wH,EAAiBjlH,MAAM4oH,GAAgBllH,QAAO,SAAU8qE,GAC9D,QAASA,KACR9nE,KAAI,SAAU8nE,GACf,OAAOozB,EAASpzB,IAASA,KAGnB,CAACy2C,GAGa,mBAAbrtG,EACFA,EAAS/gB,WAAMxF,EAAWyuH,EAAkB7iC,IAK9C,EAAAl+E,cAAA,WAAoB1N,EAAW,CAACmyH,EAAc,MAAM1sH,OAAOgpH,EAAkB7iC,SAGjFr5D,EAhIc,CAiIrB,EAAAN,WAEFM,GAAiB5T,YAAc,mBAC/B4T,GAAiB+uE,aAAe,CAC9ByvB,KAAMvB,GAERj9F,GAAiBgvE,aAAe,CAC9B1kF,OAAQ,IAcV,IAAI+6G,GAAuB,SAAUjF,GAGnC,SAASiF,EAAqB1lH,EAAOzQ,GACnCmsH,EAAejrH,KAAMi1H,GAErB,IAAIjzE,EAAQ6pE,EAA0B7rH,MAAOi1H,EAAqBljD,WAAa/tE,OAAOqK,eAAe4mH,IAAuB/zH,KAAKlB,KAAMuP,EAAOzQ,IAG9I,OADAqvH,GAAqBrvH,GACdkjD,EA8DT,OAtEA3gD,EAAS4zH,EAAsBjF,GAW/BvE,EAAYwJ,EAAsB,CAAC,CACjCz3H,IAAK,wBACL5B,MAAO,SAA+BizH,GACpC,IAAI30G,EAASla,KAAKuP,MAAM2K,OACpBo6G,EAAazF,EAAU30G,OAG3B,IAAKm0G,GAAciG,EAAYp6G,GAC7B,OAAO,EAUT,IAJA,IAAIq6G,EAAmB3I,EAAS,GAAIiD,EAAW,CAC7C30G,OAAQA,IAGDw4G,EAAO5pH,UAAUxI,OAAQyhE,EAAOn/D,MAAM8vH,EAAO,EAAIA,EAAO,EAAI,GAAIlxD,EAAO,EAAGA,EAAOkxD,EAAMlxD,IAC9FO,EAAKP,EAAO,GAAK14D,UAAU04D,GAG7B,OAAOmtD,GAA0B9rH,WAAMxF,EAAW,CAAC2C,KAAMu0H,GAAkBzxH,OAAOi/D,MAEnF,CACDvkE,IAAK,SACL5B,MAAO,WACL,IAAIqzH,EAAgBjvH,KAAKlB,QAAQsvH,KAC7BxB,EAAoBqC,EAAcrC,kBAClCtiC,EAAO2kC,EAAc7C,cACrByG,EAAS7yH,KAAKuP,MACd3K,EAAKiuH,EAAOjuH,GACZnB,EAAcovH,EAAOpvH,YACrBoqB,EAAiBglG,EAAOhlG,eACxB6jG,EAAYmB,EAAO34G,OACnBy6G,EAAiB9B,EAAOxjG,QACxBmgG,OAAkCnyH,IAAnBs3H,EAA+BrqC,EAAOqqC,EACrD/wG,EAAWivG,EAAOjvG,SAIlBsxG,EAAuBtI,EADV,CAAEhoH,GAAIA,EAAInB,YAAaA,EAAaoqB,eAAgBA,GACZ6jG,GAEzD,GAAwB,mBAAb9tG,EACT,OAAOA,EAASsxG,GAWlB,IAAIplG,EAAO,CAAEN,OAAQ0lG,GACrB,OAAO,gBAAoB1F,EAAc,CAAEjgG,wBAAyBO,QAGjEmlG,EAvEkB,CAwEzB,EAAA3lG,WAEF2lG,GAAqBj5G,YAAc,uBACnCi5G,GAAqBt2B,aAAe,CAClCyvB,KAAMvB,GAERoI,GAAqBr2B,aAAe,CAClC1kF,OAAQ,IAcV4wG,EAAcD,GAQdC,EAAc,mCCjvDd,IAAIvQ,EAAoB,WAIxB,EAAQ,QAKR7iH,EAAUD,EAAOC,QAAU6iH,GAC3B,QAAqB7iH,6BCHrB,SAAS8iH,EAASrE,EAAS79B,EAASmiC,GAChCz6G,KAAKm2G,QAAWA,EAChBn2G,KAAKs4E,QAAWA,EAChBt4E,KAAKy6G,SAAWA,EA4IpB,SAASC,EAAa91G,GAClB5E,KAAK4E,GAAKA,EAWd,SAAS+1G,EAAa/1G,EAAIg2G,EAAYl5C,EAAQzpE,EAASwiH,GACnDz6G,KAAK4E,GAAaA,EAClB5E,KAAK46G,WAAaA,EAClB56G,KAAK0hE,OAAaA,EAClB1hE,KAAK/H,QAAaA,EAClB+H,KAAKy6G,SAAaA,EAYtB,SAASI,EAAmBj2G,EAAI88D,EAAQo5C,EAAcjlD,GAClD71D,KAAK4E,GAAeA,EACpB5E,KAAK0hE,OAAeA,EACpB1hE,KAAK86G,aAAeA,EACpB96G,KAAK61D,OAAeA,EAWxB,SAASklD,EAAan2G,EAAI3M,GACtB+H,KAAK4E,GAAUA,EACf5E,KAAK/H,QAAUA,EA/LnBP,EAAiB,QAAI8iH,EAQrBA,EAASx7G,UAAUg8G,QAAU,SAAUC,GAKnC,OAJAj7G,KAAKk7G,YAAqB,GAC1Bl7G,KAAKm7G,cAAqB,KAC1Bn7G,KAAKo7G,mBAAqB,KAEnBp7G,KAAKq7G,eAAeJ,IAG/BT,EAASx7G,UAAUq8G,eAAiB,SAAUJ,GAC1C,IAAMA,GAAoB,yBAAbA,EAAIh9G,KACb,MAAM,IAAI7F,MAAM,sDAGpB,IAGIgI,EAAG68D,EAAK3L,EAHRs8C,EAAWqN,EAAIrN,SACfj/F,EAAW,GAIf,IAAKvO,EAAI,EAAG68D,EAAM2wC,EAASttG,OAAQF,EAAI68D,EAAK78D,GAAK,EAG7C,QAFAkxD,EAAUs8C,EAASxtG,IAEHnC,MACZ,IAAK,qBACD0Q,EAAQ9N,KAAKb,KAAKs7G,mBAAmBhqD,IACrC,MAEJ,IAAK,kBACD3iD,EAAQ9N,KAAKb,KAAKu7G,gBAAgBjqD,IAClC,MAEJ,QACI,MAAM,IAAIl5D,MAAM,8CAI5B,OAAOuW,GAGX6rG,EAASx7G,UAAUs8G,mBAAqB,SAAUhqD,GAI9C,OAAItxD,KAAKm7G,eAAiB,cAAc3wG,KAAK8mD,EAAQ11D,QAG5CoE,KAAKo7G,qBACNp7G,KAAKo7G,mBAAqB,IAAII,KAAKC,aAAaz7G,KAAKm2G,UAGlD,IAAI0E,EACH76G,KAAKm7G,cAAcv2G,GACnB5E,KAAKm7G,cAAcx/B,OAAOja,OAC1B1hE,KAAKo7G,mBACL9pD,EAAQ11D,QAIb01D,EAAQ11D,MAAMoN,QAAQ,OAAQ,MAGzCwxG,EAASx7G,UAAUu8G,gBAAkB,SAAUjqD,GAC3C,IAAIqqB,EAASrqB,EAAQqqB,OAErB,IAAKA,EACD,OAAO,IAAI++B,EAAappD,EAAQ1sD,IAGpC,IAGI3M,EAHAqgF,EAAWt4E,KAAKs4E,QAChB69B,EAAWn2G,KAAKm2G,QAChBsE,EAAWz6G,KAAKy6G,SAGpB,OAAQ9+B,EAAO19E,MACX,IAAK,eAED,OADAhG,EAAUqgF,EAAQ50E,OAAOi4E,EAAO/kC,OACzB,CACHhyC,GAAQ0sD,EAAQ1sD,GAChB+2E,OAAQ,IAAI6/B,KAAKC,aAAatF,EAASl+G,GAAS0jF,QAGxD,IAAK,aAED,OADA1jF,EAAUqgF,EAAQxrD,KAAK6uD,EAAO/kC,OACvB,CACHhyC,GAAQ0sD,EAAQ1sD,GAChB+2E,OAAQ,IAAI6/B,KAAKE,eAAevF,EAASl+G,GAAS0jF,QAG1D,IAAK,aAED,OADA1jF,EAAUqgF,EAAQqjC,KAAKhgC,EAAO/kC,OACvB,CACHhyC,GAAQ0sD,EAAQ1sD,GAChB+2E,OAAQ,IAAI6/B,KAAKE,eAAevF,EAASl+G,GAAS0jF,QAG1D,IAAK,eAED,OADA1jF,EAAU+H,KAAK47G,eAAetqD,GACvB,IAAIqpD,EACPrpD,EAAQ1sD,GAAI+2E,EAAO4zB,QAAS5zB,EAAOja,OAAQzpE,EAASwiH,GAG5D,IAAK,eAED,OADAxiH,EAAU+H,KAAK47G,eAAetqD,GACvB,IAAIypD,EAAazpD,EAAQ1sD,GAAI3M,GAExC,QACI,MAAM,IAAIG,MAAM,uDAI5BoiH,EAASx7G,UAAU48G,eAAiB,SAAUtqD,GAC1C,IAUIlxD,EAAG68D,EAAKslC,EAVR5mB,EAAcrqB,EAAQqqB,OACtB1jF,EAAc0jF,EAAO1jF,QACrB4jH,EAAc,GAUlB,IALA77G,KAAKk7G,YAAYr6G,KAAKb,KAAKm7G,eAC3Bn7G,KAAKm7G,cAAgC,iBAAhBx/B,EAAO19E,KAA0BqzD,EAAU,KAI3DlxD,EAAI,EAAG68D,EAAMhlE,EAAQqI,OAAQF,EAAI68D,EAAK78D,GAAK,EAI5Cy7G,GAHAtZ,EAAStqG,EAAQmI,IAGE6vG,UAAYjwG,KAAKq7G,eAAe9Y,EAAO3mG,OAM9D,OAFAoE,KAAKm7G,cAAgBn7G,KAAKk7G,YAAYhuG,MAE/B2uG,GASXnB,EAAa17G,UAAU28E,OAAS,SAAU//E,GACtC,OAAKA,GAA0B,iBAAVA,EAIG,iBAAVA,EAAqBA,EAAQmU,OAAOnU,GAHvC,IAcf++G,EAAa37G,UAAU88G,UAAY,SAAUlgH,GACzC,IAAI3D,EAAU+H,KAAK/H,QAKnB,OAHaA,EAAQ,IAAM2D,IACnB3D,EAAQ+H,KAAKy6G,SAAS7+G,EAAQoE,KAAK0hE,OAAQ1hE,KAAK46G,cAEvC3iH,EAAQ8jH,OAU7BlB,EAAmB77G,UAAU28E,OAAS,SAAU//E,GAC5C,IAAI8H,EAAS1D,KAAK86G,aAAan/B,OAAO//E,EAAQoE,KAAK0hE,QAEnD,OAAO1hE,KAAK61D,OACH7sD,QAAQ,cAAe,KAAOtF,GAC9BsF,QAAQ,OAAQ,MAQ7B+xG,EAAa/7G,UAAU88G,UAAY,SAAUlgH,GACzC,IAAI3D,EAAU+H,KAAK/H,QACnB,OAAOA,EAAQ2D,IAAU3D,EAAQ8jH,qCCpMrC,IAAIC,EAAc,EAAQ,OAAYC,EAAY,EAAQ,OAAUC,EAAiB,EAAQ,MAAeC,EAA8B,EAAQ,OAKlJ,SAASC,EAAc37G,EAAS01G,EAAS79B,GAErC,IAAI2iC,EAAyB,iBAAZx6G,EACT27G,EAAcC,QAAQ57G,GAAWA,EAEzC,IAAMw6G,GAAoB,yBAAbA,EAAIh9G,KACb,MAAM,IAAI6B,UAAU,kDAKxBw4E,EAAUt4E,KAAKs8G,cAAcF,EAAc9jC,QAASA,GAGpD2jC,EAAU/3G,eAAelE,KAAM,UAAY,CAACpE,MAAOoE,KAAKo2G,eAAeD,KAKvE,IAAIsE,EAAWz6G,KAAKu8G,wBAAwBv8G,KAAKw2G,SAC7C7nG,EAAW3O,KAAKw8G,gBAAgBvB,EAAK9E,EAAS79B,EAASmiC,GAIvDgC,EAAgBz8G,KACpBA,KAAK27E,OAAS,SAAUzhE,GACtB,IACE,OAAOuiG,EAAc9F,QAAQhoG,EAASuL,GACtC,MAAO5R,GACP,MAAIA,EAAEo0G,WACE,IAAItkH,MACR,qCAAwCkQ,EAAEo0G,WAA1C,qCACuCj8G,EAAU,KAG7C6H,IAvChB5Q,EAAiB,QAAI0kH,EAgDrBH,EAAU/3G,eAAek4G,EAAe,UAAW,CAC/Cx0C,YAAY,EAEZhsE,MAAO,CACH8H,OAAQ,CACJ,SAAY,CACRkzC,MAAO,YAGX,QAAW,CACPA,MAAO,YAIf9pB,KAAM,CACF,MAAS,CACLqqF,MAAO,UACPD,IAAO,UACPyC,KAAO,WAGX,OAAU,CACNxC,MAAO,QACPD,IAAO,UACPyC,KAAO,WAGX,KAAQ,CACJxC,MAAO,OACPD,IAAO,UACPyC,KAAO,WAGX,KAAQ,CACJgD,QAAS,OACTxF,MAAS,OACTD,IAAS,UACTyC,KAAS,YAIjBgC,KAAM,CACF,MAAS,CACL1E,KAAQ,UACRD,OAAQ,WAGZ,OAAW,CACPC,KAAQ,UACRD,OAAQ,UACRD,OAAQ,WAGZ,KAAQ,CACJE,KAAc,UACdD,OAAc,UACdD,OAAc,UACd6F,aAAc,SAGlB,KAAQ,CACJ3F,KAAc,UACdD,OAAc,UACdD,OAAc,UACd6F,aAAc,aAO9BX,EAAU/3G,eAAek4G,EAAe,iBAAkB,CAACxgH,MAAOqgH,EAAUxF,UAAU,QACtFwF,EAAU/3G,eAAek4G,EAAe,kBAAmB,CAACxgH,MAAO,SAAU9B,GACzE,IAAMA,IAAQA,EAAKiX,OACf,MAAM,IAAI3Y,MACN,4EAKRgkH,EAAcvF,eAAe/8G,EAAKiX,OAAOtT,eAAiB3D,KAI9DmiH,EAAU/3G,eAAek4G,EAAe,UAAW,CAACxgH,MAAOugH,EAAqC,QAAE/zG,QAIlG6zG,EAAU/3G,eAAek4G,EAAe,gBAAiB,CACrDx0C,YAAY,EACZgK,UAAY,EACZh2E,WAAYyB,IAGhB++G,EAAcp9G,UAAUo4G,gBAAkB,WAEtC,MAAO,CACHrmG,OAAQ/Q,KAAKw2G,UAIrB4F,EAAcp9G,UAAUw9G,gBAAkB,SAAUvB,EAAK9E,EAAS79B,EAASmiC,GAEvE,OADe,IAAIyB,EAAwB,QAAE/F,EAAS79B,EAASmiC,GAC/CO,QAAQC,IAG5BmB,EAAcp9G,UAAUu9G,wBAA0B,SAAUxrG,GAMxD,IALA,IAAIknG,EAAamE,EAAcvF,eAC3B/8G,EAAam+G,EAAWlnG,EAAOtT,eAI5B3D,GAAM,CACT,GAAIA,EAAK+iH,mBACL,OAAO/iH,EAAK+iH,mBAGhB/iH,EAAOA,EAAKo+G,cAAgBD,EAAWn+G,EAAKo+G,aAAaz6G,eAG7D,MAAM,IAAIrF,MACN,iFAC+B2Y,IAIvCqrG,EAAcp9G,UAAU23G,QAAU,SAAUhoG,EAASuL,GACjD,IACI9Z,EAAG68D,EAAKud,EAAM51E,EAAIhJ,EAAOzD,EADzB4V,EAAS,GAGb,IAAK3N,EAAI,EAAG68D,EAAMtuD,EAAQrO,OAAQF,EAAI68D,EAAK78D,GAAK,EAI5C,GAAoB,iBAHpBo6E,EAAO7rE,EAAQvO,IAGf,CAQA,GAHAwE,EAAK41E,EAAK51E,IAGJsV,IAAU8hG,EAAY/B,IAAI/4G,KAAKgZ,EAAQtV,GAG3C,MAFAzM,EAAM,IAAIC,MAAM,iCAAmCwM,IAC/C83G,WAAa93G,EACXzM,EAGRyD,EAAQse,EAAOtV,GAKX41E,EAAKviF,QACL8V,GAAU/N,KAAK22G,QAAQn8B,EAAKshC,UAAUlgH,GAAQse,GAE9CnM,GAAUysE,EAAKmB,OAAO//E,QArBtBmS,GAAUysE,EAyBlB,OAAOzsE,GAGXquG,EAAcp9G,UAAUs9G,cAAgB,SAAU36G,EAAU22E,GACxD,IACIr6E,EAAM6+G,EADNC,EAAgB,GAGpB,IAAK9+G,KAAQ0D,EACJq6G,EAAY/B,IAAI/4G,KAAKS,EAAU1D,KAEpC8+G,EAAc9+G,GAAQ6+G,EAAab,EAAUxF,UAAU90G,EAAS1D,IAE5Dq6E,GAAW0jC,EAAY/B,IAAI/4G,KAAKo3E,EAASr6E,IACzC+9G,EAAY/8G,OAAO69G,EAAYxkC,EAAQr6E,KAI/C,OAAO8+G,GAGXX,EAAcp9G,UAAUo3G,eAAiB,SAAUD,GACxB,iBAAZA,IACPA,EAAU,CAACA,IAIfA,GAAWA,GAAW,IAAIrzG,OAAOs5G,EAAczD,eAE/C,IACIv4G,EAAG68D,EAAK27C,EAAa9+G,EADrBm+G,EAAamE,EAAcvF,eAQ/B,IAAKz2G,EAAI,EAAG68D,EAAMk5C,EAAQ71G,OAAQF,EAAI68D,EAAK78D,GAAK,EAG5C,IAFAw4G,EAAczC,EAAQ/1G,GAAG3C,cAAcuO,MAAM,KAEtC4sG,EAAYt4G,QAAQ,CAEvB,GADAxG,EAAOm+G,EAAWW,EAAYtvG,KAAK,MAI/B,OAAOxP,EAAKiX,OAGhB6nG,EAAY1rG,MAIpB,IAAIyrG,EAAgBxC,EAAQjpG,MAC5B,MAAM,IAAI9U,MACN,2DACA+9G,EAAQ7sG,KAAK,MAAQ,4BAA8BqvG,gCC9Q3DjhH,EAAiB,QAAI,CAAC,OAAS,KAAK,mBAAqB,SAAUggE,EAAEkiD,GAAK,IAAIvkD,EAAEtlD,OAAO2nD,GAAG1rD,MAAM,KAAK6tG,GAAIxkD,EAAE,GAAGykD,EAAG7zC,OAAO5Q,EAAE,KAAKqC,EAAEqiD,EAAID,GAAIzkD,EAAE,GAAGvvD,OAAO,GAAGk0G,EAAKF,GAAIzkD,EAAE,GAAGvvD,OAAO,GAAG,OAAG8zG,EAAgB,GAALG,GAAc,IAANC,EAAS,MAAW,GAALD,GAAc,IAANC,EAAS,MAAW,GAALD,GAAc,IAANC,EAAS,MAAM,QAAkB,GAAHtiD,GAAMmiD,EAAG,MAAM,wCCOjS,IAAImC,EAAc,EAAQ,OAKtB9B,EAAiB,WACjB,IAAM,QAASl2G,OAAOE,eAAe,GAAI,IAAK,IAC9C,MAAOoE,GAAK,OAAO,GAFF,GAOjBpE,IAFOg2G,GAAmBl2G,OAAOhF,UAAUm7G,iBAE1BD,EAAiBl2G,OAAOE,eACrC,SAAUK,EAAKnD,EAAMoM,GAErB,QAASA,GAAQjJ,EAAI41G,iBACrB51G,EAAI41G,iBAAiB/4G,EAAMoM,EAAKwd,KACxBgxF,EAAY/B,IAAI/4G,KAAKqD,EAAKnD,MAAS,UAAWoM,KACtDjJ,EAAInD,GAAQoM,EAAK5R,SAIrB66G,EAAYzyG,OAAO9E,QAAU,SAAUuoE,EAAOl4D,GAC9C,IAAIhL,EAAKupD,EAET,SAAS2oB,KAIT,IAAK3oB,KAHL2oB,EAAEz3E,UAAYyoE,EACdljE,EAAM,IAAIkyE,EAEAlnE,EACFysG,EAAY/B,IAAI/4G,KAAKqO,EAAOu+C,IAC5B5pD,EAAeK,EAAKupD,EAAGv+C,EAAMu+C,IAIrC,OAAOvpD,GAGX7M,EAAQwM,eAAiBA,EAAgBxM,EAAQ++G,UAAYA,gCC5C7D,IAAIuG,EAAa,EAAQ,OAAWC,EAAW,EAAQ,OAEvDD,EAAoB,QAAElG,gBAAgBmG,EAAkB,SACxDD,EAAoB,QAAErE,cAAgB,KAEtCjhH,EAAA,EAAqBslH,EAAoB,oCCCzCtlH,EAAQuH,OAGR,SAAgBsF,GACZ,IACInE,EAAG68D,EAAKj8D,EAAQxD,EADhB0/G,EAAUt6G,MAAM5D,UAAU8G,MAAM5E,KAAK4H,UAAW,GAGpD,IAAK1I,EAAI,EAAG68D,EAAMigD,EAAQ58G,OAAQF,EAAI68D,EAAK78D,GAAK,EAE5C,GADAY,EAASk8G,EAAQ98G,GAGjB,IAAK5C,KAAOwD,EACJi5G,EAAI/4G,KAAKF,EAAQxD,KACjB+G,EAAI/G,GAAOwD,EAAOxD,IAK9B,OAAO+G,GAjBX,IAAI01G,EAAMj2G,OAAOhF,UAAUuP,eAmB3B7W,EAAQuiH,IAAMA,8BCpBD,IAAI/qG,EAAE,mBAAoB4zD,QAAQA,OAAOikB,IAAI9lF,EAAEiO,EAAE4zD,OAAOikB,IAAI,iBAAiB,MAAM7nD,EAAEhwB,EAAE4zD,OAAOikB,IAAI,gBAAgB,MAAMz+E,EAAE4G,EAAE4zD,OAAOikB,IAAI,kBAAkB,MAAMrQ,EAAExnE,EAAE4zD,OAAOikB,IAAI,qBAAqB,MAAMtV,EAAEviE,EAAE4zD,OAAOikB,IAAI,kBAAkB,MAAMliF,EAAEqK,EAAE4zD,OAAOikB,IAAI,kBAAkB,MAAMj5B,EAAE5+C,EAAE4zD,OAAOikB,IAAI,iBAAiB,MAAM1mF,EAAE6O,EAAE4zD,OAAOikB,IAAI,oBAAoB,MAAM1hB,EAAEn2D,EAAE4zD,OAAOikB,IAAI,yBAAyB,MAAMrvB,EAAExoD,EAAE4zD,OAAOikB,IAAI,qBAAqB,MAAMr0D,EAAExjB,EAAE4zD,OAAOikB,IAAI,kBAAkB,MAAMouC,EAAEjmH,EACpf4zD,OAAOikB,IAAI,uBAAuB,MAAMj/D,EAAE5Y,EAAE4zD,OAAOikB,IAAI,cAAc,MAAMsB,EAAEn5E,EAAE4zD,OAAOikB,IAAI,cAAc,MAAM59E,EAAE+F,EAAE4zD,OAAOikB,IAAI,eAAe,MAAM0/B,EAAEv3G,EAAE4zD,OAAOikB,IAAI,qBAAqB,MAAM1/B,EAAEn4C,EAAE4zD,OAAOikB,IAAI,mBAAmB,MAAMz/B,EAAEp4C,EAAE4zD,OAAOikB,IAAI,eAAe,MAClQ,SAASquC,EAAEnmH,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIuvG,EAAEvvG,EAAE03E,SAAS,OAAO63B,GAAG,KAAKv9G,EAAE,OAAOgO,EAAEA,EAAEhR,MAAQ,KAAKoC,EAAE,KAAKglE,EAAE,KAAK/8D,EAAE,KAAKmpE,EAAE,KAAKiF,EAAE,KAAKhkD,EAAE,OAAOzjB,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAE03E,UAAY,KAAK74B,EAAE,KAAK4J,EAAE,KAAK2wB,EAAE,KAAKvgE,EAAE,KAAKjjB,EAAE,OAAOoK,EAAE,QAAQ,OAAOuvG,GAAG,KAAKt/E,EAAE,OAAOs/E,IAAI,SAASD,EAAEtvG,GAAG,OAAOmmH,EAAEnmH,KAAKo2D,EAAE3tE,EAAQ29H,UAAUh1H,EAAE3I,EAAQ49H,eAAejwD,EAAE3tE,EAAQ69H,gBAAgBznE,EAAEp2D,EAAQ89H,gBAAgB3wH,EAAEnN,EAAQo0F,QAAQ7qF,EAAEvJ,EAAQioG,WAAWjoC,EAAEhgE,EAAQ+9H,SAASntH,EAAE5Q,EAAQg+H,KAAKrtC,EAAE3wF,EAAQkoG,KAAK93E,EAAEpwB,EAAQi+H,OAAOz2F,EAChfxnC,EAAQk+H,SAASnkD,EAAE/5E,EAAQm+H,WAAWn/C,EAAEh/E,EAAQo+H,SAASpjG,EAAEh7B,EAAQq+H,YAAY,SAAS9mH,GAAG,OAAOsvG,EAAEtvG,IAAImmH,EAAEnmH,KAAK5O,GAAG3I,EAAQs+H,iBAAiBzX,EAAE7mH,EAAQu+H,kBAAkB,SAAShnH,GAAG,OAAOmmH,EAAEnmH,KAAK6+C,GAAGp2D,EAAQw+H,kBAAkB,SAASjnH,GAAG,OAAOmmH,EAAEnmH,KAAKpK,GAAGnN,EAAQy+H,UAAU,SAASlnH,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAE03E,WAAW1lF,GAAGvJ,EAAQ0+H,aAAa,SAASnnH,GAAG,OAAOmmH,EAAEnmH,KAAKyoD,GAAGhgE,EAAQ2+H,WAAW,SAASpnH,GAAG,OAAOmmH,EAAEnmH,KAAK3G,GAAG5Q,EAAQ4+H,OAAO,SAASrnH,GAAG,OAAOmmH,EAAEnmH,KAAKo5E,GACzd3wF,EAAQgoG,OAAO,SAASzwF,GAAG,OAAOmmH,EAAEnmH,KAAK6Y,GAAGpwB,EAAQ6+H,SAAS,SAAStnH,GAAG,OAAOmmH,EAAEnmH,KAAKiwB,GAAGxnC,EAAQ8+H,WAAW,SAASvnH,GAAG,OAAOmmH,EAAEnmH,KAAKwiE,GAAG/5E,EAAQ++H,aAAa,SAASxnH,GAAG,OAAOmmH,EAAEnmH,KAAKynE,GAAGh/E,EAAQg/H,WAAW,SAASznH,GAAG,OAAOmmH,EAAEnmH,KAAKyjB,GACzOh7B,EAAQi/H,mBAAmB,SAAS1nH,GAAG,MAAM,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAI3G,GAAG2G,IAAIo2D,GAAGp2D,IAAIwiE,GAAGxiE,IAAIynE,GAAGznE,IAAIyjB,GAAGzjB,IAAIkmH,GAAG,iBAAkBlmH,GAAG,OAAOA,IAAIA,EAAE03E,WAAW0B,GAAGp5E,EAAE03E,WAAW7+D,GAAG7Y,EAAE03E,WAAW9hF,GAAGoK,EAAE03E,WAAW74B,GAAG7+C,EAAE03E,WAAWjvB,GAAGzoD,EAAE03E,WAAW8/B,GAAGx3G,EAAE03E,WAAWt/B,GAAGp4C,EAAE03E,WAAWr/B,GAAGr4C,EAAE03E,WAAWx9E,IAAIzR,EAAQk/H,OAAOxB,gCCXjU39H,EAAOC,QAAU,EAAjB,mCCMW,IAAI2I,EAAEyiE,OAAOikB,IAAI,iBAAiBrvB,EAAEoL,OAAOikB,IAAI,gBAAgBr0D,EAAEowC,OAAOikB,IAAI,kBAAkBouC,EAAEryD,OAAOikB,IAAI,qBAAqBj/D,EAAEg7C,OAAOikB,IAAI,kBAAkBsB,EAAEvlB,OAAOikB,IAAI,kBAAkBy3B,EAAE17C,OAAOikB,IAAI,iBAAiB59E,EAAE25D,OAAOikB,IAAI,qBAAqB0/B,EAAE3jD,OAAOikB,IAAI,kBAAkB1/B,EAAEyb,OAAOikB,IAAI,cAAcz/B,EAAEwb,OAAOikB,IAAI,cAAcquC,EAAEtyD,OAAOyL,SACrWsoD,EAAE,CAACC,UAAU,WAAW,OAAM,GAAIC,mBAAmB,aAAaC,oBAAoB,aAAaC,gBAAgB,cAAcC,EAAElzH,OAAOQ,OAAO2yH,EAAE,GAAG,SAASC,EAAEnoH,EAAEC,EAAE5G,GAAGtI,KAAKuP,MAAMN,EAAEjP,KAAKlB,QAAQoQ,EAAElP,KAAKk9E,KAAKi6C,EAAEn3H,KAAKq3H,QAAQ/uH,GAAGuuH,EACyI,SAASpgD,KAA6B,SAAS6gD,EAAEroH,EAAEC,EAAE5G,GAAGtI,KAAKuP,MAAMN,EAAEjP,KAAKlB,QAAQoQ,EAAElP,KAAKk9E,KAAKi6C,EAAEn3H,KAAKq3H,QAAQ/uH,GAAGuuH,EADvPO,EAAEp4H,UAAUu4H,iBAAiB,GACnQH,EAAEp4H,UAAU00H,SAAS,SAASzkH,EAAEC,GAAG,GAAG,iBAAkBD,GAAG,mBAAoBA,GAAG,MAAMA,EAAE,MAAM7W,MAAM,yHAAyH4H,KAAKq3H,QAAQJ,gBAAgBj3H,KAAKiP,EAAEC,EAAE,aAAakoH,EAAEp4H,UAAUw4H,YAAY,SAASvoH,GAAGjP,KAAKq3H,QAAQN,mBAAmB/2H,KAAKiP,EAAE,gBAA8BwnE,EAAEz3E,UAAUo4H,EAAEp4H,UAAsF,IAAIy4H,EAAEH,EAAEt4H,UAAU,IAAIy3E,EACrfghD,EAAE/oH,YAAY4oH,EAAEJ,EAAEO,EAAEL,EAAEp4H,WAAWy4H,EAAEC,sBAAqB,EAAG,IAAIC,EAAE/0H,MAAMiD,QAAQ+xH,EAAE5zH,OAAOhF,UAAUuP,eAAespH,EAAE,CAAC5nC,QAAQ,MAAM6nC,EAAE,CAACt6H,KAAI,EAAG2yH,KAAI,EAAG4H,QAAO,EAAGC,UAAS,GACtK,SAASC,EAAEhpH,EAAEC,EAAE5G,GAAG,IAAI42B,EAAEj+B,EAAE,GAAG6sD,EAAE,KAAKjpD,EAAE,KAAK,GAAG,MAAMqK,EAAE,IAAIgwB,UAAK,IAAShwB,EAAEihH,MAAMtrH,EAAEqK,EAAEihH,UAAK,IAASjhH,EAAE1R,MAAMswD,EAAE,GAAG5+C,EAAE1R,KAAK0R,EAAE0oH,EAAE12H,KAAKgO,EAAEgwB,KAAK44F,EAAEvpH,eAAe2wB,KAAKj+B,EAAEi+B,GAAGhwB,EAAEgwB,IAAI,IAAIuyC,EAAE3oE,UAAUxI,OAAO,EAAE,GAAG,IAAImxE,EAAExwE,EAAE2iB,SAAStb,OAAO,GAAG,EAAEmpE,EAAE,CAAC,IAAI,IAAIiF,EAAE9zE,MAAM6uE,GAAGpM,EAAE,EAAEA,EAAEoM,EAAEpM,IAAIqR,EAAErR,GAAGv8D,UAAUu8D,EAAE,GAAGpkE,EAAE2iB,SAAS8yD,EAAE,GAAGznE,GAAGA,EAAE2vF,aAAa,IAAI1/D,KAAKuyC,EAAExiE,EAAE2vF,kBAAe,IAAS39F,EAAEi+B,KAAKj+B,EAAEi+B,GAAGuyC,EAAEvyC,IAAI,MAAM,CAACynD,SAAStmF,EAAEpC,KAAKgR,EAAEzR,IAAIswD,EAAEqiE,IAAItrH,EAAE0K,MAAMtO,EAAEi3H,OAAOL,EAAE5nC,SACxU,SAASyxB,EAAEzyG,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAE03E,WAAWtmF,EAAqG,IAAI6gE,EAAE,OAAO,SAASi3D,EAAElpH,EAAEC,GAAG,MAAM,iBAAkBD,GAAG,OAAOA,GAAG,MAAMA,EAAEzR,IAA7K,SAAgByR,GAAG,IAAIC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAID,EAAEjG,QAAQ,SAAQ,SAASiG,GAAG,OAAOC,EAAED,MAAmFihB,CAAO,GAAGjhB,EAAEzR,KAAK0R,EAAEnI,SAAS,IAC5W,SAASqxH,EAAEnpH,EAAEC,EAAE5G,EAAE42B,EAAEj+B,GAAG,IAAI6sD,SAAS7+C,EAAK,cAAc6+C,GAAG,YAAYA,IAAE7+C,EAAE,MAAK,IAAIpK,GAAE,EAAG,GAAG,OAAOoK,EAAEpK,GAAE,OAAQ,OAAOipD,GAAG,IAAK,SAAS,IAAK,SAASjpD,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOoK,EAAE03E,UAAU,KAAKtmF,EAAE,KAAKq3D,EAAE7yD,GAAE,GAAI,GAAGA,EAAE,OAAW5D,EAAEA,EAAN4D,EAAEoK,GAASA,EAAE,KAAKiwB,EAAE,IAAIi5F,EAAEtzH,EAAE,GAAGq6B,EAAEy4F,EAAE12H,IAAIqH,EAAE,GAAG,MAAM2G,IAAI3G,EAAE2G,EAAEjG,QAAQk4D,EAAE,OAAO,KAAKk3D,EAAEn3H,EAAEiO,EAAE5G,EAAE,IAAG,SAAS2G,GAAG,OAAOA,MAAK,MAAMhO,IAAIygH,EAAEzgH,KAAKA,EADnW,SAAWgO,EAAEC,GAAG,MAAM,CAACy3E,SAAStmF,EAAEpC,KAAKgR,EAAEhR,KAAKT,IAAI0R,EAAEihH,IAAIlhH,EAAEkhH,IAAI5gH,MAAMN,EAAEM,MAAM2oH,OAAOjpH,EAAEipH,QACgRG,CAAEp3H,EAAEqH,IAAIrH,EAAEzD,KAAKqH,GAAGA,EAAErH,MAAMyD,EAAEzD,IAAI,IAAI,GAAGyD,EAAEzD,KAAKwL,QAAQk4D,EAAE,OAAO,KAAKjyD,IAAIC,EAAErO,KAAKI,IAAI,EAAyB,GAAvB4D,EAAE,EAAEq6B,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOy4F,EAAE1oH,GAAG,IAAI,IAAIwiE,EAAE,EAAEA,EAAExiE,EAAE3O,OAAOmxE,IAAI,CAC/e,IAAIiF,EAAEx3C,EAAEi5F,EADwerqE,EACrf7+C,EAAEwiE,GAAeA,GAAG5sE,GAAGuzH,EAAEtqE,EAAE5+C,EAAE5G,EAAEouE,EAAEz1E,QAAQ,GAAGy1E,EAPsU,SAAWznE,GAAG,OAAG,OAAOA,GAAG,iBAAkBA,EAAS,KAAsC,mBAAjCA,EAAEmmH,GAAGnmH,EAAEmmH,IAAInmH,EAAE,eAA0CA,EAAE,KAOxbsvG,CAAEtvG,GAAG,mBAAoBynE,EAAE,IAAIznE,EAAEynE,EAAEx1E,KAAK+N,GAAGwiE,EAAE,IAAI3jB,EAAE7+C,EAAE8yD,QAAQ7nE,MAA6B2K,GAAGuzH,EAA1BtqE,EAAEA,EAAElyD,MAA0BsT,EAAE5G,EAAtBouE,EAAEx3C,EAAEi5F,EAAErqE,EAAE2jB,KAAkBxwE,QAAQ,GAAG,WAAW6sD,EAAE,MAAM5+C,EAAEa,OAAOd,GAAG7W,MAAM,mDAAmD,oBAAoB8W,EAAE,qBAAqBlL,OAAOqC,KAAK4I,GAAG3F,KAAK,MAAM,IAAI4F,GAAG,6EAA6E,OAAOrK,EACxZ,SAASs8D,EAAElyD,EAAEC,EAAE5G,GAAG,GAAG,MAAM2G,EAAE,OAAOA,EAAE,IAAIiwB,EAAE,GAAGj+B,EAAE,EAAmD,OAAjDm3H,EAAEnpH,EAAEiwB,EAAE,GAAG,IAAG,SAASjwB,GAAG,OAAOC,EAAEhO,KAAKoH,EAAE2G,EAAEhO,QAAci+B,EAAE,SAASo5F,EAAErpH,GAAG,IAAI,IAAIA,EAAEspH,QAAQ,CAAC,IAAIrpH,EAAED,EAAEupH,SAAQtpH,EAAEA,KAAMpW,MAAK,SAASoW,GAAM,IAAID,EAAEspH,UAAU,IAAItpH,EAAEspH,UAAQtpH,EAAEspH,QAAQ,EAAEtpH,EAAEupH,QAAQtpH,MAAG,SAASA,GAAM,IAAID,EAAEspH,UAAU,IAAItpH,EAAEspH,UAAQtpH,EAAEspH,QAAQ,EAAEtpH,EAAEupH,QAAQtpH,OAAK,IAAID,EAAEspH,UAAUtpH,EAAEspH,QAAQ,EAAEtpH,EAAEupH,QAAQtpH,GAAG,GAAG,IAAID,EAAEspH,QAAQ,OAAOtpH,EAAEupH,QAAQx6C,QAAQ,MAAM/uE,EAAEupH,QACpZ,IAAIC,EAAE,CAACxoC,QAAQ,MAAMyoC,EAAE,CAACC,WAAW,MAAMC,EAAE,CAACC,uBAAuBJ,EAAEK,wBAAwBJ,EAAEK,kBAAkBlB,GAAGngI,EAAQi7H,SAAS,CAACjgH,IAAIyuD,EAAE5jE,QAAQ,SAAS0R,EAAEC,EAAE5G,GAAG64D,EAAElyD,GAAE,WAAWC,EAAErM,MAAM7C,KAAK8I,aAAYR,IAAI2gC,MAAM,SAASh6B,GAAG,IAAIC,EAAE,EAAuB,OAArBiyD,EAAElyD,GAAE,WAAWC,OAAaA,GAAGnC,QAAQ,SAASkC,GAAG,OAAOkyD,EAAElyD,GAAE,SAASA,GAAG,OAAOA,MAAK,IAAI+pH,KAAK,SAAS/pH,GAAG,IAAIyyG,EAAEzyG,GAAG,MAAM7W,MAAM,yEAAyE,OAAO6W,IAAIvX,EAAQ43B,UAAU8nG,EAAE1/H,EAAQ+9H,SAAS/iG,EACneh7B,EAAQk+H,SAAS9tG,EAAEpwB,EAAQuhI,cAAc3B,EAAE5/H,EAAQm+H,WAAWV,EAAEz9H,EAAQo+H,SAASrP,EAAE/uH,EAAQwhI,mDAAmDN,EAC9IlhI,EAAQyhI,aAAa,SAASlqH,EAAEC,EAAE5G,GAAG,GAAG,MAAO2G,EAAc,MAAM7W,MAAM,iFAAiF6W,EAAE,KAAK,IAAIiwB,EAAEg4F,EAAE,GAAGjoH,EAAEM,OAAOtO,EAAEgO,EAAEzR,IAAIswD,EAAE7+C,EAAEkhH,IAAItrH,EAAEoK,EAAEipH,OAAO,GAAG,MAAMhpH,EAAE,CAAoE,QAAnE,IAASA,EAAEihH,MAAMriE,EAAE5+C,EAAEihH,IAAItrH,EAAEgzH,EAAE5nC,cAAS,IAAS/gF,EAAE1R,MAAMyD,EAAE,GAAGiO,EAAE1R,KAAQyR,EAAEhR,MAAMgR,EAAEhR,KAAK2gG,aAAa,IAAIntB,EAAExiE,EAAEhR,KAAK2gG,aAAa,IAAIloB,KAAKxnE,EAAE0oH,EAAE12H,KAAKgO,EAAEwnE,KAAKohD,EAAEvpH,eAAemoE,KAAKx3C,EAAEw3C,QAAG,IAASxnE,EAAEwnE,SAAI,IAASjF,EAAEA,EAAEiF,GAAGxnE,EAAEwnE,IAAI,IAAIA,EAAE5tE,UAAUxI,OAAO,EAAE,GAAG,IAAIo2E,EAAEx3C,EAAEtb,SAAStb,OAAO,GAAG,EAAEouE,EAAE,CAACjF,EAAE7uE,MAAM8zE,GACrf,IAAI,IAAIrR,EAAE,EAAEA,EAAEqR,EAAErR,IAAIoM,EAAEpM,GAAGv8D,UAAUu8D,EAAE,GAAGnmC,EAAEtb,SAAS6tD,EAAE,MAAM,CAACkV,SAAStmF,EAAEpC,KAAKgR,EAAEhR,KAAKT,IAAIyD,EAAEkvH,IAAIriE,EAAEv+C,MAAM2vB,EAAEg5F,OAAOrzH,IAAInN,EAAQwpB,cAAc,SAASjS,GAAqK,OAAlKA,EAAE,CAAC03E,SAAS63B,EAAE4a,cAAcnqH,EAAEoqH,eAAepqH,EAAEqqH,aAAa,EAAEv1G,SAAS,KAAKw1G,SAAS,KAAKC,cAAc,KAAKC,YAAY,OAAQ11G,SAAS,CAAC4iE,SAAS0B,EAAEqxC,SAASzqH,GAAUA,EAAEsqH,SAAStqH,GAAGvX,EAAQqT,cAAcktH,EAAEvgI,EAAQiiI,cAAc,SAAS1qH,GAAG,IAAIC,EAAE+oH,EAAEz5H,KAAK,KAAKyQ,GAAY,OAATC,EAAEjR,KAAKgR,EAASC,GAAGxX,EAAQkiI,UAAU,WAAW,MAAM,CAAC3pC,QAAQ,OACzdv4F,EAAQmiI,WAAW,SAAS5qH,GAAG,MAAM,CAAC03E,SAASx9E,EAAEolD,OAAOt/C,IAAIvX,EAAQs9H,eAAetT,EAAEhqH,EAAQoiI,KAAK,SAAS7qH,GAAG,MAAM,CAAC03E,SAASr/B,EAAEyyE,SAAS,CAACxB,SAAS,EAAEC,QAAQvpH,GAAG+qH,MAAM1B,IAAI5gI,EAAQyxC,KAAK,SAASl6B,EAAEC,GAAG,MAAM,CAACy3E,SAASt/B,EAAEppD,KAAKgR,EAAEkwD,aAAQ,IAASjwD,EAAE,KAAKA,IAAIxX,EAAQuiI,gBAAgB,SAAShrH,GAAG,IAAIC,EAAEwpH,EAAEC,WAAWD,EAAEC,WAAW,GAAG,IAAI1pH,IAAI,QAAQypH,EAAEC,WAAWzpH,IAAIxX,EAAQwiI,aAAa,WAAW,MAAM9hI,MAAM,6DAC9YV,EAAQyiI,YAAY,SAASlrH,EAAEC,GAAG,OAAOupH,EAAExoC,QAAQkqC,YAAYlrH,EAAEC,IAAIxX,EAAQgsB,WAAW,SAASzU,GAAG,OAAOwpH,EAAExoC,QAAQvsE,WAAWzU,IAAIvX,EAAQ0iI,cAAc,aAAa1iI,EAAQ2iI,iBAAiB,SAASprH,GAAG,OAAOwpH,EAAExoC,QAAQoqC,iBAAiBprH,IAAIvX,EAAQmrB,UAAU,SAAS5T,EAAEC,GAAG,OAAOupH,EAAExoC,QAAQptE,UAAU5T,EAAEC,IAAIxX,EAAQ4iI,MAAM,WAAW,OAAO7B,EAAExoC,QAAQqqC,SAAS5iI,EAAQ6iI,oBAAoB,SAAStrH,EAAEC,EAAE5G,GAAG,OAAOmwH,EAAExoC,QAAQsqC,oBAAoBtrH,EAAEC,EAAE5G,IAC3b5Q,EAAQ8iI,mBAAmB,SAASvrH,EAAEC,GAAG,OAAOupH,EAAExoC,QAAQuqC,mBAAmBvrH,EAAEC,IAAIxX,EAAQ+iI,gBAAgB,SAASxrH,EAAEC,GAAG,OAAOupH,EAAExoC,QAAQwqC,gBAAgBxrH,EAAEC,IAAIxX,EAAQ2pB,QAAQ,SAASpS,EAAEC,GAAG,OAAOupH,EAAExoC,QAAQ5uE,QAAQpS,EAAEC,IAAIxX,EAAQgjI,WAAW,SAASzrH,EAAEC,EAAE5G,GAAG,OAAOmwH,EAAExoC,QAAQyqC,WAAWzrH,EAAEC,EAAE5G,IAAI5Q,EAAQijI,OAAO,SAAS1rH,GAAG,OAAOwpH,EAAExoC,QAAQ0qC,OAAO1rH,IAAIvX,EAAQgrB,SAAS,SAASzT,GAAG,OAAOwpH,EAAExoC,QAAQvtE,SAASzT,IAAIvX,EAAQkjI,qBAAqB,SAAS3rH,EAAEC,EAAE5G,GAAG,OAAOmwH,EAAExoC,QAAQ2qC,qBAAqB3rH,EAAEC,EAAE5G,IAC7e5Q,EAAQmjI,cAAc,WAAW,OAAOpC,EAAExoC,QAAQ4qC,iBAAiBnjI,EAAQ2V,QAAQ,uCCtBjF5V,EAAOC,QAAU,EAAjB,wBCHFD,EAAOC,QAAU,EAAjB,wBCAA,IAAIojI,EAAiB,EAAQ,OAE7BpjI,EAAQiB,UAAY,SAASV,GAC3B,IAAI8iI,EAAWrjI,EAAQqjI,SAAS9iI,GAChC,OAAO,IAAI6iI,EAAeC,EAAU,CAChCC,QAAS/iI,IAAYA,EAAQ+iI,SAAW/iI,EAAQu1D,UAAY56C,KAC5DqoH,MAAOhjI,GAAWA,EAAQgjI,MAC1BC,aAAcjjI,GAAWA,EAAQijI,gBAIvCxjI,EAAQqjI,SAAW,SAAS9iI,GAC1B,GAAIA,aAAmB2K,MACrB,MAAO,GAAGE,OAAO7K,GAGnB,IAAIL,EAAO,CACT41D,QAAS,GACT2tE,OAAQ,EACR1tE,WAAY,IACZC,WAAY96C,IACZla,WAAW,GAEb,IAAK,IAAI8E,KAAOvF,EACdL,EAAK4F,GAAOvF,EAAQuF,GAGtB,GAAI5F,EAAK61D,WAAa71D,EAAK81D,WACzB,MAAM,IAAIt1D,MAAM,yCAIlB,IADA,IAAI2iI,EAAW,GACN36H,EAAI,EAAGA,EAAIxI,EAAK41D,QAASptD,IAChC26H,EAASl6H,KAAKb,KAAKo7H,cAAch7H,EAAGxI,IAYtC,OATIK,GAAWA,EAAQ+iI,UAAYD,EAASz6H,QAC1Cy6H,EAASl6H,KAAKb,KAAKo7H,cAAch7H,EAAGxI,IAItCmjI,EAAStoH,MAAK,SAASxD,EAAEC,GACvB,OAAOD,EAAIC,KAGN6rH,GAGTrjI,EAAQ0jI,cAAgB,SAASxiI,EAAShB,GACxC,IAAIi5C,EAAUj5C,EAAc,UACvB6O,KAAKoqC,SAAW,EACjB,EAEA30C,EAAUuK,KAAK+rE,MAAM3hC,EAASpqC,KAAKgiE,IAAI7wE,EAAK61D,WAAY,GAAKhnD,KAAKikE,IAAI9yE,EAAKujI,OAAQviI,IAGvF,OAFU6N,KAAKkM,IAAIzW,EAAStE,EAAK81D,aAKnCh2D,EAAQ2jI,KAAO,SAAS92H,EAAKtM,EAASytF,GAMpC,GALIztF,aAAmB2K,QACrB8iF,EAAUztF,EACVA,EAAU,OAGPytF,EAEH,IAAK,IAAIloF,KADTkoF,EAAU,GACMnhF,EACU,mBAAbA,EAAI/G,IACbkoF,EAAQ7kF,KAAKrD,GAKnB,IAAK,IAAI4C,EAAI,EAAGA,EAAIslF,EAAQplF,OAAQF,IAAK,CACvC,IAAItE,EAAW4pF,EAAQtlF,GACnBkjC,EAAW/+B,EAAIzI,GAEnByI,EAAIzI,GAAU,SAAsBwnC,GAClC,IAAItrC,EAAWN,EAAQiB,UAAUV,GAC7B4Q,EAAWjG,MAAM5D,UAAU8G,MAAM5E,KAAK4H,UAAW,GACjDsD,EAAWvD,EAAKqE,MAEpBrE,EAAKhI,MAAK,SAAS1I,GACbH,EAAGO,MAAMJ,KAGTA,IACF2Q,UAAU,GAAK9Q,EAAGS,aAEpB2T,EAASvJ,MAAM7C,KAAM8I,eAGvB9Q,EAAGY,SAAQ,WACT0qC,EAASzgC,MAAM0B,EAAKsE,OAEtBrK,KAAK+F,EAAK++B,GACZ/+B,EAAIzI,GAAQ7D,QAAUA,eCjG1B,SAAS6iI,EAAeC,EAAU9iI,GAET,kBAAZA,IACTA,EAAU,CAAE+iI,QAAS/iI,IAGvB+H,KAAKs7H,kBAAoBnzH,KAAKC,MAAMD,KAAKI,UAAUwyH,IACnD/6H,KAAKu7H,UAAYR,EACjB/6H,KAAKq3G,SAAWp/G,GAAW,GAC3B+H,KAAKw7H,cAAgBvjI,GAAWA,EAAQijI,cAAgBtoH,IACxD5S,KAAKy7H,IAAM,KACXz7H,KAAK07H,QAAU,GACf17H,KAAK27H,UAAY,EACjB37H,KAAK47H,kBAAoB,KACzB57H,KAAK67H,oBAAsB,KAC3B77H,KAAK87H,SAAW,KAChB97H,KAAK+7H,gBAAkB,KACvB/7H,KAAKkzH,OAAS,KAEVlzH,KAAKq3G,SAAS2jB,UAChBh7H,KAAKg8H,gBAAkBh8H,KAAKu7H,UAAUz1H,MAAM,IAGhDrO,EAAOC,QAAUojI,EAEjBA,EAAe97H,UAAUwvD,MAAQ,WAC/BxuD,KAAK27H,UAAY,EACjB37H,KAAKu7H,UAAYv7H,KAAKs7H,kBAAkBx1H,MAAM,IAGhDg1H,EAAe97H,UAAUi9H,KAAO,WAC1Bj8H,KAAK87H,UACPzvE,aAAarsD,KAAK87H,UAEhB97H,KAAKkzH,QACP7mE,aAAarsD,KAAKkzH,QAGpBlzH,KAAKu7H,UAAkB,GACvBv7H,KAAKg8H,gBAAkB,MAGzBlB,EAAe97H,UAAUzG,MAAQ,SAASJ,GAKxC,GAJI6H,KAAK87H,UACPzvE,aAAarsD,KAAK87H,WAGf3jI,EACH,OAAO,EAET,IAAI+jI,GAAc,IAAIlyH,MAAOgjB,UAC7B,GAAI70B,GAAO+jI,EAAcl8H,KAAK+7H,iBAAmB/7H,KAAKw7H,cAGpD,OAFAx7H,KAAK07H,QAAQ76H,KAAK1I,GAClB6H,KAAK07H,QAAQn5H,QAAQ,IAAInK,MAAM,qCACxB,EAGT4H,KAAK07H,QAAQ76H,KAAK1I,GAElB,IAAI+D,EAAU8D,KAAKu7H,UAAUx4H,QAC7B,QAAgB1F,IAAZnB,EAAuB,CACzB,IAAI8D,KAAKg8H,gBAKP,OAAO,EAHPh8H,KAAK07H,QAAQ36H,OAAO,EAAGf,KAAK07H,QAAQp7H,OAAS,GAC7CpE,EAAU8D,KAAKg8H,gBAAgBl2H,OAAO,GAM1C,IAAIg9B,EAAO9iC,KAqBX,OApBAA,KAAKkzH,OAAS32H,YAAW,WACvBumC,EAAK64F,YAED74F,EAAK+4F,sBACP/4F,EAAKg5F,SAAWv/H,YAAW,WACzBumC,EAAK+4F,oBAAoB/4F,EAAK64F,aAC7B74F,EAAK84F,mBAEJ94F,EAAKu0E,SAAS4jB,OACdn4F,EAAKg5F,SAASb,SAIpBn4F,EAAK24F,IAAI34F,EAAK64F,aACbz/H,GAEC8D,KAAKq3G,SAAS4jB,OACdj7H,KAAKkzH,OAAO+H,SAGT,GAGTH,EAAe97H,UAAUpG,QAAU,SAASjB,EAAIwkI,GAC9Cn8H,KAAKy7H,IAAM9jI,EAEPwkI,IACEA,EAAWjgI,UACb8D,KAAK47H,kBAAoBO,EAAWjgI,SAElCigI,EAAWxyF,KACb3pC,KAAK67H,oBAAsBM,EAAWxyF,KAI1C,IAAI7G,EAAO9iC,KACPA,KAAK67H,sBACP77H,KAAK87H,SAAWv/H,YAAW,WACzBumC,EAAK+4F,wBACJ/4F,EAAK84F,oBAGV57H,KAAK+7H,iBAAkB,IAAI/xH,MAAOgjB,UAElChtB,KAAKy7H,IAAIz7H,KAAK27H,YAGhBb,EAAe97H,UAAUo9H,IAAM,SAASzkI,GACtC+V,QAAQ0f,IAAI,4CACZptB,KAAKpH,QAAQjB,IAGfmjI,EAAe97H,UAAUu8D,MAAQ,SAAS5jE,GACxC+V,QAAQ0f,IAAI,8CACZptB,KAAKpH,QAAQjB,IAGfmjI,EAAe97H,UAAUu8D,MAAQu/D,EAAe97H,UAAUo9H,IAE1DtB,EAAe97H,UAAUyrD,OAAS,WAChC,OAAOzqD,KAAK07H,SAGdZ,EAAe97H,UAAUg0E,SAAW,WAClC,OAAOhzE,KAAK27H,WAGdb,EAAe97H,UAAUvG,UAAY,WACnC,GAA4B,IAAxBuH,KAAK07H,QAAQp7H,OACf,OAAO,KAOT,IAJA,IAAI+7H,EAAS,GACT5jI,EAAY,KACZ6jI,EAAiB,EAEZl8H,EAAI,EAAGA,EAAIJ,KAAK07H,QAAQp7H,OAAQF,IAAK,CAC5C,IAAI+C,EAAQnD,KAAK07H,QAAQt7H,GACrBK,EAAU0C,EAAM1C,QAChBwoC,GAASozF,EAAO57H,IAAY,GAAK,EAErC47H,EAAO57H,GAAWwoC,EAEdA,GAASqzF,IACX7jI,EAAY0K,EACZm5H,EAAiBrzF,GAIrB,OAAOxwC,oBChKT,MAAM8jI,EAAa,EAAQ,OACrBC,EAAqB,EAAQ,QAC7B,cAAE52H,GAAkB,EAAQ,OAC5BqhF,EAAY,EAAQ,MACpBw1C,EAAc,EAAQ,QACpBr0H,MAAOs0H,GAAiB,EAAQ,OAElCC,EAAY,CAChB,MAAO,QAAS,QAAS,UAAW,MACpC,SAAU,MAAO,SAAU,SAGvBC,EAAiB,CAAE,SAAU,SAEnC,SAASz6E,EAAK59C,EAAKolC,GACbplC,GACFP,OAAOqC,KAAK9B,GAAKhH,SAAQ,SAAUC,GACjCmsC,EAAGplC,EAAI/G,GAAMA,MAMnB,SAASklC,EAAIn+B,EAAK/G,GAChB,MAAO,GAAK+Q,eAAerN,KAAKqD,EAAK/G,GAIvC,SAASkS,EAAOT,EAAG06B,GACjB,MAAM+tB,EAAI,GAMV,OALAvV,EAAKlzC,GAAG,SAAS9F,GACXwgC,EAAGxgC,IACLuuD,EAAE72D,KAAKsI,MAGJuuD,EA2BTjgE,EAAOC,QAAU+3B,EAajB,MAAMotG,EAA4B,wBAMlC,SAASptG,EAAaK,EAAM73B,EAAS6kI,GACnC,GAAY,MAARhtG,EACF,MAAO,GAGT,IAAI/hB,EAAS,GAETgvH,EAAa,GAEjB,SAASC,EAAM39C,EAAK0K,GAClB,MAAM6N,EAAO53F,KACbA,KAAKq/E,IAAMA,EACXr/E,KAAK+pF,QAAUA,GAAW,GAC1B/pF,KAAKi9H,YAAclvH,EAAOzN,OAC1BN,KAAKsU,KAAO,GACZtU,KAAKk9H,cAAgB,GAErBl9H,KAAKm9H,qBAAuB,WACtBr5H,EAAMxD,SACYwD,EAAMA,EAAMxD,OAAS,GAC7BgU,MAAQsjF,EAAKtjF,OAI7BtU,KAAKo9H,8BAAgC,WAC/Bt5H,EAAMxD,QAAUq8H,EAAU5gH,SAAS/b,KAAKq/E,MACtBv7E,EAAMA,EAAMxD,OAAS,GAC7B48H,cAAcr8H,KAAKb,KAAKq/E,OAK1CpnF,EAAU+L,OAAOQ,OAAO,GAAIirB,EAAa9tB,SAAU1J,IAC3C+P,OAAShE,OAAOQ,OAAO,GAAI64H,EAAoBplI,EAAQ+P,QAG/D40H,EAAer/H,SAAQ,SAAU8hF,GAE7BpnF,EAAQqlI,aAAerlI,EAAQqlI,YAAYhhI,QAAQ+iF,IAAQ,IAC1DpnF,EAAQslI,qBAET7vH,QAAQC,KAAK,kDAAkD0xE,yNAQnE,MAAMm+C,EAAmBvlI,EAAQwlI,aAAe,CAC9C,SACA,QACA,WACA,UAEF,IAAIC,EACAC,EACA1lI,EAAQ2lI,oBACVF,EAAuB,GACvBC,EAA2B,GAC3Bx7E,EAAKlqD,EAAQ2lI,mBAAmB,SAASz/F,EAAYkhD,GACnDq+C,EAAqBr+C,GAAO,GAC5B,MAAMw+C,EAAY,GAClB1/F,EAAW5gC,SAAQ,SAASgH,GACP,iBAARA,GAAoBA,EAAIjI,QAAQ,MAAQ,EACjDuhI,EAAUh9H,KAAK27H,EAAmBj4H,GAAKyE,QAAQ,QAAS,OAExD00H,EAAqBr+C,GAAKx+E,KAAK0D,MAG/Bs5H,EAAUv9H,SACZq9H,EAAyBt+C,GAAO,IAAIj1E,OAAO,KAAOyzH,EAAUv0H,KAAK,KAAO,WAI9E,MAAMw0H,EAAoB,GACpBC,EAAwB,GACxBC,EAAyB,GAC/B77E,EAAKlqD,EAAQgmI,gBAAgB,SAASC,EAAS7+C,GAEzCq+C,IACGh7F,EAAIg7F,EAAsBr+C,KAC7Bq+C,EAAqBr+C,GAAO,IAE9Bq+C,EAAqBr+C,GAAKx+E,KAAK,UAGjCi9H,EAAkBz+C,GAAO,GACzB2+C,EAAuB3+C,GAAO,GAC9B,MAAMw+C,EAAY,GAClBK,EAAQ3gI,SAAQ,SAASgH,GACJ,iBAARA,GAAoBA,EAAIjI,QAAQ,MAAQ,EACjDuhI,EAAUh9H,KAAK27H,EAAmBj4H,GAAKyE,QAAQ,QAAS,OAC/CzE,aAAe6F,OACxB4zH,EAAuB3+C,GAAKx+E,KAAK0D,GAEjCu5H,EAAkBz+C,GAAKx+E,KAAK0D,MAG5Bs5H,EAAUv9H,SACZy9H,EAAsB1+C,GAAO,IAAIj1E,OAAO,KAAOyzH,EAAUv0H,KAAK,KAAO,UAIzE,MAAM60H,EAAmB,GACzB,IAAIC,EAeArlD,EACAj1E,EACAu6H,EACAC,EACAC,EACAC,EAnBJr8E,EAAKlqD,EAAQwmI,eAAe,SAAStf,EAAW9/B,GAC9C,IAAIq/C,EACqB,mBAAdvf,EACTuf,EAAWvf,EACmB,iBAAdA,IAChBuf,EAAWjvG,EAAakvG,gBAAgBxf,IAE9B,MAAR9/B,EACF++C,EAAmBM,EAEnBP,EAAiB9+C,GAAOq/C,KAU5B,IAAIE,GAAY,EAEhBC,IAEA,MAAM72H,EAAS,IAAIu0H,EAAWl7B,OAAO,CACnCxV,UAAW,SAASzqF,EAAM2oF,GAOxB,GAJI9xF,EAAQ6mI,qBAAgC,SAAT19H,GACjCy9H,IAGEN,EAEF,YADAC,IAGF,MAAMO,EAAQ,IAAI/B,EAAM57H,EAAM2oF,GAC9BjmF,EAAMjD,KAAKk+H,GAEX,IAAIC,GAAO,EACX,MAAMC,IAAYF,EAAMzqH,KACxB,IAAI4qH,EAqCJ,GApCIx8F,EAAIy7F,EAAkB/8H,KACxB89H,EAAiBf,EAAiB/8H,GAAMA,EAAM2oF,GAE9Cg1C,EAAMh1C,QAAUA,EAAUm1C,EAAen1C,aAEb1sF,IAAxB6hI,EAAe5qH,OACjByqH,EAAMjnG,UAAYonG,EAAe5qH,MAG/BlT,IAAS89H,EAAe7vG,UAC1B0vG,EAAM39H,KAAOA,EAAO89H,EAAe7vG,QACnCivG,EAAavlD,GAASmmD,EAAe7vG,UAGrC+uG,IACFc,EAAiBd,EAAiBh9H,EAAM2oF,GAExCg1C,EAAMh1C,QAAUA,EAAUm1C,EAAen1C,QACrC3oF,IAAS89H,EAAe7vG,UAC1B0vG,EAAM39H,KAAOA,EAAO89H,EAAe7vG,QACnCivG,EAAavlD,GAASmmD,EAAe7vG,WAIpCp3B,EAAQqlI,cAAsD,IAAvCrlI,EAAQqlI,YAAYhhI,QAAQ8E,IAAiD,oBAA/BnJ,EAAQknI,qBAvNxF,SAAuB56H,GACrB,IAAK,MAAM/G,KAAO+G,EAChB,GAAIm+B,EAAIn+B,EAAK/G,GACX,OAAO,EAGX,OAAO,EAiN4H4hI,CAAcf,IAAsC,MAAxBpmI,EAAQonI,cAAwBtmD,GAAS9gF,EAAQonI,gBAC1ML,GAAO,EACPX,EAAQtlD,IAAS,EACkB,YAA/B9gF,EAAQknI,qBAC8B,IAApC3B,EAAiBlhI,QAAQ8E,KAC3Bm9H,GAAW,EACXC,EAAgB,GAGpBH,EAAQtlD,IAAS,GAEnBA,IACIimD,EAAM,CACR,GAAmC,YAA/B/mI,EAAQknI,mBAEV,OAEFpC,EAAahvH,EACbA,EAAS,GAEXA,GAAU,IAAM3M,EAEH,WAATA,IACEnJ,EAAQqnI,wBAA0BrnI,EAAQsnI,wBAC5CR,EAAMjnG,UAAY,MAIjB4lG,GAAwBh7F,EAAIg7F,EAAsBt8H,IAASs8H,EAAqB,OACnFv7E,EAAK4nC,GAAS,SAASnuF,EAAOqT,GAC5B,IAAK4tH,EAA0BryH,KAAKyE,GAIlC,mBADO8vH,EAAMh1C,QAAQ96E,GAGvB,IAAIpD,EAGA2zH,GAAkC,EACtC,IAAK9B,GACFh7F,EAAIg7F,EAAsBt8H,KAAoD,IAA3Cs8H,EAAqBt8H,GAAM9E,QAAQ2S,IACtEyuH,EAAqB,OAAkD,IAA1CA,EAAqB,KAAKphI,QAAQ2S,IAC/DyzB,EAAIi7F,EAA0Bv8H,IAASu8H,EAAyBv8H,GAAMoJ,KAAKyE,IAC3E0uH,EAAyB,MAAQA,EAAyB,KAAKnzH,KAAKyE,GACrEuwH,GAAkC,OAC7B,GAAI9B,GAAwBA,EAAqBt8H,GACtD,IAAK,MAAM6+D,KAAKy9D,EAAqBt8H,GACnC,GAAIwE,EAAcq6D,IAAMA,EAAE7+D,MAAS6+D,EAAE7+D,OAAS6N,EAAI,CAChDuwH,GAAkC,EAClC,IAAIC,EAAW,GACf,IAAmB,IAAfx/D,EAAEy0B,SAAmB,CAEvB,MAAMgrC,EAAgB9jI,EAAMoQ,MAAM,KAClC,IAAK,MAAMqpD,KAAKqqE,GACe,IAAzBz/D,EAAE/lD,OAAO5d,QAAQ+4D,KACF,KAAboqE,EACFA,EAAWpqE,EAEXoqE,GAAY,IAAMpqE,QAIf4K,EAAE/lD,OAAO5d,QAAQV,IAAU,IAEpC6jI,EAAW7jI,GAEbA,EAAQ6jI,EAId,GAAID,EAAiC,CACnC,IAA8D,IAA1DvnI,EAAQ0nI,kCAAkCrjI,QAAQ2S,IAChD2wH,EAAYx+H,EAAMxF,GAEpB,mBADOmjI,EAAMh1C,QAAQ96E,GAKzB,GAAa,WAAT7N,GAA2B,QAAN6N,EAAa,CAEpC,IAAI4wH,GAAU,EAEd,IACE,MAAMh0H,EAAS,IAAI8J,IAAI/Z,GAEvB,GAAI3D,EAAQqnI,wBAA0BrnI,EAAQsnI,qBAAsB,CAClE,MAAMO,GAAmB7nI,EAAQqnI,wBAA0B,IAAIruH,MAAK,SAAU3F,GAC5E,OAAOA,IAAaO,EAAOP,YAEvBy0H,GAAiB9nI,EAAQsnI,sBAAwB,IAAItuH,MAAK,SAASrH,GACvE,OAAOiC,EAAOP,WAAa1B,GAAUiC,EAAOP,SAASwB,SAAS,IAAIlD,QAEpEi2H,EAAUC,GAAmBC,GAE/B,MAAOz3H,GACPu3H,GAAU,EAGZ,IAAKA,EAEH,mBADOd,EAAMh1C,QAAQ96E,GAKzB,GAAa,WAAT7N,GAA2B,QAAN6N,EAAa,CACpC,IAAI4wH,GAAU,EACd,IAKE,IADAjkI,EAAQA,EAAMoN,QAAQ,2BAA4B,SACxCiT,WAAW,aAInB,MAAM,IAAI7jB,MAAM,6BAQlB,IAAIwzG,EAAO,2BACX,IAAK,IAAIxrG,EAAI,EAAIA,EAAI,IAAMA,IACzBwrG,GAAQ,IAAIxrG,IAEd,MAAMyL,EAAS,IAAI8J,IAAI/Z,EAAOgwG,GAE9B,GADsB//F,GAA8B,kBAApBA,EAAOP,UAAoD,cAApBO,EAAOxN,SAI5EwhI,EAAUn9F,EAAIzqC,EAAS,2BACnBA,EAAQ+nI,yBACN/nI,EAAQgoI,yBAA2BhoI,EAAQioI,0BAC5C,GAAIjoI,EAAQgoI,wBAA0BhoI,EAAQioI,qBAAsB,CACzE,MAAMJ,GAAmB7nI,EAAQgoI,wBAA0B,IAAIhvH,MAAK,SAAU3F,GAC5E,OAAOA,IAAaO,EAAOP,YAEvBy0H,GAAiB9nI,EAAQioI,sBAAwB,IAAIjvH,MAAK,SAASrH,GACvE,OAAOiC,EAAOP,WAAa1B,GAAUiC,EAAOP,SAASwB,SAAS,IAAIlD,QAEpEi2H,EAAUC,GAAmBC,GAE/B,MAAOz3H,GAEPu3H,GAAU,EAEZ,IAAKA,EAEH,mBADOd,EAAMh1C,QAAQ96E,GAIzB,GAAU,WAANA,EACF,IAUE,GATApD,EAAS4wH,EAAY7gI,GACrBiQ,EAAOtO,SAAQ,SAAS3B,GAClBgkI,EAAY,SAAUhkI,EAAMR,OAC9BQ,EAAMukI,MAAO,MAGjBt0H,EAAS6D,EAAO7D,GAAQ,SAAS1C,GAC/B,OAAQA,EAAEg3H,SAEPt0H,EAAOvL,OAEV,mBADOy+H,EAAMh1C,QAAQ96E,GAGrBrT,EAAwB8T,EAAO7D,GAAQ,SAAS1C,GAC9C,OAAQA,EAAEg3H,QAvXRztH,KAAI,SAAS8nE,GAC/B,IAAKA,EAAKp/E,IACR,MAAM,IAAIhD,MAAM,eAGlB,OACEoiF,EAAKp/E,KACJo/E,EAAKisC,EAAI,IAAIjsC,EAAKisC,KAAO,KACzBjsC,EAAK31E,EAAI,IAAI21E,EAAK31E,KAAO,KACzB21E,EAAKt7C,EAAI,IAAIs7C,EAAKt7C,KAAO,OAE3B51B,KAAK,MA8WQy1H,EAAMh1C,QAAQ96E,GAAKrT,EAErB,MAAO0M,GAGP,mBADOy2H,EAAMh1C,QAAQ96E,GAIzB,GAAU,UAANA,EAAe,CACjB,MAAMmxH,EAAyBtC,EAAkB18H,GAC3Ci/H,EAAyBvC,EAAkB,KAC3CwC,EAA6BvC,EAAsB38H,GACnDm/H,EAA8BvC,EAAuB58H,GAErDo/H,EAAsB,CAC1BF,EAFiCvC,EAAsB,MAKtDj7H,OAAOy9H,GACP7wH,QAAO,SAAU24E,GAChB,OAAOA,KAOX,KA8RW61C,EAlSatiI,EAkSJikI,EAnShBO,GAA0BC,EACCp5C,EAAUm5C,EAAwBC,GAElCD,GAA0BC,EAgS5BI,EAlS6DD,EAAxF5kI,EAmSPikI,GAIL3B,EAAUA,EAAQlyH,MAAM,QACT0D,QAAO,SAASgxH,GAC7B,OAAkC,IAA3Bb,EAAQvjI,QAAQokI,IAAgBD,EAAa3uH,MAAK,SAAS6uH,GAChE,OAAOA,EAAKn2H,KAAKk2H,SAElBp3H,KAAK,KAPC40H,GAjSY59H,OAET,mBADOy+H,EAAMh1C,QAAQ96E,GAIzB,GAAU,UAANA,EACF,IAME,GAAqB,KAFrBrT,EA6Od,SAAkCglI,GAChC,OAAOA,EAAY33C,MAAM,GAAGA,MACzBh3E,QAAO,SAAS4uH,EAAqBC,GAIpC,OAHAD,EAAoBhgI,KAClB,GAAGigI,EAAW96H,QAAQ86H,EAAWllI,QAAQklI,EAAWC,UAAY,cAAgB,MAE3EF,IACN,IACFv3H,KAAK,KArPY03H,CA6MtB,SAAmBC,EAAoBC,GACrC,IAAKA,EACH,OAAOD,EAGT,MAAME,EAAWF,EAAmBh4C,MAAM,GAC1C,IAAIm4C,EAgBJ,OAZEA,EADEF,EAAcC,EAASlxB,WAAaixB,EAAc,KACrCj6C,EACbi6C,EAAcC,EAASlxB,UACvBixB,EAAc,MAGDA,EAAcC,EAASlxB,WAAaixB,EAAc,KAG/DE,IACFH,EAAmBh4C,MAAM,GAAGA,MAAQk4C,EAASl4C,MAAMh3E,OAoCvD,SAA4BmvH,GAC1B,OAAO,SAAUC,EAAyBC,GAWxC,OATI5+F,EAAI0+F,EAAcE,EAAgBt7H,OACfo7H,EAAaE,EAAgBt7H,MAAM8L,MAAK,SAASyvH,GACpE,OAAOA,EAAkB/2H,KAAK82H,EAAgB1lI,WAI9CylI,EAAwBxgI,KAAKygI,GAG1BD,GAhDmDG,CAAmBJ,GAAe,KAGvFH,EArOyBQ,CADO/E,EAAat7H,EAAO,KAAOxF,EAAQ,KACZ3D,EAAQipI,iBAIhD5gI,OAER,mBADOy+H,EAAMh1C,QAAQ96E,GAGvB,MAAO3G,GAEP,mBADOy2H,EAAMh1C,QAAQ96E,GAIzBlB,GAAU,IAAMkB,EACZrT,GAASA,EAAM0E,SACjByN,GAAU,KAAO2zH,EAAW9lI,GAAO,GAAQ,iBAGtCmjI,EAAMh1C,QAAQ96E,GAoQ/B,IAAuBivH,EAAS2B,EAASY,MAhQM,IAAvCxoI,EAAQ0pI,YAAYrlI,QAAQ8E,GAC9B2M,GAAU,OAEVA,GAAU,KACNgxH,EAAMjnG,WAAcmnG,GAAYhnI,EAAQ2pI,aAC1C7zH,GAAU2zH,EAAW3C,EAAMjnG,WAC3B8mG,GAAY,IAGZI,IACFjxH,EAASgvH,EAAa2E,EAAW3zH,GACjCgvH,EAAa,KAGjB/wC,OAAQ,SAAS13E,GACf,GAAIiqH,EACF,OAEF,MAAMsD,EAAY/9H,EAAMA,EAAMxD,OAAS,GACvC,IAAI++E,EAQJ,GANIwiD,IACFxiD,EAAMwiD,EAAUxiD,IAEhB/qE,OAA+BjX,IAAxBwkI,EAAU/pG,UAA0B+pG,EAAU/pG,UAAYxjB,GAGhC,YAA/Brc,EAAQknI,oBAA8C,WAAR9/C,GAA8B,UAARA,EAMjE,CACL,MAAMuyC,EAAU8P,EAAWptH,GAAM,GAC7Brc,EAAQ2pI,aAAehD,EACzB7wH,GAAU9V,EAAQ2pI,WAAWhQ,EAASvyC,GAC5Bu/C,IACV7wH,GAAU6jH,QANZ7jH,GAAUuG,EASRxQ,EAAMxD,SACMwD,EAAMA,EAAMxD,OAAS,GAC7BgU,MAAQA,IAGlBq3E,WAAY,SAASvqF,GAEnB,GAAIm9H,EAAU,CAEZ,GADAC,IACKA,EAGH,OAFAD,GAAW,EAMf,MAAMQ,EAAQj7H,EAAMoJ,MACpB,IAAK6xH,EAEH,OAEFR,IAAWtmI,EAAQ6mI,qBAA+B,SAAT19H,EACzC23E,IACA,MAAMimD,EAAOX,EAAQtlD,GACrB,GAAIimD,EAAM,CAER,UADOX,EAAQtlD,GACoB,YAA/B9gF,EAAQknI,mBAEV,YADAJ,EAAM5B,uBAGRJ,EAAahvH,EACbA,EAAS,GAGPuwH,EAAavlD,KACf33E,EAAOk9H,EAAavlD,UACbulD,EAAavlD,IAGlB9gF,EAAQ6pI,iBAAmB7pI,EAAQ6pI,gBAAgB/C,GACrDhxH,EAASA,EAAO7B,OAAO,EAAG6yH,EAAM9B,cAIlC8B,EAAM3B,gCACN2B,EAAM5B,wBAEqC,IAAvCllI,EAAQ0pI,YAAYrlI,QAAQ8E,IAShC2M,GAAU,KAAO3M,EAAO,IACpB49H,IACFjxH,EAASgvH,EAAa2E,EAAW3zH,GACjCgvH,EAAa,IAEf6B,GAAY,GAZNI,IACFjxH,EAASgvH,EACTA,EAAa,OAYlB9kI,EAAQ+P,QAIX,OAHAA,EAAOyB,MAAMqmB,GACb9nB,EAAO01D,MAEA3vD,EAEP,SAAS8wH,IACP9wH,EAAS,GACTgrE,EAAQ,EACRj1E,EAAQ,GACRu6H,EAAU,GACVC,EAAe,GACfC,GAAW,EACXC,EAAgB,EAGlB,SAASkD,EAAWrsE,EAAG0lC,GAqBrB,MApBmB,iBAAR,IACT1lC,GAAQ,IAENp9D,EAAQ+P,OAAOiiF,iBACjB50B,EAAIA,EAAErsD,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAC7D+xF,IACF1lC,EAAIA,EAAErsD,QAAQ,KAAM,YAQxBqsD,EAAIA,EAAErsD,QAAQ,4BAA6B,SACxCA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACb+xF,IACF1lC,EAAIA,EAAErsD,QAAQ,KAAM,WAEfqsD,EAGT,SAASuqE,EAAYx+H,EAAM6J,GAazB,MAAMw4B,GAJNx4B,GAJAA,EAAOA,EAAKjC,QAAQ,gBAAiB,KAIzBA,QAAQ,cAAe,KAIdmB,MAAM,gCAC3B,IAAKs5B,EAEH,QAAIx4B,EAAKd,MAAM,eACLlS,EAAQ8pI,sBAMpB,MAAMC,EAASv+F,EAAQ,GAAGhmC,cAE1B,OAAIilC,EAAIzqC,EAAQgqI,oBAAqB7gI,IAC2B,IAAvDnJ,EAAQgqI,oBAAoB7gI,GAAM9E,QAAQ0lI,IAG3C/pI,EAAQiqI,iBAA8D,IAA5CjqI,EAAQiqI,eAAe5lI,QAAQ0lI,IAoGrE,MAAM3E,EAAqB,CACzBpzC,gBAAgB,GAElBx6D,EAAa9tB,SAAW,CACtB27H,YAAa,CAKX,UAAW,UAAW,QAAS,SAAU,SACzC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,SACpC,OAAQ,MAAO,UAEf,aAAc,KAAM,MAAO,KAAM,KAAM,aAAc,SACrD,KAAM,KAAM,OAAQ,KAAM,IAAK,MAAO,KAEtC,IAAK,OAAQ,IAAK,MAAO,MAAO,KAAM,OAAQ,OAAQ,OAAQ,MAC9D,KAAM,IAAK,MAAO,OAAQ,IAC1B,KAAM,KAAM,KAAM,MAAO,OACzB,IAAK,OAAQ,QAAS,OAAQ,SAAU,MAAO,MAAO,OAAQ,IAAK,MAAO,MAE1E,UAAW,MAAO,WAAY,QAAS,QAAS,KAAM,QAAS,KAC/D,QAAS,MAEX6B,mBAAoB,UACpBvB,kBAAmB,CACjB3uH,EAAG,CAAE,OAAQ,OAAQ,UAGrBkzH,IAAK,CAAE,MAAO,SAAU,MAAO,QAAS,QAAS,SAAU,YAG7DR,YAAa,CAAE,MAAO,KAAM,KAAM,OAAQ,OAAQ,WAAY,QAAS,OAAQ,QAE/EO,eAAgB,CAAE,OAAQ,QAAS,MAAO,SAAU,OACpDD,oBAAqB,GACrBtC,kCAAmC,CAAE,OAAQ,MAAO,QACpDoC,uBAAuB,EACvBjD,qBAAqB,GAGvBrvG,EAAakvG,gBAAkB,SAASyD,EAAYC,EAAYj9H,GAI9D,OAHAA,OAAmB/H,IAAV+H,GAA8BA,EACvCi9H,EAAaA,GAAc,GAEpB,SAAShzG,EAAS06D,GACvB,IAAIqF,EACJ,GAAIhqF,EACF,IAAKgqF,KAAUizC,EACbt4C,EAAQqF,GAAUizC,EAAWjzC,QAG/BrF,EAAUs4C,EAGZ,MAAO,CACLhzG,QAAS+yG,EACTr4C,QAASA,6BC1yBftyF,EAAOC,QAAUm+D,IAChB,GAAsB,iBAAXA,EACV,MAAM,IAAI/1D,UAAU,qBAKrB,OAAO+1D,EACL7sD,QAAQ,sBAAuB,QAC/BA,QAAQ,KAAM,sCCAjB,SAAStB,EAASu4D,GAChB,MAA6C,oBAAtCj8D,OAAOhF,UAAU+H,SAAS7F,KAAK++D,GAVxCj8D,OAAOE,eAAexM,EAAS,aAA/B,CAA+CkE,OAAO,IAmCtDlE,EAAQkO,cAtBR,SAAuBq6D,GACrB,IAAIzL,EAAK8tE,EAET,OAAoB,IAAhB56H,EAASu4D,UAIA5iE,KADbm3D,EAAOyL,EAAEvxD,eAKc,IAAnBhH,EADJ46H,EAAO9tE,EAAKx1D,aAIiC,IAAzCsjI,EAAK/zH,eAAe,iDC3B1B,IAAIg0H,EAAY,EAAQ,OAExB,MAAMC,UAAeD,EACnB7zH,YAAY/M,GACVmS,MAAMnS,GACN3B,KAAK/B,KAAO,SAGdgP,UAAU2W,GAER,OADK5jB,KAAKyiI,QAAQx5C,QAAOjpF,KAAKipF,MAAQ,IAC/Bn1E,MAAM7G,UAAU2W,GAGzBy9B,WAAWz9B,GAET,OADK5jB,KAAKyiI,QAAQx5C,QAAOjpF,KAAKipF,MAAQ,IAC/Bn1E,MAAMutC,WAAWz9B,IAI5BnsB,EAAOC,QAAU8qI,EACjBA,EAAOxkD,QAAUwkD,EAEjBD,EAAUG,eAAeF,iCCtBzB,IAAIn1C,EAAO,EAAQ,OAEnB,MAAM/D,UAAgB+D,EACpB3+E,YAAY/M,GACVmS,MAAMnS,GACN3B,KAAK/B,KAAO,WAIhBxG,EAAOC,QAAU4xF,EACjBA,EAAQtL,QAAUsL,gCCVlB,IAKIlhF,EAAOu6H,EAAMH,GALb,QAAEI,EAAO,GAAEC,GAAO,EAAQ,OAC1BC,EAAc,EAAQ,OACtBx5C,EAAU,EAAQ,OAClB+D,EAAO,EAAQ,OAInB,SAAS01C,EAAY95C,GACnB,OAAOA,EAAMv2E,KAAItS,IACXA,EAAE6oF,QAAO7oF,EAAE6oF,MAAQ85C,EAAY3iI,EAAE6oF,eAC9B7oF,EAAEY,OACFZ,KAIX,SAAS4iI,EAAYh6C,GAEnB,GADAA,EAAK45C,IAAW,EACZ55C,EAAKy5C,QAAQx5C,MACf,IAAK,IAAI7oF,KAAK4oF,EAAKy5C,QAAQx5C,MACzB+5C,EAAY5iI,GAKlB,MAAMmiI,UAAkBl1C,EACtBxsF,KAAK+4E,GAGH,OAFAA,EAAM91C,OAAS9jC,KACfA,KAAKyiI,QAAQx5C,MAAMpoF,KAAK+4E,GACjB55E,KAGTmiD,KAAK/1C,GACH,IAAKpM,KAAKyiI,QAAQx5C,MAAO,OACzB,IAEInoF,EAAOiN,EAFPwgE,EAAWvuE,KAAKijI,cAGpB,KAAOjjI,KAAKkjI,QAAQ30D,GAAYvuE,KAAKyiI,QAAQx5C,MAAM3oF,SACjDQ,EAAQd,KAAKkjI,QAAQ30D,GACrBxgE,EAAS3B,EAASpM,KAAKyiI,QAAQx5C,MAAMnoF,GAAQA,IAC9B,IAAXiN,IAEJ/N,KAAKkjI,QAAQ30D,IAAa,EAI5B,cADOvuE,KAAKkjI,QAAQ30D,GACbxgE,EAGTo1H,KAAK/2H,GACH,OAAOpM,KAAKmiD,MAAK,CAACy3B,EAAOx5E,KACvB,IAAI2N,EACJ,IACEA,EAAS3B,EAASwtE,EAAOx5E,GACzB,MAAOkI,GACP,MAAMsxE,EAAMwpD,WAAW96H,GAMzB,OAJe,IAAXyF,GAAoB6rE,EAAMupD,OAC5Bp1H,EAAS6rE,EAAMupD,KAAK/2H,IAGf2B,KAIXs1H,UAAUr9H,EAAMoG,GACd,OAAKA,EAQDpG,aAAgBoE,OACXpK,KAAKmjI,MAAK,CAACvpD,EAAOx5E,KACvB,GAAmB,SAAfw5E,EAAM37E,MAAmB+H,EAAKwE,KAAKovE,EAAM5zE,MAC3C,OAAOoG,EAASwtE,EAAOx5E,MAItBJ,KAAKmjI,MAAK,CAACvpD,EAAOx5E,KACvB,GAAmB,SAAfw5E,EAAM37E,MAAmB27E,EAAM5zE,OAASA,EAC1C,OAAOoG,EAASwtE,EAAOx5E,OAhBzBgM,EAAWpG,EACJhG,KAAKmjI,MAAK,CAACvpD,EAAOx5E,KACvB,GAAmB,SAAfw5E,EAAM37E,KACR,OAAOmO,EAASwtE,EAAOx5E,OAkB/BkjI,UAAUrzB,EAAU7jG,GAClB,OAAKA,EASD6jG,aAAoB7lG,OACfpK,KAAKmjI,MAAK,CAACvpD,EAAOx5E,KACvB,GAAmB,SAAfw5E,EAAM37E,MAAmBgyG,EAASzlG,KAAKovE,EAAMq2B,UAC/C,OAAO7jG,EAASwtE,EAAOx5E,MAItBJ,KAAKmjI,MAAK,CAACvpD,EAAOx5E,KACvB,GAAmB,SAAfw5E,EAAM37E,MAAmB27E,EAAMq2B,WAAaA,EAC9C,OAAO7jG,EAASwtE,EAAOx5E,OAjBzBgM,EAAW6jG,EAEJjwG,KAAKmjI,MAAK,CAACvpD,EAAOx5E,KACvB,GAAmB,SAAfw5E,EAAM37E,KACR,OAAOmO,EAASwtE,EAAOx5E,OAkB/BmjI,YAAYniI,EAAMgL,GAChB,OAAKA,EAQDhL,aAAgBgJ,OACXpK,KAAKmjI,MAAK,CAACvpD,EAAOx5E,KACvB,GAAmB,WAAfw5E,EAAM37E,MAAqBmD,EAAKoJ,KAAKovE,EAAMx4E,MAC7C,OAAOgL,EAASwtE,EAAOx5E,MAItBJ,KAAKmjI,MAAK,CAACvpD,EAAOx5E,KACvB,GAAmB,WAAfw5E,EAAM37E,MAAqB27E,EAAMx4E,OAASA,EAC5C,OAAOgL,EAASwtE,EAAOx5E,OAhBzBgM,EAAWhL,EACJpB,KAAKmjI,MAAK,CAACvpD,EAAOx5E,KACvB,GAAmB,WAAfw5E,EAAM37E,KACR,OAAOmO,EAASwtE,EAAOx5E,OAkB/BojI,aAAap3H,GACX,OAAOpM,KAAKmjI,MAAK,CAACvpD,EAAOx5E,KACvB,GAAmB,YAAfw5E,EAAM37E,KACR,OAAOmO,EAASwtE,EAAOx5E,MAK7B6M,UAAU2W,GACR,IAAK,IAAIg2D,KAASh2D,EAAU,CAC1B,IAAIqlE,EAAQjpF,KAAKw/B,UAAUo6C,EAAO55E,KAAK40D,MACvC,IAAK,IAAIo0B,KAAQC,EAAOjpF,KAAKyiI,QAAQx5C,MAAMpoF,KAAKmoF,GAKlD,OAFAhpF,KAAKyjI,YAEEzjI,KAGTqhD,WAAWz9B,GACTA,EAAWA,EAASsuC,UACpB,IAAK,IAAI0nB,KAASh2D,EAAU,CAC1B,IAAIqlE,EAAQjpF,KAAKw/B,UAAUo6C,EAAO55E,KAAKghD,MAAO,WAAWkR,UACzD,IAAK,IAAI82B,KAAQC,EAAOjpF,KAAKyiI,QAAQx5C,MAAM1mF,QAAQymF,GACnD,IAAK,IAAIpkF,KAAM5E,KAAKkjI,QAClBljI,KAAKkjI,QAAQt+H,GAAM5E,KAAKkjI,QAAQt+H,GAAMqkF,EAAM3oF,OAMhD,OAFAN,KAAKyjI,YAEEzjI,KAGT0jI,UAAUC,GAER,GADA7vH,MAAM4vH,UAAUC,GACZ3jI,KAAKipF,MACP,IAAK,IAAID,KAAQhpF,KAAKipF,MAAOD,EAAK06C,UAAUC,GAIhD7sG,aAAa8sG,EAAO39F,GAGlB,IAIInlC,EAJA7C,EAAiB,KAFrB2lI,EAAQ5jI,KAAKc,MAAM8iI,KAEM,UACrB36C,EAAQjpF,KAAKw/B,UAAUyG,EAAKjmC,KAAKyiI,QAAQx5C,MAAM26C,GAAQ3lI,GAAMi0D,UACjE,IAAK,IAAI82B,KAAQC,EAAOjpF,KAAKyiI,QAAQx5C,MAAMloF,OAAO6iI,EAAO,EAAG56C,GAG5D,IAAK,IAAIpkF,KAAM5E,KAAKkjI,QAClBpiI,EAAQd,KAAKkjI,QAAQt+H,GACjBg/H,GAAS9iI,IACXd,KAAKkjI,QAAQt+H,GAAM9D,EAAQmoF,EAAM3oF,QAMrC,OAFAN,KAAKyjI,YAEEzjI,KAGTq0C,YAAYuvF,EAAO39F,GACjB29F,EAAQ5jI,KAAKc,MAAM8iI,GAEnB,IAGI9iI,EAHAmoF,EAAQjpF,KAAKw/B,UAAUyG,EAAKjmC,KAAKyiI,QAAQx5C,MAAM26C,IAAQ1xE,UAC3D,IAAK,IAAI82B,KAAQC,EAAOjpF,KAAKyiI,QAAQx5C,MAAMloF,OAAO6iI,EAAQ,EAAG,EAAG56C,GAGhE,IAAK,IAAIpkF,KAAM5E,KAAKkjI,QAClBpiI,EAAQd,KAAKkjI,QAAQt+H,GACjBg/H,EAAQ9iI,IACVd,KAAKkjI,QAAQt+H,GAAM9D,EAAQmoF,EAAM3oF,QAMrC,OAFAN,KAAKyjI,YAEEzjI,KAGT6jI,YAAYjqD,GAKV,IAAI94E,EAJJ84E,EAAQ55E,KAAKc,MAAM84E,GACnB55E,KAAKyiI,QAAQx5C,MAAMrP,GAAO91C,YAASzmC,EACnC2C,KAAKyiI,QAAQx5C,MAAMloF,OAAO64E,EAAO,GAGjC,IAAK,IAAIh1E,KAAM5E,KAAKkjI,QAClBpiI,EAAQd,KAAKkjI,QAAQt+H,GACjB9D,GAAS84E,IACX55E,KAAKkjI,QAAQt+H,GAAM9D,EAAQ,GAM/B,OAFAd,KAAKyjI,YAEEzjI,KAGT8jI,YACE,IAAK,IAAI96C,KAAQhpF,KAAKyiI,QAAQx5C,MAAOD,EAAKllD,YAASzmC,EAKnD,OAJA2C,KAAKyiI,QAAQx5C,MAAQ,GAErBjpF,KAAKyjI,YAEEzjI,KAGT+jI,cAAcp1H,EAAS/W,EAAMwU,GAe3B,OAdKA,IACHA,EAAWxU,EACXA,EAAO,IAGToI,KAAKqjI,WAAUW,IACTpsI,EAAK2X,QAAU3X,EAAK2X,MAAMwM,SAASioH,EAAKh+H,OACxCpO,EAAKqsI,OAASD,EAAKpoI,MAAMmgB,SAASnkB,EAAKqsI,QAE3CD,EAAKpoI,MAAQooI,EAAKpoI,MAAMoN,QAAQ2F,EAASvC,OAG3CpM,KAAKyjI,YAEEzjI,KAGTs5B,MAAM6jF,GACJ,OAAOn9G,KAAKipF,MAAM3vD,MAAM6jF,GAG1BrrG,KAAKqrG,GACH,OAAOn9G,KAAKipF,MAAMn3E,KAAKqrG,GAGzBr8G,MAAM84E,GACJ,MAAqB,iBAAVA,EAA2BA,GAClCA,EAAM6oD,UAAS7oD,EAAQA,EAAM6oD,SAC1BziI,KAAKyiI,QAAQx5C,MAAM3sF,QAAQs9E,IAGhC54B,YACF,GAAKhhD,KAAKyiI,QAAQx5C,MAClB,OAAOjpF,KAAKyiI,QAAQx5C,MAAM,GAGxBr0B,WACF,GAAK50D,KAAKyiI,QAAQx5C,MAClB,OAAOjpF,KAAKyiI,QAAQx5C,MAAMjpF,KAAKyiI,QAAQx5C,MAAM3oF,OAAS,GAGxDk/B,UAAUypD,EAAOi7C,GACf,GAAqB,iBAAVj7C,EACTA,EAAQ85C,EAAY36H,EAAM6gF,GAAOA,YAC5B,GAAIrmF,MAAMiD,QAAQojF,GAAQ,CAC/BA,EAAQA,EAAMnjF,MAAM,GACpB,IAAK,IAAI1F,KAAK6oF,EACR7oF,EAAE0jC,QAAQ1jC,EAAE0jC,OAAO+/F,YAAYzjI,EAAG,eAEnC,GAAmB,SAAf6oF,EAAMhrF,MAAiC,aAAd+B,KAAK/B,KAAqB,CAC5DgrF,EAAQA,EAAMA,MAAMnjF,MAAM,GAC1B,IAAK,IAAI1F,KAAK6oF,EACR7oF,EAAE0jC,QAAQ1jC,EAAE0jC,OAAO+/F,YAAYzjI,EAAG,eAEnC,GAAI6oF,EAAMhrF,KACfgrF,EAAQ,CAACA,QACJ,GAAIA,EAAMjjF,KAAM,CACrB,QAA2B,IAAhBijF,EAAMrtF,MACf,MAAM,IAAIxD,MAAM,0CACgB,iBAAhB6wF,EAAMrtF,QACtBqtF,EAAMrtF,MAAQmU,OAAOk5E,EAAMrtF,QAE7BqtF,EAAQ,CAAC,IAAI65C,EAAY75C,SACpB,GAAIA,EAAMgnB,SACfhnB,EAAQ,CAAC,IAAI05C,EAAK15C,SACb,GAAIA,EAAM7nF,KACf6nF,EAAQ,CAAC,IAAIu5C,EAAOv5C,QACf,KAAIA,EAAM30E,KAGf,MAAM,IAAIlc,MAAM,sCAFhB6wF,EAAQ,CAAC,IAAIK,EAAQL,IAoBvB,OAfgBA,EAAMv2E,KAAItS,IAEnBA,EAAEyiI,IAAKN,EAAU4B,QAAQ/jI,IAC9BA,EAAIA,EAAEqiI,SACA3+F,QAAQ1jC,EAAE0jC,OAAO+/F,YAAYzjI,GAC/BA,EAAEwiI,IAAUI,EAAY5iI,QACC,IAAlBA,EAAEgkI,KAAKC,QACZH,QAAwC,IAAvBA,EAAOE,KAAKC,SAC/BjkI,EAAEgkI,KAAKC,OAASH,EAAOE,KAAKC,OAAOr7H,QAAQ,MAAO,KAGtD5I,EAAE0jC,OAAS9jC,KAAKyiI,QACTriI,KAMXkkI,oBACE,MAAO,CACL/5G,IAAG,CAACy+D,EAAMhjF,EAAMpK,KACVotF,EAAKhjF,KAAUpK,IACnBotF,EAAKhjF,GAAQpK,EACA,SAAToK,GAA4B,WAATA,GAA8B,aAATA,GAC1CgjF,EAAKy6C,cAH0B,GAQnCz4G,IAAG,CAACg+D,EAAMhjF,IACK,YAATA,EACKgjF,EACGA,EAAKhjF,GAGN,SAATA,GACiB,iBAATA,GAAqBA,EAAKiW,WAAW,QAEtC,IAAIpT,IACFmgF,EAAKhjF,MACP6C,EAAK6J,KAAItS,GACO,mBAANA,EACF,CAACw5E,EAAO94E,IAAUV,EAAEw5E,EAAM2qD,UAAWzjI,GAErCV,KAKG,UAAT4F,GAA6B,SAATA,EACtB2jC,GACEq/C,EAAKhjF,IAAM,CAAC4zE,KAAUmiC,IAC3BpyE,EAAGiwC,EAAM2qD,aAAcxoB,KAGT,SAAT/1G,EACF,IAAMgjF,EAAKjP,OAAOwqD,UACP,UAATv+H,EACFgjF,EAAKC,MAAMv2E,KAAItS,GAAKA,EAAEmkI,YACX,UAATv+H,GAA6B,SAATA,EACtBgjF,EAAKhjF,GAAMu+H,UAEXv7C,EAAKhjF,GA7BLgjF,EAAKhjF,IAmCpBi9H,cACOjjI,KAAKwkI,WAAUxkI,KAAKwkI,SAAW,GAC/BxkI,KAAKkjI,UAASljI,KAAKkjI,QAAU,IAElCljI,KAAKwkI,UAAY,EACjB,IAAIj2D,EAAWvuE,KAAKwkI,SAGpB,OAFAxkI,KAAKkjI,QAAQ30D,GAAY,EAElBA,GAIXg0D,EAAUkC,cAAgBC,IACxBt8H,EAAQs8H,GAGVnC,EAAUoC,aAAeD,IACvB/B,EAAO+B,GAGTnC,EAAUG,eAAiBgC,IACzBlC,EAASkC,GAGXjtI,EAAOC,QAAU6qI,EACjBA,EAAUvkD,QAAUukD,EAGpBA,EAAU4B,QAAUn7C,IACA,WAAdA,EAAK/qF,KACP+F,OAAOk/D,eAAe8lB,EAAMw5C,EAAOxjI,WACZ,SAAdgqF,EAAK/qF,KACd+F,OAAOk/D,eAAe8lB,EAAM25C,EAAK3jI,WACV,SAAdgqF,EAAK/qF,KACd+F,OAAOk/D,eAAe8lB,EAAM85C,EAAY9jI,WACjB,YAAdgqF,EAAK/qF,MACd+F,OAAOk/D,eAAe8lB,EAAMM,EAAQtqF,WAGtCgqF,EAAK65C,IAAM,EAEP75C,EAAKC,OACPD,EAAKC,MAAM1rF,SAAQq8E,IACjB2oD,EAAU4B,QAAQvqD,qCC1axB,IAAIgrD,EAAO,EAAQ,OAEfC,EAAoB,EAAQ,OAEhC,MAAMC,UAAuB1sI,MAC3BsW,YAAYjO,EAASwL,EAAMwmG,EAAQzxG,EAAQ+jI,EAAM3+F,GAC/CtyB,MAAMrT,GACNT,KAAKoB,KAAO,iBACZpB,KAAKU,OAASD,EAEVskI,IACF/kI,KAAK+kI,KAAOA,GAEV/jI,IACFhB,KAAKgB,OAASA,GAEZolC,IACFpmC,KAAKomC,OAASA,QAEI,IAATn6B,QAA0C,IAAXwmG,IACpB,iBAATxmG,GACTjM,KAAKiM,KAAOA,EACZjM,KAAKyyG,OAASA,IAEdzyG,KAAKiM,KAAOA,EAAKA,KACjBjM,KAAKyyG,OAASxmG,EAAKwmG,OACnBzyG,KAAKglI,QAAUvyB,EAAOxmG,KACtBjM,KAAKilI,UAAYxyB,EAAOA,SAI5BzyG,KAAKklI,aAED9sI,MAAMg1G,mBACRh1G,MAAMg1G,kBAAkBptG,KAAM8kI,GAIlCI,aACEllI,KAAKS,QAAUT,KAAKomC,OAASpmC,KAAKomC,OAAS,KAAO,GAClDpmC,KAAKS,SAAWT,KAAK+kI,KAAO/kI,KAAK+kI,KAAO,mBACf,IAAd/kI,KAAKiM,OACdjM,KAAKS,SAAW,IAAMT,KAAKiM,KAAO,IAAMjM,KAAKyyG,QAE/CzyG,KAAKS,SAAW,KAAOT,KAAKU,OAG9BykI,eAAeC,GACb,IAAKplI,KAAKgB,OAAQ,MAAO,GAEzB,IAAI2zC,EAAM30C,KAAKgB,OACF,MAATokI,IAAeA,EAAQR,EAAK7d,kBAC5B8d,GACEO,IAAOzwF,EAAMkwF,EAAkBlwF,IAGrC,IAMI0wF,EAAMxiC,EANNyiC,EAAQ3wF,EAAI3oC,MAAM,SAClBuvD,EAAQ90D,KAAKgiE,IAAIzoE,KAAKiM,KAAO,EAAG,GAChCyxD,EAAMj3D,KAAKkM,IAAI3S,KAAKiM,KAAO,EAAGq5H,EAAMhlI,QAEpCilI,EAAWx1H,OAAO2tD,GAAKp9D,OAG3B,GAAI8kI,EAAO,CACT,IAAI,KAAEpe,EAAI,IAAEO,EAAG,KAAEO,GAAS8c,EAAKrc,cAAa,GAC5C8c,EAAO/wH,GAAQ0yG,EAAKO,EAAIjzG,IACxBuuF,EAAQvuF,GAAQwzG,EAAKxzG,QAErB+wH,EAAOxiC,EAAQ10F,GAAOA,EAGxB,OAAOm3H,EACJx/H,MAAMy1D,EAAOmC,GACbhrD,KAAI,CAACzG,EAAMnL,KACV,IAAI4C,EAAS63D,EAAQ,EAAIz6D,EACrB0kI,EAAS,KAAO,IAAM9hI,GAAQoC,OAAOy/H,GAAY,MACrD,GAAI7hI,IAAW1D,KAAKiM,KAAM,CACxB,IAAIw5H,EACF5iC,EAAM2iC,EAAOx8H,QAAQ,MAAO,MAC5BiD,EAAKnG,MAAM,EAAG9F,KAAKyyG,OAAS,GAAGzpG,QAAQ,SAAU,KACnD,OAAOq8H,EAAK,KAAOxiC,EAAM2iC,GAAUv5H,EAAO,MAAQw5H,EAAUJ,EAAK,KAEnE,MAAO,IAAMxiC,EAAM2iC,GAAUv5H,KAE9B3C,KAAK,MAGVvC,WACE,IAAIxD,EAAOvD,KAAKmlI,iBAIhB,OAHI5hI,IACFA,EAAO,OAASA,EAAO,MAElBvD,KAAKoB,KAAO,KAAOpB,KAAKS,QAAU8C,GAI7C9L,EAAOC,QAAUotI,EACjBA,EAAe9mD,QAAU8mD,gCCjGzB,IAAIz3C,EAAO,EAAQ,OAEnB,MAAMy1C,UAAoBz1C,EACxB3+E,YAAY/M,GAERA,QAC0B,IAAnBA,EAAS/F,OACU,iBAAnB+F,EAAS/F,QAEhB+F,EAAW,IAAKA,EAAU/F,MAAOmU,OAAOpO,EAAS/F,SAEnDkY,MAAMnS,GACN3B,KAAK/B,KAAO,OAGVynI,eACF,OAAO1lI,KAAKgG,KAAKiW,WAAW,OAA0B,MAAjBjc,KAAKgG,KAAK,IAInDvO,EAAOC,QAAUorI,EACjBA,EAAY9kD,QAAU8kD,+BCrBtB,IAEI6C,EAAYC,EAFZrD,EAAY,EAAQ,OAIxB,MAAMn3C,UAAiBm3C,EACrB7zH,YAAY/M,GAEVmS,MAAM,CAAE7V,KAAM,cAAe0D,IAExB3B,KAAKipF,QACRjpF,KAAKipF,MAAQ,IAIjB48C,SAASjuI,EAAO,IAGd,OAFW,IAAI+tI,EAAW,IAAIC,EAAa5lI,KAAMpI,GAErC2Q,aAIhB6iF,EAAS06C,mBAAqBpB,IAC5BiB,EAAajB,GAGft5C,EAAS26C,kBAAoBrB,IAC3BkB,EAAYlB,GAGdjtI,EAAOC,QAAU0zF,EACjBA,EAASpN,QAAUoN,gCC9BnB,IAAI03C,EAAc,EAAQ,OACtBkD,EAAc,EAAQ,OACtB18C,EAAU,EAAQ,OAClBk5C,EAAS,EAAQ,OACjByD,EAAQ,EAAQ,OAChB98C,EAAO,EAAQ,OACfw5C,EAAO,EAAQ,MAEnB,SAASuD,EAAS1xH,EAAMk2G,GACtB,GAAI9nH,MAAMiD,QAAQ2O,GAAO,OAAOA,EAAK9B,KAAIglD,GAAKwuE,EAASxuE,KAEvD,IAAMgzD,OAAQyb,KAAcxkI,GAAa6S,EACzC,GAAI2xH,EAAW,CACbzb,EAAS,GACT,IAAK,IAAIvwD,KAASgsE,EAAW,CAC3B,IAAIC,EAAgB,IAAKjsE,EAAO4X,UAAWk0D,EAAMjnI,WAC7ConI,EAAc1zH,MAChB0zH,EAAc1zH,IAAM,IACf0zH,EAAc1zH,IACjBq/D,UAAWi0D,EAAYhnI,YAG3B0rH,EAAO7pH,KAAKulI,IAMhB,GAHIzkI,EAASsnF,QACXtnF,EAASsnF,MAAQz0E,EAAKy0E,MAAMv2E,KAAIglD,GAAKwuE,EAASxuE,EAAGgzD,MAE/C/oH,EAASX,OAAQ,CACnB,IAAI,QAAEkqD,KAAYlqD,GAAWW,EAASX,OACtCW,EAASX,OAASA,EACH,MAAXkqD,IACFvpD,EAASX,OAAOm5D,MAAQuwD,EAAOx/D,IAGnC,GAAsB,SAAlBvpD,EAAS1D,KACX,OAAO,IAAIkrF,EAAKxnF,GACX,GAAsB,SAAlBA,EAAS1D,KAClB,OAAO,IAAI6kI,EAAYnhI,GAClB,GAAsB,SAAlBA,EAAS1D,KAClB,OAAO,IAAI0kI,EAAKhhI,GACX,GAAsB,YAAlBA,EAAS1D,KAClB,OAAO,IAAIqrF,EAAQ3nF,GACd,GAAsB,WAAlBA,EAAS1D,KAClB,OAAO,IAAIukI,EAAO7gI,GAElB,MAAM,IAAIvJ,MAAM,sBAAwBoc,EAAKvW,MAIjDxG,EAAOC,QAAUwuI,EACjBA,EAASloD,QAAUkoD,gCCnDnB,IAAI,kBAAEG,EAAiB,mBAAEC,GAAuB,EAAQ,QACpD,cAAEC,EAAa,cAAEC,GAAkB,EAAQ,QAC3C,QAAE1uI,EAAO,WAAE2uI,GAAe,EAAQ,QAClC,OAAEC,GAAW,EAAQ,OAErB7B,EAAoB,EAAQ,OAC5BC,EAAiB,EAAQ,OACzBkB,EAAc,EAAQ,OAEtBW,EAAkB7jE,OAAO,mBAEzB8jE,EAAqBjpF,QAAQ0oF,GAAqBC,GAClDO,EAAgBlpF,QAAQ7lD,GAAW2uI,GAEvC,MAAMR,EACJv3H,YAAYimC,EAAK/8C,EAAO,IACtB,GACE+8C,SAEgB,iBAARA,IAAqBA,EAAI5tC,SAEjC,MAAM,IAAI3O,MAAM,oBAAoBu8C,2BAwBtC,GArBA30C,KAAK20C,IAAMA,EAAI5tC,WAEK,WAAhB/G,KAAK20C,IAAI,IAAmC,MAAhB30C,KAAK20C,IAAI,IACvC30C,KAAK8mI,QAAS,EACd9mI,KAAK20C,IAAM30C,KAAK20C,IAAI7uC,MAAM,IAE1B9F,KAAK8mI,QAAS,EAGZlvI,EAAKuM,QAEJ0iI,GACD,YAAYr8H,KAAK5S,EAAKuM,OACtBsiI,EAAW7uI,EAAKuM,MAEhBnE,KAAK+kI,KAAOntI,EAAKuM,KAEjBnE,KAAK+kI,KAAOjtI,EAAQF,EAAKuM,OAIzB0iI,GAAiBD,EAAoB,CACvC,IAAIl0H,EAAM,IAAIszH,EAAYhmI,KAAK20C,IAAK/8C,GACpC,GAAI8a,EAAI4B,KAAM,CACZtU,KAAK0S,IAAMA,EACX,IAAIqyH,EAAOryH,EAAIq0H,WAAWhC,MACrB/kI,KAAK+kI,MAAQA,IAAM/kI,KAAK+kI,KAAO/kI,KAAKgnI,WAAWjC,KAInD/kI,KAAK+kI,OACR/kI,KAAK4E,GAAK,cAAgB8hI,EAAO,GAAK,KAEpC1mI,KAAK0S,MAAK1S,KAAK0S,IAAIqyH,KAAO/kI,KAAKmE,MAGrC8iI,WAAWvlE,GACT,IAAIwlE,EAAUC,EACd,GAAKnnI,KAAK2mI,GAYRQ,EAAcnnI,KAAK2mI,OAZO,CAC1B,IAAIrB,EAAQtlI,KAAK20C,IAAI3oC,MAAM,MAC3Bm7H,EAAc,IAAIvkI,MAAM0iI,EAAMhlI,QAC9B,IAAI8mI,EAAY,EAEhB,IAAK,IAAIhnI,EAAI,EAAGC,EAAIilI,EAAMhlI,OAAQF,EAAIC,EAAGD,IACvC+mI,EAAY/mI,GAAKgnI,EACjBA,GAAa9B,EAAMllI,GAAGE,OAAS,EAGjCN,KAAK2mI,GAAmBQ,EAI1BD,EAAWC,EAAYA,EAAY7mI,OAAS,GAE5C,IAAIqS,EAAM,EACV,GAAI+uD,GAAUwlE,EACZv0H,EAAMw0H,EAAY7mI,OAAS,MACtB,CACL,IACI+mI,EADA5+D,EAAM0+D,EAAY7mI,OAAS,EAE/B,KAAOqS,EAAM81D,GAEX,GADA4+D,EAAM10H,GAAQ81D,EAAM91D,GAAQ,GACxB+uD,EAASylE,EAAYE,GACvB5+D,EAAM4+D,EAAM,MACP,MAAI3lE,GAAUylE,EAAYE,EAAM,IAEhC,CACL10H,EAAM00H,EACN,MAHA10H,EAAM00H,EAAM,GAOlB,MAAO,CACLp7H,KAAM0G,EAAM,EACZ20H,IAAK5lE,EAASylE,EAAYx0H,GAAO,GAIrCxP,MAAM1C,EAASwL,EAAMwmG,EAAQ76G,EAAO,IAClC,IAAImW,EAAQi3H,EAASC,EAErB,GAAIh5H,GAAwB,iBAATA,EAAmB,CACpC,IAAIsvD,EAAQtvD,EACRyxD,EAAM+0C,EACV,GAA2B,iBAAhBxmG,EAAKy1D,OAAqB,CACnC,IAAIwG,EAAMloE,KAAKinI,WAAW1rE,EAAMmG,QAChCz1D,EAAOi8D,EAAIj8D,KACXwmG,EAASvqC,EAAIo/D,SAEbr7H,EAAOsvD,EAAMtvD,KACbwmG,EAASl3C,EAAMk3C,OAEjB,GAA0B,iBAAf/0C,EAAIgE,OAAqB,CAClC,IAAIwG,EAAMloE,KAAKinI,WAAWvpE,EAAIgE,QAC9BsjE,EAAU98D,EAAIj8D,KACdg5H,EAAY/8D,EAAIo/D,SAEhBtC,EAAUtnE,EAAIzxD,KACdg5H,EAAYvnE,EAAI+0C,YAEb,IAAKA,EAAQ,CAClB,IAAIvqC,EAAMloE,KAAKinI,WAAWh7H,GAC1BA,EAAOi8D,EAAIj8D,KACXwmG,EAASvqC,EAAIo/D,IAGf,IAAIC,EAASvnI,KAAKunI,OAAOt7H,EAAMwmG,EAAQuyB,EAASC,GAiChD,OA/BEl3H,EADEw5H,EACO,IAAIzC,EACXrkI,OACmBpD,IAAnBkqI,EAAOvC,QACHuC,EAAOt7H,KACP,CAAEA,KAAMs7H,EAAOt7H,KAAMwmG,OAAQ80B,EAAO90B,aACrBp1G,IAAnBkqI,EAAOvC,QACHuC,EAAO90B,OACP,CAAExmG,KAAMs7H,EAAOvC,QAASvyB,OAAQ80B,EAAOtC,WAC3CsC,EAAOvmI,OACPumI,EAAOxC,KACPntI,EAAKwuC,QAGE,IAAI0+F,EACXrkI,OACYpD,IAAZ2nI,EAAwB/4H,EAAO,CAAEA,OAAMwmG,eAC3Bp1G,IAAZ2nI,EAAwBvyB,EAAS,CAAExmG,KAAM+4H,EAASvyB,OAAQwyB,GAC1DjlI,KAAK20C,IACL30C,KAAK+kI,KACLntI,EAAKwuC,QAITr4B,EAAOosD,MAAQ,CAAEluD,OAAMwmG,SAAQuyB,UAASC,YAAWjkI,OAAQhB,KAAK20C,KAC5D30C,KAAK+kI,OACHyB,IACFz4H,EAAOosD,MAAM/+D,IAAMorI,EAAcxmI,KAAK+kI,MAAMh+H,YAE9CgH,EAAOosD,MAAM4qE,KAAO/kI,KAAK+kI,MAGpBh3H,EAGTw5H,OAAOt7H,EAAMwmG,EAAQuyB,EAASC,GAC5B,IAAKjlI,KAAK0S,IAAK,OAAO,EACtB,IAKIumG,EAKAuuB,EAVAT,EAAW/mI,KAAK0S,IAAIq0H,WAEpB5iI,EAAO4iI,EAASU,oBAAoB,CAAEx7H,OAAMwmG,WAChD,IAAKtuG,EAAKnD,OAAQ,OAAO,EAGF,iBAAZgkI,IACT/rB,EAAK8tB,EAASU,oBAAoB,CAAEx7H,KAAM+4H,EAASvyB,OAAQwyB,KAM3DuC,EADEf,EAAWtiI,EAAKnD,QACRwlI,EAAcriI,EAAKnD,QAEnB,IAAI2U,IACZxR,EAAKnD,OACLhB,KAAK0S,IAAIq0H,WAAWW,YAAclB,EAAcxmI,KAAK0S,IAAIi1H,UAI7D,IAAI55H,EAAS,CACX3S,IAAKosI,EAAQzgI,WACbkF,KAAM9H,EAAK8H,KACXwmG,OAAQtuG,EAAKsuG,OACbuyB,QAAS/rB,GAAMA,EAAGhtG,KAClBg5H,UAAWhsB,GAAMA,EAAGxG,QAGtB,GAAyB,UAArB+0B,EAAQnpI,SAAsB,CAChC,IAAIkoI,EAIF,MAAM,IAAInuI,MAAM,yDAHhB2V,EAAOg3H,KAAOwB,EAAciB,GAOhC,IAAIxmI,EAAS+lI,EAASa,iBAAiBzjI,EAAKnD,QAG5C,OAFIA,IAAQ+M,EAAO/M,OAASA,GAErB+M,EAGTi5H,WAAWjC,GACT,MAAI,YAAYv6H,KAAKu6H,GACZA,EAEFjtI,EAAQkI,KAAK0S,IAAIq0H,WAAWW,YAAc1nI,KAAK0S,IAAIqnE,MAAQ,IAAKgrD,GAGrE5gI,WACF,OAAOnE,KAAK+kI,MAAQ/kI,KAAK4E,GAG3BpB,SACE,IAAIgR,EAAO,GACX,IAAK,IAAIpT,IAAQ,CAAC,SAAU,MAAO,OAAQ,MACvB,MAAdpB,KAAKoB,KACPoT,EAAKpT,GAAQpB,KAAKoB,IAStB,OANIpB,KAAK0S,MACP8B,EAAK9B,IAAM,IAAK1S,KAAK0S,KACjB8B,EAAK9B,IAAIm1H,gBACXrzH,EAAK9B,IAAIm1H,mBAAgBxqI,IAGtBmX,GAIX/c,EAAOC,QAAUuuI,EACjBA,EAAMjoD,QAAUioD,EAEZpB,GAAqBA,EAAkBiD,eACzCjD,EAAkBiD,cAAc7B,iCCpPlC,IAAI,QAAErD,EAAO,GAAEC,GAAO,EAAQ,OAC1BkF,EAAe,EAAQ,OACvBx/H,EAAY,EAAQ,OACpBg6H,EAAY,EAAQ,OACpBn3C,EAAW,EAAQ,MAEnB48C,GADW,EAAQ,OACV,EAAQ,QACjB5/H,EAAQ,EAAQ,OAChB+gF,EAAO,EAAQ,OAEnB,MAAM8+C,EAAqB,CACzB/9H,SAAU,WACV6vE,KAAM,OACNmuD,OAAQ,SACRC,KAAM,OACNnE,KAAM,cACNoE,QAAS,WAGLC,EAAe,CACnBC,eAAe,EACfC,SAAS,EACTC,MAAM,EACNp9C,UAAU,EACVjC,MAAM,EACN25C,aAAa,EACbH,MAAM,EACNH,QAAQ,EACRl5C,SAAS,EACTm/C,iBAAiB,EACjBC,UAAU,EACVC,YAAY,EACZC,aAAa,EACbC,UAAU,EACVC,cAAc,EACdC,UAAU,GAGNC,EAAe,CACnBV,eAAe,EACfC,SAAS,EACTC,MAAM,GAKR,SAASS,EAAU1kI,GACjB,MAAsB,iBAARA,GAAwC,mBAAbA,EAAIzL,KAG/C,SAASowI,EAAUlgD,GACjB,IAAIxrF,GAAM,EACNS,EAAOgqI,EAAmBj/C,EAAK/qF,MAOnC,MANkB,SAAd+qF,EAAK/qF,KACPT,EAAMwrF,EAAKhjF,KAAKvI,cACO,WAAdurF,EAAK/qF,OACdT,EAAMwrF,EAAK5nF,KAAK3D,eAGdD,GAAOwrF,EAAK/7E,OACP,CACLhP,EACAA,EAAO,IAAMT,EAlBF,EAoBXS,EAAO,OACPA,EAAO,QAAUT,GAEVA,EACF,CAACS,EAAMA,EAAO,IAAMT,EAAKS,EAAO,OAAQA,EAAO,QAAUT,GACvDwrF,EAAK/7E,OACP,CAAChP,EA1BK,EA0BWA,EAAO,QAExB,CAACA,EAAMA,EAAO,QAIzB,SAASkrI,EAAQngD,GACf,IAAIogD,EASJ,OAPEA,EADgB,aAAdpgD,EAAK/qF,KACE,CAAC,WAnCG,EAmCmB,gBACT,SAAd+qF,EAAK/qF,KACL,CAAC,OArCG,EAqCe,YAEnBirI,EAAUlgD,GAGd,CACLA,OACAogD,SACAC,WAAY,EACZC,SAAU,GACVC,aAAc,EACdh7D,SAAU,GAId,SAASi7D,EAAWxgD,GAGlB,OAFAA,EAAK45C,IAAW,EACZ55C,EAAKC,OAAOD,EAAKC,MAAM1rF,SAAQ6C,GAAKopI,EAAWppI,KAC5C4oF,EAGT,IAAIygD,EAAU,GAEd,MAAM9D,EACJj3H,YAAYg7H,EAAW/0F,EAAK/8C,GAI1B,IAAImiF,EACJ,GAJA/5E,KAAK2pI,aAAc,EACnB3pI,KAAK4pI,WAAY,EAIA,iBAARj1F,GACC,OAARA,GACc,SAAbA,EAAI12C,MAAgC,aAAb02C,EAAI12C,KAGvB,GAAI02C,aAAegxF,GAAchxF,aAAeqzF,EACrDjuD,EAAOyvD,EAAW70F,EAAIolC,MAClBplC,EAAIjiC,WACkB,IAAb9a,EAAK8a,MAAqB9a,EAAK8a,IAAM,IAC3C9a,EAAK8a,IAAIm3H,SAAQjyI,EAAK8a,IAAIm3H,QAAS,GACxCjyI,EAAK8a,IAAIs1E,KAAOrzC,EAAIjiC,SAEjB,CACL,IAAI1K,EAASI,EACTxQ,EAAKkyI,SAAQ9hI,EAASpQ,EAAKkyI,OAAO1hI,OAClCxQ,EAAKoQ,SAAQA,EAASpQ,EAAKoQ,QAC3BA,EAAOI,QAAOJ,EAASA,EAAOI,OAElC,IACE2xE,EAAO/xE,EAAO2sC,EAAK/8C,GACnB,MAAOuL,GACPnD,KAAK4pI,WAAY,EACjB5pI,KAAKmD,MAAQA,EAGX42E,IAASA,EAAK8oD,IAEhBN,EAAU4B,QAAQpqD,QAvBpBA,EAAOyvD,EAAW70F,GA2BpB30C,KAAK+N,OAAS,IAAIi6H,EAAO0B,EAAW3vD,EAAMniF,GAC1CoI,KAAK+pI,QAAU,IAAKN,EAAS17H,OAAQ/N,KAAK+N,OAAQ07H,WAClDzpI,KAAKgqI,QAAUhqI,KAAK0pI,UAAUM,QAAQt3H,KAAI0zB,GAClB,iBAAXA,GAAuBA,EAAOmiG,QAChC,IAAKniG,KAAWA,EAAOmiG,QAAQvoI,KAAK+N,SAEpCq4B,IAKDm7E,IAAPz+C,OAAOy+C,eACV,MAAO,aAGLmoB,gBACF,OAAO1pI,KAAK+N,OAAO27H,UAGjB9xI,WACF,OAAOoI,KAAK+N,OAAOnW,KAGjB+8C,UACF,OAAO30C,KAAKuI,YAAYosC,IAGtBvlC,cACF,OAAOpP,KAAKuI,YAAY6G,QAGtBsD,UACF,OAAO1S,KAAKuI,YAAYmK,IAGtBqnE,WACF,OAAO/5E,KAAK6gF,OAAO9G,KAGjBrsD,eACF,OAAO1tB,KAAK6gF,OAAOnzD,SAGrBu8G,WACE,OAAOjqI,KAAK6gF,OAAOopD,WAGrBljI,WACE,OAAO/G,KAAK20C,IAGd77C,KAAKmK,EAAaC,GAUhB,OAAOlD,KAAKyxC,QAAQ34C,KAAKmK,EAAaC,GAGxCnK,MAAMmK,GACJ,OAAOlD,KAAKyxC,QAAQ14C,MAAMmK,GAG5BgnI,QAAQC,GACN,OAAOnqI,KAAKyxC,QAAQ34C,KAAKqxI,EAAWA,GAGtC14F,QACE,OAAIzxC,KAAKmD,MAActL,QAAQE,OAAOiI,KAAKmD,OACvCnD,KAAK4pI,UAAkB/xI,QAAQC,QAAQkI,KAAK+N,SAC3C/N,KAAKoqI,aACRpqI,KAAKoqI,WAAapqI,KAAKqqI,YAElBrqI,KAAKoqI,YAGdvpD,OACE,GAAI7gF,KAAKmD,MAAO,MAAMnD,KAAKmD,MAC3B,GAAInD,KAAK4pI,UAAW,OAAO5pI,KAAK+N,OAGhC,GAFA/N,KAAK4pI,WAAY,EAEb5pI,KAAKoqI,WACP,MAAMpqI,KAAKsqI,gBAGb,IAAK,IAAIlkG,KAAUpmC,KAAKgqI,QAEtB,GAAIf,EADUjpI,KAAKuqI,UAAUnkG,IAE3B,MAAMpmC,KAAKsqI,gBAKf,GADAtqI,KAAKwqI,kBACDxqI,KAAKyqI,YAAa,CACpB,IAAI1wD,EAAO/5E,KAAK+N,OAAOgsE,KACvB,MAAQA,EAAK6oD,IACX7oD,EAAK6oD,IAAW,EAChB5iI,KAAK0qI,SAAS3wD,GAEhB,GAAI/5E,KAAK2qI,UAAU5B,SACjB,GAAkB,aAAdhvD,EAAK97E,KACP,IAAK,IAAI2sI,KAAW7wD,EAAKkP,MACvBjpF,KAAK6qI,UAAU7qI,KAAK2qI,UAAU5B,SAAU6B,QAG1C5qI,KAAK6qI,UAAU7qI,KAAK2qI,UAAU5B,SAAUhvD,GAK9C,OAAO/5E,KAAK+N,OAGdxF,YACE,GAAIvI,KAAKmD,MAAO,MAAMnD,KAAKmD,MAC3B,GAAInD,KAAK2pI,YAAa,OAAO3pI,KAAK+N,OAClC/N,KAAK2pI,aAAc,EAEnB3pI,KAAK6gF,OAEL,IAAIjpF,EAAOoI,KAAK+N,OAAOnW,KACnBuW,EAAM5F,EACN3Q,EAAKkyI,SAAQ37H,EAAMvW,EAAKkyI,OAAOvhI,WAC/B3Q,EAAKkzI,cAAa38H,EAAMvW,EAAKkzI,aAC7B38H,EAAI5F,YAAW4F,EAAMA,EAAI5F,WAE7B,IACIzO,EADM,IAAIiuI,EAAa55H,EAAKnO,KAAK+N,OAAOgsE,KAAM/5E,KAAK+N,OAAOnW,MAC/CmzI,WAIf,OAHA/qI,KAAK+N,OAAO4mC,IAAM76C,EAAK,GACvBkG,KAAK+N,OAAO2E,IAAM5Y,EAAK,GAEhBkG,KAAK+N,OAGd28H,SAAS1hD,GACPA,EAAK45C,IAAW,EAChB,IAAIwG,EAASF,EAAUlgD,GACvB,IAAK,IAAI7wD,KAASixG,EAChB,GAjPW,IAiPPjxG,EACE6wD,EAAKC,OACPD,EAAK7mC,MAAKy3B,IACHA,EAAMgpD,IAAU5iI,KAAK0qI,SAAS9wD,UAGlC,CACL,IAAI0vD,EAAWtpI,KAAK2qI,UAAUxyG,GAC9B,GAAImxG,GACEtpI,KAAK6qI,UAAUvB,EAAUtgD,EAAKu7C,WAAY,QAMtDsG,UAAUvB,EAAUtgD,GAClB,IAAK,IAAK5iD,EAAQ4kG,KAAY1B,EAAU,CAEtC,IAAIrpI,EADJD,KAAK+N,OAAOk9H,WAAa7kG,EAEzB,IACEnmC,EAAU+qI,EAAQhiD,EAAMhpF,KAAK+pI,SAC7B,MAAOzhI,GACP,MAAMtI,KAAKkrI,YAAY5iI,EAAG0gF,EAAKy5C,SAEjC,GAAkB,SAAdz5C,EAAK/qF,MAAiC,aAAd+qF,EAAK/qF,OAAwB+qF,EAAKllD,OAC5D,OAAO,EAET,GAAImlG,EAAUhpI,GACZ,MAAMD,KAAKsqI,iBAKjBC,UAAUnkG,GACRpmC,KAAK+N,OAAOk9H,WAAa7kG,EACzB,IACE,GAAsB,iBAAXA,GAAuBA,EAAOoiG,KAAM,CAC7C,GAA8B,aAA1BxoI,KAAK+N,OAAOgsE,KAAK97E,KAAqB,CACxC,IAAIktI,EAAQnrI,KAAK+N,OAAOgsE,KAAKkP,MAAMv2E,KAAIqnE,GACrC3zC,EAAOoiG,KAAKzuD,EAAM/5E,KAAK+pI,WAGzB,OAAId,EAAUkC,EAAM,IACXtzI,QAAQ4H,IAAI0rI,GAGdA,EAGT,OAAO/kG,EAAOoiG,KAAKxoI,KAAK+N,OAAOgsE,KAAM/5E,KAAK+pI,SACrC,GAAsB,mBAAX3jG,EAChB,OAAOA,EAAOpmC,KAAK+N,OAAOgsE,KAAM/5E,KAAK+N,QAEvC,MAAO5K,GACP,MAAMnD,KAAKkrI,YAAY/nI,IAI3BmnI,gBACE,MAAM,IAAIlyI,MAAM,wDAGlB8yI,YAAY/nI,EAAO6lF,GACjB,IAAI5iD,EAASpmC,KAAK+N,OAAOk9H,WACzB,IACMjiD,GAAMA,EAAKo6C,WAAWjgI,GAC1BnD,KAAKmD,MAAQA,EACM,mBAAfA,EAAM/B,MAA8B+B,EAAMijC,OAGnCA,EAAOglG,gBAFhBjoI,EAAMijC,OAASA,EAAOkiG,cACtBnlI,EAAM+hI,cAwBR,MAAO/sI,GAGHuV,SAAWA,QAAQvK,OAAOuK,QAAQvK,MAAMhL,GAE9C,OAAOgL,EAGTsuC,iBACEzxC,KAAKomC,OAAS,EACd,IAAK,IAAIhmC,EAAI,EAAGA,EAAIJ,KAAKgqI,QAAQ1pI,OAAQF,IAAK,CAC5C,IAAIgmC,EAASpmC,KAAKgqI,QAAQ5pI,GACtBH,EAAUD,KAAKuqI,UAAUnkG,GAC7B,GAAI6iG,EAAUhpI,GACZ,UACQA,EACN,MAAOkD,GACP,MAAMnD,KAAKkrI,YAAY/nI,IAM7B,GADAnD,KAAKwqI,kBACDxqI,KAAKyqI,YAAa,CACpB,IAAI1wD,EAAO/5E,KAAK+N,OAAOgsE,KACvB,MAAQA,EAAK6oD,IAAU,CACrB7oD,EAAK6oD,IAAW,EAChB,IAAI9+H,EAAQ,CAACqlI,EAAQpvD,IACrB,KAAOj2E,EAAMxD,OAAS,GAAG,CACvB,IAAIL,EAAUD,KAAKqrI,UAAUvnI,GAC7B,GAAImlI,EAAUhpI,GACZ,UACQA,EACN,MAAOqI,GACP,IAAI0gF,EAAOllF,EAAMA,EAAMxD,OAAS,GAAG0oF,KACnC,MAAMhpF,KAAKkrI,YAAY5iI,EAAG0gF,KAMlC,GAAIhpF,KAAK2qI,UAAU5B,SACjB,IAAK,IAAK3iG,EAAQ4kG,KAAYhrI,KAAK2qI,UAAU5B,SAAU,CACrD/oI,KAAK+N,OAAOk9H,WAAa7kG,EACzB,IACE,GAAkB,aAAd2zC,EAAK97E,KAAqB,CAC5B,IAAIktI,EAAQpxD,EAAKkP,MAAMv2E,KAAIk4H,GACzBI,EAAQJ,EAAS5qI,KAAK+pI,iBAGlBlyI,QAAQ4H,IAAI0rI,cAEZH,EAAQjxD,EAAM/5E,KAAK+pI,SAE3B,MAAOzhI,GACP,MAAMtI,KAAKkrI,YAAY5iI,KAO/B,OADAtI,KAAK4pI,WAAY,EACV5pI,KAAKuI,YAGdiiI,kBACExqI,KAAK2qI,UAAY,GACjB,IAAI1kG,EAAM,CAACG,EAAQnoC,EAAM0rC,KAClB3pC,KAAK2qI,UAAU1sI,KAAO+B,KAAK2qI,UAAU1sI,GAAQ,IAClD+B,KAAK2qI,UAAU1sI,GAAM4C,KAAK,CAACulC,EAAQuD,KAErC,IAAK,IAAIvD,KAAUpmC,KAAKgqI,QACtB,GAAsB,iBAAX5jG,EACT,IAAK,IAAIjO,KAASiO,EAAQ,CACxB,IAAKiiG,EAAalwG,IAAU,SAAS3tB,KAAK2tB,GACxC,MAAM,IAAI//B,MACR,iBAAiB+/B,QAAYiO,EAAOkiG,yCACRtoI,KAAK0pI,UAAUr8H,iBAG/C,IAAK27H,EAAa7wG,GAChB,GAA6B,iBAAlBiO,EAAOjO,GAChB,IAAK,IAAIzoB,KAAU02B,EAAOjO,GAEtB8N,EAAIG,EADS,MAAX12B,EACUyoB,EAIVA,EAAQ,IAAMzoB,EAAOjS,cAJJ2oC,EAAOjO,GAAOzoB,QASH,mBAAlB02B,EAAOjO,IACvB8N,EAAIG,EAAQjO,EAAOiO,EAAOjO,IAMpCn4B,KAAKyqI,YAAczmI,OAAOqC,KAAKrG,KAAK2qI,WAAWrqI,OAAS,EAG1D+qI,UAAUvnI,GACR,IAAIwnI,EAAQxnI,EAAMA,EAAMxD,OAAS,IAC7B,KAAE0oF,EAAI,SAAEsgD,GAAagC,EAEzB,GAAkB,SAAdtiD,EAAK/qF,MAAiC,aAAd+qF,EAAK/qF,OAAwB+qF,EAAKllD,OAE5D,YADAhgC,EAAMoJ,MAIR,GAAIo8H,EAAShpI,OAAS,GAAKgrI,EAAM/B,aAAeD,EAAShpI,OAAQ,CAC/D,IAAK8lC,EAAQ4kG,GAAW1B,EAASgC,EAAM/B,cACvC+B,EAAM/B,cAAgB,EAClB+B,EAAM/B,eAAiBD,EAAShpI,SAClCgrI,EAAMhC,SAAW,GACjBgC,EAAM/B,aAAe,GAEvBvpI,KAAK+N,OAAOk9H,WAAa7kG,EACzB,IACE,OAAO4kG,EAAQhiD,EAAKu7C,UAAWvkI,KAAK+pI,SACpC,MAAOzhI,GACP,MAAMtI,KAAKkrI,YAAY5iI,EAAG0gF,IAI9B,GAAuB,IAAnBsiD,EAAM/8D,SAAgB,CACxB,IACIqL,EADArL,EAAW+8D,EAAM/8D,SAErB,KAAQqL,EAAQoP,EAAKC,MAAMD,EAAKk6C,QAAQ30D,KAEtC,GADAya,EAAKk6C,QAAQ30D,IAAa,GACrBqL,EAAMgpD,GAGT,OAFAhpD,EAAMgpD,IAAW,OACjB9+H,EAAMjD,KAAKsoI,EAAQvvD,IAIvB0xD,EAAM/8D,SAAW,SACVya,EAAKk6C,QAAQ30D,GAGtB,IAAI66D,EAASkC,EAAMlC,OACnB,KAAOkC,EAAMjC,WAAaD,EAAO9oI,QAAQ,CACvC,IAAI63B,EAAQixG,EAAOkC,EAAMjC,YAEzB,GADAiC,EAAMjC,YAAc,EA/dT,IAgePlxG,EAKF,YAJI6wD,EAAKC,OAASD,EAAKC,MAAM3oF,SAC3B0oF,EAAK45C,IAAW,EAChB0I,EAAM/8D,SAAWya,EAAKi6C,gBAGnB,GAAIjjI,KAAK2qI,UAAUxyG,GAExB,YADAmzG,EAAMhC,SAAWtpI,KAAK2qI,UAAUxyG,IAIpCr0B,EAAMoJ,OAIVy4H,EAAW4F,gBAAkB7G,IAC3B+E,EAAU/E,GAGZjtI,EAAOC,QAAUiuI,EACjBA,EAAW3nD,QAAU2nD,EAErBx8C,EAAK28C,mBAAmBH,GACxBv6C,EAAS06C,mBAAmBH,2BCniB5B,IAAI9hG,EAAO,CACT73B,MAAM6pD,EAAQ21E,EAAY52E,GACxB,IAAI4P,EAAQ,GACRyrB,EAAU,GACVjkF,GAAQ,EAERmiE,EAAO,EACP4sB,GAAQ,EACR7qE,GAAS,EAEb,IAAK,IAAIu7G,KAAU51E,EACb3lC,EACFA,GAAS,EACW,OAAXu7G,EACTv7G,GAAS,EACA6qE,EACL0wC,IAAW1wC,IACbA,GAAQ,GAEU,MAAX0wC,GAA6B,MAAXA,EAC3B1wC,EAAQ0wC,EACY,MAAXA,EACTt9D,GAAQ,EACY,MAAXs9D,EACLt9D,EAAO,IAAGA,GAAQ,GACJ,IAATA,GACLq9D,EAAWzvH,SAAS0vH,KAASz/H,GAAQ,GAGvCA,GACc,KAAZikF,GAAgBzrB,EAAM3jE,KAAKovF,EAAQ5nF,QACvC4nF,EAAU,GACVjkF,GAAQ,GAERikF,GAAWw7C,EAKf,OADI72E,GAAoB,KAAZq7B,IAAgBzrB,EAAM3jE,KAAKovF,EAAQ5nF,QACxCm8D,GAGTsP,MAAMje,GAEGhyB,EAAK73B,MAAM6pD,EADL,CAAC,IAAK,KAAM,OAI3B+iB,MAAM/iB,GACGhyB,EAAK73B,MAAM6pD,EAAQ,CAAC,MAAM,IAIrCp+D,EAAOC,QAAUmsC,EACjBA,EAAKm6C,QAAUn6C,kDCrDf,IAAI,kBAAEwiG,EAAiB,mBAAEC,GAAuB,EAAQ,QACpD,QAAEoF,EAAO,QAAE5zI,EAAO,SAAE24F,EAAQ,IAAEw5B,GAAQ,EAAQ,QAC9C,cAAEuc,GAAkB,EAAQ,OAE5BP,EAAQ,EAAQ,OAEhBW,EAAqBjpF,QAAQ0oF,GAAqBC,GAClDO,EAAgBlpF,QAAQ+tF,GAAW5zI,GAAW24F,GAAYw5B,GAiU9DxyH,EAAOC,QA/TP,MACEgX,YAAYnG,EAAWwxE,EAAMniF,EAAM+zI,GACjC3rI,KAAKuI,UAAYA,EACjBvI,KAAK4rI,QAAUh0I,EAAK8a,KAAO,GAC3B1S,KAAK+5E,KAAOA,EACZ/5E,KAAKpI,KAAOA,EACZoI,KAAK20C,IAAMg3F,EAGb5nB,QACE,YAA6B,IAAlB/jH,KAAKpI,KAAK8a,MACV1S,KAAKpI,KAAK8a,IAEd1S,KAAK6rI,WAAWvrI,OAAS,EAGlCurI,WACE,IAAK7rI,KAAK8rI,aAER,GADA9rI,KAAK8rI,aAAe,GAChB9rI,KAAK+5E,KACP/5E,KAAK+5E,KAAKopD,MAAKn6C,IACb,GAAIA,EAAKhoF,QAAUgoF,EAAKhoF,OAAOm5D,MAAMznD,IAAK,CACxC,IAAIA,EAAMs2E,EAAKhoF,OAAOm5D,MAAMznD,IACvB1S,KAAK8rI,aAAa/vH,SAASrJ,IAC9B1S,KAAK8rI,aAAajrI,KAAK6R,WAIxB,CACL,IAAIynD,EAAQ,IAAI8rE,EAAMjmI,KAAK20C,IAAK30C,KAAKpI,MACjCuiE,EAAMznD,KAAK1S,KAAK8rI,aAAajrI,KAAKs5D,EAAMznD,KAIhD,OAAO1S,KAAK8rI,aAGdC,WACE,QAAmC,IAAxB/rI,KAAK4rI,QAAQ/B,OACtB,OAAO7pI,KAAK4rI,QAAQ/B,OAGtB,IAAImC,EAAahsI,KAAK4rI,QAAQI,WAC9B,YAA0B,IAAfA,IAA6C,IAAfA,MAIrChsI,KAAK6rI,WAAWvrI,QACXN,KAAK6rI,WAAW/5H,MAAK1R,GAAKA,EAAEypI,UAKvCoC,mBACE,YAA2C,IAAhCjsI,KAAK4rI,QAAQM,eACflsI,KAAK4rI,QAAQM,gBAElBlsI,KAAK6rI,WAAWvrI,QACXN,KAAK6rI,WAAW/5H,MAAK1R,GAAKA,EAAE+rI,gBAKvCC,kBACE,IAAgC,IAA5BpsI,KAAK4rI,QAAQI,WAEjB,GAAIhsI,KAAK+5E,KAAM,CACb,IAAIiP,EACJ,IAAK,IAAI5oF,EAAIJ,KAAK+5E,KAAKkP,MAAM3oF,OAAS,EAAGF,GAAK,EAAGA,IAC/C4oF,EAAOhpF,KAAK+5E,KAAKkP,MAAM7oF,GACL,YAAd4oF,EAAK/qF,MACwC,IAA7C+qF,EAAK10E,KAAKhY,QAAQ,wBACpB0D,KAAK+5E,KAAK8pD,YAAYzjI,QAGjBJ,KAAK20C,MACd30C,KAAK20C,IAAM30C,KAAK20C,IAAI3rC,QAAQ,4BAA6B,KAI7DqjI,oBACE,IAAIC,EAAU,GACd,GAAItsI,KAAK+5E,KACP/5E,KAAK+5E,KAAKopD,MAAKn6C,IACb,GAAIA,EAAKhoF,OAAQ,CACf,IAAImD,EAAO6kF,EAAKhoF,OAAOm5D,MAAMh2D,KACzBA,IAASmoI,EAAQnoI,KACnBmoI,EAAQnoI,IAAQ,EAChBnE,KAAK0S,IAAI65H,iBACPvsI,KAAKwsI,MAAMxsI,KAAK2J,KAAKxF,IACrB6kF,EAAKhoF,OAAOm5D,MAAMxlB,eAKrB,GAAI30C,KAAK20C,IAAK,CACnB,IAAIxwC,EAAOnE,KAAKpI,KAAKuM,KACjBnE,KAAKwsI,MAAMxsI,KAAK2J,KAAK3J,KAAKpI,KAAKuM,OAC/B,cACJnE,KAAK0S,IAAI65H,iBAAiBpoI,EAAMnE,KAAK20C,MAIzC83F,gBACE,IAAK,IAAIzkD,KAAQhoF,KAAK6rI,WAAY,CAChC,IAEIn5H,EAFAvO,EAAOnE,KAAKwsI,MAAMxsI,KAAK2J,KAAKq+E,EAAK+8C,OACjChrD,EAAOiO,EAAKjO,MAAQ2xD,EAAQ1jD,EAAK+8C,OAGD,IAAhC/kI,KAAK4rI,QAAQM,gBACfx5H,EAAM,IAAI2zH,EAAkBr+C,EAAK1zE,MAC7B5B,EAAIw5H,iBACNx5H,EAAIw5H,eAAiBx5H,EAAIw5H,eAAex5H,KAAI,IAAM,SAGpDA,EAAMs1E,EAAK++C,WAGb/mI,KAAK0S,IAAIg6H,eAAeh6H,EAAKvO,EAAMnE,KAAKwsI,MAAMxsI,KAAK2J,KAAKowE,MAI5D4yD,eACE,QAAI3sI,KAAK+rI,kBAG8B,IAA5B/rI,KAAK4rI,QAAQI,WACfhsI,KAAK4rI,QAAQI,YAElBhsI,KAAK6rI,WAAWvrI,QACXN,KAAK6rI,WAAW/5H,MAAK1R,GAAKA,EAAE4rI,cAKvCY,SAASz+H,GACP,OAAIzB,EACKA,EAAOvI,KAAKgK,GAAKpH,SAAS,UAE1B2E,OAAOzQ,KAAKH,SAASC,mBAAmBoT,KAInD0+H,gBACE,IAAIz9H,EAGFA,EADEpP,KAAK+rI,WAEL,gCAAkC/rI,KAAK4sI,SAAS5sI,KAAK0S,IAAI3L,YACf,iBAA5B/G,KAAK4rI,QAAQI,WACnBhsI,KAAK4rI,QAAQI,WACqB,mBAA5BhsI,KAAK4rI,QAAQI,WACnBhsI,KAAK4rI,QAAQI,WAAWhsI,KAAKpI,KAAKqhH,GAAIj5G,KAAK+5E,MAE3C/5E,KAAK8sI,aAAe,OAEhC,IAAIC,EAAM,KACN/sI,KAAK20C,IAAI54B,SAAS,UAASgxH,EAAM,QAErC/sI,KAAK20C,KAAOo4F,EAAM,wBAA0B39H,EAAU,MAGxD09H,aACE,OAAI9sI,KAAKpI,KAAKqhH,GACLj5G,KAAK2J,KAAK3J,KAAKpI,KAAKqhH,IAClBj5G,KAAKpI,KAAKuM,KACZnE,KAAK2J,KAAK3J,KAAKpI,KAAKuM,MAEpB,SAIX6oI,cACE,GAAIhtI,KAAK+5E,KACP/5E,KAAKitI,sBACA,GAA+B,IAA3BjtI,KAAK6rI,WAAWvrI,OAAc,CACvC,IAAI0nF,EAAOhoF,KAAK6rI,WAAW,GAAG9E,WAC9B/+C,EAAK+8C,KAAO/kI,KAAK8sI,aACjB9sI,KAAK0S,IAAM4zH,EAAmB4G,cAAcllD,QAE5ChoF,KAAK0S,IAAM,IAAI4zH,EAAmB,CAAEvB,KAAM/kI,KAAK8sI,eAC/C9sI,KAAK0S,IAAIy6H,WAAW,CAClBnsI,OAAQhB,KAAKpI,KAAKuM,KACdnE,KAAKwsI,MAAMxsI,KAAK2J,KAAK3J,KAAKpI,KAAKuM,OAC/B,cACJipI,UAAW,CAAEnhI,KAAM,EAAGwmG,OAAQ,GAC9BnvE,SAAU,CAAEr3B,KAAM,EAAGwmG,OAAQ,KAQjC,OAJIzyG,KAAKisI,oBAAoBjsI,KAAKqsI,oBAC9BrsI,KAAK+5E,MAAQ/5E,KAAK6rI,WAAWvrI,OAAS,GAAGN,KAAKysI,gBAC9CzsI,KAAK2sI,gBAAgB3sI,KAAK6sI,gBAE1B7sI,KAAK+rI,WACA,CAAC/rI,KAAK20C,KAEN,CAAC30C,KAAK20C,IAAK30C,KAAK0S,KAI3B/I,KAAKo7H,GACH,GAA0B,IAAtBA,EAAKzoI,QAAQ,KAAY,OAAOyoI,EACpC,GAAI,YAAYv6H,KAAKu6H,GAAO,OAAOA,EACnC,GAAI/kI,KAAK4rI,QAAQyB,SAAU,OAAOtI,EAElC,IAAI5gI,EAAOnE,KAAKpI,KAAKqhH,GAAKyyB,EAAQ1rI,KAAKpI,KAAKqhH,IAAM,IAOlD,MALuC,iBAA5Bj5G,KAAK4rI,QAAQI,aACtB7nI,EAAOunI,EAAQ5zI,EAAQqM,EAAMnE,KAAK4rI,QAAQI,cAGrCv7C,EAAStsF,EAAM4gI,GAIxByH,MAAM7iI,GAIJ,MAHY,OAARsgH,IACFtgH,EAAOA,EAAKX,QAAQ,MAAO,MAEtBmwF,UAAUxvF,GAAMX,QAAQ,QAASjO,oBAG1CuyI,WAAWtkD,GACT,GAAIhpF,KAAK4rI,QAAQznI,KACf,OAAOnE,KAAKwsI,MAAMxsI,KAAK4rI,QAAQznI,MAC1B,GAAInE,KAAK4rI,QAAQyB,SAAU,CAChC,GAAI7G,EACF,OAAOA,EAAcx9C,EAAKhoF,OAAOm5D,MAAMh2D,MAAM4C,WAE7C,MAAM,IAAI3O,MACR,gEAIJ,OAAO4H,KAAKwsI,MAAMxsI,KAAK2J,KAAKq/E,EAAKhoF,OAAOm5D,MAAMh2D,OAIlD8oI,iBACEjtI,KAAK20C,IAAM,GACX30C,KAAK0S,IAAM,IAAI4zH,EAAmB,CAAEvB,KAAM/kI,KAAK8sI,eAE/C,IAUIxH,EAAO1wE,EAVP3oD,EAAO,EACPwmG,EAAS,EAET86B,EAAW,cACXC,EAAU,CACZxsI,OAAQ,GACRosI,UAAW,CAAEnhI,KAAM,EAAGwmG,OAAQ,GAC9BnvE,SAAU,CAAEr3B,KAAM,EAAGwmG,OAAQ,IAI/BzyG,KAAKuI,UAAUvI,KAAK+5E,MAAM,CAAC5rE,EAAK66E,EAAM/qF,KA4BpC,GA3BA+B,KAAK20C,KAAOxmC,EAER66E,GAAiB,QAAT/qF,IACVuvI,EAAQJ,UAAUnhI,KAAOA,EACzBuhI,EAAQJ,UAAU36B,OAASA,EAAS,EAChCzpB,EAAKhoF,QAAUgoF,EAAKhoF,OAAOu6D,OAC7BiyE,EAAQxsI,OAAShB,KAAKstI,WAAWtkD,GACjCwkD,EAAQlqG,SAASr3B,KAAO+8E,EAAKhoF,OAAOu6D,MAAMtvD,KAC1CuhI,EAAQlqG,SAASmvE,OAASzpB,EAAKhoF,OAAOu6D,MAAMk3C,OAAS,EACrDzyG,KAAK0S,IAAIy6H,WAAWK,KAEpBA,EAAQxsI,OAASusI,EACjBC,EAAQlqG,SAASr3B,KAAO,EACxBuhI,EAAQlqG,SAASmvE,OAAS,EAC1BzyG,KAAK0S,IAAIy6H,WAAWK,KAIxBlI,EAAQn3H,EAAIhE,MAAM,OACdm7H,GACFr5H,GAAQq5H,EAAMhlI,OACds0D,EAAOzmD,EAAIs3D,YAAY,MACvBgtC,EAAStkG,EAAI7N,OAASs0D,GAEtB69C,GAAUtkG,EAAI7N,OAGZ0oF,GAAiB,UAAT/qF,EAAkB,CAC5B,IAAIy0B,EAAIs2D,EAAKllD,QAAU,CAAEsgG,KAAM,KACb,SAAdp7C,EAAK/qF,MAAmB+qF,IAASt2D,EAAEkiC,MAAQliC,EAAE0xG,KAAKnmC,aAChDjV,EAAKhoF,QAAUgoF,EAAKhoF,OAAO08D,KAC7B8vE,EAAQxsI,OAAShB,KAAKstI,WAAWtkD,GACjCwkD,EAAQlqG,SAASr3B,KAAO+8E,EAAKhoF,OAAO08D,IAAIzxD,KACxCuhI,EAAQlqG,SAASmvE,OAASzpB,EAAKhoF,OAAO08D,IAAI+0C,OAAS,EACnD+6B,EAAQJ,UAAUnhI,KAAOA,EACzBuhI,EAAQJ,UAAU36B,OAASA,EAAS,EACpCzyG,KAAK0S,IAAIy6H,WAAWK,KAEpBA,EAAQxsI,OAASusI,EACjBC,EAAQlqG,SAASr3B,KAAO,EACxBuhI,EAAQlqG,SAASmvE,OAAS,EAC1B+6B,EAAQJ,UAAUnhI,KAAOA,EACzBuhI,EAAQJ,UAAU36B,OAASA,EAAS,EACpCzyG,KAAK0S,IAAIy6H,WAAWK,SAO9BzC,WAEE,GADA/qI,KAAKosI,kBACDvF,GAAiBD,GAAsB5mI,KAAK+jH,QAC9C,OAAO/jH,KAAKgtI,cACP,CACL,IAAIj/H,EAAS,GAIb,OAHA/N,KAAKuI,UAAUvI,KAAK+5E,MAAM35E,IACxB2N,GAAU3N,KAEL,CAAC2N,oCCnUd,IAAIg6H,EAAe,EAAQ,OACvBx/H,EAAY,EAAQ,OAEpBH,GADW,EAAQ,OACX,EAAQ,QACpB,MAAM4/H,EAAS,EAAQ,OAEvB,MAAMyF,EACJ/+H,YAAYg7H,EAAW/0F,EAAK/8C,GAQ1B,IAAImiF,EAPJplC,EAAMA,EAAI5tC,WACV/G,KAAK2pI,aAAc,EAEnB3pI,KAAK0tI,WAAahE,EAClB1pI,KAAK2tI,KAAOh5F,EACZ30C,KAAK4tI,MAAQh2I,EACboI,KAAK6tI,UAAOxwI,EAGZ,IAAI8Q,EAAM5F,EACVvI,KAAK+N,OAAS,IAAIi6H,EAAOhoI,KAAK0tI,WAAY3zD,EAAM/5E,KAAK4tI,OACrD5tI,KAAK+N,OAAO4mC,IAAMA,EAElB,IAAI7R,EAAO9iC,KACXgE,OAAOE,eAAelE,KAAK+N,OAAQ,OAAQ,CACzCid,IAAG,IACM8X,EAAKi3C,OAIhB,IAAIrnE,EAAM,IAAIq1H,EAAa55H,EAAK4rE,EAAM/5E,KAAK4tI,MAAOj5F,GAClD,GAAIjiC,EAAIqxG,QAAS,CACf,IAAK+pB,EAAcC,GAAgBr7H,EAAIq4H,WACnC+C,IACF9tI,KAAK+N,OAAO4mC,IAAMm5F,GAEhBC,IACF/tI,KAAK+N,OAAO2E,IAAMq7H,IAKZxsB,IAAPz+C,OAAOy+C,eACV,MAAO,eAGLmoB,gBACF,OAAO1pI,KAAK+N,OAAO27H,UAGjB9xI,WACF,OAAOoI,KAAK+N,OAAOnW,KAGjB+8C,UACF,OAAO30C,KAAK+N,OAAO4mC,IAGjBvlC,cACF,OAAOpP,KAAK+N,OAAO4mC,IAGjBjiC,UACF,OAAO1S,KAAK+N,OAAO2E,IAGjBqnE,WACF,GAAI/5E,KAAKguI,MACP,OAAOhuI,KAAKguI,MAGd,IAAIj0D,EACA/xE,EAASI,EAEb,IACE2xE,EAAO/xE,EAAOhI,KAAK2tI,KAAM3tI,KAAK4tI,OAC9B,MAAOzqI,GACPnD,KAAKmD,MAAQA,EAGf,GAAInD,KAAKmD,MACP,MAAMnD,KAAKmD,MAGX,OADAnD,KAAKguI,MAAQj0D,EACNA,EAIPrsD,eACF,MAAO,GAGTu8G,WACE,MAAO,GAGTljI,WACE,OAAO/G,KAAK2tI,KAGd70I,KAAKmK,EAAaC,GAWhB,OAAOlD,KAAKyxC,QAAQ34C,KAAKmK,EAAaC,GAGxCnK,MAAMmK,GACJ,OAAOlD,KAAKyxC,QAAQ14C,MAAMmK,GAG5BgnI,QAAQC,GACN,OAAOnqI,KAAKyxC,QAAQ34C,KAAKqxI,EAAWA,GAGtC14F,QACE,OAAIzxC,KAAKmD,MAActL,QAAQE,OAAOiI,KAAKmD,OACpCtL,QAAQC,QAAQkI,KAAK+N,QAG9B8yE,OACE,GAAI7gF,KAAKmD,MAAO,MAAMnD,KAAKmD,MAC3B,OAAOnD,KAAK+N,QAIhBtW,EAAOC,QAAU+1I,EACjBA,EAAazvD,QAAUyvD,gCCpIvB,IAAI,QAAE7K,EAAO,GAAEC,GAAO,EAAQ,OAC1BiC,EAAiB,EAAQ,OACzBmJ,EAAc,EAAQ,MACtB1lI,EAAY,EAAQ,OAExB,SAASskF,EAAUtoF,EAAKu/B,GACtB,IAAIoqG,EAAS,IAAI3pI,EAAImK,YAErB,IAAK,IAAItO,KAAKmE,EAAK,CACjB,IAAKP,OAAOhF,UAAUuP,eAAerN,KAAKqD,EAAKnE,GAE7C,SAEF,GAAU,eAANA,EAAoB,SACxB,IAAIxE,EAAQ2I,EAAInE,GACZnC,SAAcrC,EAER,WAANwE,GAA2B,WAATnC,EAChB6lC,IAAQoqG,EAAO9tI,GAAK0jC,GACT,WAAN1jC,EACT8tI,EAAO9tI,GAAKxE,EACHgH,MAAMiD,QAAQjK,GACvBsyI,EAAO9tI,GAAKxE,EAAM8W,KAAIiiD,GAAKk4B,EAAUl4B,EAAGu5E,MAE3B,WAATjwI,GAA+B,OAAVrC,IAAgBA,EAAQixF,EAAUjxF,IAC3DsyI,EAAO9tI,GAAKxE,GAIhB,OAAOsyI,EAGT,MAAM7gD,EACJ3+E,YAAY/M,EAAW,IACrB3B,KAAKokI,KAAO,GACZpkI,KAAK4iI,IAAW,EAChB5iI,KAAK6iI,IAAM,EAEX,IAAK,IAAIzhI,KAAQO,EACf,GAAa,UAATP,EAAkB,CACpBpB,KAAKipF,MAAQ,GACb,IAAK,IAAID,KAAQrnF,EAASP,GACE,mBAAf4nF,EAAK34B,MACdrwD,KAAKiN,OAAO+7E,EAAK34B,SAEjBrwD,KAAKiN,OAAO+7E,QAIhBhpF,KAAKoB,GAAQO,EAASP,GAK5B+B,MAAM1C,EAAS7I,EAAO,IACpB,GAAIoI,KAAKgB,OAAQ,CACf,IAAI,MAAEu6D,EAAK,IAAEmC,GAAQ19D,KAAKmuI,QAAQv2I,GAClC,OAAOoI,KAAKgB,OAAOm5D,MAAMh3D,MACvB1C,EACA,CAAEwL,KAAMsvD,EAAMtvD,KAAMwmG,OAAQl3C,EAAMk3C,QAClC,CAAExmG,KAAMyxD,EAAIzxD,KAAMwmG,OAAQ/0C,EAAI+0C,QAC9B76G,GAGJ,OAAO,IAAIktI,EAAerkI,GAG5BkN,KAAKI,EAAQuG,EAAM1c,GACjB,IAAIkC,EAAO,CAAEkvF,KAAMhpF,MACnB,IAAK,IAAII,KAAKxI,EAAMkC,EAAKsG,GAAKxI,EAAKwI,GACnC,OAAO2N,EAAOJ,KAAK2G,EAAMxa,GAG3BwQ,SAKE,OAJItK,KAAK8jC,QACP9jC,KAAK8jC,OAAO+/F,YAAY7jI,MAE1BA,KAAK8jC,YAASzmC,EACP2C,KAGT+G,SAAS+jI,EAAcviI,GACjBuiI,EAAYviI,YAAWuiI,EAAcA,EAAYviI,WACrD,IAAIwF,EAAS,GAIb,OAHA+8H,EAAY9qI,MAAMI,IAChB2N,GAAU3N,KAEL2N,EAGTvJ,OAAOq+B,EAAY,IACjB,IAAK,IAAIzhC,KAAQyhC,EACf7iC,KAAKoB,GAAQyhC,EAAUzhC,GAEzB,OAAOpB,KAGTqwD,MAAMxtB,EAAY,IAChB,IAAIqrG,EAASrhD,EAAU7sF,MACvB,IAAK,IAAIoB,KAAQyhC,EACfqrG,EAAO9sI,GAAQyhC,EAAUzhC,GAE3B,OAAO8sI,EAGTE,YAAYvrG,EAAY,IACtB,IAAIqrG,EAASluI,KAAKqwD,MAAMxtB,GAExB,OADA7iC,KAAK8jC,OAAOhN,aAAa92B,KAAMkuI,GACxBA,EAGTG,WAAWxrG,EAAY,IACrB,IAAIqrG,EAASluI,KAAKqwD,MAAMxtB,GAExB,OADA7iC,KAAK8jC,OAAOuQ,YAAYr0C,KAAMkuI,GACvBA,EAGTlnF,eAAeiiC,GACb,GAAIjpF,KAAK8jC,OAAQ,CACf,IAAIwqG,EAAWtuI,KACXuuI,GAAY,EAChB,IAAK,IAAIvlD,KAAQC,EACXD,IAAShpF,KACXuuI,GAAY,EACHA,GACTvuI,KAAK8jC,OAAOuQ,YAAYi6F,EAAUtlD,GAClCslD,EAAWtlD,GAEXhpF,KAAK8jC,OAAOhN,aAAaw3G,EAAUtlD,GAIlCulD,GACHvuI,KAAKsK,SAIT,OAAOtK,KAGT+hE,OACE,IAAK/hE,KAAK8jC,OAAQ,OAClB,IAAIhjC,EAAQd,KAAK8jC,OAAOhjC,MAAMd,MAC9B,OAAOA,KAAK8jC,OAAOmlD,MAAMnoF,EAAQ,GAGnCknF,OACE,IAAKhoF,KAAK8jC,OAAQ,OAClB,IAAIhjC,EAAQd,KAAK8jC,OAAOhjC,MAAMd,MAC9B,OAAOA,KAAK8jC,OAAOmlD,MAAMnoF,EAAQ,GAGnCujI,OAAOp+F,GAEL,OADAjmC,KAAK8jC,OAAOhN,aAAa92B,KAAMimC,GACxBjmC,KAGT0hD,MAAMzb,GAEJ,OADAjmC,KAAK8jC,OAAOuQ,YAAYr0C,KAAMimC,GACvBjmC,KAGT+5E,OACE,IAAIhsE,EAAS/N,KACb,KAAO+N,EAAO+1B,QAAiC,aAAvB/1B,EAAO+1B,OAAO7lC,MACpC8P,EAASA,EAAO+1B,OAElB,OAAO/1B,EAGTygI,IAAIxoI,EAAMyoI,GAER,OADU,IAAIR,GACHO,IAAIxuI,KAAMgG,EAAMyoI,GAG7B/K,UAAUC,UACD3jI,KAAKokI,KAAKC,cACVrkI,KAAKokI,KAAK1iF,MACZiiF,UAAoB3jI,KAAKokI,KAAKsK,QAGrClrI,OAAOoS,EAAG80G,GACR,IAAIikB,EAAQ,GACRC,EAAuB,MAAVlkB,EACjBA,EAASA,GAAU,IAAIl7C,IACvB,IAAIq/D,EAAkB,EAEtB,IAAK,IAAIztI,KAAQpB,KAAM,CACrB,IAAKgE,OAAOhF,UAAUuP,eAAerN,KAAKlB,KAAMoB,GAE9C,SAEF,GAAa,WAATA,GAA8B,eAATA,EAAuB,SAChD,IAAIxF,EAAQoE,KAAKoB,GAEjB,GAAIwB,MAAMiD,QAAQjK,GAChB+yI,EAAMvtI,GAAQxF,EAAM8W,KAAItS,GACL,iBAANA,GAAkBA,EAAEoD,OACtBpD,EAAEoD,OAAO,KAAMknH,GAEftqH,SAGN,GAAqB,iBAAVxE,GAAsBA,EAAM4H,OAC5CmrI,EAAMvtI,GAAQxF,EAAM4H,OAAO,KAAMknH,QAC5B,GAAa,WAATtpH,EAAmB,CAC5B,IAAI8pD,EAAUw/D,EAAO1/F,IAAIpvB,EAAMu+D,OAChB,MAAXjP,IACFA,EAAU2jF,EACVnkB,EAAOngG,IAAI3uB,EAAMu+D,MAAO00E,GACxBA,KAEFF,EAAMvtI,GAAQ,CACZ8pD,UACAqQ,MAAO3/D,EAAM2/D,MACbmC,IAAK9hE,EAAM8hE,UAGbixE,EAAMvtI,GAAQxF,EAQlB,OAJIgzI,IACFD,EAAMjkB,OAAS,IAAIA,EAAOrkH,QAAQqM,KAAIynD,GAASA,EAAM32D,YAGhDmrI,EAGTG,eAAehuI,GACb,IAAI+0D,EAAS71D,KAAK+G,WACd0rG,EAASzyG,KAAKgB,OAAOu6D,MAAMk3C,OAC3BxmG,EAAOjM,KAAKgB,OAAOu6D,MAAMtvD,KAE7B,IAAK,IAAI7L,EAAI,EAAGA,EAAIU,EAAOV,IACP,OAAdy1D,EAAOz1D,IACTqyG,EAAS,EACTxmG,GAAQ,GAERwmG,GAAU,EAId,MAAO,CAAExmG,OAAMwmG,UAGjBs8B,WAAWn3I,GACT,IAAIswE,EAAMloE,KAAKgB,OAAOu6D,MACtB,GAAI3jE,EAAKkJ,MACPonE,EAAMloE,KAAK8uI,eAAel3I,EAAKkJ,YAC1B,GAAIlJ,EAAK2pE,KAAM,CACpB,IAAIzgE,EAAQd,KAAK+G,WAAWzK,QAAQ1E,EAAK2pE,OAC1B,IAAXzgE,IAAconE,EAAMloE,KAAK8uI,eAAehuI,IAE9C,OAAOonE,EAGTimE,QAAQv2I,GACN,IAAI2jE,EAAQ,CACVtvD,KAAMjM,KAAKgB,OAAOu6D,MAAMtvD,KACxBwmG,OAAQzyG,KAAKgB,OAAOu6D,MAAMk3C,QAExB/0C,EAAM19D,KAAKgB,OAAO08D,IAClB,CACEzxD,KAAMjM,KAAKgB,OAAO08D,IAAIzxD,KACtBwmG,OAAQzyG,KAAKgB,OAAO08D,IAAI+0C,OAAS,GAEnC,CACExmG,KAAMsvD,EAAMtvD,KACZwmG,OAAQl3C,EAAMk3C,OAAS,GAG7B,GAAI76G,EAAK2pE,KAAM,CACb,IAAIzgE,EAAQd,KAAK+G,WAAWzK,QAAQ1E,EAAK2pE,OAC1B,IAAXzgE,IACFy6D,EAAQv7D,KAAK8uI,eAAehuI,GAC5B48D,EAAM19D,KAAK8uI,eAAehuI,EAAQlJ,EAAK2pE,KAAKjhE,cAG1C1I,EAAK2jE,MACPA,EAAQ,CACNtvD,KAAMrU,EAAK2jE,MAAMtvD,KACjBwmG,OAAQ76G,EAAK2jE,MAAMk3C,QAEZ76G,EAAKkJ,QACdy6D,EAAQv7D,KAAK8uI,eAAel3I,EAAKkJ,QAG/BlJ,EAAK8lE,IACPA,EAAM,CACJzxD,KAAMrU,EAAK8lE,IAAIzxD,KACfwmG,OAAQ76G,EAAK8lE,IAAI+0C,QAEV76G,EAAKg0F,SACdluB,EAAM19D,KAAK8uI,eAAel3I,EAAKg0F,UACtBh0F,EAAKkJ,QACd48D,EAAM19D,KAAK8uI,eAAel3I,EAAKkJ,MAAQ,IAW3C,OANE48D,EAAIzxD,KAAOsvD,EAAMtvD,MAChByxD,EAAIzxD,OAASsvD,EAAMtvD,MAAQyxD,EAAI+0C,QAAUl3C,EAAMk3C,UAEhD/0C,EAAM,CAAEzxD,KAAMsvD,EAAMtvD,KAAMwmG,OAAQl3C,EAAMk3C,OAAS,IAG5C,CAAEl3C,QAAOmC,OAGlB4mE,oBACE,MAAO,CACL/5G,IAAG,CAACy+D,EAAMhjF,EAAMpK,KACVotF,EAAKhjF,KAAUpK,IACnBotF,EAAKhjF,GAAQpK,EAEF,SAAToK,GACS,UAATA,GACS,SAATA,GACS,WAATA,GACS,cAATA,GAES,SAATA,GAEAgjF,EAAKy6C,cAX0B,GAgBnCz4G,IAAG,CAACg+D,EAAMhjF,IACK,YAATA,EACKgjF,EACW,SAAThjF,EACF,IAAMgjF,EAAKjP,OAAOwqD,UAElBv7C,EAAKhjF,IAMpBu+H,UAIE,OAHKvkI,KAAKgvI,aACRhvI,KAAKgvI,WAAa,IAAIp1C,MAAM55F,KAAMA,KAAKskI,sBAElCtkI,KAAKgvI,WAGd5L,WAAWjgI,GAET,GADAA,EAAM8rI,YAAcjvI,KAChBmD,EAAMW,OAAS9D,KAAKgB,QAAU,aAAawJ,KAAKrH,EAAMW,OAAQ,CAChE,IAAIuxD,EAAIr1D,KAAKgB,OACbmC,EAAMW,MAAQX,EAAMW,MAAMkF,QACxB,aACA,KAAKqsD,EAAE8E,MAAMh2D,QAAQkxD,EAAEkG,MAAMtvD,QAAQopD,EAAEkG,MAAMk3C,YAGjD,OAAOtvG,EAGTsgI,YACE,GAAIzjI,KAAK4iI,GAAU,CACjB5iI,KAAK4iI,IAAW,EAChB,IAAI7gE,EAAO/hE,KACX,KAAQ+hE,EAAOA,EAAKj+B,QAClBi+B,EAAK6gE,IAAW,GAKlBH,cACF,OAAOziI,MAIXvI,EAAOC,QAAU21F,EACjBA,EAAKrP,QAAUqP,gCCxXf,IAAIk1C,EAAY,EAAQ,OACpBlhC,EAAS,EAAQ,OACjB4kC,EAAQ,EAAQ,OAEpB,SAAS79H,EAAMusC,EAAK/8C,GAClB,IAAIuiE,EAAQ,IAAI8rE,EAAMtxF,EAAK/8C,GACvBoQ,EAAS,IAAIq5F,EAAOlnC,GACxB,IACEnyD,EAAOI,QACP,MAAOE,GAqBP,MAAMA,EAGR,OAAON,EAAO+xE,KAGhBtiF,EAAOC,QAAU0Q,EACjBA,EAAM41E,QAAU51E,EAEhBm6H,EAAUkC,cAAcr8H,iCCvCxB,IAAI06H,EAAc,EAAQ,OACtBl+B,EAAY,EAAQ,OACpBtb,EAAU,EAAQ,OAClBk5C,EAAS,EAAQ,OACjBr5C,EAAO,EAAQ,OACfw5C,EAAO,EAAQ,MAEnB,MAAMuM,EAAwB,CAC5BrhF,OAAO,EACPimB,OAAO,GA+kBTr8E,EAAOC,QApkBP,MACEgX,YAAYyrD,GACVn6D,KAAKm6D,MAAQA,EAEbn6D,KAAK+5E,KAAO,IAAIoP,EAChBnpF,KAAKiwF,QAAUjwF,KAAK+5E,KACpB/5E,KAAK89G,OAAS,GACd99G,KAAKi+F,WAAY,EACjBj+F,KAAKmvI,gBAAiB,EAEtBnvI,KAAKovI,kBACLpvI,KAAK+5E,KAAK/4E,OAAS,CAAEm5D,QAAOoB,MAAO,CAAEmG,OAAQ,EAAGz1D,KAAM,EAAGwmG,OAAQ,IAGnE28B,kBACEpvI,KAAK4kG,UAAYA,EAAU5kG,KAAKm6D,OAGlC/xD,QACE,IAAIlI,EACJ,MAAQF,KAAK4kG,UAAUyqC,aAGrB,OAFAnvI,EAAQF,KAAK4kG,UAAU0qC,YAEfpvI,EAAM,IACZ,IAAK,QACHF,KAAK89G,QAAU59G,EAAM,GACrB,MAEF,IAAK,IACHF,KAAKuvI,cAAcrvI,GACnB,MAEF,IAAK,IACHF,KAAK09D,IAAIx9D,GACT,MAEF,IAAK,UACHF,KAAKooI,QAAQloI,GACb,MAEF,IAAK,UACHF,KAAKkoI,OAAOhoI,GACZ,MAEF,IAAK,IACHF,KAAKwvI,UAAUtvI,GACf,MAEF,QACEF,KAAK+7G,MAAM77G,GAIjBF,KAAKyvI,UAGPrH,QAAQloI,GACN,IAAI8oF,EAAO,IAAIM,EACftpF,KAAK41B,KAAKozD,EAAM9oF,EAAM,IACtB8oF,EAAKhoF,OAAO08D,IAAM19D,KAAK0vI,YAAYxvI,EAAM,IAAMA,EAAM,IAErD,IAAIoU,EAAOpU,EAAM,GAAG4F,MAAM,GAAI,GAC9B,GAAI,QAAQ0E,KAAK8J,GACf00E,EAAK10E,KAAO,GACZ00E,EAAKo7C,KAAKtsE,KAAOxjD,EACjB00E,EAAKo7C,KAAKlmE,MAAQ,OACb,CACL,IAAI/zD,EAAQmK,EAAKnK,MAAM,wBACvB6+E,EAAK10E,KAAOnK,EAAM,GAClB6+E,EAAKo7C,KAAKtsE,KAAO3tD,EAAM,GACvB6+E,EAAKo7C,KAAKlmE,MAAQ/zD,EAAM,IAI5BqlI,UAAUtvI,GACR,IAAI8oF,EAAO,IAAI25C,EACf3iI,KAAK41B,KAAKozD,EAAM9oF,EAAM,IACtB8oF,EAAKinB,SAAW,GAChBjnB,EAAKo7C,KAAKsK,QAAU,GACpB1uI,KAAKiwF,QAAUjH,EAGjB+yB,MAAMxgD,GACJ,IAAImC,GAAM,EACNz/D,EAAO,KACP0xI,GAAQ,EACRC,EAAU,KACV10D,EAAW,GACXi0D,EAAiB5zE,EAAM,GAAGt/C,WAAW,MAErC4zH,EAAS,GACT3vI,EAAQq7D,EACZ,KAAOr7D,GAAO,CAIZ,GAHAjC,EAAOiC,EAAM,GACb2vI,EAAOhvI,KAAKX,GAEC,MAATjC,GAAyB,MAATA,EACb2xI,IAASA,EAAU1vI,GACxBg7E,EAASr6E,KAAc,MAAT5C,EAAe,IAAM,UAC9B,GAAIkxI,GAAkBQ,GAAkB,MAAT1xI,EAC/B2xI,IAASA,EAAU1vI,GACxBg7E,EAASr6E,KAAK,UACT,GAAwB,IAApBq6E,EAAS56E,OAAc,CAChC,GAAa,MAATrC,EAAc,CAChB,GAAI0xI,EAEF,YADA3vI,KAAKgkI,KAAK6L,EAAQV,GAGlB,MAEG,GAAa,MAATlxI,EAET,YADA+B,KAAKmoI,KAAK0H,GAEL,GAAa,MAAT5xI,EAAc,CACvB+B,KAAK4kG,UAAUymB,KAAKwkB,EAAO3iI,OAC3BwwD,GAAM,EACN,MACkB,MAATz/D,IACT0xI,GAAQ,QAED1xI,IAASi9E,EAASA,EAAS56E,OAAS,KAC7C46E,EAAShuE,MACe,IAApBguE,EAAS56E,SAAcsvI,EAAU,OAGvC1vI,EAAQF,KAAK4kG,UAAU0qC,YAMzB,GAHItvI,KAAK4kG,UAAUyqC,cAAa3xE,GAAM,GAClCwd,EAAS56E,OAAS,GAAGN,KAAK8vI,gBAAgBF,GAE1ClyE,GAAOiyE,EAAO,CAChB,IAAKR,EACH,KAAOU,EAAOvvI,SACZJ,EAAQ2vI,EAAOA,EAAOvvI,OAAS,GAAG,GACpB,UAAVJ,GAA+B,YAAVA,IACzBF,KAAK4kG,UAAUymB,KAAKwkB,EAAO3iI,OAG/BlN,KAAKgkI,KAAK6L,EAAQV,QAElBnvI,KAAK+vI,YAAYF,GAIrB1H,KAAK0H,GACHA,EAAO3iI,MAEP,IAAI87E,EAAO,IAAI25C,EACf3iI,KAAK41B,KAAKozD,EAAM6mD,EAAO,GAAG,IAE1B7mD,EAAKo7C,KAAKsK,QAAU1uI,KAAKgwI,yBAAyBH,GAClD7vI,KAAKwuI,IAAIxlD,EAAM,WAAY6mD,GAC3B7vI,KAAKiwF,QAAUjH,EAGjBg7C,KAAK6L,EAAQV,GACX,IAAInmD,EAAO,IAAI85C,EACf9iI,KAAK41B,KAAKozD,EAAM6mD,EAAO,GAAG,IAE1B,IA2BI3vI,EA3BA00D,EAAOi7E,EAAOA,EAAOvvI,OAAS,GAUlC,IATgB,MAAZs0D,EAAK,KACP50D,KAAKi+F,WAAY,EACjB4xC,EAAO3iI,OAGT87E,EAAKhoF,OAAO08D,IAAM19D,KAAK0vI,YACrB96E,EAAK,IAAMA,EAAK,IA/KtB,SAA8Bi7E,GAC5B,IAAK,IAAIzvI,EAAIyvI,EAAOvvI,OAAS,EAAGF,GAAK,EAAGA,IAAK,CAC3C,IAAIF,EAAQ2vI,EAAOzvI,GACf8nE,EAAMhoE,EAAM,IAAMA,EAAM,GAC5B,GAAIgoE,EAAK,OAAOA,GA2KQ+nE,CAAqBJ,IAGrB,SAAjBA,EAAO,GAAG,IACO,IAAlBA,EAAOvvI,QAAcN,KAAK+vI,YAAYF,GAC1C7mD,EAAKo7C,KAAKC,QAAUwL,EAAO9sI,QAAQ,GAKrC,IAHAimF,EAAKhoF,OAAOu6D,MAAQv7D,KAAK0vI,YAAYG,EAAO,GAAG,IAE/C7mD,EAAKhjF,KAAO,GACL6pI,EAAOvvI,QAAQ,CACpB,IAAIrC,EAAO4xI,EAAO,GAAG,GACrB,GAAa,MAAT5xI,GAAyB,UAATA,GAA6B,YAATA,EACtC,MAEF+qF,EAAKhjF,MAAQ6pI,EAAO9sI,QAAQ,GAM9B,IAHAimF,EAAKo7C,KAAKsK,QAAU,GAGbmB,EAAOvvI,QAAQ,CAGpB,GAFAJ,EAAQ2vI,EAAO9sI,QAEE,MAAb7C,EAAM,GAAY,CACpB8oF,EAAKo7C,KAAKsK,SAAWxuI,EAAM,GAC3B,MAEiB,SAAbA,EAAM,IAAiB,KAAKsK,KAAKtK,EAAM,KACzCF,KAAK+vI,YAAY,CAAC7vI,IAEpB8oF,EAAKo7C,KAAKsK,SAAWxuI,EAAM,GAIV,MAAjB8oF,EAAKhjF,KAAK,IAA+B,MAAjBgjF,EAAKhjF,KAAK,KACpCgjF,EAAKo7C,KAAKC,QAAUr7C,EAAKhjF,KAAK,GAC9BgjF,EAAKhjF,KAAOgjF,EAAKhjF,KAAKF,MAAM,IAG9B,IACIi8D,EADAmuE,EAAc,GAElB,KAAOL,EAAOvvI,SACZyhE,EAAO8tE,EAAO,GAAG,GACJ,UAAT9tE,GAA6B,YAATA,IACxBmuE,EAAYrvI,KAAKgvI,EAAO9sI,SAG1B/C,KAAKmwI,wBAAwBN,GAE7B,IAAK,IAAIzvI,EAAIyvI,EAAOvvI,OAAS,EAAGF,GAAK,EAAGA,IAAK,CAE3C,GADAF,EAAQ2vI,EAAOzvI,GACgB,eAA3BF,EAAM,GAAGzC,cAAgC,CAC3CurF,EAAK+3C,WAAY,EACjB,IAAIlrE,EAAS71D,KAAKowI,WAAWP,EAAQzvI,GACrCy1D,EAAS71D,KAAKqwI,cAAcR,GAAUh6E,EACvB,gBAAXA,IAA0BmzB,EAAKo7C,KAAKrD,UAAYlrE,GACpD,MACK,GAA+B,cAA3B31D,EAAM,GAAGzC,cAA+B,CACjD,IAAIwQ,EAAQ4hI,EAAO/pI,MAAM,GACrBqI,EAAM,GACV,IAAK,IAAIwmD,EAAIv0D,EAAGu0D,EAAI,EAAGA,IAAK,CAC1B,IAAI12D,EAAOgQ,EAAM0mD,GAAG,GACpB,GAAgC,IAA5BxmD,EAAI9F,OAAO/L,QAAQ,MAAuB,UAAT2B,EACnC,MAEFkQ,EAAMF,EAAMf,MAAM,GAAKiB,EAEO,IAA5BA,EAAI9F,OAAO/L,QAAQ,OACrB0sF,EAAK+3C,WAAY,EACjB/3C,EAAKo7C,KAAKrD,UAAY5yH,EACtB0hI,EAAS5hI,GAIb,GAAiB,UAAb/N,EAAM,IAA+B,YAAbA,EAAM,GAChC,MAIU2vI,EAAO/9H,MAAK1R,GAAc,UAATA,EAAE,IAA2B,YAATA,EAAE,OAGnD4oF,EAAKo7C,KAAKsK,SAAWwB,EAAYx9H,KAAItS,GAAKA,EAAE,KAAIkJ,KAAK,IACrD4mI,EAAc,IAEhBlwI,KAAKwuI,IAAIxlD,EAAM,QAASknD,EAAYptI,OAAO+sI,GAASV,GAEhDnmD,EAAKptF,MAAMmgB,SAAS,OAASozH,GAC/BnvI,KAAKswI,qBAAqBT,GAI9B3H,OAAOhoI,GACL,IAOIjC,EACA+pF,EACAjlF,EATAimF,EAAO,IAAIw5C,EACfx5C,EAAK5nF,KAAOlB,EAAM,GAAG4F,MAAM,GACT,KAAdkjF,EAAK5nF,MACPpB,KAAKuwI,cAAcvnD,EAAM9oF,GAE3BF,KAAK41B,KAAKozD,EAAM9oF,EAAM,IAKtB,IAAI00D,GAAO,EACP/4D,GAAO,EACPG,EAAS,GACTk/E,EAAW,GAEf,MAAQl7E,KAAK4kG,UAAUyqC,aAAa,CAYlC,GAVApxI,GADAiC,EAAQF,KAAK4kG,UAAU0qC,aACV,GAEA,MAATrxI,GAAyB,MAATA,EAClBi9E,EAASr6E,KAAc,MAAT5C,EAAe,IAAM,KACjB,MAATA,GAAgBi9E,EAAS56E,OAAS,EAC3C46E,EAASr6E,KAAK,KACL5C,IAASi9E,EAASA,EAAS56E,OAAS,IAC7C46E,EAAShuE,MAGa,IAApBguE,EAAS56E,OAAc,CACzB,GAAa,MAATrC,EAAc,CAChB+qF,EAAKhoF,OAAO08D,IAAM19D,KAAK0vI,YAAYxvI,EAAM,IACzCF,KAAKi+F,WAAY,EACjB,MACK,GAAa,MAAThgG,EAAc,CACvBpC,GAAO,EACP,MACK,GAAa,MAAToC,EAAc,CACvB,GAAIjC,EAAOsE,OAAS,EAAG,CAGrB,IAFAyC,EAAQ/G,EAAOsE,OAAS,EACxB0nF,EAAOhsF,EAAO+G,GACPilF,GAAoB,UAAZA,EAAK,IAClBA,EAAOhsF,IAAS+G,GAEdilF,IACFgB,EAAKhoF,OAAO08D,IAAM19D,KAAK0vI,YAAY1nD,EAAK,IAAMA,EAAK,KAGvDhoF,KAAK09D,IAAIx9D,GACT,MAEAlE,EAAO6E,KAAKX,QAGdlE,EAAO6E,KAAKX,GAGd,GAAIF,KAAK4kG,UAAUyqC,YAAa,CAC9Bz6E,GAAO,EACP,OAIJo0B,EAAKo7C,KAAKsK,QAAU1uI,KAAKgwI,yBAAyBh0I,GAC9CA,EAAOsE,QACT0oF,EAAKo7C,KAAKoM,UAAYxwI,KAAKywI,2BAA2Bz0I,GACtDgE,KAAKwuI,IAAIxlD,EAAM,SAAUhtF,GACrB44D,IACF10D,EAAQlE,EAAOA,EAAOsE,OAAS,GAC/B0oF,EAAKhoF,OAAO08D,IAAM19D,KAAK0vI,YAAYxvI,EAAM,IAAMA,EAAM,IACrDF,KAAK89G,OAAS90B,EAAKo7C,KAAKsK,QACxB1lD,EAAKo7C,KAAKsK,QAAU,MAGtB1lD,EAAKo7C,KAAKoM,UAAY,GACtBxnD,EAAKhtF,OAAS,IAGZH,IACFmtF,EAAKC,MAAQ,GACbjpF,KAAKiwF,QAAUjH,GAInBtrB,IAAIx9D,GACEF,KAAKiwF,QAAQhH,OAASjpF,KAAKiwF,QAAQhH,MAAM3oF,SAC3CN,KAAKiwF,QAAQm0C,KAAKnmC,UAAYj+F,KAAKi+F,WAErCj+F,KAAKi+F,WAAY,EAEjBj+F,KAAKiwF,QAAQm0C,KAAK1iF,OAAS1hD,KAAKiwF,QAAQm0C,KAAK1iF,OAAS,IAAM1hD,KAAK89G,OACjE99G,KAAK89G,OAAS,GAEV99G,KAAKiwF,QAAQnsD,QACf9jC,KAAKiwF,QAAQjvF,OAAO08D,IAAM19D,KAAK0vI,YAAYxvI,EAAM,IACjDF,KAAKiwF,QAAUjwF,KAAKiwF,QAAQnsD,QAE5B9jC,KAAK0wI,gBAAgBxwI,GAIzBuvI,UACMzvI,KAAKiwF,QAAQnsD,QAAQ9jC,KAAK2wI,gBAC1B3wI,KAAKiwF,QAAQhH,OAASjpF,KAAKiwF,QAAQhH,MAAM3oF,SAC3CN,KAAKiwF,QAAQm0C,KAAKnmC,UAAYj+F,KAAKi+F,WAErCj+F,KAAKiwF,QAAQm0C,KAAK1iF,OAAS1hD,KAAKiwF,QAAQm0C,KAAK1iF,OAAS,IAAM1hD,KAAK89G,OAGnEyxB,cAAcrvI,GAEZ,GADAF,KAAK89G,QAAU59G,EAAM,GACjBF,KAAKiwF,QAAQhH,MAAO,CACtB,IAAIjB,EAAOhoF,KAAKiwF,QAAQhH,MAAMjpF,KAAKiwF,QAAQhH,MAAM3oF,OAAS,GACtD0nF,GAAsB,SAAdA,EAAK/pF,OAAoB+pF,EAAKo8C,KAAKwM,eAC7C5oD,EAAKo8C,KAAKwM,aAAe5wI,KAAK89G,OAC9B99G,KAAK89G,OAAS,KAOpB4xB,YAAYhuE,GACV,IAAIwG,EAAMloE,KAAKm6D,MAAM8sE,WAAWvlE,GAChC,MAAO,CACLA,SACAz1D,KAAMi8D,EAAIj8D,KACVwmG,OAAQvqC,EAAIo/D,KAIhB1xG,KAAKozD,EAAMtnB,GACT1hE,KAAKiwF,QAAQpvF,KAAKmoF,GAClBA,EAAKhoF,OAAS,CACZu6D,MAAOv7D,KAAK0vI,YAAYhuE,GACxBvH,MAAOn6D,KAAKm6D,OAEd6uB,EAAKo7C,KAAKC,OAASrkI,KAAK89G,OACxB99G,KAAK89G,OAAS,GACI,YAAd90B,EAAK/qF,OAAoB+B,KAAKi+F,WAAY,GAGhDuwC,IAAIxlD,EAAMhjF,EAAM6pI,EAAQV,GACtB,IAAIjvI,EAAOjC,EAIP8jE,EAAMimB,EAHN1nF,EAASuvI,EAAOvvI,OAChB1E,EAAQ,GACRi1I,GAAQ,EAGZ,IAAK,IAAIzwI,EAAI,EAAGA,EAAIE,EAAQF,GAAK,EAC/BF,EAAQ2vI,EAAOzvI,GACfnC,EAAOiC,EAAM,GACA,UAATjC,GAAoBmC,IAAME,EAAS,GAAM6uI,EAEzB,YAATlxI,GACT+pF,EAAO6nD,EAAOzvI,EAAI,GAAKyvI,EAAOzvI,EAAI,GAAG,GAAK,QAC1C2hE,EAAO8tE,EAAOzvI,EAAI,GAAKyvI,EAAOzvI,EAAI,GAAG,GAAK,QACrC8uI,EAAsBlnD,IAAUknD,EAAsBntE,IACjC,MAApBnmE,EAAMkK,OAAO,GAMjB+qI,GAAQ,EAHNj1I,GAASsE,EAAM,IAMnBtE,GAASsE,EAAM,GAdf2wI,GAAQ,EAiBZ,IAAKA,EAAO,CACV,IAAIrC,EAAMqB,EAAO59H,QAAO,CAACxS,EAAKW,IAAMX,EAAMW,EAAE,IAAI,IAChD4oF,EAAKo7C,KAAKp+H,GAAQ,CAAEpK,QAAO4yI,OAE7BxlD,EAAKhjF,GAAQpK,EAGfo0I,yBAAyBH,GACvB,IAAIiB,EACAhzB,EAAS,GACb,KAAO+xB,EAAOvvI,SACZwwI,EAAgBjB,EAAOA,EAAOvvI,OAAS,GAAG,GACpB,UAAlBwwI,GAA+C,YAAlBA,IACjChzB,EAAS+xB,EAAO3iI,MAAM,GAAK4wG,EAE7B,OAAOA,EAGT2yB,2BAA2BZ,GACzB,IAAI9tE,EACA+7C,EAAS,GACb,KAAO+xB,EAAOvvI,SACZyhE,EAAO8tE,EAAO,GAAG,GACJ,UAAT9tE,GAA6B,YAATA,IACxB+7C,GAAU+xB,EAAO9sI,QAAQ,GAE3B,OAAO+6G,EAGTuyB,cAAcR,GACZ,IAAIiB,EACAhzB,EAAS,GACb,KAAO+xB,EAAOvvI,SACZwwI,EAAgBjB,EAAOA,EAAOvvI,OAAS,GAAG,GACpB,UAAlBwwI,IACJhzB,EAAS+xB,EAAO3iI,MAAM,GAAK4wG,EAE7B,OAAOA,EAGTsyB,WAAWP,EAAQ1rI,GACjB,IAAI4J,EAAS,GACb,IAAK,IAAI3N,EAAI+D,EAAM/D,EAAIyvI,EAAOvvI,OAAQF,IACpC2N,GAAU8hI,EAAOzvI,GAAG,GAGtB,OADAyvI,EAAO9uI,OAAOoD,EAAM0rI,EAAOvvI,OAAS6D,GAC7B4J,EAGT4hI,MAAME,GACJ,IACI3vI,EAAOjC,EAAM+pF,EADb9M,EAAW,EAEf,IAAK,IAAK96E,EAAGkxD,KAAYu+E,EAAOjiH,UAAW,CAUzC,GATA1tB,EAAQoxD,EACRrzD,EAAOiC,EAAM,GAEA,MAATjC,IACFi9E,GAAY,GAED,MAATj9E,IACFi9E,GAAY,GAEG,IAAbA,GAA2B,MAATj9E,EAAc,CAClC,GAAK+pF,EAEE,IAAgB,SAAZA,EAAK,IAA6B,WAAZA,EAAK,GACpC,SAEA,OAAO5nF,EAJPJ,KAAK+wI,YAAY7wI,GAQrB8nF,EAAO9nF,EAET,OAAO,EAKT4vI,gBAAgBF,GACd,MAAM5vI,KAAKm6D,MAAMh3D,MACf,mBACA,CAAEu+D,OAAQkuE,EAAQ,IAClB,CAAEluE,OAAQkuE,EAAQ,GAAK,IAI3BG,YAAYF,GACV,MAAM7vI,KAAKm6D,MAAMh3D,MACf,eACA,CAAEu+D,OAAQmuE,EAAO,GAAG,IACpB,CAAEnuE,OAAQmuE,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAGvvI,SAI1CowI,gBAAgBxwI,GACd,MAAMF,KAAKm6D,MAAMh3D,MACf,eACA,CAAEu+D,OAAQxhE,EAAM,IAChB,CAAEwhE,OAAQxhE,EAAM,GAAK,IAIzBywI,gBACE,IAAIzoE,EAAMloE,KAAKiwF,QAAQjvF,OAAOu6D,MAC9B,MAAMv7D,KAAKm6D,MAAMh3D,MAAM,iBAAkB+kE,EAAIj8D,KAAMi8D,EAAIuqC,QAGzDs+B,YAAY7wI,GACV,MAAMF,KAAKm6D,MAAMh3D,MACf,eACA,CAAEu+D,OAAQxhE,EAAM,IAChB,CAAEwhE,OAAQxhE,EAAM,GAAKA,EAAM,GAAGI,SAIlCiwI,cAAcvnD,EAAM9oF,GAClB,MAAMF,KAAKm6D,MAAMh3D,MACf,uBACA,CAAEu+D,OAAQxhE,EAAM,IAChB,CAAEwhE,OAAQxhE,EAAM,GAAKA,EAAM,GAAGI,SAIlC6vI,2BAIAG,qBAAqBT,GACnB,IAAIF,EAAQ3vI,KAAK2vI,MAAME,GACvB,IAAc,IAAVF,EAAiB,OAErB,IACIzvI,EADA8wI,EAAU,EAEd,IAAK,IAAIr8E,EAAIg7E,EAAQ,EAAGh7E,GAAK,IAC3Bz0D,EAAQ2vI,EAAOl7E,GACE,UAAbz0D,EAAM,KACR8wI,GAAW,EACK,IAAZA,IAJwBr8E,KAUhC,MAAM30D,KAAKm6D,MAAMh3D,MACf,mBACa,SAAbjD,EAAM,GAAgBA,EAAM,GAAK,EAAIA,EAAM,oCCnlBjD,IAAI4kI,EAAiB,EAAQ,OACzBhC,EAAc,EAAQ,OACtB6C,EAAa,EAAQ,OACrBpD,EAAY,EAAQ,OACpBqD,EAAY,EAAQ,OACpBr9H,EAAY,EAAQ,OACpB29H,EAAW,EAAQ,OACnB96C,EAAW,EAAQ,MACnB6lD,EAAU,EAAQ,MAClB3nD,EAAU,EAAQ,OAClBk5C,EAAS,EAAQ,OACjBwF,EAAS,EAAQ,OACjB/B,EAAQ,EAAQ,OAChB79H,EAAQ,EAAQ,OAChBy7B,EAAO,EAAQ,OACf8+F,EAAO,EAAQ,MACfx5C,EAAO,EAAQ,OACfkE,EAAO,EAAQ,OAEnB,SAASo8C,KAAWO,GAIlB,OAHuB,IAAnBA,EAAQ1pI,QAAgBsC,MAAMiD,QAAQmkI,EAAQ,MAChDA,EAAUA,EAAQ,IAEb,IAAIpE,EAAUoE,GAGvBP,EAAQrjG,OAAS,SAAgBhlC,EAAM8vI,GACrC,IA2BIjjI,EA3BAkjI,GAAiB,EACrB,SAASC,KAAWvoI,GAEd6E,SAAWA,QAAQC,OAASwjI,IAC9BA,GAAiB,EAEjBzjI,QAAQC,KACNvM,uHAIE,GAAYiwI,MAAQ,GAAYA,KAAKp1H,WAAW,OAGlDvO,QAAQC,KACNvM,yEAMN,IAAIkwI,EAAcJ,KAAeroI,GAGjC,OAFAyoI,EAAYhJ,cAAgBlnI,EAC5BkwI,EAAYlG,gBAAiB,IAAIxF,GAAYv4H,QACtCikI,EAeT,OAXAttI,OAAOE,eAAektI,EAAS,UAAW,CACxCpmH,IAAG,KACI/c,IAAOA,EAAQmjI,KACbnjI,KAIXmjI,EAAQG,QAAU,SAAU58F,EAAK68F,EAAaC,GAC5C,OAAOhI,EAAQ,CAAC2H,EAAQK,KAAcF,QAAQ58F,EAAK68F,IAG9CJ,GAGT3H,EAAQlhI,UAAYA,EACpBkhI,EAAQrhI,MAAQA,EAChBqhI,EAAQvD,SAAWA,EACnBuD,EAAQ5lG,KAAOA,EAEf4lG,EAAQrB,QAAUzmI,GAAY,IAAI2nF,EAAQ3nF,GAC1C8nI,EAAQiI,OAAS/vI,GAAY,IAAI6gI,EAAO7gI,GACxC8nI,EAAQzF,KAAOriI,GAAY,IAAImhI,EAAYnhI,GAC3C8nI,EAAQtB,KAAOxmI,GAAY,IAAIghI,EAAKhhI,GACpC8nI,EAAQ1vD,KAAOp4E,GAAY,IAAIwnF,EAAKxnF,GACpC8nI,EAAQv/H,SAAWvI,GAAY,IAAIypF,EAASzpF,GAE5C8nI,EAAQ3E,eAAiBA,EACzB2E,EAAQ3G,YAAcA,EACtB2G,EAAQlH,UAAYA,EACpBkH,EAAQ7D,UAAYA,EACpB6D,EAAQr+C,SAAWA,EACnBq+C,EAAQngD,QAAUA,EAClBmgD,EAAQwH,QAAUA,EAClBxH,EAAQjH,OAASA,EACjBiH,EAAQzB,OAASA,EACjByB,EAAQxD,MAAQA,EAChBwD,EAAQ9G,KAAOA,EACf8G,EAAQtgD,KAAOA,EACfsgD,EAAQp8C,KAAOA,EAEfs4C,EAAW4F,gBAAgB9B,GAE3BhyI,EAAOC,QAAU+xI,EACjBA,EAAQzrD,QAAUyrD,kDClGlB,IAAI,kBAAEpD,EAAiB,mBAAEC,GAAuB,EAAQ,QACpD,WAAEqL,EAAU,aAAEC,GAAiB,EAAQ,QACvC,QAAElG,EAAO,KAAEpiI,GAAS,EAAQ,OAWhC,MAAM08H,EACJt3H,YAAYimC,EAAK/8C,GACf,IAAiB,IAAbA,EAAK8a,IAAe,OACxB1S,KAAK6xI,eAAel9F,GACpB30C,KAAK6pI,OAAS7pI,KAAK8xI,UAAU9xI,KAAKgsI,WAAY,SAE9C,IAAIhkD,EAAOpwF,EAAK8a,IAAM9a,EAAK8a,IAAIs1E,UAAO3qF,EAClCiX,EAAOtU,KAAK+xI,QAAQn6I,EAAKuM,KAAM6jF,IAC9BhoF,KAAK2nI,SAAW/vI,EAAKuM,OACxBnE,KAAK2nI,QAAU/vI,EAAKuM,MAElBnE,KAAK2nI,UAAS3nI,KAAK+5E,KAAO2xD,EAAQ1rI,KAAK2nI,UACvCrzH,IAAMtU,KAAKsU,KAAOA,GAGxByyH,WAIE,OAHK/mI,KAAK6nI,gBACR7nI,KAAK6nI,cAAgB,IAAIxB,EAAkBrmI,KAAKsU,OAE3CtU,KAAK6nI,cAGdsE,cACE,SACEnsI,KAAK+mI,WAAWmF,gBAChBlsI,KAAK+mI,WAAWmF,eAAe5rI,OAAS,GAI5CwxI,UAAUj8E,EAAQ0F,GAChB,QAAK1F,GACEA,EAAO3pD,OAAO,EAAGqvD,EAAMj7D,UAAYi7D,EAG5Cy2E,iBAAiBC,GACf,OAAOA,EAAgBjpI,QAAQ,8BAA+B,IAAIX,OAGpEwpI,eAAel9F,GACb,IAAIu9F,EAAWv9F,EAAIxqC,MAAM,gCACzB,IAAK+nI,EAAU,OAGf,IAAI32E,EAAQ5mB,EAAI8wB,YAAYysE,EAAShlI,OACjCwwD,EAAM/oB,EAAIr4C,QAAQ,KAAMi/D,GAExBA,GAAS,GAAKmC,GAAO,IAEvB19D,KAAKgsI,WAAahsI,KAAKgyI,iBAAiBr9F,EAAIhtB,UAAU4zC,EAAOmC,KAIjEy0E,aAAa79H,GAMX,GAHiB,0CAGF9J,KAAK8J,IAFV,2BAEuB9J,KAAK8J,GACpC,OAAOjK,mBAAmBiK,EAAKpI,OAAO9B,OAAOgoI,UAAU9xI,SAGzD,GATqB,iDASFkK,KAAK8J,IARV,kCAQ2B9J,KAAK8J,GAC5C,OAxEcnG,EAwEImG,EAAKpI,OAAO9B,OAAOgoI,UAAU9xI,QAvE/CoM,EACKA,EAAOvI,KAAKgK,EAAK,UAAUpH,WAG3B2E,OAAO+kB,KAAKtiB,GALvB,IAAoBA,EA2EhB,IAAIm1D,EAAWhvD,EAAKnK,MAAM,mCAAmC,GAC7D,MAAM,IAAI/R,MAAM,mCAAqCkrE,GAGvD+uE,SAAS1oI,GAEP,GADA3J,KAAK+5E,KAAO2xD,EAAQ/hI,GAChBgoI,EAAWhoI,GAEb,OADA3J,KAAK2nI,QAAUh+H,EACRioI,EAAajoI,EAAM,SAAS5C,WAAWsB,OAIlD0pI,QAAQhN,EAAM/8C,GACZ,IAAa,IAATA,EAAgB,OAAO,EAE3B,GAAIA,EAAM,CACR,GAAoB,iBAATA,EACT,OAAOA,EACF,GAAoB,mBAATA,EAWX,IAAIA,aAAgBq+C,EACzB,OAAOC,EAAmB4G,cAAcllD,GAAMjhF,WACzC,GAAIihF,aAAgBs+C,EACzB,OAAOt+C,EAAKjhF,WACP,GAAI/G,KAAK+jH,MAAM/7B,GACpB,OAAO7/E,KAAKI,UAAUy/E,GAEtB,MAAM,IAAI5vF,MACR,2CAA6C4vF,EAAKjhF,YAnBf,CACrC,IAAIurI,EAAWtqD,EAAK+8C,GACpB,GAAIuN,EAAU,CACZ,IAAI5/H,EAAM1S,KAAKqyI,SAASC,GACxB,IAAK5/H,EACH,MAAM,IAAIta,MACR,uCAAyCk6I,EAASvrI,YAGtD,OAAO2L,QAaN,IAAI1S,KAAK6pI,OACd,OAAO7pI,KAAKmyI,aAAanyI,KAAKgsI,YACzB,GAAIhsI,KAAKgsI,WAAY,CAC1B,IAAIt5H,EAAM1S,KAAKgsI,WAEf,OADIjH,IAAMryH,EAAMpJ,EAAKoiI,EAAQ3G,GAAOryH,IAC7B1S,KAAKqyI,SAAS3/H,KAIzBqxG,MAAMrxG,GACJ,MAAmB,iBAARA,IAEe,iBAAjBA,EAAI6/H,UACc,iBAAlB7/H,EAAI8/H,WACX5vI,MAAMiD,QAAQ6M,EAAI+/H,YAKxBh7I,EAAOC,QAAUsuI,EACjBA,EAAYhoD,QAAUgoD,gCC3ItB,IAAIyH,EAAe,EAAQ,OACvB9H,EAAa,EAAQ,OACrBv6C,EAAW,EAAQ,MACnBjC,EAAO,EAAQ,OAEnB,MAAMy8C,EACJl3H,YAAYs7H,EAAU,IACpBhqI,KAAKqN,QAAU,SACfrN,KAAKgqI,QAAUhqI,KAAKw/B,UAAUwqG,GAGhCtlI,IAAI0hC,GAEF,OADApmC,KAAKgqI,QAAUhqI,KAAKgqI,QAAQlnI,OAAO9C,KAAKw/B,UAAU,CAAC4G,KAC5CpmC,KAGTuxI,QAAQ58F,EAAK/8C,EAAO,IAClB,OAC0B,IAAxBoI,KAAKgqI,QAAQ1pI,aACU,IAAhB1I,EAAKoQ,aACgB,IAArBpQ,EAAKkzI,kBACW,IAAhBlzI,EAAKkyI,OAEL,IAAI2D,EAAaztI,KAAM20C,EAAK/8C,GAE5B,IAAI+tI,EAAW3lI,KAAM20C,EAAK/8C,GAIrC4nC,UAAUwqG,GACR,IAAI0I,EAAa,GACjB,IAAK,IAAItyI,KAAK4pI,EAOZ,IANkB,IAAd5pI,EAAEqpI,QACJrpI,EAAIA,IACKA,EAAEqpI,UACXrpI,EAAIA,EAAEqpI,SAGS,iBAANrpI,GAAkBwC,MAAMiD,QAAQzF,EAAE4pI,SAC3C0I,EAAaA,EAAW5vI,OAAO1C,EAAE4pI,cAC5B,GAAiB,iBAAN5pI,GAAkBA,EAAEkoI,cACpCoK,EAAW7xI,KAAKT,QACX,GAAiB,mBAANA,EAChBsyI,EAAW7xI,KAAKT,QACX,GAAiB,iBAANA,IAAmBA,EAAEgI,QAAShI,EAAEmI,UAShD,MAAM,IAAInQ,MAAMgI,EAAI,4BAGxB,OAAOsyI,GAIXj7I,EAAOC,QAAUkuI,EACjBA,EAAU5nD,QAAU4nD,EAEpBz8C,EAAK48C,kBAAkBH,GACvBx6C,EAAS26C,kBAAkBH,iCChE3B,IAAIqL,EAAU,EAAQ,MAEtB,MAAMjJ,EACJt5H,YAAYg7H,EAAW3vD,EAAMniF,GAC3BoI,KAAK0pI,UAAYA,EACjB1pI,KAAK0tB,SAAW,GAChB1tB,KAAK+5E,KAAOA,EACZ/5E,KAAKpI,KAAOA,EACZoI,KAAK20C,SAAMt3C,EACX2C,KAAK0S,SAAMrV,EAGb0J,WACE,OAAO/G,KAAK20C,IAGdhnC,KAAK2G,EAAM1c,EAAO,IACXA,EAAKwuC,QACJpmC,KAAKirI,YAAcjrI,KAAKirI,WAAW3C,gBACrC1wI,EAAKwuC,OAASpmC,KAAKirI,WAAW3C,eAIlC,IAAIqK,EAAU,IAAI1B,EAAQ38H,EAAM1c,GAGhC,OAFAoI,KAAK0tB,SAAS7sB,KAAK8xI,GAEZA,EAGT1I,WACE,OAAOjqI,KAAK0tB,SAAShe,QAAOtP,GAAgB,YAAXA,EAAEnC,OAGjCmR,cACF,OAAOpP,KAAK20C,KAIhBl9C,EAAOC,QAAUswI,EACjBA,EAAOhqD,QAAUgqD,gCCvCjB,IAEIrC,EAAYC,EAFZrD,EAAY,EAAQ,OAIxB,MAAMp5C,UAAao5C,EACjB7zH,YAAY/M,GACVmS,MAAMnS,GACN3B,KAAK/B,KAAO,OACP+B,KAAKipF,QAAOjpF,KAAKipF,MAAQ,IAGhC46C,YAAYjqD,EAAOg5D,GACjB,IAAI9xI,EAAQd,KAAKc,MAAM84E,GAMvB,OAJKg5D,GAAoB,IAAV9xI,GAAed,KAAKipF,MAAM3oF,OAAS,IAChDN,KAAKipF,MAAM,GAAGm7C,KAAKC,OAASrkI,KAAKipF,MAAMnoF,GAAOsjI,KAAKC,QAG9CvwH,MAAM+vH,YAAYjqD,GAG3Bp6C,UAAUo6C,EAAOsqD,EAAQjmI,GACvB,IAAIgrF,EAAQn1E,MAAM0rB,UAAUo6C,GAE5B,GAAIsqD,EACF,GAAa,YAATjmI,EACE+B,KAAKipF,MAAM3oF,OAAS,EACtB4jI,EAAOE,KAAKC,OAASrkI,KAAKipF,MAAM,GAAGm7C,KAAKC,cAEjCH,EAAOE,KAAKC,YAEhB,GAAIrkI,KAAKghD,QAAUkjF,EACxB,IAAK,IAAIl7C,KAAQC,EACfD,EAAKo7C,KAAKC,OAASH,EAAOE,KAAKC,OAKrC,OAAOp7C,EAGT48C,SAASjuI,EAAO,IAEd,OADW,IAAI+tI,EAAW,IAAIC,EAAa5lI,KAAMpI,GACrC2Q,aAIhB4gF,EAAK28C,mBAAqBpB,IACxBiB,EAAajB,GAGfv7C,EAAK48C,kBAAoBrB,IACvBkB,EAAYlB,GAGdjtI,EAAOC,QAAUyxF,EACjBA,EAAKnL,QAAUmL,+BCxDf,IAAIo5C,EAAY,EAAQ,OACpB1+F,EAAO,EAAQ,OAEnB,MAAM8+F,UAAaJ,EACjB7zH,YAAY/M,GACVmS,MAAMnS,GACN3B,KAAK/B,KAAO,OACP+B,KAAKipF,QAAOjpF,KAAKipF,MAAQ,IAG5B4pD,gBACF,OAAOhvG,EAAK+0C,MAAM54E,KAAKiwG,UAGrB4iC,cAAU34H,GACZ,IAAI/P,EAAQnK,KAAKiwG,SAAWjwG,KAAKiwG,SAAS9lG,MAAM,QAAU,KACtD8/G,EAAM9/G,EAAQA,EAAM,GAAK,IAAMnK,KAAKwuI,IAAI,UAAW,cACvDxuI,KAAKiwG,SAAW/1F,EAAO5Q,KAAK2gH,IAIhCxyH,EAAOC,QAAUirI,EACjBA,EAAK3kD,QAAU2kD,EAEfJ,EAAUoC,aAAahC,0BCxBvB,MAAMmQ,EAAc,CAClBnD,MAAO,KACP7tD,OAAQ,OACRixD,WAAY,KACZC,WAAY,KACZC,WAAY,IACZC,YAAa,KACbC,cAAe,KACfzxF,MAAO,KACP0xF,UAAW,GACXC,YAAa,IACbC,aAAc,IACdr1C,WAAW,GAOb,MAAMgwC,EACJv/H,YAAY6kI,GACVvzI,KAAKuzI,QAAUA,EAGjBhrI,UAAUygF,EAAMiV,GAEd,IAAKj+F,KAAKgpF,EAAK/qF,MACb,MAAM,IAAI7F,MACR,yBACE4wF,EAAK/qF,KADP,mDAOJ+B,KAAKgpF,EAAK/qF,MAAM+qF,EAAMiV,GAGxB/zF,SAAS8+E,GACPhpF,KAAKuT,KAAKy1E,GAGZjP,KAAKiP,GACHhpF,KAAKuT,KAAKy1E,GACNA,EAAKo7C,KAAK1iF,OAAO1hD,KAAKuzI,QAAQvqD,EAAKo7C,KAAK1iF,OAG9C0mF,QAAQp/C,GACN,IAAIlxB,EAAO93D,KAAKwuI,IAAIxlD,EAAM,OAAQ,eAC9B9qB,EAAQl+D,KAAKwuI,IAAIxlD,EAAM,QAAS,gBACpChpF,KAAKuzI,QAAQ,KAAOz7E,EAAOkxB,EAAK10E,KAAO4pD,EAAQ,KAAM8qB,GAGvDg7C,KAAKh7C,EAAMiV,GACT,IAAIywC,EAAU1uI,KAAKwuI,IAAIxlD,EAAM,UAAW,SACpCnzB,EAASmzB,EAAKhjF,KAAO0oI,EAAU1uI,KAAK+H,SAASihF,EAAM,SAEnDA,EAAK+3C,YACPlrE,GAAUmzB,EAAKo7C,KAAKrD,WAAa,eAG/B9iC,IAAWpoC,GAAU,KACzB71D,KAAKuzI,QAAQ19E,EAAQmzB,GAGvBm/C,KAAKn/C,GACHhpF,KAAKujC,MAAMylD,EAAMhpF,KAAK+H,SAASihF,EAAM,aACjCA,EAAKo7C,KAAKwM,cACZ5wI,KAAKuzI,QAAQvqD,EAAKo7C,KAAKwM,aAAc5nD,EAAM,OAI/Ck/C,OAAOl/C,EAAMiV,GACX,IAAI78F,EAAO,IAAM4nF,EAAK5nF,KAClBpF,EAASgtF,EAAKhtF,OAASgE,KAAK+H,SAASihF,EAAM,UAAY,GAQ3D,QANmC,IAAxBA,EAAKo7C,KAAKoM,UACnBpvI,GAAQ4nF,EAAKo7C,KAAKoM,UACTx0I,IACToF,GAAQ,KAGN4nF,EAAKC,MACPjpF,KAAKujC,MAAMylD,EAAM5nF,EAAOpF,OACnB,CACL,IAAI0hE,GAAOsrB,EAAKo7C,KAAKsK,SAAW,KAAOzwC,EAAY,IAAM,IACzDj+F,KAAKuzI,QAAQnyI,EAAOpF,EAAS0hE,EAAKsrB,IAItCz1E,KAAKy1E,GACH,IAAIp0B,EAAOo0B,EAAKC,MAAM3oF,OAAS,EAC/B,KAAOs0D,EAAO,GACkB,YAA1Bo0B,EAAKC,MAAMr0B,GAAM32D,MACrB22D,GAAQ,EAGV,IAAIqpC,EAAYj+F,KAAKwuI,IAAIxlD,EAAM,aAC/B,IAAK,IAAI5oF,EAAI,EAAGA,EAAI4oF,EAAKC,MAAM3oF,OAAQF,IAAK,CAC1C,IAAIw5E,EAAQoP,EAAKC,MAAM7oF,GACnBikI,EAASrkI,KAAKwuI,IAAI50D,EAAO,UACzByqD,GAAQrkI,KAAKuzI,QAAQlP,GACzBrkI,KAAKuI,UAAUqxE,EAAOhlB,IAASx0D,GAAK69F,IAIxC16D,MAAMylD,EAAMztB,GACV,IAGI7Z,EAHAgtF,EAAU1uI,KAAKwuI,IAAIxlD,EAAM,UAAW,cACxChpF,KAAKuzI,QAAQh4E,EAAQmzE,EAAU,IAAK1lD,EAAM,SAGtCA,EAAKC,OAASD,EAAKC,MAAM3oF,QAC3BN,KAAKuT,KAAKy1E,GACVtnC,EAAQ1hD,KAAKwuI,IAAIxlD,EAAM,UAEvBtnC,EAAQ1hD,KAAKwuI,IAAIxlD,EAAM,QAAS,aAG9BtnC,GAAO1hD,KAAKuzI,QAAQ7xF,GACxB1hD,KAAKuzI,QAAQ,IAAKvqD,EAAM,OAG1BwlD,IAAIxlD,EAAMwqD,EAAKC,GACb,IAAI73I,EAIJ,GAHK63I,IAAQA,EAASD,GAGlBA,IACF53I,EAAQotF,EAAKo7C,KAAKoP,QACG,IAAV53I,GAAuB,OAAOA,EAG3C,IAAIkoC,EAASklD,EAAKllD,OAElB,GAAe,WAAX2vG,EAAqB,CAEvB,IAAK3vG,GAA2B,SAAhBA,EAAO7lC,MAAmB6lC,EAAOkd,QAAUgoC,EACzD,MAAO,GAIT,GAAIllD,GAA0B,aAAhBA,EAAO7lC,KACnB,MAAO,GAKX,IAAK6lC,EAAQ,OAAOgvG,EAAYW,GAGhC,IAAI15D,EAAOiP,EAAKjP,OAEhB,GADKA,EAAK25D,WAAU35D,EAAK25D,SAAW,SACC,IAA1B35D,EAAK25D,SAASD,GACvB,OAAO15D,EAAK25D,SAASD,GAGvB,GAAe,WAAXA,GAAkC,UAAXA,EACzB,OAAOzzI,KAAK2zI,YAAY3qD,EAAMyqD,GACzB,CACL,IAAI33I,EAAS,QAhJCqS,EAgJkBslI,GA/IzB,GAAG13I,cAAgBoS,EAAIrI,MAAM,IAgJhC9F,KAAKlE,GACPF,EAAQoE,KAAKlE,GAAQi+E,EAAMiP,GAE3BjP,EAAKopD,MAAK/iI,IAER,GADAxE,EAAQwE,EAAEgkI,KAAKoP,QACM,IAAV53I,EAAuB,OAAO,KAtJnD,IAAoBuS,EA8JhB,YAHqB,IAAVvS,IAAuBA,EAAQk3I,EAAYW,IAEtD15D,EAAK25D,SAASD,GAAU73I,EACjBA,EAGTg4I,aAAa75D,GACX,IAAIn+E,EAOJ,OANAm+E,EAAKopD,MAAK/iI,IACR,GAAIA,EAAE6oF,OAAS7oF,EAAE6oF,MAAM3oF,QAA0B,SAAhBF,EAAEw0D,KAAK32D,OACtCrC,EAAQwE,EAAEgkI,KAAKnmC,eACM,IAAVriG,GAAuB,OAAO,KAGtCA,EAGTi4I,aAAa95D,GACX,IAAIn+E,EAOJ,OANAm+E,EAAKopD,MAAK/iI,IACR,GAAIA,EAAE6oF,OAA4B,IAAnB7oF,EAAE6oF,MAAM3oF,SACrB1E,EAAQwE,EAAEgkI,KAAK1iF,WACM,IAAV9lD,GAAuB,OAAO,KAGtCA,EAGTk4I,UAAU/5D,GACR,GAAIA,EAAKqqD,KAAKtiD,OAAQ,OAAO/H,EAAKqqD,KAAKtiD,OACvC,IAAIlmF,EAYJ,OAXAm+E,EAAKopD,MAAK/iI,IACR,IAAIsyB,EAAItyB,EAAE0jC,OACV,GAAIpR,GAAKA,IAAMqnD,GAAQrnD,EAAEoR,QAAUpR,EAAEoR,SAAWi2C,QACjB,IAAlB35E,EAAEgkI,KAAKC,OAAwB,CACxC,IAAIn7H,EAAQ9I,EAAEgkI,KAAKC,OAAOr4H,MAAM,MAGhC,OAFApQ,EAAQsN,EAAMA,EAAM5I,OAAS,GAC7B1E,EAAQA,EAAMoN,QAAQ,MAAO,KACtB,MAINpN,EAGTm4I,iBAAiBh6D,EAAMiP,GACrB,IAAIptF,EAeJ,OAdAm+E,EAAKypD,cAAapjI,IAChB,QAA6B,IAAlBA,EAAEgkI,KAAKC,OAKhB,OAJAzoI,EAAQwE,EAAEgkI,KAAKC,OACXzoI,EAAMmgB,SAAS,QACjBngB,EAAQA,EAAMoN,QAAQ,UAAW,MAE5B,UAGU,IAAVpN,EACTA,EAAQoE,KAAKwuI,IAAIxlD,EAAM,KAAM,cACpBptF,IACTA,EAAQA,EAAMoN,QAAQ,MAAO,KAExBpN,EAGTo4I,cAAcj6D,EAAMiP,GAClB,IAAIptF,EAeJ,OAdAm+E,EAAKspD,WAAUjjI,IACb,QAA6B,IAAlBA,EAAEgkI,KAAKC,OAKhB,OAJAzoI,EAAQwE,EAAEgkI,KAAKC,OACXzoI,EAAMmgB,SAAS,QACjBngB,EAAQA,EAAMoN,QAAQ,UAAW,MAE5B,UAGU,IAAVpN,EACTA,EAAQoE,KAAKwuI,IAAIxlD,EAAM,KAAM,cACpBptF,IACTA,EAAQA,EAAMoN,QAAQ,MAAO,KAExBpN,EAGTq4I,cAAcl6D,GACZ,IAAIn+E,EAaJ,OAZAm+E,EAAKopD,MAAK/iI,IACR,GAAIA,EAAE6oF,QAAU7oF,EAAE0jC,SAAWi2C,GAAQA,EAAK/4B,QAAU5gD,SACrB,IAAlBA,EAAEgkI,KAAKC,OAKhB,OAJAzoI,EAAQwE,EAAEgkI,KAAKC,OACXzoI,EAAMmgB,SAAS,QACjBngB,EAAQA,EAAMoN,QAAQ,UAAW,MAE5B,KAITpN,IAAOA,EAAQA,EAAMoN,QAAQ,MAAO,KACjCpN,EAGTs4I,eAAen6D,GACb,IAAIn+E,EAaJ,OAZAm+E,EAAKopD,MAAK/iI,IACR,GAAIA,EAAE6oF,OAAS7oF,EAAE6oF,MAAM3oF,OAAS,QACF,IAAjBF,EAAEgkI,KAAK1iF,MAKhB,OAJA9lD,EAAQwE,EAAEgkI,KAAK1iF,MACX9lD,EAAMmgB,SAAS,QACjBngB,EAAQA,EAAMoN,QAAQ,UAAW,MAE5B,KAITpN,IAAOA,EAAQA,EAAMoN,QAAQ,MAAO,KACjCpN,EAGTu4I,cAAcp6D,GACZ,IAAIn+E,EAOJ,OANAm+E,EAAKopD,MAAK/iI,IACR,GAAe,SAAXA,EAAEnC,OACJrC,EAAQwE,EAAEgkI,KAAKsK,aACM,IAAV9yI,GAAuB,OAAO,KAGtCA,EAGTw4I,SAASr6D,GACP,IAAIn+E,EAOJ,OANAm+E,EAAKspD,WAAUjjI,IACb,QAA8B,IAAnBA,EAAEgkI,KAAKsK,QAEhB,OADA9yI,EAAQwE,EAAEgkI,KAAKsK,QAAQ1lI,QAAQ,UAAW,KACnC,KAGJpN,EAGT+3I,YAAY3qD,EAAMyqD,GAChB,IAAI73I,EAEFA,EADgB,SAAdotF,EAAK/qF,KACC+B,KAAKwuI,IAAIxlD,EAAM,KAAM,cACN,YAAdA,EAAK/qF,KACN+B,KAAKwuI,IAAIxlD,EAAM,KAAM,iBACT,WAAXyqD,EACDzzI,KAAKwuI,IAAIxlD,EAAM,KAAM,cAErBhpF,KAAKwuI,IAAIxlD,EAAM,KAAM,eAG/B,IAAI/lB,EAAM+lB,EAAKllD,OACXi1C,EAAQ,EACZ,KAAO9V,GAAoB,SAAbA,EAAIhlE,MAChB86E,GAAS,EACT9V,EAAMA,EAAIn/B,OAGZ,GAAIloC,EAAMmgB,SAAS,MAAO,CACxB,IAAI+lE,EAAS9hF,KAAKwuI,IAAIxlD,EAAM,KAAM,UAClC,GAAIlH,EAAOxhF,OACT,IAAK,IAAIu2E,EAAO,EAAGA,EAAOkC,EAAOlC,IAAQj7E,GAASkmF,EAItD,OAAOlmF,EAGTmM,SAASihF,EAAMhjF,GACb,IAAIpK,EAAQotF,EAAKhjF,GACbwoI,EAAMxlD,EAAKo7C,KAAKp+H,GACpB,OAAIwoI,GAAOA,EAAI5yI,QAAUA,EAChB4yI,EAAIA,IAGN5yI,GAIXnE,EAAOC,QAAUu2I,EACjBA,EAAYjwD,QAAUiwD,gCC9VtB,IAAIA,EAAc,EAAQ,MAE1B,SAAS1lI,EAAUygF,EAAMuqD,GACb,IAAItF,EAAYsF,GACtBhrI,UAAUygF,GAGhBvxF,EAAOC,QAAU6Q,EACjBA,EAAUy1E,QAAUz1E,0BCRpB9Q,EAAOC,QAAQkrI,QAAU9/D,OAAO,WAEhCrrE,EAAOC,QAAQmrI,GAAK//D,OAAO,8BCF3B,MAAMuxE,EAAe,IAAIhlI,WAAW,GAC9BilI,EAAe,IAAIjlI,WAAW,GAC9BklI,EAAY,KAAKllI,WAAW,GAC5BmlI,EAAQ,IAAInlI,WAAW,GACvBolI,EAAU,KAAKplI,WAAW,GAC1BqlI,EAAQ,IAAIrlI,WAAW,GACvBslI,EAAO,KAAKtlI,WAAW,GACvBulI,EAAM,KAAKvlI,WAAW,GACtBwlI,EAAK,KAAKxlI,WAAW,GACrBylI,EAAc,IAAIzlI,WAAW,GAC7B0lI,EAAe,IAAI1lI,WAAW,GAC9B2lI,EAAmB,IAAI3lI,WAAW,GAClC4lI,EAAoB,IAAI5lI,WAAW,GACnC6lI,EAAa,IAAI7lI,WAAW,GAC5B8lI,EAAc,IAAI9lI,WAAW,GAC7B+lI,EAAY,IAAI/lI,WAAW,GAC3BgmI,EAAW,IAAIhmI,WAAW,GAC1BimI,EAAQ,IAAIjmI,WAAW,GACvBkmI,EAAK,IAAIlmI,WAAW,GAEpBmmI,EAAY,6BACZC,EAAc,wCACdC,EAAiB,cACjBC,EAAgB,WAEtBl+I,EAAOC,QAAU,SAAmByiE,EAAOliE,EAAU,IACnD,IAGIsL,EAAMw+D,EAAMg5B,EAAO3rF,EAAS8gB,EAC5B0hG,EAASgkB,EAAW5tD,EAAMtwB,EAAGm+E,EAJ7BlhG,EAAMwlB,EAAMxlB,IAAIuvB,UAChB0uE,EAAS36I,EAAQ69I,aAKjBx1I,EAASq0C,EAAIr0C,OACb4nE,EAAM,EACN5gE,EAAS,GACTyuI,EAAW,GAMf,SAASC,EAAS70C,GAChB,MAAMhnC,EAAMh3D,MAAM,YAAcg+F,EAAMj5B,GAuNxC,MAAO,CACLmjD,KALF,SAAcnrH,GACZ61I,EAASl1I,KAAKX,IAKdovI,UAlNF,SAAmB13I,GACjB,GAAIm+I,EAASz1I,OAAQ,OAAOy1I,EAAS7oI,MACrC,GAAIg7D,GAAO5nE,EAAQ,OAEnB,IAAI21I,IAAiBr+I,GAAOA,EAAKq+I,eAIjC,OAFA1yI,EAAOoxC,EAAItlC,WAAW64D,GAEd3kE,GACN,KAAKkxI,EACL,KAAKC,EACL,KAAKE,EACL,KAAKC,EACL,KAAKF,EACH5yE,EAAOmG,EACP,GACEnG,GAAQ,EACRx+D,EAAOoxC,EAAItlC,WAAW0yD,SAEtBx+D,IAASmxI,GACTnxI,IAASkxI,GACTlxI,IAASqxI,GACTrxI,IAASsxI,GACTtxI,IAASoxI,GAGXkB,EAAe,CAAC,QAASlhG,EAAI7uC,MAAMoiE,EAAKnG,IACxCmG,EAAMnG,EAAO,EACb,MAGF,KAAK+yE,EACL,KAAKC,EACL,KAAKG,EACL,KAAKC,EACL,KAAKG,EACL,KAAKF,EACL,KAAKH,EAAmB,CACtB,IAAIiB,EAAcnmI,OAAOynD,aAAaj0D,GACtCsyI,EAAe,CAACK,EAAaA,EAAahuE,GAC1C,MAGF,KAAK8sE,EAGH,GAFAhtD,EAAO1gF,EAAOhH,OAASgH,EAAO4F,MAAM,GAAK,GACzCwqD,EAAI/iB,EAAItlC,WAAW64D,EAAM,GAEd,QAAT8f,GACAtwB,IAAM28E,GACN38E,IAAM48E,GACN58E,IAAMg9E,GACNh9E,IAAM+8E,GACN/8E,IAAMk9E,GACNl9E,IAAMi9E,GACNj9E,IAAMm9E,EACN,CACA9yE,EAAOmG,EACP,EAAG,CAGD,GAFA0pD,GAAU,EACV7vD,EAAOptB,EAAIr4C,QAAQ,IAAKylE,EAAO,IACjB,IAAVA,EAAa,CACf,GAAI6wE,GAAUqD,EAAgB,CAC5Bl0E,EAAOmG,EACP,MAEA8tE,EAAS,WAIb,IADAJ,EAAY7zE,EACLptB,EAAItlC,WAAWumI,EAAY,KAAOrB,GACvCqB,GAAa,EACbhkB,GAAWA,QAENA,GAETikB,EAAe,CAAC,WAAYlhG,EAAI7uC,MAAMoiE,EAAKnG,EAAO,GAAImG,EAAKnG,GAE3DmG,EAAMnG,OAENA,EAAOptB,EAAIr4C,QAAQ,IAAK4rE,EAAM,GAC9B94D,EAAUulC,EAAI7uC,MAAMoiE,EAAKnG,EAAO,IAElB,IAAVA,GAAe2zE,EAAelrI,KAAK4E,GACrCymI,EAAe,CAAC,IAAK,IAAK3tE,IAE1B2tE,EAAe,CAAC,WAAYzmI,EAAS84D,EAAKnG,GAC1CmG,EAAMnG,GAIV,MAGF,KAAKsyE,EACL,KAAKC,EACHv5C,EAAQx3F,IAAS8wI,EAAe,IAAM,IACtCtyE,EAAOmG,EACP,EAAG,CAGD,GAFA0pD,GAAU,EACV7vD,EAAOptB,EAAIr4C,QAAQy+F,EAAOh5B,EAAO,IACnB,IAAVA,EAAa,CACf,GAAI6wE,GAAUqD,EAAgB,CAC5Bl0E,EAAOmG,EAAM,EACb,MAEA8tE,EAAS,UAIb,IADAJ,EAAY7zE,EACLptB,EAAItlC,WAAWumI,EAAY,KAAOrB,GACvCqB,GAAa,EACbhkB,GAAWA,QAENA,GAETikB,EAAe,CAAC,SAAUlhG,EAAI7uC,MAAMoiE,EAAKnG,EAAO,GAAImG,EAAKnG,GACzDmG,EAAMnG,EACN,MAGF,KAAKwzE,EACHC,EAAUxlI,UAAYk4D,EAAM,EAC5BstE,EAAUhrI,KAAKmqC,GAEbotB,EAD0B,IAAxByzE,EAAUxlI,UACL2kC,EAAIr0C,OAAS,EAEbk1I,EAAUxlI,UAAY,EAG/B6lI,EAAe,CAAC,UAAWlhG,EAAI7uC,MAAMoiE,EAAKnG,EAAO,GAAImG,EAAKnG,GAE1DmG,EAAMnG,EACN,MAGF,KAAKwyE,EAGH,IAFAxyE,EAAOmG,EACPh4C,GAAS,EACFykB,EAAItlC,WAAW0yD,EAAO,KAAOwyE,GAClCxyE,GAAQ,EACR7xC,GAAUA,EAGZ,GADA3sB,EAAOoxC,EAAItlC,WAAW0yD,EAAO,GAE3B7xC,GACA3sB,IAASixI,GACTjxI,IAASmxI,GACTnxI,IAASkxI,GACTlxI,IAASqxI,GACTrxI,IAASsxI,GACTtxI,IAASoxI,IAET5yE,GAAQ,EACJ4zE,EAAcnrI,KAAKmqC,EAAIlpC,OAAOs2D,KAAQ,CACxC,KAAO4zE,EAAcnrI,KAAKmqC,EAAIlpC,OAAOs2D,EAAO,KAC1CA,GAAQ,EAENptB,EAAItlC,WAAW0yD,EAAO,KAAO2yE,IAC/B3yE,GAAQ,GAKd8zE,EAAe,CAAC,OAAQlhG,EAAI7uC,MAAMoiE,EAAKnG,EAAO,GAAImG,EAAKnG,GAEvDmG,EAAMnG,EACN,MAGF,QACMx+D,IAASixI,GAAS7/F,EAAItlC,WAAW64D,EAAM,KAAOmtE,GAChDtzE,EAAOptB,EAAIr4C,QAAQ,KAAM4rE,EAAM,GAAK,EACvB,IAATnG,IACE6wE,GAAUqD,EACZl0E,EAAOptB,EAAIr0C,OAEX01I,EAAS,YAIbH,EAAe,CAAC,UAAWlhG,EAAI7uC,MAAMoiE,EAAKnG,EAAO,GAAImG,EAAKnG,GAC1DmG,EAAMnG,IAEN0zE,EAAYzlI,UAAYk4D,EAAM,EAC9ButE,EAAYjrI,KAAKmqC,GAEfotB,EAD4B,IAA1B0zE,EAAYzlI,UACP2kC,EAAIr0C,OAAS,EAEbm1I,EAAYzlI,UAAY,EAGjC6lI,EAAe,CAAC,OAAQlhG,EAAI7uC,MAAMoiE,EAAKnG,EAAO,GAAImG,EAAKnG,GACvDz6D,EAAOzG,KAAKg1I,GACZ3tE,EAAMnG,GAQZ,OADAmG,IACO2tE,GAUPxG,UAvNF,WACE,OAA2B,IAApB0G,EAASz1I,QAAgB4nE,GAAO5nE,GAuNvCwP,SAhOF,WACE,OAAOo4D,6BCrCX,IAAIiuE,EAAU,GAEd1+I,EAAOC,QAAU,SAAkB+I,GAC7B01I,EAAQ11I,KACZ01I,EAAQ11I,IAAW,EAEI,oBAAZiN,SAA2BA,QAAQC,MAC5CD,QAAQC,KAAKlN,4BCRjB,MAAMwwI,EACJviI,YAAY4F,EAAM1c,EAAO,IAIvB,GAHAoI,KAAK/B,KAAO,UACZ+B,KAAKsU,KAAOA,EAER1c,EAAKoxF,MAAQpxF,EAAKoxF,KAAKhoF,OAAQ,CACjC,IAAIo1I,EAAQx+I,EAAKoxF,KAAKmlD,QAAQv2I,GAC9BoI,KAAKiM,KAAOmqI,EAAM76E,MAAMtvD,KACxBjM,KAAKyyG,OAAS2jC,EAAM76E,MAAMk3C,OAC1BzyG,KAAKglI,QAAUoR,EAAM14E,IAAIzxD,KACzBjM,KAAKilI,UAAYmR,EAAM14E,IAAI+0C,OAG7B,IAAK,IAAIllG,KAAO3V,EAAMoI,KAAKuN,GAAO3V,EAAK2V,GAGzCxG,WACE,OAAI/G,KAAKgpF,KACAhpF,KAAKgpF,KAAK7lF,MAAMnD,KAAKsU,KAAM,CAChC8xB,OAAQpmC,KAAKomC,OACbtlC,MAAOd,KAAKc,MACZygE,KAAMvhE,KAAKuhE,OACV9gE,QAGDT,KAAKomC,OACApmC,KAAKomC,OAAS,KAAOpmC,KAAKsU,KAG5BtU,KAAKsU,MAIhB7c,EAAOC,QAAUu5I,EACjBA,EAAQjzD,QAAUizD,gCClClB,IAAI1jE,EAAe,EAAQ,OACvB8oE,EAAY,EAAQ,OACpB7tE,EAAU,EAAQ,OAElB4vB,EAAa7qB,EAAa,eAC1B+oE,EAAW/oE,EAAa,aAAa,GACrCgpE,EAAOhpE,EAAa,SAAS,GAE7BipE,EAAcH,EAAU,yBAAyB,GACjDI,EAAcJ,EAAU,yBAAyB,GACjDK,EAAcL,EAAU,yBAAyB,GACjDM,EAAUN,EAAU,qBAAqB,GACzCO,EAAUP,EAAU,qBAAqB,GACzCQ,EAAUR,EAAU,qBAAqB,GAUzCS,EAAc,SAAUjzG,EAAMrmC,GACjC,IAAK,IAAiBu5I,EAAb/uD,EAAOnkD,EAAmC,QAAtBkzG,EAAO/uD,EAAKjmB,MAAgBimB,EAAO+uD,EAC/D,GAAIA,EAAKv5I,MAAQA,EAIhB,OAHAwqF,EAAKjmB,KAAOg1E,EAAKh1E,KACjBg1E,EAAKh1E,KAAOl+B,EAAKk+B,KACjBl+B,EAAKk+B,KAAOg1E,EACLA,GA0BVt/I,EAAOC,QAAU,WAChB,IAAIs/I,EACAC,EACAC,EACAC,EAAU,CACbC,OAAQ,SAAU55I,GACjB,IAAK25I,EAAQz0G,IAAIllC,GAChB,MAAM,IAAI46F,EAAW,iCAAmC5vB,EAAQhrE,KAGlEwtB,IAAK,SAAUxtB,GACd,GAAI84I,GAAY94I,IAAuB,iBAARA,GAAmC,mBAARA,IACzD,GAAIw5I,EACH,OAAOR,EAAYQ,EAAKx5I,QAEnB,GAAI+4I,GACV,GAAIU,EACH,OAAON,EAAQM,EAAIz5I,QAGpB,GAAI05I,EACH,OA1CS,SAAUp2G,EAAStjC,GAChC,IAAIwrF,EAAO8tD,EAAYh2G,EAAStjC,GAChC,OAAOwrF,GAAQA,EAAKptF,MAwCTy7I,CAAQH,EAAI15I,IAItBklC,IAAK,SAAUllC,GACd,GAAI84I,GAAY94I,IAAuB,iBAARA,GAAmC,mBAARA,IACzD,GAAIw5I,EACH,OAAON,EAAYM,EAAKx5I,QAEnB,GAAI+4I,GACV,GAAIU,EACH,OAAOJ,EAAQI,EAAIz5I,QAGpB,GAAI05I,EACH,OAxCS,SAAUp2G,EAAStjC,GAChC,QAASs5I,EAAYh2G,EAAStjC,GAuCnB85I,CAAQJ,EAAI15I,GAGrB,OAAO,GAER+sB,IAAK,SAAU/sB,EAAK5B,GACf06I,GAAY94I,IAAuB,iBAARA,GAAmC,mBAARA,IACpDw5I,IACJA,EAAM,IAAIV,GAEXG,EAAYO,EAAKx5I,EAAK5B,IACZ26I,GACLU,IACJA,EAAK,IAAIV,GAEVK,EAAQK,EAAIz5I,EAAK5B,KAEZs7I,IAMJA,EAAK,CAAE15I,IAAK,GAAIukE,KAAM,OA5Eb,SAAUjhC,EAAStjC,EAAK5B,GACrC,IAAIotF,EAAO8tD,EAAYh2G,EAAStjC,GAC5BwrF,EACHA,EAAKptF,MAAQA,EAGbklC,EAAQihC,KAAO,CACdvkE,IAAKA,EACLukE,KAAMjhC,EAAQihC,KACdnmE,MAAOA,GAqEN27I,CAAQL,EAAI15I,EAAK5B,MAIpB,OAAOu7I,0BC1HR,iBACE,SAASp9D,GAGsCriF,GAC9CA,EAAQ8/I,SACoC//I,GAC5CA,EAAO+/I,SAHT,IAII57C,EAA8B,iBAAV,EAAAnqB,GAAsB,EAAAA,EAE7CmqB,EAAWnY,SAAWmY,GACtBA,EAAWlwF,SAAWkwF,GACtBA,EAAW94D,KAUZ,IAAI20G,EAGJC,EAAS,WAGT9rC,EAAO,GAUP+rC,EAAgB,QAChBC,EAAgB,eAChBC,EAAkB,4BAGlBptF,EAAS,CACR,SAAY,kDACZ,YAAa,iDACb,gBAAiB,iBAKlB/jD,EAAQD,KAAKC,MACbg5D,EAAqB3vD,OAAOynD,aAa5B,SAASr0D,EAAMlF,GACd,MAAMsiE,WAAW9V,EAAOxsD,IAWzB,SAASyU,EAAI8xD,EAAO7sE,GAGnB,IAFA,IAAI2I,EAASkkE,EAAMlkE,OACfyN,EAAS,GACNzN,KACNyN,EAAOzN,GAAU3I,EAAG6sE,EAAMlkE,IAE3B,OAAOyN,EAaR,SAAS+pI,EAAUjiF,EAAQl+D,GAC1B,IAAIuR,EAAQ2sD,EAAO7pD,MAAM,KACrB+B,EAAS,GAWb,OAVI7E,EAAM5I,OAAS,IAGlByN,EAAS7E,EAAM,GAAK,IACpB2sD,EAAS3sD,EAAM,IAMT6E,EADO2E,GAFdmjD,EAASA,EAAO7sD,QAAQ6uI,EAAiB,MACrB7rI,MAAM,KACArU,GAAI2R,KAAK,KAiBpC,SAASyuI,EAAWliF,GAMnB,IALA,IAGIj6D,EACAo8I,EAJAr6E,EAAS,GACT1uB,EAAU,EACV3uC,EAASu1D,EAAOv1D,OAGb2uC,EAAU3uC,IAChB1E,EAAQi6D,EAAOxmD,WAAW4/B,OACb,OAAUrzC,GAAS,OAAUqzC,EAAU3uC,EAG3B,QAAX,OADb03I,EAAQniF,EAAOxmD,WAAW4/B,OAEzB0uB,EAAO98D,OAAe,KAARjF,IAAkB,KAAe,KAARo8I,GAAiB,QAIxDr6E,EAAO98D,KAAKjF,GACZqzC,KAGD0uB,EAAO98D,KAAKjF,GAGd,OAAO+hE,EAWR,SAASs6E,EAAWzzE,GACnB,OAAO9xD,EAAI8xD,GAAO,SAAS5oE,GAC1B,IAAI+hE,EAAS,GAOb,OANI/hE,EAAQ,QAEX+hE,GAAU+B,GADV9jE,GAAS,SAC8B,GAAK,KAAQ,OACpDA,EAAQ,MAAiB,KAARA,GAElB+hE,EAAU+B,EAAmB9jE,MAE3B0N,KAAK,IAoCT,SAAS4uI,EAAaC,EAAOC,GAG5B,OAAOD,EAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,GAQzD,SAASC,EAAMjlB,EAAOklB,EAAWC,GAChC,IAAIzqF,EAAI,EAGR,IAFAslE,EAAQmlB,EAAY7xI,EAAM0sH,EA1LpB,KA0LoCA,GAAS,EACnDA,GAAS1sH,EAAM0sH,EAAQklB,GACOllB,EAAQolB,IAA2B1qF,GAAK89C,EACrEwnB,EAAQ1sH,EAAM0sH,EA3KAxnB,IA6Kf,OAAOllG,EAAMonD,EAAI,GAAsBslE,GAASA,EAhM1C,KA0MP,SAASrhG,EAAOooC,GAEf,IAEIgI,EAIAs2E,EACA9jF,EACA7zD,EACA43I,EACAjyB,EACA34D,EACAqqF,EACA9vD,EAEAswD,EArEiBxxE,EAsDjBxJ,EAAS,GACTooD,EAAc5rD,EAAM75D,OAEpBF,EAAI,EACJs3D,EA7MM,IA8MNkhF,EA/MS,GAoOb,KALAH,EAAQt+E,EAAMsL,YA7NH,MA8NC,IACXgzE,EAAQ,GAGJ9jF,EAAI,EAAGA,EAAI8jF,IAAS9jF,EAEpBwF,EAAM9qD,WAAWslD,IAAM,KAC1BxxD,EAAM,aAEPw6D,EAAO98D,KAAKs5D,EAAM9qD,WAAWslD,IAM9B,IAAK7zD,EAAQ23I,EAAQ,EAAIA,EAAQ,EAAI,EAAG33I,EAAQilH,GAAwC,CAOvF,IAAK2yB,EAAOt4I,EAAGqmH,EAAI,EAAG34D,EAAI89C,EAErB9qG,GAASilH,GACZ5iH,EAAM,mBAGPg1I,GAxGmBhxE,EAwGEhN,EAAM9qD,WAAWvO,MAvGxB,GAAK,GACbqmE,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEbykC,IAgGQA,GAAQusC,EAAQzxI,GAAOgxI,EAASt3I,GAAKqmH,KACjDtjH,EAAM,YAGP/C,GAAK+3I,EAAQ1xB,IAGT0xB,GAFJ9vD,EAAIv6B,GAAK8qF,EAvQL,EAuQoB9qF,GAAK8qF,EAtQzB,MAsQ8C9qF,EAAI8qF,IAbH9qF,GAAK89C,EAoBpD6a,EAAI//G,EAAMgxI,GADdiB,EAAa/sC,EAAOvjB,KAEnBllF,EAAM,YAGPsjH,GAAKkyB,EAKNC,EAAOP,EAAMj4I,EAAIs4I,EADjBv2E,EAAMxE,EAAOr9D,OAAS,EACc,GAARo4I,GAIxBhyI,EAAMtG,EAAI+hE,GAAOu1E,EAAShgF,GAC7Bv0D,EAAM,YAGPu0D,GAAKhxD,EAAMtG,EAAI+hE,GACf/hE,GAAK+hE,EAGLxE,EAAO58D,OAAOX,IAAK,EAAGs3D,GAIvB,OAAOugF,EAAWt6E,GAUnB,SAAS50D,EAAOoxD,GACf,IAAIzC,EACA07D,EACAylB,EACAC,EACAF,EACAjkF,EACA0Q,EACA8vD,EACArnE,EACAu6B,EACA0wD,EAGAhzB,EAEAizB,EACAL,EACAM,EANAt7E,EAAS,GAoBb,IARAooD,GAHA5rD,EAAQ49E,EAAW59E,IAGC75D,OAGpBo3D,EAvUU,IAwUV07D,EAAQ,EACRwlB,EA1Ua,GA6URjkF,EAAI,EAAGA,EAAIoxD,IAAepxD,GAC9BokF,EAAe5+E,EAAMxF,IACF,KAClBgJ,EAAO98D,KAAK6+D,EAAmBq5E,IAejC,IAXAF,EAAiBC,EAAcn7E,EAAOr9D,OAMlCw4I,GACHn7E,EAAO98D,KAzVG,KA6VJg4I,EAAiB9yB,GAAa,CAIpC,IAAK1gD,EAAIqyE,EAAQ/iF,EAAI,EAAGA,EAAIoxD,IAAepxD,GAC1CokF,EAAe5+E,EAAMxF,KACD+C,GAAKqhF,EAAe1zE,IACvCA,EAAI0zE,GAcN,IAPI1zE,EAAI3N,EAAIhxD,GAAOgxI,EAAStkB,IAD5B4lB,EAAwBH,EAAiB,KAExC11I,EAAM,YAGPiwH,IAAU/tD,EAAI3N,GAAKshF,EACnBthF,EAAI2N,EAEC1Q,EAAI,EAAGA,EAAIoxD,IAAepxD,EAO9B,IANAokF,EAAe5+E,EAAMxF,IAEF+C,KAAO07D,EAAQskB,GACjCv0I,EAAM,YAGH41I,GAAgBrhF,EAAG,CAEtB,IAAKy9D,EAAI/B,EAAOtlE,EAAI89C,IAEfupB,GADJ9sC,EAAIv6B,GAAK8qF,EAlYP,EAkYsB9qF,GAAK8qF,EAjY3B,MAiYgD9qF,EAAI8qF,IADT9qF,GAAK89C,EAKlDqtC,EAAU9jB,EAAI9sC,EACdswD,EAAa/sC,EAAOvjB,EACpB1qB,EAAO98D,KACN6+D,EAAmBw4E,EAAa7vD,EAAI4wD,EAAUN,EAAY,KAE3DxjB,EAAIzuH,EAAMuyI,EAAUN,GAGrBh7E,EAAO98D,KAAK6+D,EAAmBw4E,EAAa/iB,EAAG,KAC/CyjB,EAAOP,EAAMjlB,EAAO4lB,EAAuBH,GAAkBC,GAC7D1lB,EAAQ,IACNylB,IAIFzlB,IACA17D,EAGH,OAAOiG,EAAOr0D,KAAK,IA4CpBmuI,EAAW,CAMV,QAAW,QAQX,KAAQ,CACP,OAAUM,EACV,OAAUE,GAEX,OAAUlmH,EACV,OAAUhpB,EACV,QA/BD,SAAiBoxD,GAChB,OAAO29E,EAAU39E,GAAO,SAAStE,GAChC,OAAO+hF,EAAcptI,KAAKqrD,GACvB,OAAS9sD,EAAO8sD,GAChBA,MA4BJ,UAnDD,SAAmBsE,GAClB,OAAO29E,EAAU39E,GAAO,SAAStE,GAChC,OAAO8hF,EAAcntI,KAAKqrD,GACvB9jC,EAAO8jC,EAAO/vD,MAAM,GAAGrI,eACvBo4D,YA4DH,KAFD,aACC,OAAO4hF,GACP,8BAngBF,oCCsBGA,EAAW,EAAQ,OACnByB,EAAO,EAAQ,OASnB,SAAS7xH,IACPrnB,KAAK3B,SAAW,KAChB2B,KAAKm5I,QAAU,KACfn5I,KAAKrF,KAAO,KACZqF,KAAKmL,KAAO,KACZnL,KAAKuL,KAAO,KACZvL,KAAKsL,SAAW,KAChBtL,KAAKqL,KAAO,KACZrL,KAAKoL,OAAS,KACdpL,KAAK0U,MAAQ,KACb1U,KAAKwL,SAAW,KAChBxL,KAAK2J,KAAO,KACZ3J,KAAKiL,KAAO,KAOd,IAAImuI,EAAkB,oBAClBC,EAAc,WAGdC,EAAoB,qCAOpBC,EAAS,CAAC,IAAK,IAAK,IAAK,KAAM,IAAK,KAAKz2I,OAHhC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,OAM/C02I,EAAa,CAAC,KAAM12I,OAAOy2I,GAK3BE,EAAe,CAAC,IAAK,IAAK,IAAK,IAAK,KAAK32I,OAAO02I,GAChDE,EAAkB,CAAC,IAAK,IAAK,KAE7BC,EAAsB,yBACtBC,EAAoB,+BAEpBC,EAAiB,CACf,YAAc,EACd,eAAe,GAGjBC,EAAmB,CACjB,YAAc,EACd,eAAe,GAGjBC,EAAkB,CAChB,MAAQ,EACR,OAAS,EACT,KAAO,EACP,QAAU,EACV,MAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GAEXC,EAAc,EAAQ,OAU1B3yH,EAAIroB,UAAUoJ,MAAQ,SAAShN,EAAK6+I,EAAkBC,GACpD,IAAKhB,EAAKhxI,SAAS9M,GACjB,MAAM,IAAI0E,UAAU,gDAAkD1E,GAMxE,IAAI++I,EAAa/+I,EAAIkB,QAAQ,KACzB89I,GACqB,IAAhBD,GAAqBA,EAAa/+I,EAAIkB,QAAQ,KAAQ,IAAM,IACjE+9I,EAASj/I,EAAI4Q,MAAMouI,GAEvBC,EAAO,GAAKA,EAAO,GAAGrxI,QADL,MACyB,KAG1C,IAAIsxI,EAFJl/I,EAAMi/I,EAAO/wI,KAAK8wI,GAQlB,GAFAE,EAAOA,EAAKjyI,QAEP6xI,GAA+C,IAA1B9+I,EAAI4Q,MAAM,KAAK1L,OAAc,CAErD,IAAIi6I,EAAajB,EAAkBntI,KAAKmuI,GACxC,GAAIC,EAeF,OAdAv6I,KAAK2J,KAAO2wI,EACZt6I,KAAKiL,KAAOqvI,EACZt6I,KAAKwL,SAAW+uI,EAAW,GACvBA,EAAW,IACbv6I,KAAKoL,OAASmvI,EAAW,GAEvBv6I,KAAK0U,MADHulI,EACWD,EAAY5xI,MAAMpI,KAAKoL,OAAOc,OAAO,IAErClM,KAAKoL,OAAOc,OAAO,IAEzB+tI,IACTj6I,KAAKoL,OAAS,GACdpL,KAAK0U,MAAQ,IAER1U,KAIX,IAAIynE,EAAQ2xE,EAAgBjtI,KAAKmuI,GACjC,GAAI7yE,EAAO,CAET,IAAI+yE,GADJ/yE,EAAQA,EAAM,IACShqE,cACvBuC,KAAK3B,SAAWm8I,EAChBF,EAAOA,EAAKpuI,OAAOu7D,EAAMnnE,QAO3B,GAAI45I,GAAqBzyE,GAAS6yE,EAAKnwI,MAAM,wBAAyB,CACpE,IAAIgvI,EAAgC,OAAtBmB,EAAKpuI,OAAO,EAAG,IACzBitI,GAAa1xE,GAASqyE,EAAiBryE,KACzC6yE,EAAOA,EAAKpuI,OAAO,GACnBlM,KAAKm5I,SAAU,GAInB,IAAKW,EAAiBryE,KACjB0xE,GAAY1xE,IAAUsyE,EAAgBtyE,IAAU,CAmBnD,IADA,IASI9sE,EAAM8/I,EATNC,GAAW,EACNt6I,EAAI,EAAGA,EAAIs5I,EAAgBp5I,OAAQF,KAE7B,KADTu6I,EAAML,EAAKh+I,QAAQo9I,EAAgBt5I,QACP,IAAbs6I,GAAkBC,EAAMD,KACzCA,EAAUC,GAyBd,KARgB,KATdF,GAFe,IAAbC,EAEOJ,EAAK70E,YAAY,KAIjB60E,EAAK70E,YAAY,IAAKi1E,MAM/B//I,EAAO2/I,EAAKx0I,MAAM,EAAG20I,GACrBH,EAAOA,EAAKx0I,MAAM20I,EAAS,GAC3Bz6I,KAAKrF,KAAO0P,mBAAmB1P,IAIjC+/I,GAAW,EACFt6I,EAAI,EAAGA,EAAIq5I,EAAan5I,OAAQF,IAAK,CAC5C,IAAIu6I,GACS,KADTA,EAAML,EAAKh+I,QAAQm9I,EAAar5I,QACJ,IAAbs6I,GAAkBC,EAAMD,KACzCA,EAAUC,IAGG,IAAbD,IACFA,EAAUJ,EAAKh6I,QAEjBN,KAAKmL,KAAOmvI,EAAKx0I,MAAM,EAAG40I,GAC1BJ,EAAOA,EAAKx0I,MAAM40I,GAGlB16I,KAAK46I,YAIL56I,KAAKsL,SAAWtL,KAAKsL,UAAY,GAIjC,IAAIuvI,EAAoC,MAArB76I,KAAKsL,SAAS,IACe,MAA5CtL,KAAKsL,SAAStL,KAAKsL,SAAShL,OAAS,GAGzC,IAAKu6I,EAEH,IADA,IAAIC,EAAY96I,KAAKsL,SAASU,MAAM,MACpB3L,GAAPD,EAAI,EAAO06I,EAAUx6I,QAAQF,EAAIC,EAAGD,IAAK,CAChD,IAAIo6E,EAAOsgE,EAAU16I,GACrB,GAAKo6E,IACAA,EAAKrwE,MAAMwvI,GAAsB,CAEpC,IADA,IAAIoB,EAAU,GACLpmF,EAAI,EAAG7G,EAAI0sB,EAAKl6E,OAAQq0D,EAAI7G,EAAG6G,IAClC6lB,EAAKnrE,WAAWslD,GAAK,IAIvBomF,GAAW,IAEXA,GAAWvgE,EAAK7lB,GAIpB,IAAKomF,EAAQ5wI,MAAMwvI,GAAsB,CACvC,IAAIqB,EAAaF,EAAUh1I,MAAM,EAAG1F,GAChC66I,EAAUH,EAAUh1I,MAAM1F,EAAI,GAC9B86I,EAAM1gE,EAAKrwE,MAAMyvI,GACjBsB,IACFF,EAAWn6I,KAAKq6I,EAAI,IACpBD,EAAQ14I,QAAQ24I,EAAI,KAElBD,EAAQ36I,SACVg6I,EAAO,IAAMW,EAAQ3xI,KAAK,KAAOgxI,GAEnCt6I,KAAKsL,SAAW0vI,EAAW1xI,KAAK,KAChC,QAMJtJ,KAAKsL,SAAShL,OAjND,IAkNfN,KAAKsL,SAAW,GAGhBtL,KAAKsL,SAAWtL,KAAKsL,SAAS7N,cAG3Bo9I,IAKH76I,KAAKsL,SAAWmsI,EAAS0D,QAAQn7I,KAAKsL,WAGxC,IAAIonB,EAAI1yB,KAAKuL,KAAO,IAAMvL,KAAKuL,KAAO,GAClC1G,EAAI7E,KAAKsL,UAAY,GACzBtL,KAAKmL,KAAOtG,EAAI6tB,EAChB1yB,KAAKiL,MAAQjL,KAAKmL,KAId0vI,IACF76I,KAAKsL,SAAWtL,KAAKsL,SAASY,OAAO,EAAGlM,KAAKsL,SAAShL,OAAS,GAC/C,MAAZg6I,EAAK,KACPA,EAAO,IAAMA,IAOnB,IAAKT,EAAeW,GAKlB,IAASp6I,EAAI,EAAGC,EAAIm5I,EAAWl5I,OAAQF,EAAIC,EAAGD,IAAK,CACjD,IAAIg7I,EAAK5B,EAAWp5I,GACpB,IAA0B,IAAtBk6I,EAAKh+I,QAAQ8+I,GAAjB,CAEA,IAAIC,EAAMtgJ,mBAAmBqgJ,GACzBC,IAAQD,IACVC,EAAMnrH,OAAOkrH,IAEfd,EAAOA,EAAKtuI,MAAMovI,GAAI9xI,KAAK+xI,IAM/B,IAAIhwI,EAAOivI,EAAKh+I,QAAQ,MACV,IAAV+O,IAEFrL,KAAKqL,KAAOivI,EAAKpuI,OAAOb,GACxBivI,EAAOA,EAAKx0I,MAAM,EAAGuF,IAEvB,IAAIiwI,EAAKhB,EAAKh+I,QAAQ,KAoBtB,IAnBY,IAARg/I,GACFt7I,KAAKoL,OAASkvI,EAAKpuI,OAAOovI,GAC1Bt7I,KAAK0U,MAAQ4lI,EAAKpuI,OAAOovI,EAAK,GAC1BrB,IACFj6I,KAAK0U,MAAQslI,EAAY5xI,MAAMpI,KAAK0U,QAEtC4lI,EAAOA,EAAKx0I,MAAM,EAAGw1I,IACZrB,IAETj6I,KAAKoL,OAAS,GACdpL,KAAK0U,MAAQ,IAEX4lI,IAAMt6I,KAAKwL,SAAW8uI,GACtBP,EAAgBS,IAChBx6I,KAAKsL,WAAatL,KAAKwL,WACzBxL,KAAKwL,SAAW,KAIdxL,KAAKwL,UAAYxL,KAAKoL,OAAQ,CAC5BsnB,EAAI1yB,KAAKwL,UAAY,GAAzB,IACI6pD,EAAIr1D,KAAKoL,QAAU,GACvBpL,KAAK2J,KAAO+oB,EAAI2iC,EAKlB,OADAr1D,KAAKiL,KAAOjL,KAAK27E,SACV37E,MAcTqnB,EAAIroB,UAAU28E,OAAS,WACrB,IAAIhhF,EAAOqF,KAAKrF,MAAQ,GACpBA,IAEFA,GADAA,EAAOI,mBAAmBJ,IACdqO,QAAQ,OAAQ,KAC5BrO,GAAQ,KAGV,IAAI0D,EAAW2B,KAAK3B,UAAY,GAC5BmN,EAAWxL,KAAKwL,UAAY,GAC5BH,EAAOrL,KAAKqL,MAAQ,GACpBF,GAAO,EACPuJ,EAAQ,GAER1U,KAAKmL,KACPA,EAAOxQ,EAAOqF,KAAKmL,KACVnL,KAAKsL,WACdH,EAAOxQ,IAAwC,IAAhCqF,KAAKsL,SAAShP,QAAQ,KACjC0D,KAAKsL,SACL,IAAMtL,KAAKsL,SAAW,KACtBtL,KAAKuL,OACPJ,GAAQ,IAAMnL,KAAKuL,OAInBvL,KAAK0U,OACLwkI,EAAKxxI,SAAS1H,KAAK0U,QACnB1Q,OAAOqC,KAAKrG,KAAK0U,OAAOpU,SAC1BoU,EAAQslI,EAAYzxI,UAAUvI,KAAK0U,QAGrC,IAAItJ,EAASpL,KAAKoL,QAAWsJ,GAAU,IAAMA,GAAW,GAsBxD,OApBIrW,GAAoC,MAAxBA,EAAS6N,QAAQ,KAAY7N,GAAY,KAIrD2B,KAAKm5I,WACH96I,GAAY07I,EAAgB17I,MAAuB,IAAT8M,GAC9CA,EAAO,MAAQA,GAAQ,IACnBK,GAAmC,MAAvBA,EAASC,OAAO,KAAYD,EAAW,IAAMA,IACnDL,IACVA,EAAO,IAGLE,GAA2B,MAAnBA,EAAKI,OAAO,KAAYJ,EAAO,IAAMA,GAC7CD,GAA+B,MAArBA,EAAOK,OAAO,KAAYL,EAAS,IAAMA,GAOhD/M,EAAW8M,GALlBK,EAAWA,EAASxC,QAAQ,SAAS,SAASmB,GAC5C,OAAOpP,mBAAmBoP,QAE5BiB,EAASA,EAAOpC,QAAQ,IAAK,QAEgBqC,GAO/Cgc,EAAIroB,UAAUlH,QAAU,SAAS24F,GAC/B,OAAOzwF,KAAKu7I,cArVd,SAAkBngJ,EAAK6+I,EAAkBC,GACvC,GAAI9+I,GAAO89I,EAAKxxI,SAAStM,IAAQA,aAAeisB,EAAK,OAAOjsB,EAE5D,IAAIojH,EAAI,IAAIn3F,EAEZ,OADAm3F,EAAEp2G,MAAMhN,EAAK6+I,EAAkBC,GACxB17B,EAgVmBg9B,CAAS/qD,GAAU,GAAO,IAAO9U,UAQ7Dt0D,EAAIroB,UAAUu8I,cAAgB,SAAS9qD,GACrC,GAAIyoD,EAAKhxI,SAASuoF,GAAW,CAC3B,IAAI53B,EAAM,IAAIxxC,EACdwxC,EAAIzwD,MAAMqoF,GAAU,GAAO,GAC3BA,EAAW53B,EAKb,IAFA,IAAI9qD,EAAS,IAAIsZ,EACbo0H,EAAQz3I,OAAOqC,KAAKrG,MACf07I,EAAK,EAAGA,EAAKD,EAAMn7I,OAAQo7I,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACjB3tI,EAAO4tI,GAAQ37I,KAAK27I,GAQtB,GAHA5tI,EAAO1C,KAAOolF,EAASplF,KAGD,KAAlBolF,EAASxlF,KAEX,OADA8C,EAAO9C,KAAO8C,EAAO4tE,SACd5tE,EAIT,GAAI0iF,EAAS0oD,UAAY1oD,EAASpyF,SAAU,CAG1C,IADA,IAAIu9I,EAAQ53I,OAAOqC,KAAKoqF,GACforD,EAAK,EAAGA,EAAKD,EAAMt7I,OAAQu7I,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACJ,aAATC,IACF/tI,EAAO+tI,GAAQrrD,EAASqrD,IAU5B,OANI/B,EAAgBhsI,EAAO1P,WACvB0P,EAAOzC,WAAayC,EAAOvC,WAC7BuC,EAAOpE,KAAOoE,EAAOvC,SAAW,KAGlCuC,EAAO9C,KAAO8C,EAAO4tE,SACd5tE,EAGT,GAAI0iF,EAASpyF,UAAYoyF,EAASpyF,WAAa0P,EAAO1P,SAAU,CAS9D,IAAK07I,EAAgBtpD,EAASpyF,UAAW,CAEvC,IADA,IAAIgI,EAAOrC,OAAOqC,KAAKoqF,GACdtnF,EAAI,EAAGA,EAAI9C,EAAK/F,OAAQ6I,IAAK,CACpC,IAAI2kD,EAAIznD,EAAK8C,GACb4E,EAAO+/C,GAAK2iC,EAAS3iC,GAGvB,OADA//C,EAAO9C,KAAO8C,EAAO4tE,SACd5tE,EAIT,GADAA,EAAO1P,SAAWoyF,EAASpyF,SACtBoyF,EAAStlF,MAAS2uI,EAAiBrpD,EAASpyF,UAS/C0P,EAAOvC,SAAWilF,EAASjlF,aAT+B,CAE1D,IADA,IAAIuwI,GAAWtrD,EAASjlF,UAAY,IAAIQ,MAAM,KACvC+vI,EAAQz7I,UAAYmwF,EAAStlF,KAAO4wI,EAAQh5I,WAC9C0tF,EAAStlF,OAAMslF,EAAStlF,KAAO,IAC/BslF,EAASnlF,WAAUmlF,EAASnlF,SAAW,IACzB,KAAfywI,EAAQ,IAAWA,EAAQx5I,QAAQ,IACnCw5I,EAAQz7I,OAAS,GAAGy7I,EAAQx5I,QAAQ,IACxCwL,EAAOvC,SAAWuwI,EAAQzyI,KAAK,KAWjC,GAPAyE,EAAO3C,OAASqlF,EAASrlF,OACzB2C,EAAO2G,MAAQ+7E,EAAS/7E,MACxB3G,EAAO5C,KAAOslF,EAAStlF,MAAQ,GAC/B4C,EAAOpT,KAAO81F,EAAS91F,KACvBoT,EAAOzC,SAAWmlF,EAASnlF,UAAYmlF,EAAStlF,KAChD4C,EAAOxC,KAAOklF,EAASllF,KAEnBwC,EAAOvC,UAAYuC,EAAO3C,OAAQ,CACpC,IAAIsnB,EAAI3kB,EAAOvC,UAAY,GACvB6pD,EAAItnD,EAAO3C,QAAU,GACzB2C,EAAOpE,KAAO+oB,EAAI2iC,EAIpB,OAFAtnD,EAAOorI,QAAUprI,EAAOorI,SAAW1oD,EAAS0oD,QAC5CprI,EAAO9C,KAAO8C,EAAO4tE,SACd5tE,EAGT,IAAIiuI,EAAejuI,EAAOvC,UAA0C,MAA9BuC,EAAOvC,SAASC,OAAO,GACzDwwI,EACIxrD,EAAStlF,MACTslF,EAASjlF,UAA4C,MAAhCilF,EAASjlF,SAASC,OAAO,GAElDywI,EAAcD,GAAYD,GACXjuI,EAAO5C,MAAQslF,EAASjlF,SACvC2wI,EAAgBD,EAChBE,EAAUruI,EAAOvC,UAAYuC,EAAOvC,SAASQ,MAAM,MAAQ,GAE3DqwI,GADAN,EAAUtrD,EAASjlF,UAAYilF,EAASjlF,SAASQ,MAAM,MAAQ,GACnD+B,EAAO1P,WAAa07I,EAAgBhsI,EAAO1P,WA2B3D,GApBIg+I,IACFtuI,EAAOzC,SAAW,GAClByC,EAAOxC,KAAO,KACVwC,EAAO5C,OACU,KAAfixI,EAAQ,GAAWA,EAAQ,GAAKruI,EAAO5C,KACtCixI,EAAQ75I,QAAQwL,EAAO5C,OAE9B4C,EAAO5C,KAAO,GACVslF,EAASpyF,WACXoyF,EAASnlF,SAAW,KACpBmlF,EAASllF,KAAO,KACZklF,EAAStlF,OACQ,KAAf4wI,EAAQ,GAAWA,EAAQ,GAAKtrD,EAAStlF,KACxC4wI,EAAQx5I,QAAQkuF,EAAStlF,OAEhCslF,EAAStlF,KAAO,MAElB+wI,EAAaA,IAA8B,KAAfH,EAAQ,IAA4B,KAAfK,EAAQ,KAGvDH,EAEFluI,EAAO5C,KAAQslF,EAAStlF,MAA0B,KAAlBslF,EAAStlF,KAC3BslF,EAAStlF,KAAO4C,EAAO5C,KACrC4C,EAAOzC,SAAYmlF,EAASnlF,UAAkC,KAAtBmlF,EAASnlF,SAC/BmlF,EAASnlF,SAAWyC,EAAOzC,SAC7CyC,EAAO3C,OAASqlF,EAASrlF,OACzB2C,EAAO2G,MAAQ+7E,EAAS/7E,MACxB0nI,EAAUL,OAEL,GAAIA,EAAQz7I,OAGZ87I,IAASA,EAAU,IACxBA,EAAQlvI,MACRkvI,EAAUA,EAAQt5I,OAAOi5I,GACzBhuI,EAAO3C,OAASqlF,EAASrlF,OACzB2C,EAAO2G,MAAQ+7E,EAAS/7E,WACnB,IAAKwkI,EAAKoD,kBAAkB7rD,EAASrlF,QAwB1C,OApBIixI,IACFtuI,EAAOzC,SAAWyC,EAAO5C,KAAOixI,EAAQr5I,SAIpCw5I,KAAaxuI,EAAO5C,MAAQ4C,EAAO5C,KAAK7O,QAAQ,KAAO,IAC1CyR,EAAO5C,KAAKa,MAAM,QAEjC+B,EAAOpT,KAAO4hJ,EAAWx5I,QACzBgL,EAAO5C,KAAO4C,EAAOzC,SAAWixI,EAAWx5I,UAG/CgL,EAAO3C,OAASqlF,EAASrlF,OACzB2C,EAAO2G,MAAQ+7E,EAAS/7E,MAEnBwkI,EAAKsD,OAAOzuI,EAAOvC,WAAc0tI,EAAKsD,OAAOzuI,EAAO3C,UACvD2C,EAAOpE,MAAQoE,EAAOvC,SAAWuC,EAAOvC,SAAW,KACpCuC,EAAO3C,OAAS2C,EAAO3C,OAAS,KAEjD2C,EAAO9C,KAAO8C,EAAO4tE,SACd5tE,EAGT,IAAKquI,EAAQ97I,OAWX,OARAyN,EAAOvC,SAAW,KAEduC,EAAO3C,OACT2C,EAAOpE,KAAO,IAAMoE,EAAO3C,OAE3B2C,EAAOpE,KAAO,KAEhBoE,EAAO9C,KAAO8C,EAAO4tE,SACd5tE,EAcT,IARA,IAAI6mD,EAAOwnF,EAAQt2I,OAAO,GAAG,GACzB22I,GACC1uI,EAAO5C,MAAQslF,EAAStlF,MAAQixI,EAAQ97I,OAAS,KACxC,MAATs0D,GAAyB,OAATA,IAA2B,KAATA,EAInC8nF,EAAK,EACAt8I,EAAIg8I,EAAQ97I,OAAQF,GAAK,EAAGA,IAEtB,OADbw0D,EAAOwnF,EAAQh8I,IAEbg8I,EAAQr7I,OAAOX,EAAG,GACA,OAATw0D,GACTwnF,EAAQr7I,OAAOX,EAAG,GAClBs8I,KACSA,IACTN,EAAQr7I,OAAOX,EAAG,GAClBs8I,KAKJ,IAAKR,IAAeC,EAClB,KAAOO,IAAMA,EACXN,EAAQ75I,QAAQ,OAIhB25I,GAA6B,KAAfE,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAG3wI,OAAO,IACpC2wI,EAAQ75I,QAAQ,IAGdk6I,GAAsD,MAAjCL,EAAQ9yI,KAAK,KAAK4C,QAAQ,IACjDkwI,EAAQv7I,KAAK,IAGf,IAUM07I,EAVF9V,EAA4B,KAAf2V,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAG3wI,OAAO,GAsCrC,OAnCI4wI,IACFtuI,EAAOzC,SAAWyC,EAAO5C,KAAOs7H,EAAa,GACb2V,EAAQ97I,OAAS87I,EAAQr5I,QAAU,IAI/Dw5I,KAAaxuI,EAAO5C,MAAQ4C,EAAO5C,KAAK7O,QAAQ,KAAO,IAC1CyR,EAAO5C,KAAKa,MAAM,QAEjC+B,EAAOpT,KAAO4hJ,EAAWx5I,QACzBgL,EAAO5C,KAAO4C,EAAOzC,SAAWixI,EAAWx5I,WAI/Cm5I,EAAaA,GAAenuI,EAAO5C,MAAQixI,EAAQ97I,UAEhCmmI,GACjB2V,EAAQ75I,QAAQ,IAGb65I,EAAQ97I,OAIXyN,EAAOvC,SAAW4wI,EAAQ9yI,KAAK,MAH/ByE,EAAOvC,SAAW,KAClBuC,EAAOpE,KAAO,MAMXuvI,EAAKsD,OAAOzuI,EAAOvC,WAAc0tI,EAAKsD,OAAOzuI,EAAO3C,UACvD2C,EAAOpE,MAAQoE,EAAOvC,SAAWuC,EAAOvC,SAAW,KACpCuC,EAAO3C,OAAS2C,EAAO3C,OAAS,KAEjD2C,EAAOpT,KAAO81F,EAAS91F,MAAQoT,EAAOpT,KACtCoT,EAAOorI,QAAUprI,EAAOorI,SAAW1oD,EAAS0oD,QAC5CprI,EAAO9C,KAAO8C,EAAO4tE,SACd5tE,GAGTsZ,EAAIroB,UAAU47I,UAAY,WACxB,IAAIzvI,EAAOnL,KAAKmL,KACZI,EAAO8tI,EAAYltI,KAAKhB,GACxBI,IAEW,OADbA,EAAOA,EAAK,MAEVvL,KAAKuL,KAAOA,EAAKW,OAAO,IAE1Bf,EAAOA,EAAKe,OAAO,EAAGf,EAAK7K,OAASiL,EAAKjL,SAEvC6K,IAAMnL,KAAKsL,SAAWH,4BCxtB5B1T,EAAOC,QAAU,CACfwQ,SAAU,SAASi7D,GACjB,MAAuB,iBAAV,GAEfz7D,SAAU,SAASy7D,GACjB,MAAuB,iBAAV,GAA8B,OAARA,GAErCq5E,OAAQ,SAASr5E,GACf,OAAe,OAARA,GAETm5E,kBAAmB,SAASn5E,GAC1B,OAAc,MAAPA,eCRX,IADA,IAAIw5E,EAAY,GACPv8I,EAAI,EAAGA,EAAI,MAAOA,EACzBu8I,EAAUv8I,IAAMA,EAAI,KAAO2G,SAAS,IAAImF,OAAO,GAmBjDzU,EAAOC,QAhBP,SAAqBurE,EAAKvB,GACxB,IAAIthE,EAAIshE,GAAU,EACdk7E,EAAMD,EAEV,MAAO,CACLC,EAAI35E,EAAI7iE,MAAOw8I,EAAI35E,EAAI7iE,MACvBw8I,EAAI35E,EAAI7iE,MAAOw8I,EAAI35E,EAAI7iE,MAAO,IAC9Bw8I,EAAI35E,EAAI7iE,MAAOw8I,EAAI35E,EAAI7iE,MAAO,IAC9Bw8I,EAAI35E,EAAI7iE,MAAOw8I,EAAI35E,EAAI7iE,MAAO,IAC9Bw8I,EAAI35E,EAAI7iE,MAAOw8I,EAAI35E,EAAI7iE,MAAO,IAC9Bw8I,EAAI35E,EAAI7iE,MAAOw8I,EAAI35E,EAAI7iE,MACvBw8I,EAAI35E,EAAI7iE,MAAOw8I,EAAI35E,EAAI7iE,MACvBw8I,EAAI35E,EAAI7iE,MAAOw8I,EAAI35E,EAAI7iE,OACtBkJ,KAAK,gBCfV,IAAIuzI,EAAqC,oBAAZ,QAA2BC,OAAOD,iBAAmBC,OAAOD,gBAAgBr+I,KAAKs+I,SACnE,oBAAd,UAAuE,mBAAnCpxI,OAAOqxI,SAASF,iBAAiCE,SAASF,gBAAgBr+I,KAAKu+I,UAEhJ,GAAIF,EAAiB,CAEnB,IAAIG,EAAQ,IAAIvuI,WAAW,IAE3BhX,EAAOC,QAAU,WAEf,OADAmlJ,EAAgBG,GACTA,OAEJ,CAKL,IAAIC,EAAO,IAAIr6I,MAAM,IAErBnL,EAAOC,QAAU,WACf,IAAK,IAAWowB,EAAP1nB,EAAI,EAAMA,EAAI,GAAIA,IACN,IAAV,EAAJA,KAAiB0nB,EAAoB,WAAhBrhB,KAAKoqC,UAC/BosG,EAAK78I,GAAK0nB,MAAY,EAAJ1nB,IAAa,GAAK,IAGtC,OAAO68I,qBC/BX,IAAIC,EAAM,EAAQ,OACdC,EAAc,EAAQ,OA2B1B1lJ,EAAOC,QAzBP,SAAYO,EAASgrE,EAAKvB,GACxB,IAAIthE,EAAI6iE,GAAOvB,GAAU,EAEF,iBAAb,IACRuB,EAAkB,WAAZhrE,EAAuB,IAAI2K,MAAM,IAAM,KAC7C3K,EAAU,MAIZ,IAAIglJ,GAFJhlJ,EAAUA,GAAW,IAEF44C,SAAW54C,EAAQilJ,KAAOA,KAO7C,GAJAD,EAAK,GAAgB,GAAVA,EAAK,GAAa,GAC7BA,EAAK,GAAgB,GAAVA,EAAK,GAAa,IAGzBh6E,EACF,IAAK,IAAIm6E,EAAK,EAAGA,EAAK,KAAMA,EAC1Bn6E,EAAI7iE,EAAIg9I,GAAMH,EAAKG,GAIvB,OAAOn6E,GAAOk6E,EAAYF,4BCzB5BxlJ,EAAOC,QAAU49B,oNCoBjB79B,EAAOC,QAAU,CAAEgvI,OARN,CAACniE,EAAO,MACnB,IAAI3/D,EAAK,GACLxE,EAAImkE,EACR,KAAOnkE,KACLwE,GAfF,mEAeqC,GAAhB6B,KAAKoqC,SAAiB,GAE3C,OAAOjsC,GAEkBy4I,eAlBN,CAACjwE,EAAUkwE,EAAc,KACrC,CAAC/4E,EAAO+4E,KACb,IAAI14I,EAAK,GACLxE,EAAImkE,EACR,KAAOnkE,KACLwE,GAAMwoE,EAAU3mE,KAAKoqC,SAAWu8B,EAAS9sE,OAAU,GAErD,OAAOsE,opECRJ,IAAItF,EAAU,SAKVy6E,EAAuB,iBAARj3C,MAAoBA,KAAKA,OAASA,MAAQA,MACxC,iBAAV2gD,QAAsBA,OAAOA,SAAWA,QAAUA,QAC1DoS,SAAS,cAATA,IACA,GAGC0nD,EAAa36I,MAAM5D,UAAWw+I,EAAWx5I,OAAOhF,UAChDy+I,EAAgC,oBAAX36E,OAAyBA,OAAO9jE,UAAY,KAGjE6B,EAAO08I,EAAW18I,KACzBiF,EAAQy3I,EAAWz3I,MACnB,EAAW03I,EAASz2I,SACpB,EAAiBy2I,EAASjvI,eAGnBmvI,EAA6C,oBAAhB9uI,YACpC+uI,EAAuC,oBAAbx4D,SAInBy4D,EAAgBh7I,MAAMiD,QAC7Bg4I,EAAa75I,OAAOqC,KACpBy3I,EAAe95I,OAAO9E,OACtB6+I,EAAeL,GAAuB9uI,YAAYC,OAG3CmvI,EAAS/jE,MAChBgkE,EAAYn1E,SAGLo1E,GAAc,CAACn3I,SAAU,MAAMsgF,qBAAqB,YACpD82D,EAAqB,CAAC,UAAW,gBAAiB,WAC3D,uBAAwB,iBAAkB,kBAGjCC,EAAkB33I,KAAKikE,IAAI,EAAG,IAAM,ECrChC,SAAS2zE,EAAclwE,EAAMse,GAE1C,OADAA,EAA2B,MAAdA,EAAqBte,EAAK7tE,OAAS,GAAKmsF,EAC9C,WAIL,IAHA,IAAInsF,EAASmG,KAAKgiE,IAAI3/D,UAAUxI,OAASmsF,EAAY,GACjD6tD,EAAO13I,MAAMtC,GACbQ,EAAQ,EACLA,EAAQR,EAAQQ,IACrBw5I,EAAKx5I,GAASgI,UAAUhI,EAAQ2rF,GAElC,OAAQA,GACN,KAAK,EAAG,OAAOte,EAAKjtE,KAAKlB,KAAMs6I,GAC/B,KAAK,EAAG,OAAOnsE,EAAKjtE,KAAKlB,KAAM8I,UAAU,GAAIwxI,GAC7C,KAAK,EAAG,OAAOnsE,EAAKjtE,KAAKlB,KAAM8I,UAAU,GAAIA,UAAU,GAAIwxI,GAE7D,IAAIzxI,EAAOjG,MAAM6pF,EAAa,GAC9B,IAAK3rF,EAAQ,EAAGA,EAAQ2rF,EAAY3rF,IAClC+H,EAAK/H,GAASgI,UAAUhI,GAG1B,OADA+H,EAAK4jF,GAAc6tD,EACZnsE,EAAKtrE,MAAM7C,KAAM6I,ICvBb,SAASnB,EAASnD,GAC/B,IAAItG,SAAcsG,EAClB,MAAgB,aAATtG,GAAiC,WAATA,KAAuBsG,ECFzC,SAASi4I,EAAOj4I,GAC7B,OAAe,OAARA,ECDM,SAAS5G,EAAY4G,GAClC,YAAe,IAARA,ECCM,SAASkgH,EAAUlgH,GAChC,OAAe,IAARA,IAAwB,IAARA,GAAwC,qBAAvB,OAAcA,GCHzC,SAAS4xH,EAAU5xH,GAChC,SAAUA,GAAwB,IAAjBA,EAAIizI,UCCR,SAAS8G,EAAUl9I,GAChC,IAAIi+E,EAAM,WAAaj+E,EAAO,IAC9B,OAAO,SAASmD,GACd,OAAO,OAAcA,KAAS86E,GCJlC,QAAei/D,EAAU,UCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,QCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,SCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,eCCzB,IAAIhwI,EAAagwI,EAAU,YAIvBC,EAAWxkE,EAAK7vE,UAAY6vE,EAAK7vE,SAASw5G,WACM,iBAAbjqB,WAA4C,mBAAZ8kD,IACrEjwI,EAAa,SAAS/J,GACpB,MAAqB,mBAAPA,IAAqB,IAIvC,UCZA,EAAe+5I,EAAU,UCIlB,IAAIE,EACLb,GAAoB,EAAa,IAAIx4D,SAAS,IAAIv2E,YAAY,KAEhE6vI,EAAyB,oBAARjvE,KAAuB,EAAa,IAAIA,KCJzDkvE,EAAaJ,EAAU,YAQ3B,QAAgBE,EAJhB,SAAwBj6I,GACtB,OAAc,MAAPA,GAAe,EAAWA,EAAIo6I,UAAY33I,EAAczC,EAAI+C,SAGlBo3I,ECRnD,EAAed,GAAiBU,EAAU,SCF3B,SAAS57G,EAAIn+B,EAAK/G,GAC/B,OAAc,MAAP+G,GAAe,OAAoBA,EAAK/G,GCDjD,IAAIohJ,EAAcN,EAAU,cAI3B,WACMM,EAAY91I,aACf81I,EAAc,SAASr6I,GACrB,OAAOm+B,EAAIn+B,EAAK,YAHtB,GAQA,UCXe,SAAS,EAASA,GAC/B,OAAQ49G,EAAS59G,IAAQ05I,EAAU15I,KAAS01E,MAAM0f,WAAWp1F,ICDhD,SAAS,EAAMA,GAC5B,OAAOwF,EAASxF,IAAQy5I,EAAOz5I,GCJlB,SAASs6I,EAASjjJ,GAC/B,OAAO,WACL,OAAOA,GCAI,SAASkjJ,EAAwBC,GAC9C,OAAO,SAASC,GACd,IAAIC,EAAeF,EAAgBC,GACnC,MAA8B,iBAAhBC,GAA4BA,GAAgB,GAAKA,GAAgBb,GCLpE,SAASc,GAAgB1hJ,GACtC,OAAO,SAAS+G,GACd,OAAc,MAAPA,OAAc,EAASA,EAAI/G,ICAtC,SAAe0hJ,GAAgB,cCE/B,GAAeJ,EAAwB,ICCvC,IAAIK,GAAoB,8EAQxB,SAAezB,EAPf,SAAsBn5I,GAGpB,OAAOw5I,EAAgBA,EAAax5I,KAAS,EAAWA,GAC1C,GAAaA,IAAQ46I,GAAkB30I,KAAK,OAAcjG,KAGtBs6I,GAAS,GCX7D,GAAeK,GAAgB,UCoBhB,SAASE,GAAoB76I,EAAK8B,GAC/CA,EAhBF,SAAqBA,GAEnB,IADA,IAAIgF,EAAO,GACFhL,EAAIgG,EAAK/F,OAAQF,EAAI,EAAGA,EAAIC,IAAKD,EAAGiL,EAAKhF,EAAKjG,KAAM,EAC7D,MAAO,CACL08F,SAAU,SAASt/F,GAAO,OAAqB,IAAd6N,EAAK7N,IACtCqD,KAAM,SAASrD,GAEb,OADA6N,EAAK7N,IAAO,EACL6I,EAAKxF,KAAKrD,KASd6hJ,CAAYh5I,GACnB,IAAIi5I,EAAanB,EAAmB79I,OAChCoO,EAAcnK,EAAImK,YAClB+4D,EAAS,EAAW/4D,IAAgBA,EAAY1P,WAAcw+I,EAG9Dx3I,EAAO,cAGX,IAFI08B,EAAIn+B,EAAKyB,KAAUK,EAAKy2F,SAAS92F,IAAOK,EAAKxF,KAAKmF,GAE/Cs5I,MACLt5I,EAAOm4I,EAAmBmB,MACd/6I,GAAOA,EAAIyB,KAAUyhE,EAAMzhE,KAAUK,EAAKy2F,SAAS92F,IAC7DK,EAAKxF,KAAKmF,GC7BD,SAASK,GAAK9B,GAC3B,IAAKmD,EAASnD,GAAM,MAAO,GAC3B,GAAIs5I,EAAY,OAAOA,EAAWt5I,GAClC,IAAI8B,EAAO,GACX,IAAK,IAAI7I,KAAO+G,EAASm+B,EAAIn+B,EAAK/G,IAAM6I,EAAKxF,KAAKrD,GAGlD,OADI0gJ,GAAYkB,GAAoB76I,EAAK8B,GAClCA,ECNM,SAAS4sB,GAAQ1uB,GAC9B,GAAW,MAAPA,EAAa,OAAO,EAGxB,IAAIjE,EAAS,GAAUiE,GACvB,MAAqB,iBAAVjE,IACTuF,EAAQtB,IAAQ2D,EAAS3D,IAAQ,EAAYA,IAC1B,IAAXjE,EACsB,IAAzB,GAAU+F,GAAK9B,ICbT,SAASg7I,GAAQ3wE,EAAQnwC,GACtC,IAAI03D,EAAQ9vF,GAAKo4B,GAAQn+B,EAAS61F,EAAM71F,OACxC,GAAc,MAAVsuE,EAAgB,OAAQtuE,EAE5B,IADA,IAAIiE,EAAMP,OAAO4qE,GACRxuE,EAAI,EAAGA,EAAIE,EAAQF,IAAK,CAC/B,IAAI5C,EAAM24F,EAAM/1F,GAChB,GAAIq+B,EAAMjhC,KAAS+G,EAAI/G,MAAUA,KAAO+G,GAAM,OAAO,EAEvD,OAAO,ECNM,SAASqR,GAAErR,GACxB,OAAIA,aAAeqR,GAAUrR,EACvBvE,gBAAgB4V,QACtB5V,KAAKw/I,SAAWj7I,GADiB,IAAIqR,GAAErR,GCH1B,SAASk7I,GAAaC,GACnC,OAAO,IAAIjxI,WACTixI,EAAap4I,QAAUo4I,EACvBA,EAAa57E,YAAc,EAC3B,GAAc47E,IDGlB9pI,GAAEtW,QAAUA,EAGZsW,GAAE5W,UAAUpD,MAAQ,WAClB,OAAOoE,KAAKw/I,UAKd5pI,GAAE5W,UAAUklE,QAAUtuD,GAAE5W,UAAUwE,OAASoS,GAAE5W,UAAUpD,MAEvDga,GAAE5W,UAAU+H,SAAW,WACrB,OAAOgJ,OAAO/P,KAAKw/I,WEXrB,IAAIG,GAAc,oBAGlB,SAASz1B,GAAGj7G,EAAGC,EAAG0wI,EAAQC,GAGxB,GAAI5wI,IAAMC,EAAG,OAAa,IAAND,GAAW,EAAIA,GAAM,EAAIC,EAE7C,GAAS,MAALD,GAAkB,MAALC,EAAW,OAAO,EAEnC,GAAID,GAAMA,EAAG,OAAOC,GAAMA,EAE1B,IAAIjR,SAAcgR,EAClB,OAAa,aAAThR,GAAgC,WAATA,GAAiC,iBAALiR,IAChD4wI,GAAO7wI,EAAGC,EAAG0wI,EAAQC,GAI9B,SAASC,GAAO7wI,EAAGC,EAAG0wI,EAAQC,GAExB5wI,aAAa2G,KAAG3G,EAAIA,EAAEuwI,UACtBtwI,aAAa0G,KAAG1G,EAAIA,EAAEswI,UAE1B,IAAI9oH,EAAY,OAAcznB,GAC9B,GAAIynB,IAAc,OAAcxnB,GAAI,OAAO,EAE3C,GAAIsvI,GAAgC,mBAAb9nH,GAAkC,EAAWznB,GAAI,CACtE,IAAK,EAAWC,GAAI,OAAO,EAC3BwnB,EAAYipH,GAEd,OAAQjpH,GAEN,IAAK,kBAEL,IAAK,kBAGH,MAAO,GAAKznB,GAAM,GAAKC,EACzB,IAAK,kBAGH,OAAKD,IAAOA,GAAWC,IAAOA,EAEhB,IAAND,EAAU,GAAKA,GAAM,EAAIC,GAAKD,IAAOC,EAC/C,IAAK,gBACL,IAAK,mBAIH,OAAQD,IAAOC,EACjB,IAAK,kBACH,OAAOuuI,EAAYv5E,QAAQhjE,KAAK+N,KAAOwuI,EAAYv5E,QAAQhjE,KAAKgO,GAClE,IAAK,uBACL,KAAKywI,GAEH,OAAOG,GAAOL,GAAaxwI,GAAIwwI,GAAavwI,GAAI0wI,EAAQC,GAG5D,IAAIE,EAA0B,mBAAdrpH,EAChB,IAAKqpH,GAAa,GAAa9wI,GAAI,CAE/B,GADiB,GAAcA,KACZ,GAAcC,GAAI,OAAO,EAC5C,GAAID,EAAE3H,SAAW4H,EAAE5H,QAAU2H,EAAE60D,aAAe50D,EAAE40D,WAAY,OAAO,EACnEi8E,GAAY,EAEhB,IAAKA,EAAW,CACd,GAAgB,iBAAL9wI,GAA6B,iBAALC,EAAe,OAAO,EAIzD,IAAI8wI,EAAQ/wI,EAAEP,YAAauxI,EAAQ/wI,EAAER,YACrC,GAAIsxI,IAAUC,KAAW,EAAWD,IAAUA,aAAiBA,GACtC,EAAWC,IAAUA,aAAiBA,IACvC,gBAAiBhxI,GAAK,gBAAiBC,EAC7D,OAAO,EASX2wI,EAASA,GAAU,GAEnB,IADA,IAAIv/I,GAFJs/I,EAASA,GAAU,IAECt/I,OACbA,KAGL,GAAIs/I,EAAOt/I,KAAY2O,EAAG,OAAO4wI,EAAOv/I,KAAY4O,EAQtD,GAJA0wI,EAAO/+I,KAAKoO,GACZ4wI,EAAOh/I,KAAKqO,GAGR6wI,EAAW,CAGb,IADAz/I,EAAS2O,EAAE3O,UACI4O,EAAE5O,OAAQ,OAAO,EAEhC,KAAOA,KACL,IAAK4pH,GAAGj7G,EAAE3O,GAAS4O,EAAE5O,GAASs/I,EAAQC,GAAS,OAAO,MAEnD,CAEL,IAAqBriJ,EAAjB24F,EAAQ9vF,GAAK4I,GAGjB,GAFA3O,EAAS61F,EAAM71F,OAEX+F,GAAK6I,GAAG5O,SAAWA,EAAQ,OAAO,EACtC,KAAOA,KAGL,IAAMoiC,EAAIxzB,EADV1R,EAAM24F,EAAM71F,MACS4pH,GAAGj7G,EAAEzR,GAAM0R,EAAE1R,GAAMoiJ,EAAQC,GAAU,OAAO,EAMrE,OAFAD,EAAO1yI,MACP2yI,EAAO3yI,OACA,EAIM,SAASgzI,GAAQjxI,EAAGC,GACjC,OAAOg7G,GAAGj7G,EAAGC,GCnIA,SAASixI,GAAQ57I,GAC9B,IAAKmD,EAASnD,GAAM,MAAO,GAC3B,IAAI8B,EAAO,GACX,IAAK,IAAI7I,KAAO+G,EAAK8B,EAAKxF,KAAKrD,GAG/B,OADI0gJ,GAAYkB,GAAoB76I,EAAK8B,GAClCA,ECHF,SAAS+5I,GAAgB16D,GAC9B,IAAIplF,EAAS,GAAUolF,GACvB,OAAO,SAASnhF,GACd,GAAW,MAAPA,EAAa,OAAO,EAExB,IAAI8B,EAAO85I,GAAQ57I,GACnB,GAAI,GAAU8B,GAAO,OAAO,EAC5B,IAAK,IAAIjG,EAAI,EAAGA,EAAIE,EAAQF,IAC1B,IAAK,EAAWmE,EAAImhF,EAAQtlF,KAAM,OAAO,EAK3C,OAAOslF,IAAY26D,KAAmB,EAAW97I,EAAI+7I,MAMzD,IAAIA,GAAc,UAEdC,GAAa,CAAC,QAAS,UACvBC,GAAU,CAAC,MAFD,MAEiB,OAIpBC,GAAaF,GAAWz9I,OAAOw9I,GAAaE,IACnDH,GAAiBE,GAAWz9I,OAAO09I,IACnCE,GAAa,CAAC,OAAO59I,OAAOy9I,GAAYD,GAR9B,OCxBd,SAAe7B,EAAS2B,GAAgBK,IAAcnC,EAAU,OCAhE,GAAeG,EAAS2B,GAAgBC,IAAkB/B,EAAU,WCApE,GAAeG,EAAS2B,GAAgBM,IAAcpC,EAAU,OCFhE,GAAeA,EAAU,WCCV,SAASpkI,GAAO3V,GAI7B,IAHA,IAAI4xF,EAAQ9vF,GAAK9B,GACbjE,EAAS61F,EAAM71F,OACf4Z,EAAStX,MAAMtC,GACVF,EAAI,EAAGA,EAAIE,EAAQF,IAC1B8Z,EAAO9Z,GAAKmE,EAAI4xF,EAAM/1F,IAExB,OAAO8Z,ECNM,SAASrF,GAAMtQ,GAI5B,IAHA,IAAI4xF,EAAQ9vF,GAAK9B,GACbjE,EAAS61F,EAAM71F,OACfuU,EAAQjS,MAAMtC,GACTF,EAAI,EAAGA,EAAIE,EAAQF,IAC1ByU,EAAMzU,GAAK,CAAC+1F,EAAM/1F,GAAImE,EAAI4xF,EAAM/1F,KAElC,OAAOyU,ECRM,SAAS8rI,GAAOp8I,GAG7B,IAFA,IAAIwJ,EAAS,GACTooF,EAAQ9vF,GAAK9B,GACRnE,EAAI,EAAGE,EAAS61F,EAAM71F,OAAQF,EAAIE,EAAQF,IACjD2N,EAAOxJ,EAAI4xF,EAAM/1F,KAAO+1F,EAAM/1F,GAEhC,OAAO2N,ECNM,SAAS6yI,GAAUr8I,GAChC,IAAI4nB,EAAQ,GACZ,IAAK,IAAI3uB,KAAO+G,EACV,EAAWA,EAAI/G,KAAO2uB,EAAMtrB,KAAKrD,GAEvC,OAAO2uB,EAAM1Z,OCPA,SAASouI,GAAeC,EAAUn/I,GAC/C,OAAO,SAAS4C,GACd,IAAIjE,EAASwI,UAAUxI,OAEvB,GADIqB,IAAU4C,EAAMP,OAAOO,IACvBjE,EAAS,GAAY,MAAPiE,EAAa,OAAOA,EACtC,IAAK,IAAIzD,EAAQ,EAAGA,EAAQR,EAAQQ,IAIlC,IAHA,IAAIE,EAAS8H,UAAUhI,GACnBuF,EAAOy6I,EAAS9/I,GAChBX,EAAIgG,EAAK/F,OACJF,EAAI,EAAGA,EAAIC,EAAGD,IAAK,CAC1B,IAAI5C,EAAM6I,EAAKjG,GACVuB,QAAyB,IAAb4C,EAAI/G,KAAiB+G,EAAI/G,GAAOwD,EAAOxD,IAG5D,OAAO+G,GCXX,SAAes8I,GAAeV,ICE9B,GAAeU,GAAex6I,ICF9B,GAAew6I,GAAeV,IAAS,GCKxB,SAASY,GAAW/hJ,GACjC,IAAK0I,EAAS1I,GAAY,MAAO,GACjC,GAAI8+I,EAAc,OAAOA,EAAa9+I,GACtC,IAAI4gH,EAPG,aAQPA,EAAK5gH,UAAYA,EACjB,IAAI+O,EAAS,IAAI6xG,EAEjB,OADAA,EAAK5gH,UAAY,KACV+O,ECVM,SAAS7O,GAAOF,EAAWuQ,GACxC,IAAIxB,EAASgzI,GAAW/hJ,GAExB,OADIuQ,GAAOyxI,GAAUjzI,EAAQwB,GACtBxB,ECJM,SAASsiD,GAAM9rD,GAC5B,OAAKmD,EAASnD,GACPsB,EAAQtB,GAAOA,EAAIuB,QAAU7G,GAAO,GAAIsF,GADpBA,ECHd,SAAS08I,GAAI18I,EAAKnC,GAE/B,OADAA,EAAYmC,GACLA,ECAM,SAAS28I,GAAOv3I,GAC7B,OAAO9D,EAAQ8D,GAAQA,EAAO,CAACA,GCDlB,SAAS,GAAOA,GAC7B,OAAOiM,GAAEsrI,OAAOv3I,GCLH,SAASw3I,GAAQ58I,EAAKoF,GAEnC,IADA,IAAIrJ,EAASqJ,EAAKrJ,OACTF,EAAI,EAAGA,EAAIE,EAAQF,IAAK,CAC/B,GAAW,MAAPmE,EAAa,OACjBA,EAAMA,EAAIoF,EAAKvJ,IAEjB,OAAOE,EAASiE,OAAM,ECCT,SAASymB,GAAI4jD,EAAQjlE,EAAMy3I,GACxC,IAAIxlJ,EAAQulJ,GAAQvyE,EAAQ,GAAOjlE,IACnC,OAAOhM,EAAY/B,GAASwlJ,EAAexlJ,ECJ9B,SAAS,GAAI2I,EAAKoF,GAG/B,IADA,IAAIrJ,GADJqJ,EAAO,GAAOA,IACIrJ,OACTF,EAAI,EAAGA,EAAIE,EAAQF,IAAK,CAC/B,IAAI5C,EAAMmM,EAAKvJ,GACf,IAAK,EAAKmE,EAAK/G,GAAM,OAAO,EAC5B+G,EAAMA,EAAI/G,GAEZ,QAAS8C,ECbI,SAAS+gJ,GAASzlJ,GAC/B,OAAOA,ECGM,SAAS0lJ,GAAQ7iH,GAE9B,OADAA,EAAQuiH,GAAU,GAAIviH,GACf,SAASl6B,GACd,OAAOg7I,GAAQh7I,EAAKk6B,ICHT,SAAS+oD,GAAS79E,GAE/B,OADAA,EAAO,GAAOA,GACP,SAASpF,GACd,OAAO48I,GAAQ58I,EAAKoF,ICLT,SAAS43I,GAAWpzE,EAAMrvE,EAAS0iJ,GAChD,QAAgB,IAAZ1iJ,EAAoB,OAAOqvE,EAC/B,OAAoB,MAAZqzE,EAAmB,EAAIA,GAC7B,KAAK,EAAG,OAAO,SAAS5lJ,GACtB,OAAOuyE,EAAKjtE,KAAKpC,EAASlD,IAG5B,KAAK,EAAG,OAAO,SAASA,EAAOkF,EAAOk+I,GACpC,OAAO7wE,EAAKjtE,KAAKpC,EAASlD,EAAOkF,EAAOk+I,IAE1C,KAAK,EAAG,OAAO,SAASyC,EAAa7lJ,EAAOkF,EAAOk+I,GACjD,OAAO7wE,EAAKjtE,KAAKpC,EAAS2iJ,EAAa7lJ,EAAOkF,EAAOk+I,IAGzD,OAAO,WACL,OAAO7wE,EAAKtrE,MAAM/D,EAASgK,YCPhB,SAAS44I,GAAa9lJ,EAAOkD,EAAS0iJ,GACnD,OAAa,MAAT5lJ,EAAsBylJ,GACtB,EAAWzlJ,GAAe2lJ,GAAW3lJ,EAAOkD,EAAS0iJ,GACrD95I,EAAS9L,KAAWiK,EAAQjK,GAAe0lJ,GAAQ1lJ,GAChD4rF,GAAS5rF,GCTH,SAAS+lJ,GAAS/lJ,EAAOkD,GACtC,OAAO4iJ,GAAa9lJ,EAAOkD,EAAS8T,KCDvB,SAAS+2B,GAAG/tC,EAAOkD,EAAS0iJ,GACzC,OAAI5rI,GAAE+rI,WAAaA,GAAiB/rI,GAAE+rI,SAAS/lJ,EAAOkD,GAC/C4iJ,GAAa9lJ,EAAOkD,EAAS0iJ,GCHvB,SAASI,GAAUr9I,EAAKo9I,EAAU7iJ,GAC/C6iJ,EAAWh4G,GAAGg4G,EAAU7iJ,GAIxB,IAHA,IAAIq3F,EAAQ9vF,GAAK9B,GACbjE,EAAS61F,EAAM71F,OACf0nB,EAAU,GACLlnB,EAAQ,EAAGA,EAAQR,EAAQQ,IAAS,CAC3C,IAAI+gJ,EAAa1rD,EAAMr1F,GACvBknB,EAAQ65H,GAAcF,EAASp9I,EAAIs9I,GAAaA,EAAYt9I,GAE9D,OAAOyjB,ECbM,SAASmqD,MCGT,SAAS2vE,GAAWv9I,GACjC,OAAW,MAAPA,EAAoB4tE,GACjB,SAASxoE,GACd,OAAOqhB,GAAIzmB,EAAKoF,ICJL,SAASo4I,GAAMrqF,EAAGiqF,EAAU7iJ,GACzC,IAAIkjJ,EAAQp/I,MAAM6D,KAAKgiE,IAAI,EAAG/Q,IAC9BiqF,EAAWJ,GAAWI,EAAU7iJ,EAAS,GACzC,IAAK,IAAIsB,EAAI,EAAGA,EAAIs3D,EAAGt3D,IAAK4hJ,EAAM5hJ,GAAKuhJ,EAASvhJ,GAChD,OAAO4hJ,ECNM,SAASnxG,GAAOl+B,EAAK81D,GAKlC,OAJW,MAAPA,IACFA,EAAM91D,EACNA,EAAM,GAEDA,EAAMlM,KAAKC,MAAMD,KAAKoqC,UAAY43B,EAAM91D,EAAM,IhBEvDiD,GAAEsrI,OAASA,GUCXtrI,GAAE+rI,SAAWA,GORb,SAAe33I,KAAKO,KAAO,WACzB,OAAO,IAAIP,MAAOgjB,WCEL,SAASi1H,GAAcvvI,GACpC,IAAIwvI,EAAU,SAAS/3I,GACrB,OAAOuI,EAAIvI,IAGTnJ,EAAS,MAAQqF,GAAKqM,GAAKpJ,KAAK,KAAO,IACvC64I,EAAa/3I,OAAOpJ,GACpBohJ,EAAgBh4I,OAAOpJ,EAAQ,KACnC,OAAO,SAAS60D,GAEd,OADAA,EAAmB,MAAVA,EAAiB,GAAK,GAAKA,EAC7BssF,EAAW33I,KAAKqrD,GAAUA,EAAO7sD,QAAQo5I,EAAeF,GAAWrsF,GCb9E,UACE,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,UCHP,GAAeosF,GAAc,ICA7B,GAAeA,GCAAtB,GAAO,KCAtB,GAAe/qI,GAAEysI,iBAAmB,CAClCC,SAAU,kBACVC,YAAa,mBACbryH,OAAQ,oBCAV,IAAIsyH,GAAU,OAIVC,GAAU,CACZ,IAAK,IACL,KAAM,KACN,KAAM,IACN,KAAM,IACN,SAAU,QACV,SAAU,SAGRC,GAAe,4BAEnB,SAASC,GAAWx4I,GAClB,MAAO,KAAOs4I,GAAQt4I,GAQxB,IAAIy4I,GAAiB,mBAMN,SAASj7F,GAASrzC,EAAMuuI,EAAUC,IAC1CD,GAAYC,IAAaD,EAAWC,GACzCD,EAAWlhJ,GAAS,GAAIkhJ,EAAUjtI,GAAEysI,kBAGpC,IAAIf,EAAUl3I,OAAO,EAClBy4I,EAAS3yH,QAAUsyH,IAASxhJ,QAC5B6hJ,EAASN,aAAeC,IAASxhJ,QACjC6hJ,EAASP,UAAYE,IAASxhJ,QAC/BsI,KAAK,KAAO,KAAM,KAGhBxI,EAAQ,EACRE,EAAS,SACbsT,EAAKtL,QAAQs4I,GAAS,SAASn3I,EAAO+lB,EAAQqyH,EAAaD,EAAU5gF,GAanE,OAZA1gE,GAAUsT,EAAKxO,MAAMhF,EAAO4gE,GAAQ14D,QAAQ05I,GAAcC,IAC1D7hJ,EAAQ4gE,EAASv3D,EAAM7J,OAEnB4vB,EACFlvB,GAAU,cAAgBkvB,EAAS,iCAC1BqyH,EACTvhJ,GAAU,cAAgBuhJ,EAAc,uBAC/BD,IACTthJ,GAAU,OAASshJ,EAAW,YAIzBn4I,KAETnJ,GAAU,OAEV,IAgBIutD,EAhBAw0F,EAAWF,EAASnd,SACxB,GAAIqd,GAEF,IAAKH,GAAep4I,KAAKu4I,GAAW,MAAM,IAAI3qJ,MAC5C,sCAAwC2qJ,QAI1C/hJ,EAAS,mBAAqBA,EAAS,MACvC+hJ,EAAW,MAGb/hJ,EAAS,4FAEPA,EAAS,gBAGX,IACEutD,EAAS,IAAIsnC,SAASktD,EAAU,IAAK/hJ,GACrC,MAAOsH,GAEP,MADAA,EAAEtH,OAASA,EACLsH,EAGR,IAAIq/C,EAAW,SAAS7tD,GACtB,OAAOy0D,EAAOrtD,KAAKlB,KAAMlG,EAAM8b,KAMjC,OAFA+xC,EAAS3mD,OAAS,YAAc+hJ,EAAW,OAAS/hJ,EAAS,IAEtD2mD,EC7FM,SAAS55C,GAAOxJ,EAAKoF,EAAMq5I,GAExC,IAAI1iJ,GADJqJ,EAAO,GAAOA,IACIrJ,OAClB,IAAKA,EACH,OAAO,EAAW0iJ,GAAYA,EAAS9hJ,KAAKqD,GAAOy+I,EAErD,IAAK,IAAI5iJ,EAAI,EAAGA,EAAIE,EAAQF,IAAK,CAC/B,IAAI4F,EAAc,MAAPzB,OAAc,EAASA,EAAIoF,EAAKvJ,SAC9B,IAAT4F,IACFA,EAAOg9I,EACP5iJ,EAAIE,GAENiE,EAAM,EAAWyB,GAAQA,EAAK9E,KAAKqD,GAAOyB,EAE5C,OAAOzB,EClBT,IAAI0+I,GAAY,EACD,SAASC,GAASz1H,GAC/B,IAAI7oB,IAAOq+I,GAAY,GACvB,OAAOx1H,EAASA,EAAS7oB,EAAKA,ECFjB,SAASjC,GAAM4B,GAC5B,IAAIxF,EAAW6W,GAAErR,GAEjB,OADAxF,EAASokJ,QAAS,EACXpkJ,ECAM,SAASqkJ,GAAaC,EAAYC,EAAWxkJ,EAASykJ,EAAgB16I,GACnF,KAAM06I,aAA0BD,GAAY,OAAOD,EAAWxgJ,MAAM/D,EAAS+J,GAC7E,IAAIi6B,EAAOi+G,GAAWsC,EAAWrkJ,WAC7B+O,EAASs1I,EAAWxgJ,MAAMigC,EAAMj6B,GACpC,OAAInB,EAASqG,GAAgBA,EACtB+0B,ECHT,IAAI0gH,GAAUnF,GAAc,SAASlwE,EAAM6pB,GACzC,IAAI7iC,EAAcquF,GAAQruF,YACtB0iC,EAAQ,WAGV,IAFA,IAAI/nF,EAAW,EAAGxP,EAAS03F,EAAU13F,OACjCuI,EAAOjG,MAAMtC,GACRF,EAAI,EAAGA,EAAIE,EAAQF,IAC1ByI,EAAKzI,GAAK43F,EAAU53F,KAAO+0D,EAAcrsD,UAAUgH,KAAckoF,EAAU53F,GAE7E,KAAO0P,EAAWhH,UAAUxI,QAAQuI,EAAKhI,KAAKiI,UAAUgH,MACxD,OAAOszI,GAAaj1E,EAAM0pB,EAAO73F,KAAMA,KAAM6I,IAE/C,OAAOgvF,KAGT2rD,GAAQruF,YAAcv/C,GACtB,YCjBA,GAAeyoI,GAAc,SAASlwE,EAAMrvE,EAAS+J,GACnD,IAAK,EAAWslE,GAAO,MAAM,IAAIruE,UAAU,qCAC3C,IAAI+3F,EAAQwmD,GAAc,SAASoF,GACjC,OAAOL,GAAaj1E,EAAM0pB,EAAO/4F,EAASkB,KAAM6I,EAAK/F,OAAO2gJ,OAE9D,OAAO5rD,KCJT,GAAeinD,EAAwB,ICDxB,SAAS4E,GAAQvpF,EAAO4e,EAAOnG,EAAQjV,GAEpD,GADAA,EAASA,GAAU,GACdob,GAAmB,IAAVA,GAEP,GAAIA,GAAS,EAClB,OAAOpb,EAAO76D,OAAOq3D,QAFrB4e,EAAQnmE,IAKV,IADA,IAAIu9E,EAAMxyB,EAAOr9D,OACRF,EAAI,EAAGE,EAAS,GAAU65D,GAAQ/5D,EAAIE,EAAQF,IAAK,CAC1D,IAAIxE,EAAQu+D,EAAM/5D,GAClB,GAAI,GAAYxE,KAAWiK,EAAQjK,IAAU,EAAYA,IAEvD,GAAIm9E,EAAQ,EACV2qE,GAAQ9nJ,EAAOm9E,EAAQ,EAAGnG,EAAQjV,GAClCwyB,EAAMxyB,EAAOr9D,YAGb,IADA,IAAIq0D,EAAI,EAAGsI,EAAMrhE,EAAM0E,OAChBq0D,EAAIsI,GAAKU,EAAOwyB,KAASv0F,EAAM+4D,UAE9Bie,IACVjV,EAAOwyB,KAASv0F,GAGpB,OAAO+hE,ECtBT,SAAe0gF,GAAc,SAAS95I,EAAK8B,GAEzC,IAAIvF,GADJuF,EAAOq9I,GAAQr9I,GAAM,GAAO,IACX/F,OACjB,GAAIQ,EAAQ,EAAG,MAAM,IAAI1I,MAAM,yCAC/B,KAAO0I,KAAS,CACd,IAAItD,EAAM6I,EAAKvF,GACfyD,EAAI/G,GAAOgB,GAAK+F,EAAI/G,GAAM+G,GAE5B,OAAOA,KCZM,SAASo/I,GAAQx1E,EAAMy1E,GACpC,IAAID,EAAU,SAASnmJ,GACrB,IAAIyQ,EAAQ01I,EAAQ11I,MAChB00F,EAAU,IAAMihD,EAASA,EAAO/gJ,MAAM7C,KAAM8I,WAAatL,GAE7D,OADKklC,EAAIz0B,EAAO00F,KAAU10F,EAAM00F,GAAWx0B,EAAKtrE,MAAM7C,KAAM8I,YACrDmF,EAAM00F,IAGf,OADAghD,EAAQ11I,MAAQ,GACT01I,ECPT,SAAetF,GAAc,SAASlwE,EAAM2H,EAAMjtE,GAChD,OAAOtM,YAAW,WAChB,OAAO4xE,EAAKtrE,MAAM,KAAMgG,KACvBitE,MCDL,GAAe,GAAQjD,GAAOj9D,GAAG,GCClB,SAAS89D,GAASvF,EAAM2H,EAAM79E,GAC3C,IAAIiE,EAAS4C,EAAS+J,EAAMkF,EACxB89H,EAAW,EACV5zI,IAASA,EAAU,IAExB,IAAI4rJ,EAAQ,WACVhY,GAA+B,IAApB5zI,EAAQ6rJ,QAAoB,EAAIv5I,KAC3CrO,EAAU,KACV6R,EAASogE,EAAKtrE,MAAM/D,EAAS+J,GACxB3M,IAAS4C,EAAU+J,EAAO,OAG7B48G,EAAY,WACd,IAAIs+B,EAAOx5I,KACNshI,IAAgC,IAApB5zI,EAAQ6rJ,UAAmBjY,EAAWkY,GACvD,IAAI79E,EAAY4P,GAAQiuE,EAAOlY,GAc/B,OAbA/sI,EAAUkB,KACV6I,EAAOC,UACHo9D,GAAa,GAAKA,EAAY4P,GAC5B55E,IACFmwD,aAAanwD,GACbA,EAAU,MAEZ2vI,EAAWkY,EACXh2I,EAASogE,EAAKtrE,MAAM/D,EAAS+J,GACxB3M,IAAS4C,EAAU+J,EAAO,OACrB3M,IAAgC,IAArBjE,EAAQ+rJ,WAC7B9nJ,EAAUK,WAAWsnJ,EAAO39E,IAEvBn4D,GAST,OANA03G,EAAUznH,OAAS,WACjBquD,aAAanwD,GACb2vI,EAAW,EACX3vI,EAAU4C,EAAU+J,EAAO,MAGtB48G,ECtCM,SAASw+B,GAAS91E,EAAM2H,EAAMouE,GAC3C,IAAIhoJ,EAAS2vI,EAAUhjI,EAAMkF,EAAQjP,EAEjC+kJ,EAAQ,WACV,IAAIM,EAAS55I,KAAQshI,EACjB/1D,EAAOquE,EACTjoJ,EAAUK,WAAWsnJ,EAAO/tE,EAAOquE,IAEnCjoJ,EAAU,KACLgoJ,IAAWn2I,EAASogE,EAAKtrE,MAAM/D,EAAS+J,IAExC3M,IAAS2M,EAAO/J,EAAU,QAI/BslJ,EAAY/F,GAAc,SAASgG,GAQrC,OAPAvlJ,EAAUkB,KACV6I,EAAOw7I,EACPxY,EAAWthI,KACNrO,IACHA,EAAUK,WAAWsnJ,EAAO/tE,GACxBouE,IAAWn2I,EAASogE,EAAKtrE,MAAM/D,EAAS+J,KAEvCkF,KAQT,OALAq2I,EAAUpmJ,OAAS,WACjBquD,aAAanwD,GACbA,EAAU2M,EAAO/J,EAAU,MAGtBslJ,ECjCM,SAAS/oB,GAAKltD,EAAMm2E,GACjC,OAAO,GAAQA,EAASn2E,GCLX,SAASo2E,GAAOv1E,GAC7B,OAAO,WACL,OAAQA,EAAUnsE,MAAM7C,KAAM8I,YCDnB,SAAS07I,KACtB,IAAI37I,EAAOC,UACPyyD,EAAQ1yD,EAAKvI,OAAS,EAC1B,OAAO,WAGL,IAFA,IAAIF,EAAIm7D,EACJxtD,EAASlF,EAAK0yD,GAAO14D,MAAM7C,KAAM8I,WAC9B1I,KAAK2N,EAASlF,EAAKzI,GAAGc,KAAKlB,KAAM+N,GACxC,OAAOA,GCRI,SAAS2zC,GAAMqgG,EAAO5zE,GACnC,OAAO,WACL,KAAM4zE,EAAQ,EACZ,OAAO5zE,EAAKtrE,MAAM7C,KAAM8I,YCFf,SAASu7H,GAAO0d,EAAO5zE,GACpC,IAAIhlC,EACJ,OAAO,WAKL,QAJM44G,EAAQ,IACZ54G,EAAOglC,EAAKtrE,MAAM7C,KAAM8I,YAEtBi5I,GAAS,IAAG5zE,EAAO,MAChBhlC,GCJX,SAAe,GAAQk7F,GAAQ,GCDhB,SAASogB,GAAQlgJ,EAAKyqE,EAAWlwE,GAC9CkwE,EAAYrlC,GAAGqlC,EAAWlwE,GAE1B,IADA,IAAuBtB,EAAnB24F,EAAQ9vF,GAAK9B,GACRnE,EAAI,EAAGE,EAAS61F,EAAM71F,OAAQF,EAAIE,EAAQF,IAEjD,GAAI4uE,EAAUzqE,EADd/G,EAAM24F,EAAM/1F,IACY5C,EAAK+G,GAAM,OAAO/G,ECL/B,SAASknJ,GAA2Bn/E,GACjD,OAAO,SAASf,EAAOwK,EAAWlwE,GAChCkwE,EAAYrlC,GAAGqlC,EAAWlwE,GAG1B,IAFA,IAAIwB,EAAS,GAAUkkE,GACnB1jE,EAAQykE,EAAM,EAAI,EAAIjlE,EAAS,EAC5BQ,GAAS,GAAKA,EAAQR,EAAQQ,GAASykE,EAC5C,GAAIyJ,EAAUxK,EAAM1jE,GAAQA,EAAO0jE,GAAQ,OAAO1jE,EAEpD,OAAQ,GCTZ,SAAe4jJ,GAA2B,GCA1C,GAAeA,IAA4B,GCE5B,SAASC,GAAYngF,EAAOjgE,EAAKo9I,EAAU7iJ,GAIxD,IAFA,IAAIlD,GADJ+lJ,EAAWh4G,GAAGg4G,EAAU7iJ,EAAS,IACZyF,GACjBi5F,EAAM,EAAGD,EAAO,GAAU/4B,GACvBg5B,EAAMD,GAAM,CACjB,IAAI8pC,EAAM5gI,KAAKC,OAAO82F,EAAMD,GAAQ,GAChCokD,EAASn9E,EAAM6iE,IAAQzrI,EAAO4hG,EAAM6pC,EAAM,EAAQ9pC,EAAO8pC,EAE/D,OAAO7pC,ECRM,SAASonD,GAAkBr/E,EAAKs/E,EAAeF,GAC5D,OAAO,SAASngF,EAAO1vD,EAAMq7E,GAC3B,IAAI/vF,EAAI,EAAGE,EAAS,GAAUkkE,GAC9B,GAAkB,iBAAP2rB,EACL5qB,EAAM,EACRnlE,EAAI+vF,GAAO,EAAIA,EAAM1pF,KAAKgiE,IAAI0nB,EAAM7vF,EAAQF,GAE5CE,EAAS6vF,GAAO,EAAI1pF,KAAKkM,IAAIw9E,EAAM,EAAG7vF,GAAU6vF,EAAM7vF,EAAS,OAE5D,GAAIqkJ,GAAex0D,GAAO7vF,EAE/B,OAAOkkE,EADP2rB,EAAMw0D,EAAYngF,EAAO1vD,MACHA,EAAOq7E,GAAO,EAEtC,GAAIr7E,GAASA,EAEX,OADAq7E,EAAM00D,EAAc/+I,EAAM5E,KAAKsjE,EAAOpkE,EAAGE,GAAS,KACpC,EAAI6vF,EAAM/vF,GAAK,EAE/B,IAAK+vF,EAAM5qB,EAAM,EAAInlE,EAAIE,EAAS,EAAG6vF,GAAO,GAAKA,EAAM7vF,EAAQ6vF,GAAO5qB,EACpE,GAAIf,EAAM2rB,KAASr7E,EAAM,OAAOq7E,EAElC,OAAQ,GCjBZ,SAAey0D,GAAkB,EAAGE,GAAWH,ICH/C,GAAeC,IAAmB,EAAGG,ICAtB,SAAS9zI,GAAK1M,EAAKyqE,EAAWlwE,GAC3C,IACItB,GADY,GAAY+G,GAAOugJ,GAAYL,IAC3BlgJ,EAAKyqE,EAAWlwE,GACpC,QAAY,IAARtB,IAA2B,IAATA,EAAY,OAAO+G,EAAI/G,GCHhC,SAASwnJ,GAAUzgJ,EAAKk6B,GACrC,OAAOxtB,GAAK1M,EAAK+8I,GAAQ7iH,ICEZ,SAAS0jB,GAAK59C,EAAKo9I,EAAU7iJ,GAE1C,IAAIsB,EAAGE,EACP,GAFAqhJ,EAAWJ,GAAWI,EAAU7iJ,GAE5B,GAAYyF,GACd,IAAKnE,EAAI,EAAGE,EAASiE,EAAIjE,OAAQF,EAAIE,EAAQF,IAC3CuhJ,EAASp9I,EAAInE,GAAIA,EAAGmE,OAEjB,CACL,IAAI4xF,EAAQ9vF,GAAK9B,GACjB,IAAKnE,EAAI,EAAGE,EAAS61F,EAAM71F,OAAQF,EAAIE,EAAQF,IAC7CuhJ,EAASp9I,EAAI4xF,EAAM/1F,IAAK+1F,EAAM/1F,GAAImE,GAGtC,OAAOA,EChBM,SAASmO,GAAInO,EAAKo9I,EAAU7iJ,GACzC6iJ,EAAWh4G,GAAGg4G,EAAU7iJ,GAIxB,IAHA,IAAIq3F,GAAS,GAAY5xF,IAAQ8B,GAAK9B,GAClCjE,GAAU61F,GAAS5xF,GAAKjE,OACxB0nB,EAAUplB,MAAMtC,GACXQ,EAAQ,EAAGA,EAAQR,EAAQQ,IAAS,CAC3C,IAAI+gJ,EAAa1rD,EAAQA,EAAMr1F,GAASA,EACxCknB,EAAQlnB,GAAS6gJ,EAASp9I,EAAIs9I,GAAaA,EAAYt9I,GAEzD,OAAOyjB,ECTM,SAASi9H,GAAa1/E,GAGnC,IAAIid,EAAU,SAASj+E,EAAKo9I,EAAUx4G,EAAM84C,GAC1C,IAAIkU,GAAS,GAAY5xF,IAAQ8B,GAAK9B,GAClCjE,GAAU61F,GAAS5xF,GAAKjE,OACxBQ,EAAQykE,EAAM,EAAI,EAAIjlE,EAAS,EAKnC,IAJK2hF,IACH94C,EAAO5kC,EAAI4xF,EAAQA,EAAMr1F,GAASA,GAClCA,GAASykE,GAEJzkE,GAAS,GAAKA,EAAQR,EAAQQ,GAASykE,EAAK,CACjD,IAAIs8E,EAAa1rD,EAAQA,EAAMr1F,GAASA,EACxCqoC,EAAOw4G,EAASx4G,EAAM5kC,EAAIs9I,GAAaA,EAAYt9I,GAErD,OAAO4kC,GAGT,OAAO,SAAS5kC,EAAKo9I,EAAUx4G,EAAMrqC,GACnC,IAAImjF,EAAUn5E,UAAUxI,QAAU,EAClC,OAAOkiF,EAAQj+E,EAAKg9I,GAAWI,EAAU7iJ,EAAS,GAAIqqC,EAAM84C,ICrBhE,SAAegjE,GAAa,GCD5B,GAAeA,IAAc,GCCd,SAASv1I,GAAOnL,EAAKyqE,EAAWlwE,GAC7C,IAAIkpB,EAAU,GAKd,OAJAgnD,EAAYrlC,GAAGqlC,EAAWlwE,GAC1BqjD,GAAK59C,GAAK,SAAS3I,EAAOkF,EAAO+iC,GAC3BmrC,EAAUpzE,EAAOkF,EAAO+iC,IAAO7b,EAAQnnB,KAAKjF,MAE3CosB,ECLM,SAASjwB,GAAOwM,EAAKyqE,EAAWlwE,GAC7C,OAAO4Q,GAAOnL,EAAKggJ,GAAO56G,GAAGqlC,IAAalwE,GCD7B,SAASw6B,GAAM/0B,EAAKyqE,EAAWlwE,GAC5CkwE,EAAYrlC,GAAGqlC,EAAWlwE,GAG1B,IAFA,IAAIq3F,GAAS,GAAY5xF,IAAQ8B,GAAK9B,GAClCjE,GAAU61F,GAAS5xF,GAAKjE,OACnBQ,EAAQ,EAAGA,EAAQR,EAAQQ,IAAS,CAC3C,IAAI+gJ,EAAa1rD,EAAQA,EAAMr1F,GAASA,EACxC,IAAKkuE,EAAUzqE,EAAIs9I,GAAaA,EAAYt9I,GAAM,OAAO,EAE3D,OAAO,ECRM,SAASuN,GAAKvN,EAAKyqE,EAAWlwE,GAC3CkwE,EAAYrlC,GAAGqlC,EAAWlwE,GAG1B,IAFA,IAAIq3F,GAAS,GAAY5xF,IAAQ8B,GAAK9B,GAClCjE,GAAU61F,GAAS5xF,GAAKjE,OACnBQ,EAAQ,EAAGA,EAAQR,EAAQQ,IAAS,CAC3C,IAAI+gJ,EAAa1rD,EAAQA,EAAMr1F,GAASA,EACxC,GAAIkuE,EAAUzqE,EAAIs9I,GAAaA,EAAYt9I,GAAM,OAAO,EAE1D,OAAO,ECRM,SAASu4F,GAASv4F,EAAKuQ,EAAMslG,EAAW8qC,GAGrD,OAFK,GAAY3gJ,KAAMA,EAAM2V,GAAO3V,KACZ,iBAAb61G,GAAyB8qC,KAAO9qC,EAAY,GAChD99G,GAAQiI,EAAKuQ,EAAMslG,IAAc,ECD1C,SAAeikC,GAAc,SAAS95I,EAAKoF,EAAMd,GAC/C,IAAIs8I,EAAah3E,EAQjB,OAPI,EAAWxkE,GACbwkE,EAAOxkE,GAEPA,EAAO,GAAOA,GACdw7I,EAAcx7I,EAAK7D,MAAM,GAAI,GAC7B6D,EAAOA,EAAKA,EAAKrJ,OAAS,IAErBoS,GAAInO,GAAK,SAASzF,GACvB,IAAIhD,EAASqyE,EACb,IAAKryE,EAAQ,CAIX,GAHIqpJ,GAAeA,EAAY7kJ,SAC7BxB,EAAUqiJ,GAAQriJ,EAASqmJ,IAEd,MAAXrmJ,EAAiB,OACrBhD,EAASgD,EAAQ6K,GAEnB,OAAiB,MAAV7N,EAAiBA,EAASA,EAAO+G,MAAM/D,EAAS+J,SCrB5C,SAASu8I,GAAM7gJ,EAAK/G,GACjC,OAAOkV,GAAInO,EAAKijF,GAAShqF,ICAZ,SAASwxF,GAAMzqF,EAAKk6B,GACjC,OAAO/uB,GAAOnL,EAAK+8I,GAAQ7iH,ICAd,SAASgqC,GAAIlkE,EAAKo9I,EAAU7iJ,GACzC,IACIlD,EAAOypJ,EADPt3I,GAAS,IAAWu3I,GAAe,IAEvC,GAAgB,MAAZ3D,GAAwC,iBAAZA,GAAyC,iBAAVp9I,EAAI,IAAyB,MAAPA,EAEnF,IAAK,IAAInE,EAAI,EAAGE,GADhBiE,EAAM,GAAYA,GAAOA,EAAM2V,GAAO3V,IACTjE,OAAQF,EAAIE,EAAQF,IAElC,OADbxE,EAAQ2I,EAAInE,KACSxE,EAAQmS,IAC3BA,EAASnS,QAIb+lJ,EAAWh4G,GAAGg4G,EAAU7iJ,GACxBqjD,GAAK59C,GAAK,SAAS4E,EAAGrI,EAAO+iC,KAC3BwhH,EAAW1D,EAASx4I,EAAGrI,EAAO+iC,IACfyhH,GAAiBD,KAAa,KAAat3I,KAAW,OACnEA,EAAS5E,EACTm8I,EAAeD,MAIrB,OAAOt3I,ECrBM,SAAS4E,GAAIpO,EAAKo9I,EAAU7iJ,GACzC,IACIlD,EAAOypJ,EADPt3I,EAAS6E,IAAU0yI,EAAe1yI,IAEtC,GAAgB,MAAZ+uI,GAAwC,iBAAZA,GAAyC,iBAAVp9I,EAAI,IAAyB,MAAPA,EAEnF,IAAK,IAAInE,EAAI,EAAGE,GADhBiE,EAAM,GAAYA,GAAOA,EAAM2V,GAAO3V,IACTjE,OAAQF,EAAIE,EAAQF,IAElC,OADbxE,EAAQ2I,EAAInE,KACSxE,EAAQmS,IAC3BA,EAASnS,QAIb+lJ,EAAWh4G,GAAGg4G,EAAU7iJ,GACxBqjD,GAAK59C,GAAK,SAAS4E,EAAGrI,EAAO+iC,KAC3BwhH,EAAW1D,EAASx4I,EAAGrI,EAAO+iC,IACfyhH,GAAiBD,IAAazyI,KAAY7E,IAAW6E,OAClE7E,EAAS5E,EACTm8I,EAAeD,MAIrB,OAAOt3I,EClBT,IAAIw3I,GAAc,mEACH,SAASx4I,GAAQxI,GAC9B,OAAKA,EACDsB,EAAQtB,GAAauB,EAAM5E,KAAKqD,GAChC2D,EAAS3D,GAEJA,EAAI4F,MAAMo7I,IAEf,GAAYhhJ,GAAamO,GAAInO,EAAK88I,IAC/BnnI,GAAO3V,GAPG,GCDJ,SAAS2/H,GAAO3/H,EAAKmzD,EAAGwtF,GACrC,GAAS,MAALxtF,GAAawtF,EAEf,OADK,GAAY3gJ,KAAMA,EAAM2V,GAAO3V,IAC7BA,EAAIssC,GAAOtsC,EAAIjE,OAAS,IAEjC,IAAI4jI,EAASn3H,GAAQxI,GACjBjE,EAAS,GAAU4jI,GACvBxsE,EAAIjxD,KAAKgiE,IAAIhiE,KAAKkM,IAAI+kD,EAAGp3D,GAAS,GAElC,IADA,IAAIs0D,EAAOt0D,EAAS,EACXQ,EAAQ,EAAGA,EAAQ42D,EAAG52D,IAAS,CACtC,IAAI0kJ,EAAO30G,GAAO/vC,EAAO8zD,GACrB6wF,EAAOvhB,EAAOpjI,GAClBojI,EAAOpjI,GAASojI,EAAOshB,GACvBthB,EAAOshB,GAAQC,EAEjB,OAAOvhB,EAAOp+H,MAAM,EAAG4xD,GCtBV,SAASguF,GAAQnhJ,GAC9B,OAAO2/H,GAAO3/H,EAAKqO,KCCN,SAAS+yI,GAAOphJ,EAAKo9I,EAAU7iJ,GAC5C,IAAIgC,EAAQ,EAEZ,OADA6gJ,EAAWh4G,GAAGg4G,EAAU7iJ,GACjBsmJ,GAAM1yI,GAAInO,GAAK,SAAS3I,EAAO4B,EAAKqmC,GACzC,MAAO,CACLjoC,MAAOA,EACPkF,MAAOA,IACP8kJ,SAAUjE,EAAS/lJ,EAAO4B,EAAKqmC,OAEhCpxB,MAAK,SAASqlD,EAAMoG,GACrB,IAAIjvD,EAAI6oD,EAAK8tF,SACT12I,EAAIgvD,EAAM0nF,SACd,GAAI32I,IAAMC,EAAG,CACX,GAAID,EAAIC,QAAW,IAAND,EAAc,OAAO,EAClC,GAAIA,EAAIC,QAAW,IAANA,EAAc,OAAQ,EAErC,OAAO4oD,EAAKh3D,MAAQo9D,EAAMp9D,SACxB,SClBS,SAAS+kJ,GAAMC,EAAUC,GACtC,OAAO,SAASxhJ,EAAKo9I,EAAU7iJ,GAC7B,IAAIiP,EAASg4I,EAAY,CAAC,GAAI,IAAM,GAMpC,OALApE,EAAWh4G,GAAGg4G,EAAU7iJ,GACxBqjD,GAAK59C,GAAK,SAAS3I,EAAOkF,GACxB,IAAItD,EAAMmkJ,EAAS/lJ,EAAOkF,EAAOyD,GACjCuhJ,EAAS/3I,EAAQnS,EAAO4B,MAEnBuQ,GCPX,SAAe83I,IAAM,SAAS93I,EAAQnS,EAAO4B,GACvCklC,EAAI30B,EAAQvQ,GAAMuQ,EAAOvQ,GAAKqD,KAAKjF,GAAamS,EAAOvQ,GAAO,CAAC5B,MCFrE,GAAeiqJ,IAAM,SAAS93I,EAAQnS,EAAO4B,GAC3CuQ,EAAOvQ,GAAO5B,KCChB,GAAeiqJ,IAAM,SAAS93I,EAAQnS,EAAO4B,GACvCklC,EAAI30B,EAAQvQ,GAAMuQ,EAAOvQ,KAAauQ,EAAOvQ,GAAO,KCH1D,GAAeqoJ,IAAM,SAAS93I,EAAQnS,EAAOoqJ,GAC3Cj4I,EAAOi4I,EAAO,EAAI,GAAGnlJ,KAAKjF,MACzB,GCFY,SAAS2oE,GAAKhgE,GAC3B,OAAW,MAAPA,EAAoB,EACjB,GAAYA,GAAOA,EAAIjE,OAAS+F,GAAK9B,GAAKjE,OCJpC,SAAS2lJ,GAASrqJ,EAAO4B,EAAK+G,GAC3C,OAAO/G,KAAO+G,ECKhB,SAAe85I,GAAc,SAAS95I,EAAK8B,GACzC,IAAI0H,EAAS,GAAI4zI,EAAWt7I,EAAK,GACjC,GAAW,MAAP9B,EAAa,OAAOwJ,EACpB,EAAW4zI,IACTt7I,EAAK/F,OAAS,IAAGqhJ,EAAWJ,GAAWI,EAAUt7I,EAAK,KAC1DA,EAAO85I,GAAQ57I,KAEfo9I,EAAWsE,GACX5/I,EAAOq9I,GAAQr9I,GAAM,GAAO,GAC5B9B,EAAMP,OAAOO,IAEf,IAAK,IAAInE,EAAI,EAAGE,EAAS+F,EAAK/F,OAAQF,EAAIE,EAAQF,IAAK,CACrD,IAAI5C,EAAM6I,EAAKjG,GACXxE,EAAQ2I,EAAI/G,GACZmkJ,EAAS/lJ,EAAO4B,EAAK+G,KAAMwJ,EAAOvQ,GAAO5B,GAE/C,OAAOmS,KCfT,GAAeswI,GAAc,SAAS95I,EAAK8B,GACzC,IAAwBvH,EAApB6iJ,EAAWt7I,EAAK,GAUpB,OATI,EAAWs7I,IACbA,EAAW4C,GAAO5C,GACdt7I,EAAK/F,OAAS,IAAGxB,EAAUuH,EAAK,MAEpCA,EAAOqM,GAAIgxI,GAAQr9I,GAAM,GAAO,GAAQ0J,QACxC4xI,EAAW,SAAS/lJ,EAAO4B,GACzB,OAAQs/F,GAASz2F,EAAM7I,KAGpB0oJ,GAAK3hJ,EAAKo9I,EAAU7iJ,MCfd,SAASmjF,GAAQzd,EAAO9M,EAAGwtF,GACxC,OAAOp/I,EAAM5E,KAAKsjE,EAAO,EAAG/9D,KAAKgiE,IAAI,EAAGjE,EAAMlkE,QAAe,MAALo3D,GAAawtF,EAAQ,EAAIxtF,KCFpE,SAAS1W,GAAMwjB,EAAO9M,EAAGwtF,GACtC,OAAa,MAAT1gF,GAAiBA,EAAMlkE,OAAS,EAAe,MAALo3D,GAAawtF,OAAQ,EAAS,GACnE,MAALxtF,GAAawtF,EAAc1gF,EAAM,GAC9Byd,GAAQzd,EAAOA,EAAMlkE,OAASo3D,GCFxB,SAAS4iF,GAAK91E,EAAO9M,EAAGwtF,GACrC,OAAOp/I,EAAM5E,KAAKsjE,EAAY,MAAL9M,GAAawtF,EAAQ,EAAIxtF,GCFrC,SAAS9C,GAAK4P,EAAO9M,EAAGwtF,GACrC,OAAa,MAAT1gF,GAAiBA,EAAMlkE,OAAS,EAAe,MAALo3D,GAAawtF,OAAQ,EAAS,GACnE,MAALxtF,GAAawtF,EAAc1gF,EAAMA,EAAMlkE,OAAS,GAC7Cg6I,GAAK91E,EAAO/9D,KAAKgiE,IAAI,EAAGjE,EAAMlkE,OAASo3D,ICJjC,SAASqjB,GAAQvW,GAC9B,OAAO90D,GAAO80D,EAAO7mB,SCAR,SAAS,GAAQ6mB,EAAOuU,GACrC,OAAO,GAASvU,EAAOuU,GAAO,GCEhC,SAAeslE,GAAc,SAAS75E,EAAO81E,GAE3C,OADAA,EAAOoJ,GAAQpJ,GAAM,GAAM,GACpB5qI,GAAO80D,GAAO,SAAS5oE,GAC5B,OAAQkhG,GAASw9C,EAAM1+I,SCN3B,GAAeyiJ,GAAc,SAAS75E,EAAO2hF,GAC3C,OAAOjiH,GAAWsgC,EAAO2hF,MCKZ,SAASC,GAAK5hF,EAAO6hF,EAAU1E,EAAU7iJ,GACjD2lH,EAAU4hC,KACbvnJ,EAAU6iJ,EACVA,EAAW0E,EACXA,GAAW,GAEG,MAAZ1E,IAAkBA,EAAWh4G,GAAGg4G,EAAU7iJ,IAG9C,IAFA,IAAIiP,EAAS,GACT00G,EAAO,GACFriH,EAAI,EAAGE,EAAS,GAAUkkE,GAAQpkE,EAAIE,EAAQF,IAAK,CAC1D,IAAIxE,EAAQ4oE,EAAMpkE,GACdilJ,EAAW1D,EAAWA,EAAS/lJ,EAAOwE,EAAGokE,GAAS5oE,EAClDyqJ,IAAa1E,GACVvhJ,GAAKqiH,IAAS4iC,GAAUt3I,EAAOlN,KAAKjF,GACzC6mH,EAAO4iC,GACE1D,EACJ7kD,GAAS2lB,EAAM4iC,KAClB5iC,EAAK5hH,KAAKwkJ,GACVt3I,EAAOlN,KAAKjF,IAEJkhG,GAAS/uF,EAAQnS,IAC3BmS,EAAOlN,KAAKjF,GAGhB,OAAOmS,EC5BT,SAAeswI,GAAc,SAASiI,GACpC,OAAOF,GAAK1C,GAAQ4C,GAAQ,GAAM,OCFrB,SAASC,GAAa/hF,GAGnC,IAFA,IAAIz2D,EAAS,GACTy4I,EAAa19I,UAAUxI,OAClBF,EAAI,EAAGE,EAAS,GAAUkkE,GAAQpkE,EAAIE,EAAQF,IAAK,CAC1D,IAAI0U,EAAO0vD,EAAMpkE,GACjB,IAAI08F,GAAS/uF,EAAQ+G,GAArB,CACA,IAAI6/C,EACJ,IAAKA,EAAI,EAAGA,EAAI6xF,GACT1pD,GAASh0F,UAAU6rD,GAAI7/C,GADF6/C,KAGxBA,IAAM6xF,GAAYz4I,EAAOlN,KAAKiU,IAEpC,OAAO/G,ECXM,SAAS04I,GAAMjiF,GAI5B,IAHA,IAAIlkE,EAAUkkE,GAASiE,GAAIjE,EAAO,IAAWlkE,QAAW,EACpDyN,EAASnL,MAAMtC,GAEVQ,EAAQ,EAAGA,EAAQR,EAAQQ,IAClCiN,EAAOjN,GAASskJ,GAAM5gF,EAAO1jE,GAE/B,OAAOiN,ECRT,SAAeswI,EAAcoI,ICAd,SAAS73E,GAAO/qC,EAAM3pB,GAEnC,IADA,IAAInM,EAAS,GACJ3N,EAAI,EAAGE,EAAS,GAAUujC,GAAOzjC,EAAIE,EAAQF,IAChD8Z,EACFnM,EAAO81B,EAAKzjC,IAAM8Z,EAAO9Z,GAEzB2N,EAAO81B,EAAKzjC,GAAG,IAAMyjC,EAAKzjC,GAAG,GAGjC,OAAO2N,ECXM,SAASqoI,GAAM76E,EAAO0gE,EAAMplD,GAC7B,MAARolD,IACFA,EAAO1gE,GAAS,EAChBA,EAAQ,GAELsb,IACHA,EAAOolD,EAAO1gE,GAAS,EAAI,GAM7B,IAHA,IAAIj7D,EAASmG,KAAKgiE,IAAIhiE,KAAKigJ,MAAMzqB,EAAO1gE,GAASsb,GAAO,GACpDu/D,EAAQxzI,MAAMtC,GAET6vF,EAAM,EAAGA,EAAM7vF,EAAQ6vF,IAAO50B,GAASsb,EAC9Cu/D,EAAMjmD,GAAO50B,EAGf,OAAO66E,ECfM,SAASjwC,GAAM3hC,EAAOv7B,GACnC,GAAa,MAATA,GAAiBA,EAAQ,EAAG,MAAO,GAGvC,IAFA,IAAIl7B,EAAS,GACT3N,EAAI,EAAGE,EAASkkE,EAAMlkE,OACnBF,EAAIE,GACTyN,EAAOlN,KAAKiF,EAAM5E,KAAKsjE,EAAOpkE,EAAGA,GAAK6oC,IAExC,OAAOl7B,ECRM,SAAS44I,GAAY5nJ,EAAUwF,GAC5C,OAAOxF,EAASokJ,OAASvtI,GAAErR,GAAK5B,QAAU4B,ECG7B,SAASqiJ,GAAMriJ,GAS5B,OARA49C,GAAKy+F,GAAUr8I,IAAM,SAASnD,GAC5B,IAAI+sE,EAAOv4D,GAAExU,GAAQmD,EAAInD,GACzBwU,GAAE5W,UAAUoC,GAAQ,WAClB,IAAIyH,EAAO,CAAC7I,KAAKw/I,UAEjB,OADA3+I,EAAKgC,MAAMgG,EAAMC,WACV69I,GAAY3mJ,KAAMmuE,EAAKtrE,MAAM+S,GAAG/M,QAGpC+M,GCVTusC,GAAK,CAAC,MAAO,OAAQ,UAAW,QAAS,OAAQ,SAAU,YAAY,SAAS/gD,GAC9E,IAAItF,EAASyhJ,EAAWn8I,GACxBwU,GAAE5W,UAAUoC,GAAQ,WAClB,IAAImD,EAAMvE,KAAKw/I,SAOf,OANW,MAAPj7I,IACFzI,EAAO+G,MAAM0B,EAAKuE,WACJ,UAAT1H,GAA6B,WAATA,GAAqC,IAAfmD,EAAIjE,eAC1CiE,EAAI,IAGRoiJ,GAAY3mJ,KAAMuE,OAK7B49C,GAAK,CAAC,SAAU,OAAQ,UAAU,SAAS/gD,GACzC,IAAItF,EAASyhJ,EAAWn8I,GACxBwU,GAAE5W,UAAUoC,GAAQ,WAClB,IAAImD,EAAMvE,KAAKw/I,SAEf,OADW,MAAPj7I,IAAaA,EAAMzI,EAAO+G,MAAM0B,EAAKuE,YAClC69I,GAAY3mJ,KAAMuE,OAI7B,YCRA,IAAI,GAAIqiJ,GAAM,GAEd,GAAEhxI,EAAI,GAEN","sources":["webpack:///./node_modules/async-retry/lib/index.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/cancel/CanceledError.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/AxiosError.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/defaults/index.js","webpack:///./node_modules/axios/lib/defaults/transitional.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/helpers/null.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/parseProtocol.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/toFormData.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./config.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/models/pricing-period.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/models/pricing-breakdown.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/utils/pricing-tier.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/utils/marginal-per-unit.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/utils/ccp-to-hams-pricing-plan-converter.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/pricing-calculator.ts","webpack:///./node_modules/@atlassiansox/asc-cnas/src/cnas-client.ts","webpack:///./node_modules/@atlassiansox/asc-core/src/errors/unsuccessful-fetch-error.ts","webpack:///./node_modules/@atlassiansox/asc-core/src/utils/cookies.ts","webpack:///./node_modules/@atlassiansox/bxp-shared-utils/src/undefined.ts","webpack:///./node_modules/@atlassiansox/asc-core/src/utils/headers.ts","webpack:///./node_modules/@atlassiansox/asc-core/src/utils/responses.ts","webpack:///./node_modules/@atlassiansox/asc-core/src/utils/url.ts","webpack:///./node_modules/@atlassiansox/asc-identity/src/identity-client.types.ts","webpack:///./node_modules/@atlassiansox/asc-identity/src/identity-client.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/constants.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/models/pricing-strategy.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/product-catalog-client.types.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/product-catalog-client.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/ccp-product-catalog-client.ts","webpack:///./node_modules/@atlassiansox/asc-stargate/src/stargate-client.types.ts","webpack:///./node_modules/@atlassiansox/asc-stargate/src/constants.ts","webpack:///./node_modules/@atlassiansox/asc-stargate/src/utils/sites.ts","webpack:///./node_modules/@atlassiansox/asc-stargate/src/stargate-client.ts","webpack:///./node_modules/@atlassiansox/bxp-express-client/src/bxp-express-client.ts","webpack:///./node_modules/@atlassiansox/bxp-express-client/src/bxp-express-stargate-client.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassiansox/asc-hamlet/src/hamlet-client.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/contexts/hamlet.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/contexts/pricing-calculator.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/contexts/marie-schema-analytics.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-async.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-stargate-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-available-products.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-bitbucket-workspaces.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-bxp-express-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-hamlet-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-calculation.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-cnas-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassiansox/asc-cofs/src/auth/xsrf-token.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassiansox/asc-cofs/src/cofs-client.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-cofs-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-locale.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-me.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-pricing.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-total.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/constants.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/url.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/environment.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/optimizely.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/user.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/storage.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/bundle-check.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/define-messages-simple.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/ccp-offerings-ids-map.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-identity-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-license-info.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/components/sanitized-html.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/components/sanitized-formatted-html-message.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-product-pricing-store/src/product-pricing-store.tsx","webpack:///./node_modules/@atlassiansox/origin-tracing/dist/es2019/env.js","webpack:///./node_modules/@atlassiansox/origin-tracing/dist/es2019/encoder.js","webpack:///./node_modules/@atlassiansox/origin-tracing/dist/es2019/origin-tracer.js","webpack:///./node_modules/@atlassiansox/origin-tracing/dist/es2019/util/base64url.js","webpack:///./node_modules/@atlassiansox/signup-context-builder/signup-context-builder.js","webpack:///./resources/js/buyer-experience/common/environment.ts","webpack:///./resources/js/common/consentHubV2/ConsentHelper.ts","webpack:///./resources/js/common/analytics.ts","webpack:///./resources/js/common/consentHubV2/ConsentClient.ts","webpack:///./resources/js/common/environment.ts","webpack:///./resources/js/common/hamlet/hamlet-api.ts","webpack:///./resources/js/common/hamlet/hamlet-user.ts","webpack:///./resources/js/common/logger.ts","webpack:///./resources/js/common/optimizelyHelpers.ts","webpack:///./resources/js/common/tracking/index.ts","webpack:///./resources/js/common/tracking/constants.ts","webpack:///./resources/js/common/tracking/platforms/gasv2.ts","webpack:///./resources/js/common/tracking/platforms/gasv3.ts","webpack:///./resources/js/common/tracking/platforms/googleAnalytics.ts","webpack:///./resources/js/common/tracking/platforms/optimizely.ts","webpack:///./resources/js/common/tracking/platforms/segment.ts","webpack:///./resources/js/common/tracking/platforms/index.ts","webpack:///./resources/js/customer-experience/modules/cloud-family.ts","webpack:///./resources/js/customer-experience/modules/atl-url.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-model-orderable-item.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-model-pricing-block.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-model.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-constants.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-content-data-model.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-content-data.ts","webpack:///./resources/js/customer-experience/modules/hamlet-products.ts","webpack:///./resources/js/customer-experience/modules/cart-service.ts","webpack:///./resources/js/customer-experience/modules/hamlet.ts","webpack:///./resources/js/customer-experience/modules/cofs.ts","webpack:///./resources/js/customer-experience/modules/growth-tracker.ts","webpack:///./resources/js/customer-experience/modules/experiments.ts","webpack:///./resources/js/customer-experience/modules/passwordstrength.ts","webpack:///./resources/js/customer-experience/modules/social-login.ts","webpack:///./resources/js/customer-experience/modules/combined-bundles.ts","webpack:///./resources/js/customer-experience/index.ts","webpack:///./resources/js/customer-experience/modules/atl-storage.ts","webpack:///./resources/js/imkt.ts","webpack:///./resources/js/utils/api.ts","webpack:///./resources/js/utils/browser.ts","webpack:///./resources/js/utils/event.ts","webpack:///./resources/js/utils/general.ts","webpack:///./resources/js/utils/get-script.ts","webpack:///./resources/js/utils/history.ts","webpack:///./resources/js/utils/storage.ts","webpack:///./resources/js/utils/string.ts","webpack:///./resources/js/utils/tracking.ts","webpack:///./resources/js/utils/url.ts","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/bcryptjs/dist/bcrypt.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/contentful-resolve-response/dist/esm/index.js","webpack:///./node_modules/contentful-sdk-core/dist/index.es-modules.js","webpack:///./node_modules/contentful-sdk-core/node_modules/qs/lib/formats.js","webpack:///./node_modules/contentful-sdk-core/node_modules/qs/lib/index.js","webpack:///./node_modules/contentful-sdk-core/node_modules/qs/lib/parse.js","webpack:///./node_modules/contentful-sdk-core/node_modules/qs/lib/stringify.js","webpack:///./node_modules/contentful-sdk-core/node_modules/qs/lib/utils.js","webpack:///./node_modules/contentful/dist/es-modules/contentful.js","webpack:///./node_modules/contentful/dist/es-modules/create-contentful-api.js","webpack:///./node_modules/contentful/dist/es-modules/create-global-options.js","webpack:///./node_modules/contentful/dist/es-modules/entities/asset-key.js","webpack:///./node_modules/contentful/dist/es-modules/entities/asset.js","webpack:///./node_modules/contentful/dist/es-modules/entities/content-type.js","webpack:///./node_modules/contentful/dist/es-modules/entities/entry.js","webpack:///./node_modules/contentful/dist/es-modules/entities/index.js","webpack:///./node_modules/contentful/dist/es-modules/entities/locale.js","webpack:///./node_modules/contentful/dist/es-modules/entities/space.js","webpack:///./node_modules/contentful/dist/es-modules/entities/tag.js","webpack:///./node_modules/contentful/dist/es-modules/mixins/stringify-safe.js","webpack:///./node_modules/contentful/dist/es-modules/paged-sync.js","webpack:///./node_modules/contentful/dist/es-modules/utils/normalize-select.js","webpack:///./node_modules/contentful/dist/es-modules/utils/validate-timestamp.js","webpack:///./node_modules/cookie/index.js","webpack:///./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack:///./node_modules/deepmerge/dist/cjs.js","webpack:///./node_modules/dom-serializer/lib/foreignNames.js","webpack:///./node_modules/dom-serializer/lib/index.js","webpack:///./node_modules/domelementtype/lib/index.js","webpack:///./node_modules/domhandler/lib/index.js","webpack:///./node_modules/domhandler/lib/node.js","webpack:///./node_modules/domutils/lib/feeds.js","webpack:///./node_modules/domutils/lib/helpers.js","webpack:///./node_modules/domutils/lib/index.js","webpack:///./node_modules/domutils/lib/legacy.js","webpack:///./node_modules/domutils/lib/manipulation.js","webpack:///./node_modules/domutils/lib/querying.js","webpack:///./node_modules/domutils/lib/stringify.js","webpack:///./node_modules/domutils/lib/traversal.js","webpack:///./node_modules/entities/lib/decode.js","webpack:///./node_modules/entities/lib/decode_codepoint.js","webpack:///./node_modules/entities/lib/encode.js","webpack:///./node_modules/entities/lib/index.js","webpack:///./node_modules/fast-copy/dist/fast-copy.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/has/src/index.js","webpack:///./node_modules/he/he.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/htmlparser2/lib/FeedHandler.js","webpack:///./node_modules/htmlparser2/lib/Parser.js","webpack:///./node_modules/htmlparser2/lib/Tokenizer.js","webpack:///./node_modules/htmlparser2/lib/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/intl-messageformat-parser/index.js","webpack:///./node_modules/intl-messageformat-parser/lib/parser.js","webpack:///./node_modules/intl-relativeformat/index.js","webpack:///./node_modules/intl-relativeformat/lib/core.js","webpack:///./node_modules/intl-relativeformat/lib/diff.js","webpack:///./node_modules/intl-relativeformat/lib/en.js","webpack:///./node_modules/intl-relativeformat/lib/es5.js","webpack:///./node_modules/intl-relativeformat/lib/main.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/index.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/compiler.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/core.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/en.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/es5.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/main.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/utils.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./node_modules/json-stringify-safe/stringify.js","webpack:///./node_modules/jstimezonedetect/dist/jstz.min.js","webpack:///./node_modules/lodash.isplainobject/index.js","webpack:///./node_modules/lodash.isstring/index.js","webpack:///./node_modules/object-inspect/index.js","webpack:///./node_modules/p-throttle/index.js","webpack:///./node_modules/parse-srcset/src/parse-srcset.js","webpack:///./node_modules/picocolors/picocolors.browser.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/querystring/decode.js","webpack:///./node_modules/querystring/encode.js","webpack:///./node_modules/querystring/index.js","webpack:///./node_modules/intl-format-cache/lib/index.js","webpack:///./node_modules/react-intl/lib/index.es.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/index.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/compiler.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/core.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/en.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/es5.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/main.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/utils.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react/index.js","webpack:///./node_modules/retry/index.js","webpack:///./node_modules/retry/lib/retry.js","webpack:///./node_modules/retry/lib/retry_operation.js","webpack:///./node_modules/sanitize-html/index.js","webpack:///./node_modules/sanitize-html/node_modules/escape-string-regexp/index.js","webpack:///./node_modules/sanitize-html/node_modules/is-plain-object/dist/is-plain-object.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/at-rule.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/comment.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/container.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/css-syntax-error.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/declaration.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/document.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/fromJSON.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/input.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/lazy-result.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/list.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/map-generator.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/no-work-result.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/node.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/parse.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/parser.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/postcss.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/previous-map.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/processor.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/result.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/root.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/rule.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/stringifier.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/stringify.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/symbols.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/tokenize.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/warn-once.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/warning.js","webpack:///./node_modules/side-channel/index.js","webpack:///./node_modules/url/node_modules/punycode/punycode.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/uuid/v4.js","webpack:///external var \"jQuery\"","webpack:///./node_modules/nanoid/non-secure/index.cjs","webpack:///./node_modules/underscore/modules/_setup.js","webpack:///./node_modules/underscore/modules/restArguments.js","webpack:///./node_modules/underscore/modules/isObject.js","webpack:///./node_modules/underscore/modules/isNull.js","webpack:///./node_modules/underscore/modules/isUndefined.js","webpack:///./node_modules/underscore/modules/isBoolean.js","webpack:///./node_modules/underscore/modules/isElement.js","webpack:///./node_modules/underscore/modules/_tagTester.js","webpack:///./node_modules/underscore/modules/isString.js","webpack:///./node_modules/underscore/modules/isNumber.js","webpack:///./node_modules/underscore/modules/isDate.js","webpack:///./node_modules/underscore/modules/isRegExp.js","webpack:///./node_modules/underscore/modules/isError.js","webpack:///./node_modules/underscore/modules/isSymbol.js","webpack:///./node_modules/underscore/modules/isArrayBuffer.js","webpack:///./node_modules/underscore/modules/isFunction.js","webpack:///./node_modules/underscore/modules/_hasObjectTag.js","webpack:///./node_modules/underscore/modules/_stringTagBug.js","webpack:///./node_modules/underscore/modules/isDataView.js","webpack:///./node_modules/underscore/modules/isArray.js","webpack:///./node_modules/underscore/modules/_has.js","webpack:///./node_modules/underscore/modules/isArguments.js","webpack:///./node_modules/underscore/modules/isFinite.js","webpack:///./node_modules/underscore/modules/isNaN.js","webpack:///./node_modules/underscore/modules/constant.js","webpack:///./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack:///./node_modules/underscore/modules/_shallowProperty.js","webpack:///./node_modules/underscore/modules/_getByteLength.js","webpack:///./node_modules/underscore/modules/_isBufferLike.js","webpack:///./node_modules/underscore/modules/isTypedArray.js","webpack:///./node_modules/underscore/modules/_getLength.js","webpack:///./node_modules/underscore/modules/_collectNonEnumProps.js","webpack:///./node_modules/underscore/modules/keys.js","webpack:///./node_modules/underscore/modules/isEmpty.js","webpack:///./node_modules/underscore/modules/isMatch.js","webpack:///./node_modules/underscore/modules/underscore.js","webpack:///./node_modules/underscore/modules/_toBufferView.js","webpack:///./node_modules/underscore/modules/isEqual.js","webpack:///./node_modules/underscore/modules/allKeys.js","webpack:///./node_modules/underscore/modules/_methodFingerprint.js","webpack:///./node_modules/underscore/modules/isMap.js","webpack:///./node_modules/underscore/modules/isWeakMap.js","webpack:///./node_modules/underscore/modules/isSet.js","webpack:///./node_modules/underscore/modules/isWeakSet.js","webpack:///./node_modules/underscore/modules/values.js","webpack:///./node_modules/underscore/modules/pairs.js","webpack:///./node_modules/underscore/modules/invert.js","webpack:///./node_modules/underscore/modules/functions.js","webpack:///./node_modules/underscore/modules/_createAssigner.js","webpack:///./node_modules/underscore/modules/extend.js","webpack:///./node_modules/underscore/modules/extendOwn.js","webpack:///./node_modules/underscore/modules/defaults.js","webpack:///./node_modules/underscore/modules/_baseCreate.js","webpack:///./node_modules/underscore/modules/create.js","webpack:///./node_modules/underscore/modules/clone.js","webpack:///./node_modules/underscore/modules/tap.js","webpack:///./node_modules/underscore/modules/toPath.js","webpack:///./node_modules/underscore/modules/_toPath.js","webpack:///./node_modules/underscore/modules/_deepGet.js","webpack:///./node_modules/underscore/modules/get.js","webpack:///./node_modules/underscore/modules/has.js","webpack:///./node_modules/underscore/modules/identity.js","webpack:///./node_modules/underscore/modules/matcher.js","webpack:///./node_modules/underscore/modules/property.js","webpack:///./node_modules/underscore/modules/_optimizeCb.js","webpack:///./node_modules/underscore/modules/_baseIteratee.js","webpack:///./node_modules/underscore/modules/iteratee.js","webpack:///./node_modules/underscore/modules/_cb.js","webpack:///./node_modules/underscore/modules/mapObject.js","webpack:///./node_modules/underscore/modules/noop.js","webpack:///./node_modules/underscore/modules/propertyOf.js","webpack:///./node_modules/underscore/modules/times.js","webpack:///./node_modules/underscore/modules/random.js","webpack:///./node_modules/underscore/modules/now.js","webpack:///./node_modules/underscore/modules/_createEscaper.js","webpack:///./node_modules/underscore/modules/_escapeMap.js","webpack:///./node_modules/underscore/modules/escape.js","webpack:///./node_modules/underscore/modules/unescape.js","webpack:///./node_modules/underscore/modules/_unescapeMap.js","webpack:///./node_modules/underscore/modules/templateSettings.js","webpack:///./node_modules/underscore/modules/template.js","webpack:///./node_modules/underscore/modules/result.js","webpack:///./node_modules/underscore/modules/uniqueId.js","webpack:///./node_modules/underscore/modules/chain.js","webpack:///./node_modules/underscore/modules/_executeBound.js","webpack:///./node_modules/underscore/modules/partial.js","webpack:///./node_modules/underscore/modules/bind.js","webpack:///./node_modules/underscore/modules/_isArrayLike.js","webpack:///./node_modules/underscore/modules/_flatten.js","webpack:///./node_modules/underscore/modules/bindAll.js","webpack:///./node_modules/underscore/modules/memoize.js","webpack:///./node_modules/underscore/modules/delay.js","webpack:///./node_modules/underscore/modules/defer.js","webpack:///./node_modules/underscore/modules/throttle.js","webpack:///./node_modules/underscore/modules/debounce.js","webpack:///./node_modules/underscore/modules/wrap.js","webpack:///./node_modules/underscore/modules/negate.js","webpack:///./node_modules/underscore/modules/compose.js","webpack:///./node_modules/underscore/modules/after.js","webpack:///./node_modules/underscore/modules/before.js","webpack:///./node_modules/underscore/modules/once.js","webpack:///./node_modules/underscore/modules/findKey.js","webpack:///./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack:///./node_modules/underscore/modules/findIndex.js","webpack:///./node_modules/underscore/modules/findLastIndex.js","webpack:///./node_modules/underscore/modules/sortedIndex.js","webpack:///./node_modules/underscore/modules/_createIndexFinder.js","webpack:///./node_modules/underscore/modules/indexOf.js","webpack:///./node_modules/underscore/modules/lastIndexOf.js","webpack:///./node_modules/underscore/modules/find.js","webpack:///./node_modules/underscore/modules/findWhere.js","webpack:///./node_modules/underscore/modules/each.js","webpack:///./node_modules/underscore/modules/map.js","webpack:///./node_modules/underscore/modules/_createReduce.js","webpack:///./node_modules/underscore/modules/reduce.js","webpack:///./node_modules/underscore/modules/reduceRight.js","webpack:///./node_modules/underscore/modules/filter.js","webpack:///./node_modules/underscore/modules/reject.js","webpack:///./node_modules/underscore/modules/every.js","webpack:///./node_modules/underscore/modules/some.js","webpack:///./node_modules/underscore/modules/contains.js","webpack:///./node_modules/underscore/modules/invoke.js","webpack:///./node_modules/underscore/modules/pluck.js","webpack:///./node_modules/underscore/modules/where.js","webpack:///./node_modules/underscore/modules/max.js","webpack:///./node_modules/underscore/modules/min.js","webpack:///./node_modules/underscore/modules/toArray.js","webpack:///./node_modules/underscore/modules/sample.js","webpack:///./node_modules/underscore/modules/shuffle.js","webpack:///./node_modules/underscore/modules/sortBy.js","webpack:///./node_modules/underscore/modules/_group.js","webpack:///./node_modules/underscore/modules/groupBy.js","webpack:///./node_modules/underscore/modules/indexBy.js","webpack:///./node_modules/underscore/modules/countBy.js","webpack:///./node_modules/underscore/modules/partition.js","webpack:///./node_modules/underscore/modules/size.js","webpack:///./node_modules/underscore/modules/_keyInObj.js","webpack:///./node_modules/underscore/modules/pick.js","webpack:///./node_modules/underscore/modules/omit.js","webpack:///./node_modules/underscore/modules/initial.js","webpack:///./node_modules/underscore/modules/first.js","webpack:///./node_modules/underscore/modules/rest.js","webpack:///./node_modules/underscore/modules/last.js","webpack:///./node_modules/underscore/modules/compact.js","webpack:///./node_modules/underscore/modules/flatten.js","webpack:///./node_modules/underscore/modules/difference.js","webpack:///./node_modules/underscore/modules/without.js","webpack:///./node_modules/underscore/modules/uniq.js","webpack:///./node_modules/underscore/modules/union.js","webpack:///./node_modules/underscore/modules/intersection.js","webpack:///./node_modules/underscore/modules/unzip.js","webpack:///./node_modules/underscore/modules/zip.js","webpack:///./node_modules/underscore/modules/object.js","webpack:///./node_modules/underscore/modules/range.js","webpack:///./node_modules/underscore/modules/chunk.js","webpack:///./node_modules/underscore/modules/_chainResult.js","webpack:///./node_modules/underscore/modules/mixin.js","webpack:///./node_modules/underscore/modules/underscore-array-methods.js","webpack:///./node_modules/underscore/modules/index-default.js"],"sourcesContent":["// Packages\nvar retrier = require('retry');\n\nfunction retry(fn, opts) {\n function run(resolve, reject) {\n var options = opts || {};\n var op;\n\n // Default `randomize` to true\n if (!('randomize' in options)) {\n options.randomize = true;\n }\n\n op = retrier.operation(options);\n\n // We allow the user to abort retrying\n // this makes sense in the cases where\n // knowledge is obtained that retrying\n // would be futile (e.g.: auth errors)\n\n function bail(err) {\n reject(err || new Error('Aborted'));\n }\n\n function onError(err, num) {\n if (err.bail) {\n bail(err);\n return;\n }\n\n if (!op.retry(err)) {\n reject(op.mainError());\n } else if (options.onRetry) {\n options.onRetry(err, num);\n }\n }\n\n function runAttempt(num) {\n var val;\n\n try {\n val = fn(bail, num);\n } catch (err) {\n onError(err, num);\n return;\n }\n\n Promise.resolve(val)\n .then(resolve)\n .catch(function catchIt(err) {\n onError(err, num);\n });\n }\n\n op.attempt(runAttempt);\n }\n\n return new Promise(run);\n}\n\nmodule.exports = retry;\n","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 transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\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) && utils.isStandardBrowserEnv()) {\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\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(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, 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(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, 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 || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\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 CanceledError() : 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 var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\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.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\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\nvar CanceledError = require('./CanceledError');\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 CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` 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\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\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 buildFullPath = require('./buildFullPath');\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 var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\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\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\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 {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n 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});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\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 utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` 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 CanceledError();\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\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 'beforeRedirect': 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 AxiosError = require('./AxiosError');\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(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\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 AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\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: transitionalDefaults,\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\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\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 AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\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 env: {\n FormData: require('./env/FormData')\n },\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","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\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","// eslint-disable-next-line strict\nmodule.exports = null;\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\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\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 utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\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 AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\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 AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\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 AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\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// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\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 * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\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 (kindOf(val) !== '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 * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\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 FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\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\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\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 inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","/**\n * url Config for de cluttering endpoints so that we can change it in one place and it will reflect\n * across the whole code base, eventually we can make one for prod but just dev for right now\n * stgWacInternalUrl(formerly): \"qa-wac.internal.atlassian.com\"\n */\n\n\nexport const stgConfig = {\n stgWacInternalUrl: \"https://wac.stg.internal.atlassian.com\"\n};\n\nexport default stgConfig;\n","export enum PricingPeriod {\n MONTHLY = 'MONTHLY',\n ANNUAL = 'ANNUAL'\n}\n","import {\n PricingStrategy,\n PricingTier\n} from '@atlassiansox/asc-product-catalog';\n\nimport { PricingCalculation } from './pricing-calculation';\n\nexport type PricingBreakdown = ReadonlyArray;\n\nexport type PricingBreakdownItem = {\n readonly units: number;\n readonly unitPrice: number;\n readonly tier: PricingTier;\n};\n\nexport function reduceBreakdownToPricingCalculation(\n { total, currencyIsoCode, breakdown, pricingPlan }: PricingCalculation,\n { tier, units, unitPrice }: PricingBreakdownItem\n) {\n return {\n currencyIsoCode,\n breakdown,\n pricingPlan,\n total: updateTotal(total, tier.pricingStrategy, units, unitPrice)\n };\n}\n\nfunction updateTotal(\n total: number,\n pricingStrategy: PricingStrategy,\n units: number,\n unitPrice: number\n) {\n switch (pricingStrategy) {\n case PricingStrategy.FIXED_COST:\n return unitPrice;\n case PricingStrategy.MARGINAL_PER_UNIT:\n return total + units * unitPrice;\n case PricingStrategy.PER_UNIT:\n return units * unitPrice;\n }\n}\n","import { PricingTier } from '@atlassiansox/asc-product-catalog';\nimport { Predicate } from './predicate';\n\nexport function createPricingTierIsInUnitLimitsPredicate(\n units: number\n): Predicate {\n return ({ unitLimitLower, unitLimitUpper }) =>\n (unitLimitLower === null || units >= unitLimitLower) &&\n (unitLimitUpper === null || units <= unitLimitUpper);\n}\n\nexport function getUnitPrice(\n tier: PricingTier,\n currencyIsoCode: string\n): number {\n const locale = tier.prices.find(\n ({ currency }) => currency === currencyIsoCode\n );\n\n return locale ? locale.unitPrice : -1;\n}\n","import { PricingPlan } from '@atlassiansox/asc-product-catalog';\nimport { PricingStrategy, PricingTier } from '@atlassiansox/asc-product-catalog';\n\nimport { PricingBreakdown, PricingBreakdownItem } from '../models';\nimport { Predicate } from './predicate';\nimport { getUnitPrice } from './pricing-tier';\n\nexport type PricingTierToPricingBreakdownItemTransform = (\n tier: PricingTier,\n index: number\n) => PricingBreakdownItem;\n\nexport function createMarginalPerUnitBreakdown(\n pricingPlan: PricingPlan,\n units: number,\n currencyIsoCode: string\n): PricingBreakdown {\n return pricingPlan\n .filter(createPricingTierIsMarginalPerUnitStrategy(units))\n .sort(comparePricingTierByUnitLimitLower)\n .map(\n createPricingTierToPricingBreakdownItemTransform(units, currencyIsoCode)\n );\n}\n\nexport function comparePricingTierByUnitLimitLower(\n { unitLimitLower: firstLimit }: PricingTier,\n { unitLimitLower: secondLimit }: PricingTier\n): number {\n if (firstLimit !== null && secondLimit !== null) {\n return firstLimit - secondLimit;\n } else if (firstLimit === null) {\n return 1;\n } else {\n return -1;\n }\n}\n\nexport function createPricingTierToPricingBreakdownItemTransform(\n units: number,\n currencyIsoCode: string\n): PricingTierToPricingBreakdownItemTransform {\n return (tier, index) => {\n const unitPrice = getUnitPrice(tier, currencyIsoCode);\n const ignoreUnitLimitLower = index === 0;\n \n if (ignoreUnitLimitLower) {\n return {\n units: Math.min(units, tier.unitLimitUpper || Infinity),\n unitPrice,\n tier: {\n ...tier,\n unitLimitLower: 1\n }\n };\n } else {\n const unitLimitLower = tier.unitLimitLower || 1;\n if (units < unitLimitLower) {\n return { units: 0, unitPrice, tier };\n } else {\n return {\n units:\n Math.min(units, tier.unitLimitUpper || Infinity) -\n unitLimitLower +\n 1,\n unitPrice,\n tier\n };\n }\n }\n };\n}\n\nfunction createPricingTierIsMarginalPerUnitStrategy(\n units: number\n): Predicate {\n return ({ pricingStrategy, unitLimitLower }) =>\n pricingStrategy === PricingStrategy.MARGINAL_PER_UNIT &&\n (unitLimitLower === null || units >= unitLimitLower);\n}\n","import {\n CCPPricingPlanContent,\n CCPPricingPlanTier,\n PricingStrategy,\n PricingTier\n} from '@atlassiansox/asc-product-catalog';\nimport { PricingPlan, PricingPlans } from '.';\nimport { PricingPeriod } from '../models';\n\nconst HAMS_PRICING_STRATEGY_BY_CCP_PRICING_POLICY = {\n ['BLOCK']: PricingStrategy.FIXED_COST,\n ['MARGINAL_PER_UNIT']: PricingStrategy.MARGINAL_PER_UNIT,\n ['PER_UNIT']: PricingStrategy.PER_UNIT\n};\n\nconst convertCCPPricingStrategyToHAMS = (\n ccpPricingPolicy: string\n): PricingStrategy => {\n const hamsPricingStrategy =\n HAMS_PRICING_STRATEGY_BY_CCP_PRICING_POLICY[\n ccpPricingPolicy as 'BLOCK' | 'MARGINAL_PER_UNIT' | 'PER_UNIT'\n ];\n\n if (!hamsPricingStrategy) {\n throw new Error(\n `Could not find HAMS pricing strategy to match CCP pricing policy: \"${ccpPricingPolicy}\"`\n );\n }\n\n return hamsPricingStrategy;\n};\n\nconst convertCCPTiersToHAMS = (\n ccpTiers: CCPPricingPlanTier[],\n chargeElement: string,\n currency: string\n): PricingTier[] =>\n ccpTiers.map(ccpTier => ({\n starter: false,\n pricingStrategy: convertCCPPricingStrategyToHAMS(ccpTier.policy),\n unitDescription: chargeElement,\n unitLimitLower: ccpTier.floor,\n unitLimitUpper: ccpTier.ceiling,\n prices: [\n {\n currency,\n unitPrice: ccpTier.policy.includes('UNIT')\n ? ccpTier.unitAmount\n : ccpTier.flatAmount\n }\n ]\n }));\n\nconst convertCCPPricingPlansToHAMS = (\n pricingPlans: CCPPricingPlanContent[]\n): PricingPlans => {\n const [monthlyCCP, annualCCP] = ['MONTH', 'YEAR'].map(primaryCycle =>\n pricingPlans.find(\n pricingPlan => pricingPlan.primaryCycle_interval === primaryCycle\n )\n );\n\n const [monthly, annual] = [monthlyCCP, annualCCP].map(ccpPPContent => {\n if (!ccpPPContent) {\n return undefined;\n }\n\n const { tiers, chargeElement } = ccpPPContent.items[0];\n return convertCCPTiersToHAMS(tiers, chargeElement, ccpPPContent.currency);\n });\n\n return {\n [PricingPeriod.MONTHLY]: monthly as PricingPlan,\n [PricingPeriod.ANNUAL]: annual as PricingPlan\n };\n};\n\nexport { convertCCPPricingPlansToHAMS };\n","import {\n PricingStrategy,\n PricingTierPrice,\n ProductKey\n} from '@atlassiansox/asc-product-catalog';\nimport {\n PricingBreakdown,\n PricingCalculation,\n PricingPeriod,\n reduceBreakdownToPricingCalculation\n} from './models';\nimport { IProductPricingStore } from './product-pricing-store';\nimport {\n createPricingTierIsInUnitLimitsPredicate,\n getUnitPrice,\n PricingPlan\n} from './utils';\nimport { createMarginalPerUnitBreakdown } from './utils/marginal-per-unit';\n\nconst DEFAULT_CURRENCY = 'USD';\n\nexport type PricingCalculatorOptions = {\n readonly productPricingStore: IProductPricingStore;\n};\n\nexport class PricingCalculator {\n private readonly store: IProductPricingStore;\n\n constructor({ productPricingStore }: PricingCalculatorOptions) {\n this.store = productPricingStore;\n }\n\n async calculatePrice({\n productKey,\n units,\n period,\n currencyIsoCode\n }: GetPriceCalculationOptions): Promise {\n const pricingPlan = await this.getPricingPlan({ productKey, period });\n\n if (\n !pricingPlan[0].prices.some(\n ({ currency }) => currency === currencyIsoCode\n )\n ) {\n currencyIsoCode = DEFAULT_CURRENCY;\n }\n\n return await this.calculatePriceWithPricingPlan({\n units,\n currencyIsoCode,\n pricingPlan\n });\n }\n\n async calculatePriceWithPricingPlan({\n units,\n currencyIsoCode,\n pricingPlan\n }: GetPriceCalculationWithPricingPlanOptions): Promise {\n const breakdown = await this.getBreakdown({\n pricingPlan,\n units,\n currencyIsoCode\n });\n\n return breakdown.reduce(reduceBreakdownToPricingCalculation, {\n currencyIsoCode,\n breakdown,\n pricingPlan,\n total: 0\n });\n }\n\n private async getPricingPlan({\n productKey,\n period\n }: GetPricingPlanOptions): Promise {\n const {\n [PricingPeriod.MONTHLY]: monthly,\n [PricingPeriod.ANNUAL]: annual\n } = await this.store.getPricingPlans(productKey);\n\n // there are no \"annual free\" pricing plans but consumers of this package need to request\n // free pricing along with annual non-free pricing in one call so we need to return the\n // free monthly pricing plan always when the product key ends in '.free'\n const adjPeriod = productKey.endsWith('.free')\n ? PricingPeriod.MONTHLY\n : period;\n\n switch (adjPeriod) {\n case PricingPeriod.MONTHLY:\n if (monthly) {\n return monthly;\n } else {\n throw new Error(\n `Monthly pricing plan does not exist for product key: ${productKey}`\n );\n }\n case PricingPeriod.ANNUAL:\n if (annual) {\n return annual;\n } else {\n throw new Error(\n `Annual pricing plan does not exist for product key: ${productKey}`\n );\n }\n }\n }\n\n private async getBreakdown({\n pricingPlan,\n units,\n currencyIsoCode\n }: GetBreakdownOptions): Promise {\n const selectedTier = pricingPlan.find(\n createPricingTierIsInUnitLimitsPredicate(units)\n );\n if (selectedTier) {\n switch (selectedTier.pricingStrategy) {\n case PricingStrategy.MARGINAL_PER_UNIT:\n return createMarginalPerUnitBreakdown(\n pricingPlan,\n units,\n currencyIsoCode\n );\n default:\n return [\n {\n units,\n unitPrice: getUnitPrice(selectedTier, currencyIsoCode),\n tier: selectedTier\n }\n ];\n }\n } else {\n throw new Error(`Could not find pricing plan tier for ${units} units`);\n }\n }\n}\n\nexport type GetPriceCalculationOptions = {\n readonly productKey: ProductKey;\n readonly units: number;\n readonly period: PricingPeriod;\n readonly currencyIsoCode: string;\n};\n\nexport type GetPriceCalculationWithPricingPlanOptions = {\n readonly units: number;\n readonly currencyIsoCode: string;\n readonly pricingPlan: PricingPlan;\n};\n\nexport type GetBreakdownOptions = {\n readonly pricingPlan: PricingPlan;\n readonly units: number;\n readonly currencyIsoCode: string;\n};\n\nexport type GetPricingPlanOptions = {\n readonly productKey: ProductKey;\n readonly period: PricingPeriod;\n};\n\nexport { PricingStrategy, PricingTierPrice, ProductKey };\n","import { generateAsapHeader } from '@atlassiansox/asc-asap';\nimport { mapResponseToJson } from '@atlassiansox/asc-core';\nimport { fetch, Headers } from 'cross-fetch';\nimport {\n CloudNameAvailabilityRequest,\n CloudNameAvailabilityResponse,\n GetNameAvailabilityRequest,\n GetNameAvailabilityResponse\n} from './cnas-client.types';\n\nexport const STAGING_BASE_URL =\n 'https://wac.stg.internal.atlassian.com/apis/stg/cnas';\nexport const PRODUCTION_BASE_URL = 'https://www.atlassian.com/apis/prod/cnas';\nexport const ASAP_AUDIENCE = 'cloud-name-availability';\n\nexport type CnasClientOptions = {\n readonly baseUrl?: string;\n};\n\nexport interface ICnasClient {\n getNameAvailability: ({\n cloudName\n }: GetNameAvailabilityRequest) => Promise;\n cloudNameAvailabilityCheck: ({\n cloudName,\n auth\n }: CloudNameAvailabilityRequest) => Promise;\n}\n\nexport class CnasClient implements ICnasClient {\n private readonly baseUrl: string;\n\n public constructor({ baseUrl = STAGING_BASE_URL }: CnasClientOptions = {}) {\n this.baseUrl = baseUrl;\n }\n\n public async getNameAvailability({\n cloudName\n }: GetNameAvailabilityRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/shopping-cart/name-availability/queries`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n cloudName\n })\n })\n );\n }\n\n public async cloudNameAvailabilityCheck({\n cloudName,\n auth\n }: CloudNameAvailabilityRequest): Promise {\n const headers = new Headers();\n\n headers.append('Content-Type', 'application/json');\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n })\n );\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/name-availability/check`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n cloudName\n })\n })\n );\n }\n}\n","export type UnsucessfulFetchErrorOptions = {\n readonly message?: string;\n readonly response: Response;\n};\n\nexport class UnsucessfulFetchError extends Error {\n public readonly response: Response;\n\n public constructor({ message, response }: UnsucessfulFetchErrorOptions) {\n super(message ?? response.statusText);\n this.name = UnsucessfulFetchError.name;\n this.response = response;\n }\n\n public get url(): string {\n return this.response.url;\n }\n\n public get status(): number {\n return this.response.status;\n }\n}\n\nexport function isUnsucessfulFetchError(\n value: unknown\n): value is UnsucessfulFetchError {\n return (value as UnsucessfulFetchError).name === UnsucessfulFetchError.name;\n}\n","import { serialize } from 'cookie';\n\nimport { Cookie } from '../models';\n\nexport function serializeCookie({ name, value }: Cookie): string {\n return serialize(name, value);\n}\n\nexport function mapCookieToHeaders(cookie?: Cookie): HeadersInit {\n if (cookie) {\n return { cookie: serializeCookie(cookie) };\n } else {\n return {};\n }\n}\n","export function isUndefined(value: T | undefined): value is undefined {\n return value === undefined;\n}\n\nexport function assertIsUndefined(\n value: T | undefined\n): asserts value is undefined {\n if (!isUndefined(value)) {\n throw new TypeError(`Value is not undefined.`);\n }\n}\n\nexport function isNotUndefined(value: T | undefined): value is T {\n return value !== undefined;\n}\n\nexport function assertIsNotUndefined(\n value: T | undefined\n): asserts value is T {\n if (!isNotUndefined(value)) {\n throw new TypeError(`Value is undefined.`);\n }\n}\n","import { isUndefined } from '@atlassiansox/bxp-shared-utils';\n\nexport type Headers = {\n readonly [name: string]: string;\n};\n\nexport function createHeaders(headers: {\n readonly [name: string]: string | number | boolean | undefined;\n}): Headers {\n return Object.keys(headers).reduce((result, name) => {\n const value = headers[name];\n if (!isUndefined(value)) {\n return {\n ...result,\n [name]: value.toString()\n };\n } else {\n return result;\n }\n }, {});\n}\n","import { UnsucessfulFetchError } from '../errors';\n\nexport async function mapResponseToText(response: Response): Promise {\n if (response.ok) {\n return await response.text();\n } else {\n throw new UnsucessfulFetchError({\n message: await mapResponseToMessage(response),\n response\n });\n }\n}\n\nexport async function mapResponseToJson(\n response: Response\n): Promise {\n if (response.ok) {\n return await response.json();\n } else {\n throw new UnsucessfulFetchError({\n message: await mapResponseToMessage(response),\n response\n });\n }\n}\n\nasync function mapResponseToMessage(response: Response): Promise {\n const { statusText } = response;\n const message = await response.text();\n if (message.length > 0) {\n return `${statusText} ${message}`;\n } else {\n return statusText;\n }\n}\n","import { isUndefined } from '@atlassiansox/bxp-shared-utils';\n\nexport type CreateUrlOptions = {\n readonly baseUrl?: string;\n readonly path?: string;\n readonly query?: Query;\n};\n\nexport type Query = Readonly<\n Record\n>;\n\nexport function createUrl({\n baseUrl = '',\n path = '',\n query\n}: CreateUrlOptions = {}): string {\n const queryString = mapQueryToQueryString(query);\n if (queryString) {\n return `${baseUrl}${path}?${queryString}`;\n } else {\n return `${baseUrl}${path}`;\n }\n}\n\nfunction mapQueryToQueryString(query: Query = {}): string | null {\n const queryString = Object.keys(query)\n .reduce((pairs, name) => {\n const value = query[name];\n if (isUndefined(value)) {\n return pairs;\n } else if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return [\n ...pairs,\n `${encodeURIComponent(name)}=${encodeURIComponent(value)}`\n ];\n } else {\n return [\n ...pairs,\n value.map((item) => mapQueryToQueryString({ [name]: item })).join('&')\n ];\n }\n }, [])\n .join('&');\n\n if (queryString.length > 0) {\n return queryString;\n } else {\n return null;\n }\n}\n","import { Cookie } from '@atlassiansox/asc-core';\nimport { Asap } from './models';\n\n/**\n * Auth\n */\n\nexport type AsapAuth = {\n readonly asap: Asap;\n};\n\nexport function isAsapAuth(auth: AsapAuth) {\n return !!auth.asap.issuer && !!auth.asap.keyId && !!auth.asap.privateKey;\n}\n\nexport type CloudSessionTokenCookieType = {\n readonly cloudSessionTokenCookie?: Cookie;\n};\n\n/**\n * /me\n */\n\nexport type MeResponse = {\n readonly account_id: string;\n readonly name: string;\n readonly email: string;\n readonly picture: string;\n readonly locale: string;\n readonly zoneinfo: string;\n};\n\nexport type WorkspaceUserType = {\n readonly display_name: string;\n readonly account_id: string;\n readonly links: Record;\n readonly nickname: string;\n readonly type: string;\n readonly uuid: string;\n};\n\nexport type WorkspaceType = {\n readonly name: string;\n readonly type: string;\n readonly uuid: string;\n readonly links: Record;\n readonly slug: string;\n};\n\nexport const CHECK_ADD_PROJECT_ACTION = 'addProduct';\nexport const CHECK_ADD_PROJECT_ARI_PREFIX = 'ari:cloud:platform::site/';\n\nexport type CheckAddProductCapabilitiesRequestAsap = {\n readonly auth: AsapAuth;\n};\n\nexport type CheckAddProductCapabilitiesRequest = {\n readonly cloudId: string;\n readonly product: string;\n readonly licenceLimit: number;\n} & CheckAddProductCapabilitiesRequestAsap;\n\nexport type CheckAddProductCapabilitiesRequestItem = {\n readonly action: string;\n readonly owner: string;\n readonly product: string;\n readonly licenceLimit: number;\n};\n\nexport type CheckAddProductCapabilitiesResponse = {\n readonly capable: boolean;\n readonly resources: [\n {\n readonly resource: string;\n readonly availableLicences: number;\n readonly requiredLicences: number;\n }\n ];\n};\n\nexport type CheckAuthenticationMethodsAvailableRequest = {\n readonly email: string;\n readonly application: string;\n readonly redirect_to: string;\n readonly auth: AsapAuth;\n};\n\nexport type CheckAuthenticationMethodsAvailableResponse = {\n readonly account_id: string;\n readonly methods: [\n {\n readonly type: string;\n readonly redirect_to: string;\n }\n ];\n};\n\nexport type UserSignupResponse = {\n readonly id: string;\n};\n\nexport type PermissionsPermittedRequestAsap = {\n readonly auth: AsapAuth;\n};\n\nexport type PermissionsPermittedRequestParams = {\n readonly dontRequirePrincipalInSite: boolean;\n readonly permissionId: string;\n readonly principalId: string;\n readonly resourceId: string;\n};\n\nexport type PermissionsPermittedRequest = PermissionsPermittedRequestAsap &\n PermissionsPermittedRequestParams;\n\nexport type PermissionsPermittedResponse = string;\n\nexport type SignupRequestBody = {\n readonly email: string;\n readonly displayName?: string;\n readonly application: string;\n readonly redirectTo?: string;\n readonly suppressEmail?: boolean;\n readonly locale?: string;\n readonly gRecaptchaResponse?: string;\n};\n\nexport type SignupRequestOptions = {\n readonly auth: AsapAuth;\n};\n\nexport type GetUserUpstreamResponse = {\n name: string;\n // ...more fields exist, just not using them now\n};\n\nexport type GetUsersByCloudIdRequest = {\n readonly cloudId: string;\n readonly auth: AsapAuth;\n};\n\nexport type GetUsersByCloudIdResponse = {\n Resources: Array<{\n id: string;\n displayName: string;\n locale: string;\n emails: Array<{\n value: string;\n primary: true;\n }>;\n }>;\n};\n\nexport type GetUserByCloudAndAaIdRequest = {\n readonly cloudId: string;\n readonly atlassianAccountId: string;\n readonly auth: AsapAuth;\n};\n\nexport type GetUserByCloudAndAaIdResponseEmail = {\n readonly value: string;\n readonly type: string;\n readonly primary: boolean;\n};\n\nexport type GetUserByCloudAndAaIdResponseGroup = {\n readonly value: string;\n readonly display: string;\n};\n\nexport type GetUserByCloudAndAaIdResponse = {\n readonly id: string;\n readonly userName: string;\n readonly displayName: string;\n readonly title: string;\n readonly active: boolean;\n readonly timezone: string;\n readonly emails: GetUserByCloudAndAaIdResponseEmail[];\n readonly groups: GetUserByCloudAndAaIdResponseGroup[];\n};\n","import _ from 'lodash';\n\nimport {\n mapResponseToJson,\n mapResponseToText,\n UnsucessfulFetchError\n} from '@atlassiansox/asc-core';\nimport { generateAsapHeader } from '@atlassiansox/asc-asap';\nimport { fetch, Headers } from 'cross-fetch';\n\nimport {\n CHECK_ADD_PROJECT_ACTION,\n CHECK_ADD_PROJECT_ARI_PREFIX,\n CheckAddProductCapabilitiesRequest,\n CheckAddProductCapabilitiesRequestItem,\n CheckAddProductCapabilitiesResponse,\n CheckAuthenticationMethodsAvailableRequest,\n CheckAuthenticationMethodsAvailableResponse,\n isAsapAuth,\n PermissionsPermittedRequest,\n PermissionsPermittedRequestParams,\n PermissionsPermittedResponse,\n GetUserUpstreamResponse,\n SignupRequestBody,\n SignupRequestOptions,\n UserSignupResponse,\n GetUsersByCloudIdRequest,\n GetUsersByCloudIdResponse,\n GetUserByCloudAndAaIdRequest,\n GetUserByCloudAndAaIdResponse\n} from './identity-client.types';\n\nexport const DEFAULT_IDENTITY_BASE_URL = 'https://id.staging.atl-paas.net';\nconst ASAP_AUDIENCE = 'identity-platform';\n\nexport interface IIdentityClient {\n permissionsPermitted(\n request: PermissionsPermittedRequest\n ): Promise;\n checkAddProductCapabilities(\n request: CheckAddProductCapabilitiesRequest\n ): Promise;\n checkAuthenticationMethodsAvailable(\n options: CheckAuthenticationMethodsAvailableRequest\n ): Promise;\n getUserName(accountId: string): Promise;\n userSignup(\n requestBody: SignupRequestBody,\n options: SignupRequestOptions\n ): Promise;\n getUsersByCloudId(\n request: GetUsersByCloudIdRequest\n ): Promise;\n getUserByCloudAndAaId(\n request: GetUserByCloudAndAaIdRequest\n ): Promise;\n}\n\nexport type IdentityClientOptions = {\n readonly baseUrlStargate?: string;\n readonly baseUrlIdentity?: string;\n};\n\nexport class IdentityClient implements IIdentityClient {\n private readonly baseUrlIdentity: string;\n\n public constructor({\n baseUrlIdentity = DEFAULT_IDENTITY_BASE_URL\n }: IdentityClientOptions = {}) {\n this.baseUrlIdentity = baseUrlIdentity;\n }\n\n public async permissionsPermitted(\n request: PermissionsPermittedRequest\n ): Promise {\n const {\n auth,\n permissionId,\n principalId,\n resourceId,\n dontRequirePrincipalInSite\n } = request;\n\n // URL is defined globally for node versions >= 10.0.0 and globally in browsers,\n // so I'm assuming this should work cross platform\n const url = new URL(`${this.baseUrlIdentity}/v1/permissions/permitted`);\n const params: PermissionsPermittedRequestParams = {\n permissionId,\n principalId,\n resourceId,\n dontRequirePrincipalInSite\n };\n _.map(params, (val, key) => {\n url.searchParams.append(key, val.toString());\n });\n\n const headers = new Headers();\n\n if (isAsapAuth(auth)) {\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n })\n );\n }\n\n return mapResponseToText(\n await fetch(`${url}`, {\n method: 'GET',\n headers\n })\n );\n }\n\n public async checkAddProductCapabilities(\n request: CheckAddProductCapabilitiesRequest\n ): Promise {\n const { auth, cloudId, product, licenceLimit } = request;\n\n const url = new URL(`${this.baseUrlIdentity}/v2/licences/capabilities`);\n const requestData: CheckAddProductCapabilitiesRequestItem[] = [\n {\n action: CHECK_ADD_PROJECT_ACTION,\n owner: `${CHECK_ADD_PROJECT_ARI_PREFIX}${cloudId}`,\n product,\n licenceLimit\n }\n ];\n const headers = new Headers();\n\n headers.append('Content-Type', 'application/json');\n\n if (isAsapAuth(auth)) {\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n })\n );\n }\n\n const response = await fetch(`${url}`, {\n method: 'post',\n headers,\n body: JSON.stringify(requestData)\n });\n\n if (response.ok) {\n return response.json();\n } else {\n throw new UnsucessfulFetchError({\n response\n });\n }\n }\n\n public async checkAuthenticationMethodsAvailable(\n options: CheckAuthenticationMethodsAvailableRequest\n ): Promise {\n const { email, redirect_to, application, auth } = options;\n\n return mapResponseToJson(\n await fetch(\n `${this.baseUrlIdentity}/v2/authentication/methods-available`,\n {\n method: 'POST',\n headers: {\n 'Authorization': generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n }),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n email,\n redirect_to,\n application\n })\n }\n )\n );\n }\n\n public async getUserName(accountId: string): Promise {\n const result = await fetch(`${this.baseUrlIdentity}/v2/users/${accountId}`);\n\n if (result.status === 404) {\n return undefined;\n }\n\n if (!result.ok) {\n throw new Error(await result.text());\n }\n\n const data = (await result.json()) as GetUserUpstreamResponse;\n\n return data.name;\n }\n\n public async userSignup(\n requestBody: SignupRequestBody,\n options: SignupRequestOptions\n ): Promise {\n const { redirectTo, ...body } = requestBody;\n\n return mapResponseToJson(\n await fetch(`${this.baseUrlIdentity}/v2/users/signup`, {\n method: 'POST',\n headers: {\n 'Authorization': generateAsapHeader({\n ...options.auth.asap,\n audience: ASAP_AUDIENCE\n }),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n ...body,\n redirect_to: redirectTo\n })\n })\n );\n }\n\n public async getUsersByCloudId(\n request: GetUsersByCloudIdRequest\n ): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrlIdentity}/v1/site/${request.cloudId}/Users`, {\n method: 'GET',\n headers: {\n 'Authorization': generateAsapHeader({\n ...request.auth.asap,\n audience: ASAP_AUDIENCE\n }),\n 'Content-Type': 'application/json'\n }\n })\n );\n }\n\n public async getUserByCloudAndAaId(\n request: GetUserByCloudAndAaIdRequest\n ): Promise {\n return mapResponseToJson(\n await fetch(\n `${this.baseUrlIdentity}/v1/site/${request.cloudId}/Users/${request.atlassianAccountId}`,\n {\n method: 'GET',\n headers: {\n 'Authorization': generateAsapHeader({\n ...request.auth.asap,\n audience: ASAP_AUDIENCE\n }),\n 'Content-Type': 'application/json'\n }\n }\n )\n );\n }\n}\n","export const DEFAULT_HOST = 'cdn-mr.contentful.com';\n","export enum PricingStrategy {\n FIXED_COST = 'FIXED_COST',\n MARGINAL_PER_UNIT = 'MARGINAL_PER_UNIT',\n PER_UNIT = 'PER_UNIT'\n}\n\nexport function isPricingStrategy(value: string): value is PricingStrategy {\n switch (value) {\n case PricingStrategy.FIXED_COST:\n case PricingStrategy.MARGINAL_PER_UNIT:\n case PricingStrategy.PER_UNIT:\n return true;\n default:\n return false;\n }\n}\n\nexport function parsePricingStrategy(value: string): PricingStrategy {\n if (isPricingStrategy(value)) {\n return value;\n } else {\n throw new SyntaxError(`${value} is not a valid PricingStrategy`);\n }\n}\n","import { Entry } from 'contentful';\n\nimport {\n parsePricingStrategy,\n PricingPlan,\n PricingTier,\n PricingTierPrice\n} from './models';\n\nexport type ProductContent = {\n readonly name?: string;\n readonly platform?: Entry;\n readonly catalogItemId?: string;\n readonly description: string;\n readonly productFamily?: string;\n readonly productType?: string;\n readonly unitLabel?: string;\n readonly billingType?: string;\n readonly vendor?: Entry;\n readonly parentProducts?: ReadonlyArray>;\n readonly defaultPricingPlanMonthly: Entry | null;\n readonly defaultPricingPlanYearly: Entry | null;\n readonly defaultStdPricingPlanMonthly: Entry | null;\n readonly defaultStdPricingPlanYearly: Entry | null;\n readonly defaultFreePricingPlanMonthly: Entry | null;\n readonly defaultFreePricingPlanYearly: Entry | null;\n readonly defaultPremiumPricingPlanMonthly: Entry | null;\n readonly defaultPremiumPricingPlanYearly: Entry | null;\n readonly defaultEnterprisePricingPlanMonthly: Entry | null;\n readonly defaultEnterprisePricingPlanYearly: Entry | null;\n readonly key?: string;\n readonly sourceSequence?: number;\n};\n\nexport type PlatformContent = {\n readonly name?: string;\n};\n\nexport type VendorContent = {\n readonly name?: string;\n};\n\nexport type PricingPlanContent = {\n readonly product?: Entry;\n readonly periodUnit?: string;\n readonly periodCount?: number;\n readonly status?: string;\n readonly edition?: string;\n readonly configuration: PricingPlanContentConfiguration;\n readonly pricingPlanId?: string;\n readonly sourceSequence?: number;\n};\n\nexport type PricingPlanContentConfiguration = ReadonlyArray;\n\nexport type PricingPlanContentConfigurationItem = {\n readonly starter: boolean;\n readonly pricing_strategy: string;\n readonly unit_description: string;\n readonly unit_limit_lower: number | null;\n readonly unit_limit_upper: number | null;\n readonly prices: ReadonlyArray;\n};\n\nexport type PricingPlanContentConfigurationItemPrice = {\n readonly currency: string;\n readonly unit_price: number;\n};\n\nexport function mapPricingPlanContentEntryToPricingPlan(\n entry: Entry | null\n): PricingPlan | undefined {\n if (entry) {\n return mapPricingPlanContentToPricingPlan(entry.fields);\n } else {\n return undefined;\n }\n}\n\nfunction mapPricingPlanContentToPricingPlan(\n content: PricingPlanContent\n): PricingPlan {\n return content.configuration.map(\n mapPricingPlanContentConfigurationItemToPricingTier\n );\n}\n\nfunction mapPricingPlanContentConfigurationItemToPricingTier({\n starter,\n pricing_strategy,\n unit_description,\n unit_limit_lower,\n unit_limit_upper,\n prices\n}: PricingPlanContentConfigurationItem): PricingTier {\n return {\n starter,\n pricingStrategy: parsePricingStrategy(pricing_strategy),\n unitDescription: unit_description,\n unitLimitLower: unit_limit_lower,\n unitLimitUpper: unit_limit_upper,\n prices: prices.map(\n mapPricingPlanContentConfigurationItemPriceToPricingTierPrice\n )\n };\n}\n\nfunction mapPricingPlanContentConfigurationItemPriceToPricingTierPrice({\n currency,\n unit_price\n}: PricingPlanContentConfigurationItemPrice): PricingTierPrice {\n return {\n currency,\n unitPrice: unit_price\n };\n}\n","import { ContentfulClientApi, createClient, Entry } from 'contentful';\nimport { DEFAULT_HOST } from './constants';\nimport { PricingPlans, ProductKey, ProductKeyMap } from './models';\nimport { AddonProduct } from './models/addon-product';\nimport {\n mapPricingPlanContentEntryToPricingPlan,\n PricingPlanContent,\n ProductContent\n} from './product-catalog-client.types';\n\nexport type ProductCatalogClientOptions = {\n readonly space: string;\n readonly environment: string;\n readonly accessToken: string;\n readonly host?: string;\n};\n\nexport const SELECT_QUERY = [\n 'fields.key',\n 'fields.defaultStdPricingPlanMonthly',\n 'fields.defaultStdPricingPlanYearly',\n 'fields.defaultPremiumPricingPlanMonthly',\n 'fields.defaultPremiumPricingPlanYearly',\n 'fields.defaultStdPricingPlanYearly',\n 'fields.defaultFreePricingPlanMonthly',\n 'fields.defaultFreePricingPlanMonthly',\n 'fields.defaultEnterprisePricingPlanMonthly',\n 'fields.defaultEnterprisePricingPlanYearly'\n].join(',');\n\nexport const SEARCH_ADDONS_QUERY = [SELECT_QUERY]\n .concat('fields.description')\n .join(',');\n\nexport interface IProductCatalogClient {\n getPricing({\n productKeys\n }: GetPricingOptions): Promise>;\n searchAddons({\n parentProductKey,\n query,\n limit\n }: SearchAddonsOptions): Promise;\n}\n\nenum EDITION_SUFFIXES {\n FREE = '.free',\n STANDARD = '',\n PREMIUM = '.premium',\n ENTERPRISE = '.enterprise'\n}\n\ntype EditionSuffix = { [P in keyof EDITION_SUFFIXES]: EDITION_SUFFIXES[P] };\n\nconst NON_STANDARD_EDITION_SUFFIXES = [\n EDITION_SUFFIXES.FREE,\n EDITION_SUFFIXES.PREMIUM,\n EDITION_SUFFIXES.ENTERPRISE\n];\n\nexport const removeEditionSuffix = (productKey: string) =>\n productKey.replace(\n new RegExp(\n NON_STANDARD_EDITION_SUFFIXES.map((suffix) => `\\\\${suffix}`).join('|') +\n '$'\n ),\n ''\n );\n\nconst getPricingPlansForEditionSuffixedKey = (\n productContent: ProductContent,\n editionSuffixedProductKey: string\n): PricingPlans => {\n const matchedEditionSuffix: EditionSuffix = NON_STANDARD_EDITION_SUFFIXES.reduce(\n (matchingEditionSuffix, editionSuffix) =>\n editionSuffixedProductKey.endsWith(editionSuffix)\n ? editionSuffix\n : matchingEditionSuffix,\n EDITION_SUFFIXES.STANDARD\n );\n\n let monthly: Entry | null = null;\n let annual: Entry | null = null;\n\n switch (matchedEditionSuffix) {\n case EDITION_SUFFIXES.FREE:\n const {\n defaultFreePricingPlanMonthly,\n defaultFreePricingPlanYearly\n } = productContent;\n monthly = defaultFreePricingPlanMonthly;\n annual = defaultFreePricingPlanYearly;\n break;\n\n case EDITION_SUFFIXES.STANDARD:\n const {\n defaultStdPricingPlanMonthly,\n defaultStdPricingPlanYearly\n } = productContent;\n monthly = defaultStdPricingPlanMonthly;\n annual = defaultStdPricingPlanYearly;\n break;\n\n case EDITION_SUFFIXES.PREMIUM:\n const {\n defaultPremiumPricingPlanMonthly,\n defaultPremiumPricingPlanYearly\n } = productContent;\n monthly = defaultPremiumPricingPlanMonthly;\n annual = defaultPremiumPricingPlanYearly;\n break;\n\n case EDITION_SUFFIXES.ENTERPRISE:\n const {\n defaultEnterprisePricingPlanMonthly,\n defaultEnterprisePricingPlanYearly\n } = productContent;\n monthly = defaultEnterprisePricingPlanMonthly;\n annual = defaultEnterprisePricingPlanYearly;\n break;\n }\n\n return {\n monthly: mapPricingPlanContentEntryToPricingPlan(monthly),\n annual: mapPricingPlanContentEntryToPricingPlan(annual)\n };\n};\n\nexport class ProductCatalogClient implements IProductCatalogClient {\n private readonly contentfulClient: ContentfulClientApi;\n\n public constructor(options: ProductCatalogClientOptions) {\n this.contentfulClient = createClient({\n ...options,\n host: options.host || DEFAULT_HOST\n });\n }\n\n public async getPricing({\n productKeys\n }: GetPricingOptions): Promise> {\n const { items } = await this.contentfulClient.getEntries({\n 'content_type': 'product',\n 'select': SELECT_QUERY,\n 'fields.key[in]': [\n ...new Set(productKeys.map(removeEditionSuffix)).values()\n ].join(',')\n });\n\n let ret: ProductKeyMap = {};\n for (const productKey of productKeys) {\n const editionlessKey = removeEditionSuffix(productKey);\n const entry = items.find(({ fields: { key } }) => key === editionlessKey);\n if (entry) {\n ret = {\n ...ret,\n [productKey]: getPricingPlansForEditionSuffixedKey(\n entry.fields,\n productKey\n )\n };\n }\n }\n\n return ret;\n }\n\n public async searchAddons({\n parentProductKey,\n query,\n limit\n }: SearchAddonsOptions): Promise {\n const { items } = await this.contentfulClient.getEntries({\n 'content_type': 'product',\n 'select': SEARCH_ADDONS_QUERY,\n 'fields.productType[match]': 'ADDON',\n 'fields.parentProductName[match]': parentProductKey,\n 'fields.description[match]': query,\n limit\n });\n\n const ret = items.map(\n ({\n fields: {\n description,\n defaultStdPricingPlanMonthly,\n defaultStdPricingPlanYearly\n }\n }) => ({\n name: description,\n pricing: {\n monthly: mapPricingPlanContentEntryToPricingPlan(\n defaultStdPricingPlanMonthly\n ),\n annual: mapPricingPlanContentEntryToPricingPlan(\n defaultStdPricingPlanYearly\n )\n }\n })\n );\n\n return ret;\n }\n}\n\nexport type GetPricingOptions = {\n readonly productKeys: ReadonlyArray;\n};\n\nexport type SearchAddonsOptions = {\n readonly parentProductKey: ProductKey;\n readonly query: string;\n readonly limit?: number;\n};\n","import { ContentfulClientApi, createClient, Entry } from 'contentful';\nimport {\n CCPOfferingContent,\n CCPPricingPlanContent,\n CCPPricingPlanItem,\n CCPPricingPlanTier\n} from './ccp-product-catalog-client.types';\nimport { DEFAULT_HOST } from './constants';\nimport { OfferingSKU, OfferingSKUMap } from './models';\n\nexport type CCPProductCatalogClientOptions = {\n readonly space: string;\n readonly environment: string;\n readonly accessToken: string;\n readonly host?: string;\n};\n\n// the Contentful SDK does not actually include these methods in the Entry object\nexport type ContentfulOffering = Omit<\n Entry,\n 'toPlainObject' | 'update'\n>;\n\nexport interface ICCPProductCatalogClient {\n getOfferingsBySKU({\n offeringSKUs\n }: GetCCPPricingOptions): Promise>;\n}\n\nexport class CCPProductCatalogClient implements ICCPProductCatalogClient {\n private readonly contentfulClient: ContentfulClientApi;\n\n public constructor(options: CCPProductCatalogClientOptions) {\n this.contentfulClient = createClient({\n ...options,\n host: options.host || DEFAULT_HOST\n });\n }\n\n public async getOfferingsBySKU({\n offeringSKUs\n }: GetCCPPricingOptions): Promise> {\n const {\n items\n } = await this.contentfulClient.getEntries({\n 'content_type': '31uDFGQ9rMyZpBgP4oexja',\n 'fields.sku[in]': [...new Set(offeringSKUs).values()].join(',')\n });\n\n let ret: OfferingSKUMap = {};\n for (const offeringSKU of offeringSKUs) {\n const entry = items.find(({ fields: { sku } }) => sku === offeringSKU);\n const contentfulOffering = entry as ContentfulOffering;\n\n ret = {\n ...ret,\n [offeringSKU]: contentfulOffering || undefined\n };\n }\n\n return ret;\n }\n}\n\nexport type GetCCPPricingOptions = {\n readonly offeringSKUs: ReadonlyArray;\n};\n\nexport { CCPPricingPlanContent, CCPPricingPlanItem, CCPPricingPlanTier };\n","import { Cookie } from '@atlassiansox/asc-core';\nimport { Asap, UserProfile } from './models';\nimport { PRODUCT_KEY_MAP } from './constants';\nimport { XOR } from './utils';\n\nexport type GetUserPermissionsIsPermittedRequest = {\n readonly permissionId: GetUserPermissionsIsPermittedRequestPermissionId;\n readonly resourceId: string;\n readonly dontRequirePrincipalInSite?: boolean;\n};\n\nexport type GetUserPermissionsIsPermittedResponse = {\n readonly permitted: boolean;\n};\n\nenum AuthenticationMethodsType {\n PASSWORD = 'password',\n GOOGLE = 'google',\n SAML = 'saml',\n MICROSOFT = 'microsoft',\n APPLE = 'apple',\n SLACK = 'slack'\n}\n\ntype Method = {\n readonly type: AuthenticationMethodsType;\n readonly redirect_to?: string;\n};\n\nexport type CheckAuthenticationMethodsAvailableResponse = {\n readonly methods: Method[];\n readonly userExists: boolean;\n readonly passwordEnabled: boolean;\n readonly samlRequired: boolean;\n};\n\nexport type PostCloudSignUpRequest = {\n payload: FormPayloadType | FormPayloadActivateProducts;\n};\n\ntype ProductPayloadObject = {\n readonly accountName?: string | null;\n readonly edition?: string | null;\n readonly product?: string | null;\n readonly productKey?: string | null;\n};\n\ntype FormPayloadActivateProducts = {\n activateProducts?: boolean;\n products: ProductPayloadObject[];\n cloudId?: string;\n cloudName: string | null;\n advancedSettings?: {\n [key: string]: number | boolean | string | Record;\n };\n signupContext?: string;\n};\n\ntype ConsentsObject = {\n key: string;\n displayedText: unknown;\n granted: boolean;\n};\n\nexport type Consent = {\n readonly site: string | null;\n readonly locale: string | null;\n readonly formUrl: string | null;\n readonly consents: ConsentsObject[];\n};\n\ntype FormPayloadType = {\n adminUsername: string;\n gRecaptchaResponse?: string;\n cloudName: string | null;\n email: string | null;\n timezone: string | null;\n firstName: string | null;\n lastName: string | null;\n adminPassword?: string | null;\n signupContext?: string;\n dataRegion?: string;\n consent: Consent;\n} & FormPayloadActivateProducts;\n\nexport type CheckAuthenticationMethodsAvailableRequest = {\n readonly email: string;\n readonly application?: string;\n readonly successRedirect: string;\n};\n\nexport enum GetUserPermissionsIsPermittedRequestPermissionId {\n ADD_PRODUCTS = 'add-products',\n INVITE_USERS = 'invite-users',\n MANAGE = 'manage',\n WRITE = 'write',\n /**\n * @deprecated ADD_PRODUCT is a legacy permissionId, use ADD_PRODUCTS instead.\n */\n ADD_PRODUCT = 'addProduct'\n}\n\nexport type RenameCloudRequest = {\n readonly cloudId: string;\n readonly cloudName: string;\n};\n\nexport type RenameCloudResponse = {\n readonly progressUri: string;\n};\n\nexport type CheckCloudNameAvailabilityRequest = {\n readonly cloudName: string;\n};\n\nexport type CheckCloudNameAvailabilityResponse = {\n readonly availability: CloudNameAvailability;\n};\n\nexport type GetUserCloudSitesRequest = {\n readonly product: string;\n readonly editions: string[];\n readonly adminAccess: boolean;\n readonly billingFrequency: string[];\n readonly licenseLevels: string[];\n};\n\nexport type GetUserCloudSitesResponse = {\n readonly name: string;\n readonly sites: ReadonlyArray;\n};\n\ntype CloudSitesInfo = {\n readonly siteName: string;\n readonly edition: string;\n readonly license: string;\n readonly product: string;\n readonly siteId: string;\n readonly adminAccess: boolean;\n};\n\nexport type CloudNameAvailability =\n | 'AVAILABLE'\n | 'TAKEN'\n | 'ERROR'\n | 'INVALID'\n | 'NOT_AVAILABLE_FOR_TRANSFER';\n\nexport type SitesType = {\n readonly adminAccess: boolean;\n readonly cloudId: string;\n readonly products: string[];\n readonly url: string;\n readonly displayName: string;\n readonly edition?: string | null;\n readonly orgId?: string | null;\n};\n\nexport type CloudSessionTokenCookieType = {\n readonly cloudSessionTokenCookie?: Cookie;\n};\n\nexport type AvailableProductsResponse = SitesType[];\n\nexport type AvailableProductsOptions = {\n readonly includeInvalidSites?: boolean;\n readonly includeInvalidBitbucketSite?: boolean;\n readonly removeNonAdminSites?: boolean;\n} & CloudSessionTokenCookieType;\n\nexport type UserSignupRequest = {\n email: string;\n locale: string;\n redirectTo: string;\n displayName: string;\n gRecaptchaResponse?: string;\n};\n\nexport type UserSignupResponse = {\n id: string;\n};\n\ntype ActivateProductResponseItems = {\n itemId: string;\n orderItemId: string;\n};\n\nexport type Platform = 'ccp' | 'hams' | 'routing';\n\nexport type CcpProduct = {\n readonly offeringId: string;\n readonly pricingPlanid: string;\n readonly productKey: string;\n readonly edition: string;\n readonly chargeElement: string;\n};\n\nexport type ActivateProductRequest = {\n email: string;\n ccpProducts: CcpProduct[];\n siteName: string;\n timezone: string;\n useCcpPlatform: boolean;\n platform: Platform;\n displayName?: string;\n consent?: Consent;\n signupContext?: string;\n advancedSettings?: {\n [key: string]: number | boolean | string | Record;\n };\n};\n\nexport type ActivateProductUpstreamResponse = XOR<\n ActivateProductCcpUpstreamResponse,\n ActivateProductCofsResponse\n>;\n\nexport type ActivateProductCcpUpstreamResponse = {\n order: {\n orderId: string;\n slug: string;\n items: ActivateProductResponseItems[];\n transactionAccountId: string;\n invoiceGroupId: string;\n metadata: {\n provisionRequestId: string;\n };\n };\n statusUrl: string;\n};\n\nexport type ActivateProductResponse = XOR<\n ActivateProductCcpResponse & { service: 'ccp' },\n ActivateProductCofsResponse & { service: 'cofs' }\n>;\n\nexport type ActivateProductCcpResponse = {\n orderId: string;\n slug: string;\n transactionAccountId: string;\n invoiceGroupId: string;\n metadata: {\n provisionRequestId: string;\n };\n items: ActivateProductResponseItems[];\n};\n\nexport type ActivateProductCofsResponse = {\n cloudId: string;\n progressUri: string;\n};\n\nexport interface ProductActivationStatusRequest {\n provisioningRequestId: string;\n}\n\nexport interface ProductActivationStatusResponse {\n provisionRequestId: string;\n resourcePackages: ResourcePackage[];\n}\n\nexport interface GetLicenceInformationRequest {\n cloudId: string;\n}\nexport type GetLicenseInformationResponse = {\n readonly firstActivationDate: number;\n readonly hostname: string;\n readonly products: {\n [key: string]: GetLicenseInformationProduct;\n };\n};\n\nexport type GetLicenseInformationProduct = {\n readonly ccpEntitlementId: string;\n readonly ccpTransactionAccountId: string;\n readonly edition: string;\n readonly isSuspended?: boolean;\n readonly state: string;\n readonly relatesFromEntitlements?: GetLicenseInformationRelatedEntitlement[];\n};\n\nexport type GetLicenseInformationRelatedEntitlement = {\n readonly relationshipType: string;\n readonly entitlementId: string;\n readonly relationshipId: string;\n};\n\nexport interface ProductActivateRequest {\n readonly transactionAccountId: string;\n readonly entitlementId: string;\n readonly offerings: OfferingsType[];\n readonly cloudId: string;\n}\nexport interface COFSProductActivateRequest {\n readonly edition: string;\n readonly productKey: string;\n readonly cloudId: string;\n}\n\nexport type OfferingsType = {\n readonly offeringId: string;\n readonly pricingPlanId: string;\n readonly chargeElement: string;\n};\n\nexport type ProductActivateResponse = {\n readonly orderId: string;\n readonly progressUri: string;\n readonly cloudId: string;\n};\nexport type COFSProductActivateResponse = {\n readonly progressUri: string;\n readonly cloudId: string;\n};\n\nexport interface ResourcePackage {\n entitlementId: string;\n action: {\n type: 'ACTIVATE';\n status: ProductActivationStatus;\n errorDetails: ResourceActivationError[];\n };\n}\n\nexport type ProductActivationStatus =\n | 'IN_PROGRESS'\n | 'SUCCESS'\n | 'PROVISIONING_FAILURE';\n\nexport interface ResourceActivationError {\n source: string;\n message: string;\n}\n\n/**\n * Identity Client section\n */\nexport type AsapAuth = {\n readonly asap: Asap;\n};\n\nexport function isAsapAuth(auth: AsapAuth) {\n return !!auth.asap;\n}\n\nexport type MeResponse = {\n readonly account_id: string;\n readonly name: string;\n readonly email: string;\n readonly picture: string;\n readonly locale: string;\n readonly zoneinfo: string;\n};\n\nexport type MeOptions = CloudSessionTokenCookieType;\n\nexport function mapMeResponseToUserProfile({\n account_id,\n ...others\n}: MeResponse): UserProfile {\n return {\n accountId: account_id,\n ...others\n };\n}\n\nexport type BitbucketWorkspaceOptions = {\n readonly nextUrl?: string;\n readonly urlQuery?: string;\n} & CloudSessionTokenCookieType;\n\nexport type BitbucketWorkspacesResponse = {\n readonly page: number;\n readonly pagelen: number;\n readonly size: number;\n readonly next?: string;\n readonly previous?: string;\n readonly values: [\n {\n // owner: has admin access, collaborator: has write access\n readonly permission: 'owner' | 'member' | 'collaborator';\n readonly user?: WorkspaceUserType;\n readonly workspace?: WorkspaceType;\n readonly last_accessed?: string | null;\n readonly type?: string;\n readonly links?: Record;\n readonly added_on?: string | null;\n }\n ];\n};\n\nexport type WorkspaceUserType = {\n readonly display_name: string;\n readonly account_id: string;\n readonly links: Record;\n readonly nickname: string;\n readonly type: string;\n readonly uuid: string;\n};\n\nexport type WorkspaceType = {\n readonly name: string;\n readonly type: string;\n readonly uuid: string;\n readonly links: Record;\n readonly slug: string;\n};\n\nexport type AvailableProductsType = {\n readonly adminAccess: boolean;\n readonly cloudId: string;\n readonly displayName: string;\n readonly url: string;\n readonly availableProducts: [\n {\n readonly activityCount: number;\n readonly productType: keyof typeof PRODUCT_KEY_MAP;\n readonly url?: string;\n }\n ];\n readonly avatar?: string;\n};\n\n/**\n * /user/:id/manage/profile\n */\n\nexport type PatchUserProfileRequestBody = {\n readonly name?: string;\n readonly nickname: string;\n};\n\nexport type PatchUserProfileRequest = {\n readonly cloudSessionTokenCookie: Cookie;\n readonly body: PatchUserProfileRequestBody;\n readonly userId: string;\n};\n\nexport type PermissionsPermittedRequestAsap = {\n readonly auth: AsapAuth;\n};\nexport type PermissionsPermittedRequestParams = {\n readonly dontRequirePrincipalInSite: boolean;\n readonly permissionId: string;\n readonly principalId: string;\n readonly resourceId: string;\n};\n\nexport type PermissionsPermittedRequest = PermissionsPermittedRequestAsap &\n PermissionsPermittedRequestParams;\n\nexport type PermissionsPermittedResponse = string;\n","export const ASAP_AUDIENCE = 'identity-platform';\n\nexport const PRODUCT_KEY_MAP = {\n CONFLUENCE: 'confluence.ondemand',\n JIRA_CORE: 'jira-core.ondemand',\n JIRA_BUSINESS: 'jira-core.ondemand',\n JIRA_SOFTWARE: 'jira-software.ondemand',\n JIRA_SERVICE_DESK: 'jira-servicedesk.ondemand',\n BITBUCKET: 'com.atlassian.bitbucket',\n OPSGENIE: 'opsgenie',\n STATUSPAGE: 'statuspage',\n TRELLO: 'trello'\n};\n","import { SitesType } from '../stargate-client.types';\n\n/**\n * Filter out internal/invalid sites\n */\n\ntype IsValidSiteType = {\n readonly site: SitesType;\n readonly includeInvalidBitbucketSite?: boolean;\n};\n\nexport const isValidSite = ({\n site,\n includeInvalidBitbucketSite\n}: IsValidSiteType): boolean => {\n const ignoreSiteNames = [\n 'servicedog',\n 'ecosystem',\n 'atlassiantraining',\n 'Atlassian Stride',\n 'volunteerhub',\n 'atlassiantraining',\n 'hello-staging',\n 'ecosystem',\n 'riskmanagement',\n 'hello-staging3',\n 'hello-staging6',\n 'hello-staging9',\n 'jdog',\n 'sre-ehlo',\n 'trello',\n 'Trello'\n ];\n\n if (!includeInvalidBitbucketSite) {\n ignoreSiteNames.push('bitbucket', 'Bitbucket');\n }\n\n if (ignoreSiteNames.includes(site.displayName)) {\n return false;\n }\n\n if (site.cloudId.startsWith('DUMMY')) {\n return false;\n }\n\n return true;\n};\n","import axios from 'axios';\nimport _ from 'lodash';\nimport {\n mapCookieToHeaders,\n mapResponseToJson,\n mapResponseToText,\n serializeCookie,\n UnsucessfulFetchError\n} from '@atlassiansox/asc-core';\nimport { fetch } from 'cross-fetch';\nimport Cookies from 'js-cookie';\n\nimport {\n ActivateProductUpstreamResponse,\n ActivateProductResponse,\n ActivateProductRequest,\n AvailableProductsOptions,\n AvailableProductsResponse,\n AvailableProductsType,\n BitbucketWorkspaceOptions,\n BitbucketWorkspacesResponse,\n CheckAuthenticationMethodsAvailableResponse,\n CheckAuthenticationMethodsAvailableRequest,\n CheckCloudNameAvailabilityRequest,\n CheckCloudNameAvailabilityResponse,\n GetUserCloudSitesRequest,\n GetUserCloudSitesResponse,\n GetLicenseInformationResponse,\n GetLicenceInformationRequest,\n GetUserPermissionsIsPermittedRequest,\n GetUserPermissionsIsPermittedResponse,\n MeOptions,\n mapMeResponseToUserProfile,\n PostCloudSignUpRequest,\n ProductActivationStatusRequest,\n ProductActivationStatusResponse,\n PatchUserProfileRequest,\n RenameCloudRequest,\n RenameCloudResponse,\n SitesType,\n UserSignupRequest,\n UserSignupResponse,\n ProductActivateRequest,\n ProductActivateResponse,\n COFSProductActivateRequest,\n COFSProductActivateResponse\n} from './stargate-client.types';\nimport { PRODUCT_KEY_MAP } from './constants';\nimport { UserProfile } from './models';\nimport { isValidSite } from './utils';\n\nexport interface IStargateClient {\n activateProduct(\n request: ActivateProductRequest\n ): Promise;\n availableProducts(\n options: AvailableProductsOptions\n ): Promise;\n availableProductsLegacy(\n options: AvailableProductsOptions\n ): Promise;\n bitbucketWorkspaces(\n options: BitbucketWorkspaceOptions\n ): Promise;\n checkCloudNameAvailability(\n request: CheckCloudNameAvailabilityRequest\n ): Promise;\n checkAuthenticationMethodsAvailable(\n request: CheckAuthenticationMethodsAvailableRequest\n ): Promise;\n getLicenceInformationStatus(\n request: GetLicenceInformationRequest\n ): Promise;\n getSignupServerXsrfToken(): Promise;\n getProductActivationStatus(\n requires: ProductActivationStatusRequest\n ): Promise;\n getUserCloudSites(\n request: GetUserCloudSitesRequest\n ): Promise;\n getUserPermissionsIsPermitted(\n request: GetUserPermissionsIsPermittedRequest\n ): Promise;\n getCurrentAuthenticatedUser(): Promise;\n me(options: MeOptions): Promise;\n patchUserProfile(request: PatchUserProfileRequest): Promise;\n postCloudSignUp(payload: PostCloudSignUpRequest): Promise;\n postProductActivate(\n request: ProductActivateRequest\n ): Promise;\n postCOFSProductActivate(\n request: COFSProductActivateRequest\n ): Promise;\n renameCloud(request: RenameCloudRequest): Promise;\n userSignup(request: UserSignupRequest): Promise;\n}\n\nexport const DEFAULT_STARGATE_BASE_URL =\n 'https://wac.stg.internal.atlassian.com/gateway/api';\nexport const DEFAULT_IDENTITY_BASE_URL = 'https://id.staging.atl-paas.net';\n\nexport type StargateClientOptions = {\n readonly baseUrl: string;\n};\n\n/**\n * @see https://bitbucket.org/atlassian/stargate/src/master/src/main/resources/application.yml\n */\nexport class StargateClient implements IStargateClient {\n public readonly baseUrl: string;\n\n public constructor({ baseUrl }: StargateClientOptions) {\n this.baseUrl = baseUrl;\n }\n\n /**\n * Get the xsrf token required to make calls to the signup server\n *\n * @see https://bxp-signup-server.staging.atl-paas.net/swagger/#/Authentication/get_auth_xsrf\n */\n public async getSignupServerXsrfToken(): Promise {\n return mapResponseToText(\n await fetch(`${this.baseUrl}/bxp/signup/auth/xsrf`, {\n method: 'GET',\n credentials: 'include',\n headers: {\n accept: 'text/plain'\n }\n })\n );\n }\n\n /**\n * Get the authentication methods available to a given user.\n *\n * @see https://bxp-signup-server.us-west-2.prod.atl-paas.net/swagger/#/Identity/post_authentication_methods_available\n */\n public async checkAuthenticationMethodsAvailable({\n email,\n application = 'wac',\n successRedirect\n }: CheckAuthenticationMethodsAvailableRequest): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n\n return mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bxp/signup/authentication/methods-available`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken\n },\n credentials: 'include',\n body: JSON.stringify({\n email,\n application,\n continue: successRedirect\n })\n }\n )\n );\n }\n\n /**\n * Get whether a user has a permission for a particular resource.\n *\n * @see https://id-public-api-facade.prod.atl-paas.net/swagger.json\n */\n public async getUserPermissionsIsPermitted({\n permissionId,\n resourceId,\n dontRequirePrincipalInSite\n }: GetUserPermissionsIsPermittedRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/permissions/permitted`, {\n credentials: 'include',\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n permissionId,\n resourceId,\n dontRequirePrincipalInSite\n })\n })\n );\n }\n\n /**\n * Returns details about the current authenticated user.\n * This is expected to be consistent with Atlassian account.\n *\n * @see https://id-public-api-facade.prod.atl-paas.net/swagger.json\n */\n public async getCurrentAuthenticatedUser(): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/me`, {\n credentials: 'include'\n })\n );\n }\n\n public async postCloudSignUp({\n payload\n }: PostCloudSignUpRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/signup`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'atl-cookies': JSON.stringify({\n _ga: Cookies.get('_ga') || '',\n seg_xid: localStorage.getItem('seg_xid') || '',\n __atl_path: Cookies.get('__atl_path') || '',\n ajs_anonymous_id: Cookies.get('ajs_anonymous_id') || '',\n optimizelyBuckets: Cookies.get('optimizelyBuckets') || '',\n optimizelySegments: Cookies.get('optimizelySegments') || '',\n optimizelyEndUserId: Cookies.get('optimizelyEndUserId') || ''\n })\n },\n body: JSON.stringify(payload),\n credentials: 'include'\n })\n );\n }\n\n /**\n * Rename a Cloud\n * @see https://cofs.dev.public.atl-paas.net/api.html#external__cloudId__rename_put\n */\n public async renameCloud({\n cloudId,\n cloudName\n }: RenameCloudRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cofs/${cloudId}/rename`, {\n method: 'put',\n body: JSON.stringify({\n cloudName\n }),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n\n /**\n * @see https://cloud-name-availability.prod.atl-paas.net/swagger-ui/index.html#/name-availability-stargate-controller/checkAvailabilityUsingPOST\n */\n public async checkCloudNameAvailability({\n cloudName\n }: CheckCloudNameAvailabilityRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/hostname/cloud/availability/check`, {\n method: 'post',\n body: JSON.stringify({\n cloudName\n }),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n\n public async getUserCloudSites({\n product,\n editions,\n adminAccess,\n licenseLevels,\n billingFrequency\n }: GetUserCloudSitesRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/users/cloudsites`, {\n method: 'post',\n body: JSON.stringify({\n product,\n editions,\n adminAccess,\n licenseLevels,\n billingFrequency\n }),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n\n /**\n * Get the new ais/available-products\n */\n public async availableProducts({\n includeInvalidSites,\n includeInvalidBitbucketSite,\n removeNonAdminSites\n }: AvailableProductsOptions): Promise {\n const reqUrl = `${this.baseUrl}/ais/available-products`;\n const response = await fetch(reqUrl, {\n method: 'GET',\n credentials: 'include'\n });\n if (response.ok) {\n const result = await response.json();\n let sites = (result && result.sites) || [];\n\n if (removeNonAdminSites) {\n sites = sites.filter((site: SitesType) => site.adminAccess);\n }\n\n if (!includeInvalidSites) {\n sites = sites.filter((site: SitesType) =>\n isValidSite({\n site,\n includeInvalidBitbucketSite\n })\n );\n }\n\n return Promise.resolve(sites);\n } else {\n throw new UnsucessfulFetchError({\n response\n });\n }\n }\n\n public async userSignup(\n request: UserSignupRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/bxp/signup/identity/user-signup`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken\n },\n credentials: 'include',\n body: JSON.stringify({ ...request })\n })\n );\n }\n\n public async activateProduct(\n request: ActivateProductRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n\n const upstreamResponse = await mapResponseToJson(\n await fetch(`${this.baseUrl}/bxp/signup/activate-product`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken\n },\n credentials: 'include',\n body: JSON.stringify(request)\n })\n );\n\n if (upstreamResponse.cloudId) {\n return {\n ...upstreamResponse,\n service: 'cofs'\n };\n }\n\n return {\n ...upstreamResponse.order,\n service: 'ccp'\n };\n }\n\n public async getProductActivationStatus(\n request: ProductActivationStatusRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n\n return mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bxp/signup/activate/status/${request.provisioningRequestId}`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken\n },\n credentials: 'include'\n }\n )\n );\n }\n\n public async getLicenceInformationStatus(\n request: GetLicenceInformationRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n\n return mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bxp/signup/cloud/${request.cloudId}/license-information`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken\n },\n credentials: 'include'\n }\n )\n );\n }\n // for attaching a product to an existing site, xflow worked on the endpoint\n public async postProductActivate(\n request: ProductActivateRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/bxp/signup/product/activate`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken\n },\n credentials: 'include',\n body: JSON.stringify(request)\n })\n );\n }\n // for attaching a product to an existing site using COFS, xflow worked on the endpoint\n public async postCOFSProductActivate(\n request: COFSProductActivateRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n const { cloudId } = request;\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/xflow/${cloudId}/activate`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken\n },\n credentials: 'include',\n body: JSON.stringify(request)\n })\n );\n }\n /**\n * Indentity calls\n */\n public async me({\n cloudSessionTokenCookie\n }: MeOptions): Promise {\n const url = `${this.baseUrl}/me`;\n const response = await fetch(url, {\n headers: mapCookieToHeaders(cloudSessionTokenCookie),\n credentials: 'include'\n });\n if (response.ok) {\n return mapMeResponseToUserProfile(await response.json());\n } else {\n throw new UnsucessfulFetchError({\n response\n });\n }\n }\n\n /**\n * Get a list of Bitbucket workspaces\n * @param nextUrl - override the request URL for pagination\n * bitbucket/user/permissions/workspaces?sort=workspace.slug\n */\n public async bitbucketWorkspaces({\n nextUrl,\n cloudSessionTokenCookie,\n urlQuery\n }: BitbucketWorkspaceOptions): Promise {\n let reqUrl = `${this.baseUrl}/bitbucket/user/permissions/workspaces`;\n if (nextUrl) {\n reqUrl = nextUrl;\n }\n if (urlQuery) {\n reqUrl = `${reqUrl}?${urlQuery}`;\n }\n\n const response = await fetch(reqUrl, {\n headers: mapCookieToHeaders(cloudSessionTokenCookie),\n credentials: 'include'\n });\n\n if (response.ok) {\n return Promise.resolve(await response.json());\n } else {\n throw new UnsucessfulFetchError({\n response\n });\n }\n }\n\n /**\n * The legacy get availableProducts call from IdentityClient\n */\n public async availableProductsLegacy({\n cloudSessionTokenCookie,\n includeInvalidSites,\n includeInvalidBitbucketSite\n }: AvailableProductsOptions): Promise {\n const reqUrl = `${this.baseUrl}/available-products/api/available-products`;\n const response = await fetch(reqUrl, {\n headers: mapCookieToHeaders(cloudSessionTokenCookie),\n credentials: 'include'\n });\n\n if (response.ok) {\n const result = await response.json();\n let sites = (result && result.sites) || [];\n\n sites = _.remove(\n _.map(sites, (site: AvailableProductsType) => {\n const products = _.map(site.availableProducts, (product) => {\n return PRODUCT_KEY_MAP[product.productType];\n }).filter((product) => product !== undefined);\n\n if (!_.isEmpty(products)) {\n return {\n adminAccess: site.adminAccess,\n cloudId: site.cloudId,\n displayName: site.displayName,\n url: site.url,\n products\n };\n } else {\n return null;\n }\n }),\n (site) => site !== undefined && site !== null\n );\n\n if (!includeInvalidSites) {\n sites = sites.filter((site: SitesType) =>\n isValidSite({\n site,\n includeInvalidBitbucketSite\n })\n );\n }\n\n return Promise.resolve(sites);\n } else {\n throw new UnsucessfulFetchError({\n response\n });\n }\n }\n\n public async patchUserProfile(\n request: PatchUserProfileRequest\n ): Promise {\n const { body, userId, cloudSessionTokenCookie } = request;\n\n const options = {\n headers: {\n 'content-type': 'application/json',\n 'Cookie': serializeCookie(cloudSessionTokenCookie)\n }\n };\n return new Promise((resolve, reject) => {\n axios\n .patch(`${this.baseUrl}/users/${userId}/manage/profile`, body, options)\n .then((response) => {\n resolve(response.data);\n })\n .catch((err) => {\n reject(err.toString());\n });\n });\n }\n}\n","import { mapResponseToJson, mapResponseToText } from '@atlassiansox/asc-core';\nimport { fetch } from 'cross-fetch';\n\nimport {\n CloudExpandFreeValidationRequest,\n CloudExpandFreeValidationResponse,\n CloudSignUpRequest,\n CloudSignUpResponse,\n FreeBreachRequest,\n FreeBreachResponse,\n ProductEditionByCloudIdRequest,\n ProductEditionByCloudIdResponse,\n MarketplaceAppInstallRequest,\n MarketplaceAppInstallResponse\n} from './bxp-express-client.types';\n\nexport type BXPExpressClientOptions = {\n readonly baseUrl?: string;\n};\n\nexport interface IBXPExpressClient {\n getXsrfToken(): Promise;\n cloudSignupAnonymous(\n request: CloudSignUpRequest\n ): Promise;\n cloudExpandFreeValidation(\n request: CloudExpandFreeValidationRequest\n ): Promise;\n postBreachStatus(request: FreeBreachRequest): Promise;\n productEditionByCloudId(\n request: ProductEditionByCloudIdRequest\n ): Promise;\n marketplaceAppInstall(\n request: MarketplaceAppInstallRequest\n ): Promise;\n}\n\nexport class BXPExpressClient implements IBXPExpressClient {\n public static DEFAULT_BASE_URL =\n 'https://wac.stg.internal.atlassian.com/endpoint';\n\n private readonly baseUrl: string;\n\n public constructor({\n baseUrl = BXPExpressClient.DEFAULT_BASE_URL\n }: BXPExpressClientOptions = {}) {\n this.baseUrl = baseUrl;\n }\n\n public async getXsrfToken(): Promise {\n return mapResponseToText(\n await fetch(`${this.baseUrl}/auth/xsrf`, {\n method: 'GET',\n credentials: 'include',\n headers: {\n accept: 'text/plain'\n }\n })\n );\n }\n\n public async cloudSignupAnonymous({\n payload,\n cookies\n }: CloudSignUpRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/signupAnon`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'ATL-Cookies': JSON.stringify(cookies)\n },\n body: JSON.stringify(payload),\n credentials: 'include'\n })\n );\n }\n\n public async marketplaceAppInstall({\n siteName,\n appKey,\n xsrfToken\n }: MarketplaceAppInstallRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/marketplace/app/install`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken\n },\n body: JSON.stringify({ siteName, appKey }),\n credentials: 'include'\n })\n );\n }\n\n public async cloudExpandFreeValidation({\n cloudId,\n productKeys\n }: CloudExpandFreeValidationRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/expand-free-validation`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n cloudId,\n productKeys\n })\n })\n );\n }\n\n public async postBreachStatus({\n payload\n }: FreeBreachRequest): Promise {\n const options = {\n headers: {\n 'content-type': 'application/json'\n },\n method: 'POST',\n body: JSON.stringify(payload)\n };\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/expand-free-validation`, options)\n );\n }\n\n public async productEditionByCloudId({\n cloudId,\n productKey\n }: ProductEditionByCloudIdRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/edition/${cloudId}/${productKey}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n}\n","import { createHeaders, mapResponseToJson } from '@atlassiansox/asc-core';\nimport { fetch } from 'cross-fetch';\n\nimport {\n CloudSignUpRequest,\n CloudSignUpResponse\n} from './bxp-express-client.types';\n\nexport type BXPExpressStargateClientOptions = {\n readonly baseUrl?: string;\n};\n\nexport class BXPExpressStargateClient {\n public static DEFAULT_BASE_URL =\n 'https://wac.stg.internal.atlassian.com/gateway/api';\n\n private readonly baseUrl: string;\n\n public constructor({\n baseUrl = BXPExpressStargateClient.DEFAULT_BASE_URL\n }: BXPExpressStargateClientOptions = {}) {\n this.baseUrl = baseUrl;\n }\n\n public async cloudSignup({\n payload,\n cookies\n }: CloudSignUpRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/signup`, {\n method: 'POST',\n headers: createHeaders({\n 'Content-Type': 'application/json',\n 'ATL-Cookies': JSON.stringify(cookies)\n }),\n body: JSON.stringify(payload),\n credentials: 'include'\n })\n );\n }\n}\n","import {\n createUrl,\n mapResponseToJson,\n mapResponseToText,\n serializeCookie\n} from '@atlassiansox/asc-core';\nimport { generateAsapHeader } from '@atlassiansox/asc-asap';\nimport { fetch, Headers } from 'cross-fetch';\n\nimport {\n GetCartRequest,\n GetEmailExistsRequest,\n GetEmailExistsResponse,\n GetProductPricingRequest,\n GetProductPricingResponse,\n GetXsrfTokenRequest,\n PatchUserRequest,\n GetCloudSiteRequest,\n GetCloudSiteResponse\n} from './hamlet-client.types';\nimport { Cart, Contact } from './models';\n\nexport const DEFAULT_BASE_URL = 'https://hamlet.atlassian.com';\n\nconst ASAP_AUDIENCE = 'micros/hams';\n\nexport type HamletClientOptions = {\n readonly baseUrl?: string;\n};\n\nexport interface IHamletClient {\n getXsrfToken(request: GetXsrfTokenRequest): Promise;\n getEmailExists(\n request: GetEmailExistsRequest\n ): Promise;\n getCart(request: GetCartRequest): Promise;\n patchUser(request: PatchUserRequest): Promise;\n getProductPricing(\n request: GetProductPricingRequest\n ): Promise;\n getCloudSite(request: GetCloudSiteRequest): Promise;\n}\n\n/**\n * @see: https://hello.atlassian.net/wiki/spaces/HAMS/pages/127995591/Hamlet+API\n */\nexport class HamletClient implements IHamletClient {\n private readonly baseUrl: string;\n\n public constructor({ baseUrl = DEFAULT_BASE_URL }: HamletClientOptions = {}) {\n this.baseUrl = baseUrl;\n }\n\n public async getXsrfToken({\n cloudSessionTokenCookie\n }: GetXsrfTokenRequest): Promise {\n return mapResponseToText(\n await fetch(`${this.baseUrl}/1.0/auth/xsrf/plain`, {\n headers: {\n cookie: serializeCookie(cloudSessionTokenCookie)\n }\n })\n );\n }\n\n public async getEmailExists({\n email\n }: GetEmailExistsRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/1.0/public/aid/exists/${email}`, {\n method: 'POST'\n })\n );\n }\n\n public async getCart({ cartId }: GetCartRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/1.0/public/order/cart/${cartId}`)\n );\n }\n\n public async patchUser({\n cloudSessionTokenCookie,\n firstName,\n lastName\n }: PatchUserRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/1.0/public/contact/currentUser/patch`, {\n method: 'PATCH',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'ATL-XSRF-Token': await this.getXsrfToken({\n cloudSessionTokenCookie\n }),\n 'Cookie': serializeCookie(cloudSessionTokenCookie)\n },\n body: JSON.stringify([\n {\n op: 'replace',\n path: '/contactDetails/firstName',\n value: firstName\n },\n {\n op: 'replace',\n path: '/contactDetails/lastName',\n value: lastName\n }\n ])\n })\n );\n }\n\n public async getProductPricing({\n productKeys,\n licenseType = 'evaluation',\n requestingApplication = 'WAC',\n monthsValid = '1'\n }: GetProductPricingRequest): Promise {\n return mapResponseToJson(\n await fetch(\n createUrl({\n baseUrl: this.baseUrl,\n path: `/1.0/public/pricing/query`,\n query: {\n licenseType,\n productKey: productKeys,\n requestingApplication,\n monthsValid,\n cacheBuster: Date.now()\n }\n })\n )\n );\n }\n\n public async getCloudSite({\n cloudId,\n auth\n }: GetCloudSiteRequest): Promise {\n const headers = new Headers();\n\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n })\n );\n\n return mapResponseToJson(\n await fetch(\n createUrl({\n baseUrl: this.baseUrl,\n path: `/1.0/private/cloud/${cloudId}`\n }),\n { headers }\n )\n );\n }\n}\n","import { HamletClient, IHamletClient } from '@atlassiansox/asc-hamlet';\nimport { createContext } from 'react';\n\nexport const HamletClientContext = createContext(\n new HamletClient()\n);\n","import { PricingCalculator } from '@atlassian/bxp-product-pricing';\nimport { useMemo } from 'react';\n\nimport { useProductPricingStore } from '@atlassiansox/bxpkit-product-pricing-store';\n\nexport function usePricingCalculator() {\n const productPricingStore = useProductPricingStore();\n return useMemo(\n () => new PricingCalculator({ productPricingStore }),\n [productPricingStore]\n );\n}\n","import { hash } from 'bcryptjs';\nimport { createContext } from 'react';\nimport type { AnalyticsTrackType, ProductKeysType } from '../model';\n\nexport const hashEmail = async (email: string) => {\n const salt = '$2b$11$wgr1TJNVKwiK/dQBd3HKm.';\n if (!email || typeof email === 'number') {\n return Promise.resolve('');\n }\n\n // set email to lowercase, split username & domain\n // tslint:disable-next-line: prefer-const\n const [username, domain] = email.toLowerCase().split('@');\n // strip fullstops\n let sanitizedUsername = username.replace(/\\./g, '');\n // ignore anything after '+' char\n if (sanitizedUsername.includes('+')) {\n sanitizedUsername = sanitizedUsername.split('+')[0];\n }\n // rejoin the email\n const cleanEmail = sanitizedUsername + '@' + domain;\n const hashResult = await hash(cleanEmail, salt).catch(() => '');\n\n return Promise.resolve(hashResult);\n};\n\nconst MarieSchema = {\n eventContainer: '',\n productKey: [],\n\n productEdition: '',\n productPlatform: '',\n schemaVersion: 1,\n\n loginUserDetected: 0,\n suiteName: '',\n // tslint:disable-next-line:no-empty\n setSuiteName: () => undefined,\n userEmail: '',\n // tslint:disable-next-line:no-empty\n setUserEmail: () => undefined,\n\n productsOffered: []\n};\nexport type MarieSchemaAnalyticsType = {\n readonly eventContainer: string;\n readonly setEventContainer?: (value: string) => void;\n\n readonly productKey: ProductKeysType[];\n readonly productEdition: string;\n readonly productPlatform: string;\n readonly schemaVersion: number;\n\n readonly loginUserDetected: number;\n readonly suiteName: string;\n readonly setSuiteName: (value: string) => void;\n readonly userEmail: string;\n readonly setUserEmail: (value: string) => void;\n readonly productsOffered: string[];\n readonly analyticsTrack?: AnalyticsTrackType;\n};\n\nexport const MarieSchemaAnalytics =\n createContext(MarieSchema);\n","import { DependencyList, useEffect, useState } from 'react';\n\nexport function useAsync(\n task: () => Promise,\n dependencies?: DependencyList\n): AsyncResult {\n const [result, setResult] = useState(AsyncResult.pending());\n\n useEffect(() => {\n let inEffect = true;\n\n task()\n .then((value) => {\n if (inEffect) {\n setResult(AsyncResult.complete(value));\n }\n })\n .catch((error) => {\n if (inEffect) {\n setResult(AsyncResult.error(error));\n }\n });\n\n return () => {\n inEffect = false;\n };\n }, dependencies);\n\n return result;\n}\n\nexport abstract class AsyncResult {\n public static pending(): AsyncResult {\n return new PendingAsyncResult();\n }\n\n public static complete(\n value: T\n ): AsyncResult {\n return new CompleteAsyncResult(value);\n }\n\n public static error(error: E): AsyncResult {\n return new ErrorAsyncResult(error);\n }\n\n public static isPending(\n result: AsyncResult\n ): result is PendingAsyncResult {\n return result.isPending === true;\n }\n\n public static isComplete(\n result: AsyncResult\n ): result is CompleteAsyncResult {\n return (\n result.isPending === false &&\n (result as ErrorAsyncResult).error === undefined\n );\n }\n\n public static isError(\n result: AsyncResult\n ): result is ErrorAsyncResult {\n return (\n result.isPending === false &&\n (result as ErrorAsyncResult).error !== undefined\n );\n }\n\n protected constructor(public readonly isPending: boolean) {}\n\n abstract map(mapper: (value: T) => U): AsyncResult;\n\n abstract catch(catcher: (error: E) => T): AsyncResult;\n\n abstract get value(): T;\n}\n\nclass PendingAsyncResult extends AsyncResult {\n public constructor() {\n super(true);\n }\n\n public map(): AsyncResult {\n return new PendingAsyncResult();\n }\n\n public catch(): AsyncResult {\n return this;\n }\n\n public get value(): T {\n throw new Error('AsyncResult is pending...');\n }\n}\n\nclass CompleteAsyncResult extends AsyncResult {\n public constructor(public readonly value: T) {\n super(false);\n }\n\n public map(mapper: (value: T) => U): AsyncResult {\n return new CompleteAsyncResult(mapper(this.value));\n }\n\n public catch(): AsyncResult {\n return this;\n }\n}\n\nclass ErrorAsyncResult extends AsyncResult {\n public constructor(public readonly error: E) {\n super(false);\n }\n\n public map(): AsyncResult {\n return new ErrorAsyncResult(this.error);\n }\n\n public catch(catcher: (error: E) => T): AsyncResult {\n return new CompleteAsyncResult(catcher(this.error));\n }\n\n public get value(): T {\n throw new AsyncResultError(this.error);\n }\n}\n\nexport class AsyncResultError extends Error {\n public constructor(public readonly cause: Error) {\n super(cause.message);\n this.name = AsyncResultError.name;\n }\n}\n","import { IStargateClient, StargateClient } from '@atlassiansox/asc-stargate';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst DEFAULT_BASE_URL = 'https://wac.stg.internal.atlassian.com/gateway/api';\n\nconst StargateClientContext = createContext(\n new StargateClient({\n baseUrl: DEFAULT_BASE_URL\n })\n);\n\nexport function useStargateClient(): IStargateClient {\n return useContext(StargateClientContext);\n}\n\nexport type StargateClientProviderProps =\n | InterfaceStargateClientProviderProps\n | BaseUrlStargateClientProviderProps;\n\nexport type InterfaceStargateClientProviderProps = {\n readonly client: IStargateClient;\n};\n\nexport type BaseUrlStargateClientProviderProps = {\n readonly baseUrl: string;\n};\n\nexport function StargateClientProvider(\n props: PropsWithChildren\n) {\n const { children } = props;\n if (isBaseUrlStargateClientProviderProps(props)) {\n return (\n \n {children}\n \n );\n } else {\n return (\n \n {children}\n \n );\n }\n}\n\nfunction isBaseUrlStargateClientProviderProps(\n props: StargateClientProviderProps\n): props is BaseUrlStargateClientProviderProps {\n return !!(props as BaseUrlStargateClientProviderProps)?.baseUrl;\n}\n","import {\n AvailableProductsOptions,\n AvailableProductsOptions as AISAvailableProductsOptions,\n AvailableProductsResponse,\n AvailableProductsResponse as AISAvailableProductsResponse\n} from '@atlassiansox/asc-stargate';\nimport { AsyncResult, useAsync } from './use-async';\nimport { useStargateClient } from './use-stargate-client';\n\nexport function useAvailableProducts({\n includeInvalidSites,\n includeInvalidBitbucketSite\n}: AvailableProductsOptions): AsyncResult {\n const stargateClient = useStargateClient();\n\n return useAsync(\n () =>\n stargateClient.availableProductsLegacy({\n includeInvalidSites,\n includeInvalidBitbucketSite\n }),\n []\n );\n}\n\nexport function useAISAvailableProducts({\n includeInvalidSites,\n includeInvalidBitbucketSite,\n removeNonAdminSites\n}: AISAvailableProductsOptions): AsyncResult {\n const stargateClient = useStargateClient();\n\n return useAsync(\n () =>\n stargateClient.availableProducts({\n includeInvalidSites,\n includeInvalidBitbucketSite,\n removeNonAdminSites\n }),\n []\n );\n}\n","import {\n BitbucketWorkspacesResponse,\n BitbucketWorkspaceOptions\n} from '@atlassiansox/asc-stargate';\n\nimport { useStargateClient } from './use-stargate-client';\nimport { AsyncResult, useAsync } from './use-async';\n\ntype UseBitbucketWorkspacesTypeOptions = {\n readonly makeRequest?: boolean;\n} & BitbucketWorkspaceOptions;\n\nexport function useBitbucketWorkspaces({\n nextUrl,\n urlQuery,\n makeRequest\n}: UseBitbucketWorkspacesTypeOptions): AsyncResult {\n const stargateClient = useStargateClient();\n\n return useAsync(\n () =>\n makeRequest\n ? stargateClient.bitbucketWorkspaces({ nextUrl, urlQuery })\n : Promise.resolve(null),\n [makeRequest]\n );\n}\n","import {\n IBXPExpressClient,\n BXPExpressClient\n} from '@atlassiansox/bxp-express-client';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst BXPExpressClientContext = createContext(\n new BXPExpressClient()\n);\n\nexport function useBXPExpressClient(): IBXPExpressClient {\n return useContext(BXPExpressClientContext);\n}\n\nexport type BXPExpressClientProviderProps = PropsWithChildren<{\n readonly client: IBXPExpressClient;\n}>;\n\nexport function BXPExpressClientProvider({\n client,\n children\n}: BXPExpressClientProviderProps) {\n return (\n \n {children}\n \n );\n}\n","import { HamletClient, IHamletClient } from '@atlassiansox/asc-hamlet';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst HamletClientContext = createContext(new HamletClient());\n\nexport function useHamletClient(): IHamletClient {\n return useContext(HamletClientContext);\n}\n\nexport type HamletClientProviderProps = PropsWithChildren<{\n readonly client: IHamletClient;\n}>;\n\nexport function HamletClientProvider({\n client,\n children\n}: HamletClientProviderProps) {\n return (\n \n {children}\n \n );\n}\n","import { PricingCalculation } from '@atlassian/bxp-product-pricing';\nimport { PricingPlan } from '@atlassian/bxp-product-pricing/dist/types/src/utils';\nimport { usePricingCalculator } from '../contexts';\nimport { AsyncResult, useAsync } from './use-async';\n\nexport function useCalculation(\n units: number,\n pricingPlan: PricingPlan,\n currencyIsoCode: string\n): AsyncResult {\n const calculator = usePricingCalculator();\n return useAsync(\n () =>\n calculator.calculatePriceWithPricingPlan({\n units,\n currencyIsoCode,\n pricingPlan\n }),\n [units, pricingPlan, currencyIsoCode]\n );\n}\n","import { ICnasClient, CnasClient } from '@atlassiansox/asc-cnas';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst CnasClientContext = createContext(new CnasClient());\n\nexport function useCnasClient(): ICnasClient {\n return useContext(CnasClientContext);\n}\n\nexport type CnasClientProviderProps = PropsWithChildren<{\n readonly client: ICnasClient;\n}>;\n\nexport function CnasClientProvider({\n client,\n children\n}: CnasClientProviderProps) {\n return (\n \n {children}\n \n );\n}\n","import { Cookie } from '@atlassiansox/asc-core';\n\nexport type XsrfToken = string;\n\nexport type AtlassianIdAuth = {\n readonly xsrfToken: XsrfToken;\n readonly cloudSessionTokenCookie: Cookie;\n};\n\nexport function isAtlassianIdAuth(value: unknown): value is AtlassianIdAuth {\n const auth = value as AtlassianIdAuth | undefined;\n return !!auth?.xsrfToken && !!auth.cloudSessionTokenCookie;\n}\n","import { generateAsapHeader } from '@atlassiansox/asc-asap';\nimport {\n Cookie,\n mapResponseToJson,\n mapResponseToText,\n serializeCookie\n} from '@atlassiansox/asc-core';\nimport { fetch, Headers } from 'cross-fetch';\n\nimport { isAtlassianIdAuth } from './auth';\nimport {\n ActivateProductsRequest,\n ActivateProductsResponse,\n CloudStatusResponse,\n CreateCloudRequest,\n CreateCloudResponse,\n GetCloudStatusOptions,\n GetNameAvailabilityOptions,\n GetNameAvailabilityResponseBody,\n ReserveNameOptions,\n ReserveNameResponseBody,\n RenameSiteOptions,\n RenameSiteResponseBody,\n PollProgressOptions,\n PollProgressResponseBody\n} from './cofs-client.types';\n\nexport const PUBLIC_PROD_BASE_URL = 'https://www.atlassian.com/apis/prod/cofs';\nexport const PROD_BASE_URL = 'https://cofs.prod.public.atl-paas.net';\nexport const STAGING_BASE_URL = 'https://cofs.staging.public.atl-paas.net';\n\nconst AUDIENCE = 'cofs';\n\nexport type CofsClientOptions = {\n readonly baseUrl?: string;\n};\n\nexport interface ICofsClient {\n activateProducts(\n request: ActivateProductsRequest\n ): Promise;\n createCloud(\n originalRequest: CreateCloudRequest\n ): Promise;\n getNameAvailability(options: GetNameAvailabilityOptions): Promise;\n reserveName(options: ReserveNameOptions): Promise;\n renameSite({ cloudId, newSiteName }: RenameSiteOptions): Promise;\n pollProgress({\n progressUri\n }: PollProgressOptions): Promise;\n getCloudStatus(request: GetCloudStatusOptions): Promise;\n getHealthCheck(): Promise;\n}\n\n/**\n * @see: https://cofs.prod.public.atl-paas.net/api.html\n */\nexport class CofsClient implements ICofsClient {\n private readonly baseUrl: string;\n\n public constructor({ baseUrl = STAGING_BASE_URL }: CofsClientOptions = {}) {\n this.baseUrl = baseUrl;\n }\n\n public async activateProducts(\n request: ActivateProductsRequest\n ): Promise {\n const headers = new Headers({\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n });\n const { cloudId, body, auth, analyticsData, userContextToken } = request;\n\n let cookiesList: Cookie[] = [];\n if (analyticsData) {\n cookiesList = analyticsData;\n }\n\n if (isAtlassianIdAuth(auth)) {\n headers.append('ATL-XSRF-Token', auth.xsrfToken);\n cookiesList.push(auth.cloudSessionTokenCookie);\n } else {\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: AUDIENCE\n })\n );\n\n if (userContextToken) {\n headers.append('User-Context', userContextToken);\n }\n }\n\n if (cookiesList.length) {\n headers.append(\n 'Cookie',\n cookiesList.map((cookieItem) => serializeCookie(cookieItem)).join('; ')\n );\n }\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/${cloudId}/activateProducts`, {\n method: 'POST',\n headers,\n body: JSON.stringify(body)\n })\n );\n }\n\n public async createCloud(\n originalRequest: CreateCloudRequest\n ): Promise {\n const request = originalRequest;\n const headers = new Headers({\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n });\n const {\n body,\n auth,\n userContextToken,\n source,\n clientIp,\n analyticsData\n } = request;\n\n if (source) {\n headers.append('X-ATL-Source', source);\n }\n\n let cookiesList: Cookie[] = [];\n if (analyticsData) {\n cookiesList = analyticsData;\n }\n\n if (isAtlassianIdAuth(auth)) {\n headers.append('ATL-XSRF-Token', auth.xsrfToken);\n cookiesList.push(auth.cloudSessionTokenCookie);\n } else {\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: AUDIENCE\n })\n );\n\n if (userContextToken) {\n headers.append('User-Context', userContextToken);\n }\n }\n\n if (cookiesList.length) {\n headers.append(\n 'Cookie',\n cookiesList.map((cookieItem) => serializeCookie(cookieItem)).join('; ')\n );\n }\n\n if (clientIp) {\n headers.append('X-Forwarded-For', clientIp);\n }\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud`, {\n method: 'POST',\n headers,\n body: JSON.stringify(body)\n })\n );\n }\n\n public async getNameAvailability({\n name\n }: GetNameAvailabilityOptions): Promise {\n const {\n success\n } = await mapResponseToJson(\n await fetch(`${this.baseUrl}/nameAvailability`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n name\n })\n })\n );\n\n return success;\n }\n\n public async reserveName({\n cloudName,\n auth\n }: ReserveNameOptions): Promise {\n const headers = new Headers({\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n });\n\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: AUDIENCE\n })\n );\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloudname/availability/reserve`, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n cloudName\n }),\n credentials: 'include'\n })\n );\n }\n\n public async renameSite({\n cloudId,\n newSiteName\n }: RenameSiteOptions): Promise {\n const { progressUri } = await mapResponseToJson(\n await fetch(`${this.baseUrl}/${cloudId}/rename`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include',\n body: JSON.stringify({ cloudName: newSiteName })\n })\n );\n return progressUri;\n }\n\n public async getCloudStatus({\n cloudId,\n requestId\n }: GetCloudStatusOptions): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/${cloudId}/status/${requestId}`, {\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n\n public async pollProgress({\n progressUri\n }: PollProgressOptions): Promise {\n return mapResponseToJson(\n await fetch(progressUri, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n\n public async getHealthCheck(): Promise {\n return mapResponseToText(\n await fetch(`${this.baseUrl}/healthcheck`, {\n method: 'GET',\n\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n );\n }\n}\n","import { ICofsClient, CofsClient } from '@atlassiansox/asc-cofs';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst CofsClientContext = createContext(new CofsClient());\n\nexport function useCofsClient(): ICofsClient {\n return useContext(CofsClientContext);\n}\n\nexport type CofsClientProviderProps = PropsWithChildren<{\n readonly client: ICofsClient;\n}>;\n\nexport function CofsClientProvider({\n client,\n children\n}: CofsClientProviderProps) {\n return (\n \n {children}\n \n );\n}\n","import React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst LocaleContext = createContext('en');\n\n/**\n * this should be replaced with new version of react-intl\n */\nexport function useLocale(): string {\n return useContext(LocaleContext);\n}\n\nexport type LocaleProviderProps = {\n readonly locale: string;\n};\n\nexport function LocaleProvider({\n locale,\n children\n}: PropsWithChildren) {\n return (\n {children}\n );\n}\n","import { UserProfile } from '@atlassiansox/asc-stargate';\n\nimport { useStargateClient } from './use-stargate-client';\nimport { AsyncResult, useAsync } from './use-async';\n\nexport function useMe(): AsyncResult {\n const stargateClient = useStargateClient();\n\n return useAsync(() => stargateClient.me({}), []);\n}\n","import { ProductKey } from '@atlassiansox/asc-product-catalog';\nimport {\n PricingCalculation,\n PricingPeriod\n} from '@atlassian/bxp-product-pricing';\n\nimport { usePricingCalculator } from '../contexts';\nimport { AsyncResult, useAsync } from './use-async';\n\nexport type PricingResult = PricingCalculation & {\n readonly units: number;\n readonly period: PricingPeriod;\n};\n\nexport function usePricing(\n productKey: ProductKey,\n units: number,\n period: PricingPeriod,\n currencyIsoCode: string\n): AsyncResult {\n const calculator = usePricingCalculator();\n return useAsync(async () => {\n const pricing = await calculator.calculatePrice({\n productKey,\n units,\n period,\n currencyIsoCode\n });\n return {\n ...pricing,\n units,\n period\n };\n }, [productKey, units, period, currencyIsoCode]);\n}\n","import {\n PricingCalculation,\n PricingPeriod,\n PricingPlan\n} from '@atlassian/bxp-product-pricing';\nimport { usePricingCalculator } from '../contexts';\nimport { AsyncResult, useAsync } from './use-async';\n\ntype MinimalProductState = { key: string; units: number };\n\nconst reduceCalcs = (calcs: PricingCalculation[]) =>\n calcs.reduce((total, calc) => calc.total + total, 0);\n\nexport function useTotal(\n products: MinimalProductState[],\n addons: Array<{ pricingPlan: PricingPlan; units: number }>,\n currencyIsoCode: string,\n period: PricingPeriod\n): AsyncResult {\n const calculator = usePricingCalculator();\n return useAsync(async () => {\n const productsTotal = await Promise.all(\n products.map((product) =>\n calculator.calculatePrice({\n productKey: product.key,\n units: product.units,\n period,\n currencyIsoCode\n })\n )\n ).then(reduceCalcs);\n\n const addonsTotal = await Promise.all(\n addons.map(async (addon) => {\n try {\n return await calculator.calculatePriceWithPricingPlan({\n units: addon.units,\n currencyIsoCode,\n pricingPlan: addon.pricingPlan\n });\n } catch (e) {\n // https://hello.atlassian.net/browse/WCF-1173\n // temp fix for apps with tier limits below 5000\n return {\n currencyIsoCode,\n total: 0,\n breakdown: [],\n pricingPlan: []\n };\n }\n })\n ).then(reduceCalcs);\n\n return productsTotal + (addonsTotal || 0);\n }, [products, addons, currencyIsoCode, period]);\n}\n","/**\n * Commonly-used constants, enums/mappings\n */\n\nexport const DEFAULT_COUNTRY_ISO_CODE = 'US';\nexport const DEFAULT_CURRENCY_ISO_CODE = 'USD';\n\nexport const ENV_DEV = 'dev';\nexport const ENV_STAGING = 'staging';\nexport const ENV_PRODUCTION = 'production';\n\nexport const URL_STAGING_IDENTITY = 'https://id.stg.internal.atlassian.com';\nexport const URL_PRODUCTION_IDENTITY = 'https://id.atlassian.com';\n\nexport const URL_STAGING_WAC_DEPRECATED =\n 'https://qa-wac.internal.atlassian.com';\nexport const URL_STAGING_WAC = 'https://wac.stg.internal.atlassian.com';\nexport const URL_PRODUCTION_WAC = 'https://www.atlassian.com';\n\nexport const URL_STAGING_API_PRIVATE =\n 'https://wac.stg.internal.atlassian.com/gateway/api';\nexport const URL_PRODUCTION_API_PRIVATE =\n 'https://www.atlassian.com/gateway/api';\n\nexport const RECAPTCHA_KEY = '6LeTa5ocAAAAAJefQaFL-1ENlPNY3Wq2j-GhcZ6n';\nexport const RECAPTCHA_KEY_TEST = '6Lf0JekdAAAAAAWT2kBc89gFVKhxkwTPxa-e9tvx';\n\nexport enum ProductKey {\n JIRA_SOFTWARE = 'jira-software.ondemand',\n BITBUCKET = 'com.atlassian.bitbucket',\n CONFLUENCE = 'confluence.ondemand',\n OPSGENIE = 'opsgenie',\n JIRA_SERVICE_DESK = 'jira-servicedesk.ondemand',\n JIRA_SERVICE_MANAGEMENT = 'jira-servicedesk.ondemand',\n JIRA_CORE = 'jira-core.ondemand',\n JIRA_WORK_MANAGEMENT = 'jira-core.ondemand',\n ACCESS = 'com.atlassian.identity-manager',\n STATUSPAGE = 'statuspage',\n CONFLUENCE_PLUGIN_QUESTIONS = 'com.atlassian.confluence.plugins.confluence-questions.ondemand',\n CONFLUENCE_TEAM_CALENDARS = 'team.calendars.confluence.ondemand',\n JIRA_ROADMAPS = 'com.radiantminds.roadmaps-jira.ondemand',\n JIRA_BONFIRE = 'bonfire.jira.ondemand',\n JIRA_REFAPP = 'refapp',\n TEAM_CENTRAL = 'townsquare',\n JIRA_PRODUCT_DISCOVERY = 'jira-product-discovery',\n COMPASS = 'compass',\n ATLAS = 'townsquare',\n FABRIC = 'atlassian-whiteboard'\n}\n\nexport enum AppKey {\n TEMPO = 'is.origo.jira.tempo-plugin',\n ZEPHYR = 'com.thed.zephyr.je',\n BIGPICTURE = 'eu.softwareplant.bigpicture'\n}\n","export namespace Url {\n export function getLocation(): Location {\n return window.location;\n }\n\n export function getUrl(): string {\n return getLocation().href;\n }\n\n export function getUnhashedUrl(url = getUrl()) {\n url = url || window.location.href;\n const hashIndex = url.indexOf('#');\n return url.substring(0, hashIndex > -1 ? hashIndex : url.length);\n }\n\n export function htmlEscape(str: string) {\n return String(str)\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n export function getParameterByName(name: string, url = getUrl()): string {\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\n const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');\n const results = regex.exec(url);\n\n if (!results || !results[2]) {\n return '';\n }\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n export function getQueryString(url = getUrl()) {\n let questionIndex;\n let r = window.location?.search?.substring(\n 1,\n window.location.search.length\n );\n if (url) {\n url = getUnhashedUrl(url);\n questionIndex = url.indexOf('?');\n r = questionIndex > -1 ? url.substring(questionIndex + 1) : '';\n }\n return r;\n }\n\n export function getUrlParams(url = getUrl()) {\n const qs: string = getQueryString(url);\n let r: { [key: string]: any } | null = null;\n let paramPairs;\n let keyValuePair: string[] | null;\n if (qs) {\n paramPairs = decodeURIComponent(qs).split('&');\n for (let i = 0, iLen = paramPairs.length; i < iLen; i++) {\n if (!r) {\n r = {};\n }\n keyValuePair = paramPairs[i].split('=');\n if (keyValuePair.length > 2) {\n keyValuePair[1] = paramPairs[i].split('=').slice(1).join('=');\n }\n r[keyValuePair[0]] =\n keyValuePair.length > 1 ? decodeURIComponent(keyValuePair[1]) : null;\n }\n }\n return r;\n }\n}\n","import {\n ENV_DEV,\n ENV_PRODUCTION,\n ENV_STAGING,\n URL_PRODUCTION_API_PRIVATE,\n URL_PRODUCTION_IDENTITY,\n URL_PRODUCTION_WAC,\n URL_STAGING_API_PRIVATE,\n URL_STAGING_IDENTITY,\n URL_STAGING_WAC,\n URL_STAGING_WAC_DEPRECATED,\n RECAPTCHA_KEY,\n RECAPTCHA_KEY_TEST\n} from '../constants';\nimport { Url } from './url';\n\nexport namespace Environment {\n const VALID_LOCALES = [\n 'cn',\n 'cs',\n 'de',\n 'es',\n 'fr',\n 'it',\n 'ko',\n 'hu',\n 'nl',\n 'ja',\n 'pl',\n 'br',\n 'ro',\n 'fi',\n 'ru',\n 'zh'\n ];\n\n // Map of bxp-kit locales to equivalent growth-kit locale, as found in\n // https://bitbucket.org/atlassian/growth-kit/src/master/packages/components/up-flow/_locales/\n // NOTE: List compiled using WAC language switcher, as VALID_LOCALES is not accurate\n type LocaleMap = { [key: string]: string };\n const BXP_TO_GROWTH_LOCALE_MAP: LocaleMap = {\n de: 'de',\n es: 'es',\n fr: 'fr',\n it: 'it',\n ko: 'ko',\n hu: 'hu',\n nl: 'nl',\n ja: 'ja',\n pl: 'pl',\n br: 'pt-BR',\n ru: 'ru',\n zh: 'zh'\n };\n\n export function getSubdomain() {\n const urlParts = Url.getLocation().hostname.split('.');\n\n if (urlParts[1] === 'dev') {\n return 'localhost';\n }\n\n return urlParts[0];\n }\n\n export function getEnvironment() {\n switch (getSubdomain()) {\n case 'wac':\n case 'qa-wac':\n case 'author':\n case 'proof':\n case 'statlas':\n case 'truth':\n return ENV_STAGING;\n case 'localhost':\n case 'local':\n return ENV_DEV;\n default:\n return ENV_PRODUCTION;\n }\n }\n\n export function isProduction() {\n return getEnvironment() === ENV_PRODUCTION;\n }\n\n export function isDev() {\n return getEnvironment() === ENV_DEV;\n }\n\n export function getIdentityBaseUrl() {\n if (!isProduction()) {\n return URL_STAGING_IDENTITY;\n } else {\n return URL_PRODUCTION_IDENTITY;\n }\n }\n\n export function getWacIntegrationUrl() {\n if (!isProduction()) {\n const useQaWAC =\n window.location.hostname.includes('qa-wac') ||\n window.location.hostname.includes('author');\n\n return useQaWAC ? URL_STAGING_WAC_DEPRECATED : URL_STAGING_WAC;\n } else {\n return URL_PRODUCTION_WAC;\n }\n }\n\n export function getApiPrivateUrl() {\n if (!isProduction()) {\n return URL_STAGING_API_PRIVATE;\n } else {\n return URL_PRODUCTION_API_PRIVATE;\n }\n }\n\n export function getHamletUrl() {\n if (!isProduction()) {\n return `${getWacIntegrationUrl()}/apis/stg/hamlet`;\n } else {\n return `${getWacIntegrationUrl()}/hamlet`;\n }\n }\n\n export function getInternationalSubdomain() {\n const hostnameSubdomain = getSubdomain();\n if (!VALID_LOCALES.includes(hostnameSubdomain)) {\n return false;\n }\n return hostnameSubdomain;\n }\n\n export function getPathLocale() {\n const pathParts = window.location.pathname.split('/');\n\n // check for https://author.marketing.internal.atlassian.com/wac/ja\n const localeIndex = pathParts.length > 2 && pathParts[1] === 'wac' ? 2 : 1;\n return pathParts.length > 1 &&\n VALID_LOCALES.includes(pathParts[localeIndex])\n ? `/${pathParts[localeIndex]}`\n : '';\n }\n\n // Return a locale that is compatible with growth-kit\n // https://bitbucket.org/atlassian/growth-kit/src/master/packages/components/up-flow/_locales/\n export function getGrowthKitLocale(): string {\n const currentLocale = getPathLocale().substring(1);\n const growthKitLocale = BXP_TO_GROWTH_LOCALE_MAP[currentLocale];\n if (growthKitLocale !== undefined) {\n return growthKitLocale;\n }\n return '';\n }\n\n type GetCurrentSearchParamOptions = {\n readonly bundle?: string;\n readonly product?: string;\n readonly edition?: string;\n readonly templateId?: string;\n readonly migrationSourceUuid?: string;\n readonly developer?: string;\n readonly src?: string;\n };\n\n export function getCurrentSearchParam({\n bundle,\n product,\n edition,\n templateId,\n migrationSourceUuid,\n developer,\n src\n }: GetCurrentSearchParamOptions) {\n const location = Url.getLocation();\n const internationalSubdomain = getInternationalSubdomain();\n\n const params = new URLSearchParams(location.search.slice(1));\n\n if (internationalSubdomain) {\n params.set('lang', internationalSubdomain);\n }\n\n if (bundle) {\n params.set('bundle', bundle);\n }\n\n if (product) {\n params.set('product', product);\n }\n\n if (edition) {\n params.set('edition', edition);\n }\n\n if (templateId) {\n params.set('templateId', templateId);\n }\n\n if (migrationSourceUuid) {\n params.set('migrationSourceUuid', migrationSourceUuid);\n }\n\n if (developer) {\n params.set('developer', developer);\n }\n\n if (src) {\n params.set('src', src);\n }\n\n return '?' + params.toString();\n }\n\n export function getParam(param: string) {\n const params = new URLSearchParams(location.search.slice(1));\n return params.get(param);\n }\n\n type GetSocialSignUpUrlOptions = {\n readonly loginGoogleOrigin: string;\n readonly socialContinueUrl: string;\n readonly bundle?: string;\n readonly product?: string;\n readonly edition?: string;\n readonly templateId?: string;\n readonly migrationSourceUuid?: string;\n readonly developer?: string;\n readonly src?: string;\n readonly continueUrlOverride?: string;\n };\n\n export function getSocialSignUpUrl({\n loginGoogleOrigin,\n socialContinueUrl,\n bundle,\n product,\n edition,\n templateId,\n migrationSourceUuid,\n developer,\n src,\n continueUrlOverride\n }: GetSocialSignUpUrlOptions) {\n const splitPath = socialContinueUrl.split('/');\n\n if (splitPath.length >= 2 && splitPath[1].includes('wac')) {\n // remove contextual path if applicable\n splitPath.splice(0, 2);\n socialContinueUrl = `/${splitPath.join('/')}`;\n }\n socialContinueUrl = `${getWacIntegrationUrl()}${socialContinueUrl}`;\n\n const signupSocialUrl = `${socialContinueUrl}${getCurrentSearchParam({\n bundle,\n product,\n edition,\n templateId,\n migrationSourceUuid,\n developer,\n src\n })}`;\n const cobranding = `application=wac`;\n const socialSignup = `&social-signup-login=true`;\n const atlOrigin = `&atlOrigin=${encodeURIComponent(loginGoogleOrigin)}`;\n let continueUrl = `&continue=${encodeURIComponent(\n `${signupSocialUrl}${socialSignup}`\n )}`;\n const accountPrompt = `&prompt=select_account`;\n\n if (templateId && continueUrlOverride) {\n continueUrl = `&continue=${encodeURIComponent(continueUrlOverride)}`;\n }\n return `${getIdentityBaseUrl()}/login/initiate/google?${cobranding}${atlOrigin}${continueUrl}${accountPrompt}`;\n }\n\n export function getIdSigninUrl(\n atlOriginId?: string,\n skipEncoding?: boolean,\n continueUrlOverride?: string\n ) {\n let currentUrl = skipEncoding\n ? Url.getUrl()\n : encodeURIComponent(Url.getUrl());\n if (continueUrlOverride) {\n currentUrl = skipEncoding\n ? continueUrlOverride\n : encodeURIComponent(continueUrlOverride);\n }\n const returnUrl = atlOriginId\n ? `${getIdentityBaseUrl()}/login?atlOrigin=${atlOriginId}&continue=${currentUrl}`\n : `${getIdentityBaseUrl()}/login?continue=${currentUrl}`;\n return returnUrl;\n }\n\n export function getIdSwitchUserUrl(atlOriginId?: string) {\n const idSigninUrl = new URL(getIdSigninUrl(atlOriginId, false));\n idSigninUrl.searchParams.set('application', 'wac');\n idSigninUrl.searchParams.set('prompt', 'select_account');\n return idSigninUrl.toString();\n }\n\n export const reCaptchaKey = isProduction()\n ? RECAPTCHA_KEY\n : RECAPTCHA_KEY_TEST;\n}\n","/**\n * Get experiments+cohort that the user is enrolled in formatted for consumption by MEP Provisioning Provider\n * Returns (possibly empty) array of objects with experimentId and cohortId properties\n */\n\nexport const getAllOptimizelyCohortsAsObjects = () => {\n if (\n typeof window.optimizely !== 'undefined' &&\n typeof window.optimizely.get === 'function'\n ) {\n const variations = window.optimizely.get('state').getVariationMap();\n\n return Object.keys(variations).map((key) => ({\n experimentId: key,\n cohortId: variations[key].id\n }));\n }\n return [];\n};\n\n/**\n * Extend getAllOptimizelyCohortsAsObjects function to return null if array is empty\n */\n\nexport const getMappedOptimizelyCohorts = () => {\n const cohorts = getAllOptimizelyCohortsAsObjects();\n return cohorts.length ? cohorts : null;\n};\n\n/**\n * Extend Window to support optimizely\n */\n\ndeclare global {\n interface Window {\n optimizely: any;\n }\n}\n","import { StargateClient, UserProfile } from '@atlassiansox/asc-stargate';\nimport { Environment } from '../';\n\n/**\n * Promisified `/me`, for when using the hook is not applicable\n */\n\nexport function requestMe(): Promise {\n const stargateClient = new StargateClient({\n baseUrl: Environment.getApiPrivateUrl()\n });\n\n return stargateClient.me({});\n}\n\n/**\n * Name utilities\n */\n\nexport const getFirstName = (fullName = ''): string => {\n return fullName.trim().split(' ')[0];\n};\n\nexport const getLastName = (fullName = ''): string => {\n let lastName = '';\n const names = fullName.trim().split(' ');\n\n if (names.length > 1) {\n names.shift();\n lastName = names.join(' ');\n }\n\n return lastName || '.';\n};\n","/**\n * sessionStorage, localStorage, cookie storage, etc.\n */\n\nexport namespace Storage {\n export function hasStorage(): boolean {\n return (\n localStorage &&\n sessionStorage &&\n typeof localStorage.getItem === 'function' &&\n typeof sessionStorage.getItem === 'function'\n );\n }\n\n /**\n * Localstorage (w/ fallback to cookies)\n */\n\n export function getLocalStorage(key: string) {\n if (!hasStorage) {\n return getCookie(key);\n }\n return localStorage.getItem(key);\n }\n\n export function setLocalStorage(key: string, value: string) {\n if (!hasStorage) {\n setCookie(key, value);\n }\n\n try {\n localStorage.setItem(key, value);\n } catch (e) {\n // Don't store for private browsing\n // tslint:disable-next-line:no-console\n console.log(\n 'Local Storage failed, check if browsing in Safari private window.'\n );\n }\n }\n\n export function removeLocalStorage(key: string) {\n if (!hasStorage) {\n removeCookie(key);\n }\n try {\n localStorage.removeItem(key);\n } catch (e) {\n // Don't remove for private browsing\n // tslint:disable-next-line:no-console\n console.log(\n 'Local Storage failed, check if browsing in Safari private window.'\n );\n }\n }\n\n /**\n * Sessionstorage (w/ fallback to cookies)\n */\n\n export function getSessionStorage(key: string) {\n if (!hasStorage) {\n return getCookie(key);\n }\n return sessionStorage.getItem(key);\n }\n\n export function setSessionStorage(key: string, value: string) {\n if (!hasStorage) {\n setCookie(key, value);\n }\n try {\n sessionStorage.setItem(key, value);\n } catch (e) {\n // Don't store for private browsing\n // tslint:disable-next-line:no-console\n console.log(\n 'Session Storage failed, check if browsing in Safari private window.'\n );\n }\n }\n\n export function removeSessionStorage(key: string) {\n if (!hasStorage) {\n removeCookie(key);\n }\n try {\n sessionStorage.removeItem(key);\n } catch (e) {\n // Don't remove for private browsing\n // tslint:disable-next-line:no-console\n console.log(\n 'Session Storage failed, check if browsing in Safari private window.'\n );\n }\n }\n\n /**\n * Cookie\n */\n\n export function getCookie(key: string) {\n const encodedName = encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, '\\\\$&');\n const regex = new RegExp(\n '(?:(?:^|.*;)\\\\s*' + encodedName + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'\n );\n return decodeURIComponent(document.cookie.replace(regex, '$1')) || null;\n }\n\n export function setCookie(\n key: string,\n value: string,\n days?: number,\n sameSite?: string\n ) {\n let expires = '';\n const sameSiteString = sameSite\n ? `; SameSite=${\n (sameSite && sameSite === 'Strict') || sameSite === 'Lax'\n ? sameSite\n : 'None'\n }`\n : '';\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = '; expires=' + date.toUTCString();\n }\n document.cookie = key + '=' + value + expires + sameSiteString + '; path=/';\n }\n\n export function removeCookie(key: string) {\n setCookie(key, '', -1);\n }\n}\n","import _ from 'lodash';\nimport { Product, ProductKey } from '../';\n\n/**\n * Check whether a signup is for BB/JSW\n */\n\nexport const getIsBundleBbJsw = (products: Product[]): boolean => {\n return (\n products.length === 2 &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.JIRA_SOFTWARE),\n true\n ) &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.BITBUCKET),\n true\n )\n );\n};\n\n/**\n * Check whether a signup is for Devops (JSW, Conf, BB, OG)\n */\n\nexport const getIsBundleDevops = (products: Product[]): boolean => {\n return (\n products.length === 4 &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.JIRA_SOFTWARE),\n true\n ) &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.CONFLUENCE),\n true\n ) &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.BITBUCKET),\n true\n ) &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.OPSGENIE),\n true\n )\n );\n};\n","import { defineMessages, Messages, FormattedMessage } from 'react-intl';\n\n/**\n * These two statements are equivalent:\n *\n * defineMessagesSimple(\"prefix\",{\n * name: \"Your name\",\n * email: \"Your email\"\n * })\n *\n * defineMessages({\n * name: {\n * id: 'prefix.name',\n * defaultMessage: 'Your name'\n * },\n * email: {\n * id: 'prefix.email',\n * defaultMessage: 'Your email'\n * }\n * });\n *\n * @param prefix String to prefix key\n * @param messages Object of keys and translation text\n * @returns react-intl formatted messages object\n */\nexport function defineMessagesSimple(\n prefix: string,\n messages: Record\n): Messages {\n const tranformedMessages: Messages = {};\n Object.entries(messages).map(([key, value]) => {\n tranformedMessages[key] = {\n id: `${prefix}.${key}`,\n defaultMessage: value\n } as FormattedMessage.MessageDescriptor;\n });\n return defineMessages(tranformedMessages);\n}\n","// Here is the ticket, where we pulled the offering ID's\n// https://hello.atlassian.net/browse/BXPSU-421\n\nimport { ProductKey as ProductKeys } from '../constants';\n\nconst OFFERING_IDS = {\n dev: {\n [ProductKeys.JIRA_SOFTWARE]: {\n free: {\n offeringId: 'de2887c9-8a55-41d5-b5cf-ad6a5589ebed',\n pricingPlanId: '',\n productKey: ProductKeys.JIRA_SOFTWARE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: 'a70b5cbb-1ae1-4003-8f4a-9001a4a50526',\n pricingPlanId: 'd97d4daa-5056-4166-bac5-f47f6fb1d61a',\n productKey: ProductKeys.JIRA_SOFTWARE,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '6dd805b4-da75-4374-a7a7-cf0b12f7ea07',\n pricingPlanId: 'eb6aea61-c089-4e19-935b-722cdb6a73c2',\n productKey: ProductKeys.JIRA_SOFTWARE,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.CONFLUENCE]: {\n free: {\n offeringId: '7547cfd6-a804-4e42-8bed-e656d49ea09e',\n pricingPlanId: '',\n productKey: ProductKeys.CONFLUENCE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '2eda1119-fab4-4699-ab37-ff8f12052cde',\n pricingPlanId: '21b9b9a5-bf91-4872-a79c-51d2c4b3890d',\n productKey: ProductKeys.CONFLUENCE,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '06ef245c-5fa3-473b-8822-5e6fe072ae4b',\n pricingPlanId: '61b1d866-dd64-4e53-a256-ac4391ac4df2',\n productKey: ProductKeys.CONFLUENCE,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.JIRA_SERVICE_MANAGEMENT]: {\n free: {\n offeringId: '2bad3c2f-d740-44a9-b08d-849202f11830',\n pricingPlanId: '',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'free',\n chargeElement: 'agent'\n },\n standard: {\n offeringId: '396efb16-749b-41fa-9cd1-ad10cfefa1d0',\n pricingPlanId: '93a91ad0-22cf-42c6-8716-45a442158e72',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'standard',\n chargeElement: 'agent'\n },\n premium: {\n offeringId: '0c6683b4-4633-4673-beca-690d171de6a5',\n pricingPlanId: '6f874c58-bc2e-464e-aea4-9892c0541c92',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'premium',\n chargeElement: 'agent'\n }\n },\n [ProductKeys.JIRA_WORK_MANAGEMENT]: {\n free: {\n offeringId: '769055e8-05f5-4b1a-ba1a-a1afc874ee6d',\n pricingPlanId: '',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n edition: 'free',\n chargeElement: 'user'\n }\n },\n [ProductKeys.JIRA_PRODUCT_DISCOVERY]: {\n free: {\n offeringId: 'a26ee53d-d28b-49c7-b97d-1a80b387fd60',\n pricingPlanId: '',\n productKey: 'jira-product-discovery',\n edition: 'free',\n chargeElement: 'user'\n }\n },\n [ProductKeys.COMPASS]: {\n beta: {\n offeringId: '7af07cb3-d4e5-473e-87b3-3ae3bc9248a6',\n pricingPlanId: '',\n productKey: 'compass',\n edition: 'beta',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '5ab35ef5-e441-493a-b6e0-ba2d21a72ac6',\n pricingPlanId: 'f7ce8df0-eae8-44fd-93cc-414b58b3ae5c',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n edition: 'standard',\n chargeElement: 'user'\n }\n },\n [ProductKeys.ATLAS]: {\n free: {\n offeringId: '88064fa1-b573-4358-a9de-ec350aac1ddc',\n pricingPlanId: '',\n productKey: ProductKeys.ATLAS,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '01c8ddad-8ea4-4da9-8127-71d6ff6de1c9',\n pricingPlanId: 'b7847fa6-a4c9-4866-938a-0a37ade8f17c',\n productKey: ProductKeys.ATLAS,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: 'f7866043-d6e4-4d54-9c6a-4f82c6a1ebe5',\n pricingPlanId: '6924e04b-7e7f-413a-80ad-8a1cee5129c5',\n productKey: ProductKeys.ATLAS,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.OPSGENIE]: {\n free: {\n offeringId: 'd0c6ab1d-d8ea-49f8-8893-eafca2e05158',\n pricingPlanId: '',\n productKey: ProductKeys.OPSGENIE,\n edition: 'essentials',\n chargeElement: 'user'\n }\n },\n [ProductKeys.FABRIC]: {\n free: {\n offeringId: 'b0c7b413-b264-4c01-8b67-c61aa2c3e455',\n pricingPlanId: '',\n productKey: ProductKeys.FABRIC,\n edition: 'free',\n chargeElement: 'user'\n }\n }\n },\n staging: {\n [ProductKeys.JIRA_SOFTWARE]: {\n free: {\n offeringId: 'de2887c9-8a55-41d5-b5cf-ad6a5589ebed',\n pricingPlanId: '',\n productKey: ProductKeys.JIRA_SOFTWARE,\n edition: 'free',\n chargeElement: 'user',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n standard: {\n offeringId: 'a70b5cbb-1ae1-4003-8f4a-9001a4a50526',\n pricingPlanId: '309179e4-4196-472b-8ec8-3a0e099f49cc',\n productKey: ProductKeys.JIRA_SOFTWARE,\n edition: 'standard',\n chargeElement: 'user',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n premium: {\n offeringId: '6dd805b4-da75-4374-a7a7-cf0b12f7ea07',\n pricingPlanId: '0c12f9f1-c7c6-4b4b-89a9-c3b77fee0f9c',\n productKey: ProductKeys.JIRA_SOFTWARE,\n edition: 'premium',\n chargeElement: 'user',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n }\n },\n [ProductKeys.CONFLUENCE]: {\n free: {\n offeringId: '7547cfd6-a804-4e42-8bed-e656d49ea09e',\n pricingPlanId: '',\n productKey: ProductKeys.CONFLUENCE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '2eda1119-fab4-4699-ab37-ff8f12052cde',\n pricingPlanId: '65037ad5-5e56-466c-9fdd-baf433064c97',\n productKey: ProductKeys.CONFLUENCE,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '06ef245c-5fa3-473b-8822-5e6fe072ae4b',\n pricingPlanId: '566631aa-0a75-420a-a506-ef3367008f4e',\n productKey: ProductKeys.CONFLUENCE,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.JIRA_SERVICE_MANAGEMENT]: {\n free: {\n offeringId: '2bad3c2f-d740-44a9-b08d-849202f11830',\n pricingPlanId: '',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'free',\n chargeElement: 'agent',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n standard: {\n offeringId: '396efb16-749b-41fa-9cd1-ad10cfefa1d0',\n pricingPlanId: '38a24499-1ec7-4289-8068-8c65859cfec5',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'standard',\n chargeElement: 'agent',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n premium: {\n offeringId: '0c6683b4-4633-4673-beca-690d171de6a5',\n pricingPlanId: 'be75a46d-6040-48bc-a00c-287ada7ac210',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'premium',\n chargeElement: 'agent',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n }\n },\n [ProductKeys.JIRA_WORK_MANAGEMENT]: {\n free: {\n offeringId: '769055e8-05f5-4b1a-ba1a-a1afc874ee6d',\n pricingPlanId: '',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n edition: 'free',\n chargeElement: 'user',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n standard: {\n offeringId: '5ab35ef5-e441-493a-b6e0-ba2d21a72ac6',\n pricingPlanId: 'f7ce8df0-eae8-44fd-93cc-414b58b3ae5c',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n edition: 'standard',\n chargeElement: 'user',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n }\n },\n [ProductKeys.JIRA_PRODUCT_DISCOVERY]: {\n free: {\n offeringId: 'a26ee53d-d28b-49c7-b97d-1a80b387fd60',\n pricingPlanId: '',\n productKey: 'jira-product-discovery',\n edition: 'free',\n chargeElement: 'user'\n }\n },\n [ProductKeys.COMPASS]: {\n beta: {\n offeringId: '7af07cb3-d4e5-473e-87b3-3ae3bc9248a6',\n pricingPlanId: '',\n productKey: 'compass',\n edition: 'beta',\n chargeElement: 'user'\n }\n },\n [ProductKeys.ATLAS]: {\n free: {\n offeringId: '88064fa1-b573-4358-a9de-ec350aac1ddc',\n pricingPlanId: '',\n productKey: ProductKeys.ATLAS,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '01c8ddad-8ea4-4da9-8127-71d6ff6de1c9',\n pricingPlanId: 'b7847fa6-a4c9-4866-938a-0a37ade8f17c',\n productKey: ProductKeys.ATLAS,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: 'f7866043-d6e4-4d54-9c6a-4f82c6a1ebe5',\n pricingPlanId: '6924e04b-7e7f-413a-80ad-8a1cee5129c5',\n productKey: ProductKeys.ATLAS,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.OPSGENIE]: {\n free: {\n offeringId: 'd0c6ab1d-d8ea-49f8-8893-eafca2e05158',\n pricingPlanId: '',\n productKey: ProductKeys.OPSGENIE,\n edition: 'essentials',\n chargeElement: 'user'\n }\n },\n [ProductKeys.FABRIC]: {\n free: {\n offeringId: 'b0c7b413-b264-4c01-8b67-c61aa2c3e455',\n pricingPlanId: '',\n productKey: ProductKeys.FABRIC,\n edition: 'free',\n chargeElement: 'user'\n }\n }\n },\n production: {\n [ProductKeys.JIRA_SOFTWARE]: {\n free: {\n offeringId: 'de2887c9-8a55-41d5-b5cf-ad6a5589ebed',\n pricingPlanId: '',\n productKey: ProductKeys.JIRA_SOFTWARE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: 'a70b5cbb-1ae1-4003-8f4a-9001a4a50526',\n pricingPlanId: '593f0b42-9fe7-4fef-8661-c4321cd83974',\n productKey: ProductKeys.JIRA_SOFTWARE,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '6dd805b4-da75-4374-a7a7-cf0b12f7ea07',\n pricingPlanId: 'ff51e27e-604a-439d-bf33-73f371551643',\n productKey: ProductKeys.JIRA_SOFTWARE,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.CONFLUENCE]: {\n free: {\n offeringId: '7547cfd6-a804-4e42-8bed-e656d49ea09e',\n pricingPlanId: '',\n productKey: ProductKeys.CONFLUENCE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '2eda1119-fab4-4699-ab37-ff8f12052cde',\n pricingPlanId: '2b6e4250-377d-48c0-b123-046c6a26bc6d',\n productKey: ProductKeys.CONFLUENCE,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '06ef245c-5fa3-473b-8822-5e6fe072ae4b',\n pricingPlanId: '7579a0d3-f647-4107-997c-c76b16c19939',\n productKey: ProductKeys.CONFLUENCE,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.JIRA_SERVICE_MANAGEMENT]: {\n free: {\n offeringId: '2bad3c2f-d740-44a9-b08d-849202f11830',\n pricingPlanId: '',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'free',\n chargeElement: 'agent'\n },\n standard: {\n offeringId: '396efb16-749b-41fa-9cd1-ad10cfefa1d0',\n pricingPlanId: 'a083dfe6-eee6-4aea-bb66-81d56e119d96',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'standard',\n chargeElement: 'agent'\n },\n premium: {\n offeringId: '0c6683b4-4633-4673-beca-690d171de6a5',\n pricingPlanId: '4c26f928-ba05-4fff-b728-45ad696e34ac',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'premium',\n chargeElement: 'agent'\n }\n },\n [ProductKeys.JIRA_WORK_MANAGEMENT]: {\n free: {\n offeringId: '769055e8-05f5-4b1a-ba1a-a1afc874ee6d',\n pricingPlanId: '',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '5ab35ef5-e441-493a-b6e0-ba2d21a72ac6',\n pricingPlanId: 'c536022f-f6e8-4c40-a9b6-5a7501d5e093',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n edition: 'standard',\n chargeElement: 'user'\n }\n },\n [ProductKeys.JIRA_PRODUCT_DISCOVERY]: {\n free: {\n offeringId: 'a26ee53d-d28b-49c7-b97d-1a80b387fd60',\n pricingPlanId: '',\n productKey: 'jira-product-discovery',\n edition: 'free',\n chargeElement: 'user'\n }\n },\n [ProductKeys.COMPASS]: {\n beta: {\n offeringId: '7af07cb3-d4e5-473e-87b3-3ae3bc9248a6',\n pricingPlanId: '',\n productKey: 'compass',\n edition: 'beta',\n chargeElement: 'user'\n }\n },\n [ProductKeys.FABRIC]: {\n free: {\n offeringId: 'b0c7b413-b264-4c01-8b67-c61aa2c3e455',\n pricingPlanId: '',\n productKey: ProductKeys.FABRIC,\n edition: 'free',\n chargeElement: 'user'\n }\n }\n }\n} as const;\n\nexport type EnvironmentType = keyof typeof OFFERING_IDS;\n\nexport type CcpProduct = {\n readonly offeringId: string;\n readonly pricingPlanId: string;\n readonly productKey: string;\n readonly edition: string;\n readonly chargeElement: string;\n};\n\ntype MapProductKeyAndEditionToCcpProductOptions = {\n productKey: ProductKeys;\n edition: string;\n};\n\nexport class OfferingCatalog {\n private readonly environmentType: EnvironmentType;\n\n public constructor(environmentType: EnvironmentType) {\n this.environmentType = environmentType;\n }\n\n public mapProductKeyAndEditionToCcpProduct = ({\n productKey,\n edition\n }: MapProductKeyAndEditionToCcpProductOptions): CcpProduct => {\n const products = OFFERING_IDS[this.environmentType];\n const editions =\n OFFERING_IDS[this.environmentType][productKey as keyof typeof products];\n\n return products[productKey as keyof typeof products][\n edition as keyof typeof editions\n ] as CcpProduct;\n };\n}\n","import { IdentityClient, IIdentityClient } from '@atlassiansox/asc-identity';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\nimport { Environment } from '../utils';\n\n// this is a hack to keep this working for now, since we don't have\n// client providers in magnolia yet\nexport const IdentityClientContext = createContext(\n new IdentityClient({\n baseUrlStargate: Environment.getApiPrivateUrl(),\n baseUrlIdentity: Environment.getIdentityBaseUrl()\n })\n);\n\nexport function useIdentityClient(): IIdentityClient {\n return useContext(IdentityClientContext);\n}\n\nexport type IdentityClientProviderProps = PropsWithChildren<{\n readonly client: IIdentityClient;\n}>;\n\nexport function IdentityClientProvider({\n client,\n children\n}: IdentityClientProviderProps) {\n return (\n \n {children}\n \n );\n}\n","import { GetLicenseInformationResponse } from '@atlassiansox/asc-stargate';\nimport { AsyncResult, useAsync } from './use-async';\nimport { useStargateClient } from './use-stargate-client';\n\nexport type useLicenseInfoType = {\n readonly cloudId: string;\n};\nexport function useLicenseInfoAsync({\n cloudId\n}: useLicenseInfoType): AsyncResult {\n const stargateClient = useStargateClient();\n\n return useAsync(\n () => stargateClient.getLicenceInformationStatus({ cloudId }),\n []\n );\n}\n","import React, { ReactType } from 'react';\nimport sanitizeHtml from 'sanitize-html';\n\nexport type SanitizedHtmlProps = {\n readonly innerHTML: string | JSX.Element;\n readonly tagName?: ReactType;\n};\n\nexport function SanitizedHtml({\n innerHTML,\n tagName: Component = 'span'\n}: SanitizedHtmlProps) {\n if (typeof innerHTML === 'string') {\n return (\n \n );\n } else {\n return null;\n }\n}\n","import { escape } from 'he';\nimport React, { ElementType } from 'react';\nimport { FormattedMessage, MessageValue } from 'react-intl';\nimport { SanitizedHtml } from './sanitized-html';\n\nexport type SanitizedFormattedHtmlMessageProps = {\n readonly id: string;\n\n readonly description?: string;\n readonly defaultMessage?: string;\n readonly values?: { [key: string]: MessageValue };\n readonly tagName?: ElementType;\n};\n\nexport function SanitizedFormattedHtmlMessage({\n tagName,\n values,\n ...messageDescriptor\n}: SanitizedFormattedHtmlMessageProps) {\n return (\n \n {(html) => {\n return ;\n }}\n \n );\n}\n\nfunction escapeValues(\n messageValues: { [key: string]: MessageValue | JSX.Element } = {}\n): { [key: string]: MessageValue | JSX.Element } {\n Object.keys(messageValues).forEach((keyName) => {\n const messageValue = messageValues[keyName];\n messageValues[keyName] =\n typeof messageValue === 'string' ? escape(messageValue) : messageValue;\n });\n\n return messageValues;\n}\n","import {\n IProductPricingStore,\n ProductPricingStore\n} from '@atlassian/bxp-product-pricing';\nimport {\n ICCPProductCatalogClient,\n IProductCatalogClient\n} from '@atlassiansox/asc-product-catalog';\nimport React, { createContext, ReactChild, useContext } from 'react';\n\nconst notProvided = async () => {\n throw new Error(\n 'ProductPricingStore was not provided. Use '\n );\n};\n\nexport const ProductPricingStoreContext = createContext({\n getPricingPlans: notProvided,\n getProducts: notProvided,\n searchAddons: notProvided,\n getOfferings: notProvided\n});\n\nexport function useProductPricingStore(): IProductPricingStore {\n return useContext(ProductPricingStoreContext);\n}\n\nexport type ProductPricingStoreProviderProps = {\n readonly productCatalogClient: IProductCatalogClient;\n readonly ccpProductCatalogClient: ICCPProductCatalogClient;\n readonly children: ReactChild;\n};\n\nexport function ProductPricingStoreProvider({\n productCatalogClient,\n ccpProductCatalogClient,\n children\n}: ProductPricingStoreProviderProps) {\n return (\n \n {children}\n \n );\n}\n","export const getEnvGlobals = () => ({\n atob: // atob/btoa need to be bound because they throw an illegal invocation error when called as a method (obj.atob())\n typeof atob === 'function' && atob.bind(undefined) || typeof Buffer !== 'undefined' && (encoded => Buffer.from(encoded, 'base64').toString()),\n btoa: typeof btoa === 'function' && btoa.bind(undefined) || typeof Buffer !== 'undefined' && (str => Buffer.from(str).toString('base64')),\n URLSearchParams: typeof URLSearchParams === 'function' && URLSearchParams || typeof require === 'function' && require('url').URLSearchParams\n});\nlet env;\nexport const getEnv = () => env || (env = validateEnv(getEnvGlobals()));\n\nconst validateEnv = env => {\n if (!(env.atob && env.btoa && env.URLSearchParams)) {\n throw new TypeError(`Origin-Tracing: missing environment APIs. Required: btoa(), atob(), URLSearchParams() (or in Node: Buffer, require('url').URLSearchParams).`);\n }\n\n return env;\n};","import { base64ToBase64Url, base64UrlToBase64 } from './util/base64url';\nimport { getEnv } from './env';\nconst productShorthands = {\n confluence: 'c',\n jira: 'j',\n stride: 's',\n bitbucket: 'b',\n trello: 't'\n};\nexport function encode(originData) {\n const json = JSON.stringify(toJSONObject(originData));\n const base64 = getEnv().btoa(json);\n return base64ToBase64Url(base64);\n}\nexport function decode(encodedOriginString) {\n const base64 = base64UrlToBase64(encodedOriginString);\n const json = getEnv().atob(base64);\n return fromJSONObject(JSON.parse(json));\n}\nexport function toJSONObject({\n id,\n product\n}) {\n return {\n i: id,\n p: product && product in productShorthands ? productShorthands[product] : product\n };\n}\nexport function fromJSONObject(originJSONObject) {\n const originData = {};\n\n if (originJSONObject.i) {\n originData.id = originJSONObject.i;\n }\n\n if (originJSONObject.p) {\n originData.product = expandProductShorthand(originJSONObject.p);\n }\n\n return originData;\n}\n\nfunction expandProductShorthand(maybeShorthand) {\n const products = Object.keys(productShorthands);\n\n for (let i = 0; i < products.length; i++) {\n const product = products[i];\n const shorthand = productShorthands[product];\n\n if (maybeShorthand === shorthand) {\n return product;\n }\n }\n\n return maybeShorthand;\n}","import uuid from 'uuid/v4';\nimport { encode, decode } from './encoder';\nimport { getEnv } from './env';\nconst packageVersion = \"6.0.7\";\nconst originParamName = 'atlOrigin';\nconst originVersioningAttributes = {\n originLibrary: `origin-tracing.js@${packageVersion}`\n};\nexport default class OriginTracer {\n constructor({\n id = OriginTracer.generateId(),\n product,\n dangerouslySkipValidation = false\n }) {\n this.id = id;\n this.product = product;\n\n if (!dangerouslySkipValidation) {\n this.validate();\n }\n }\n\n static isValidId(value) {\n return typeof value === 'string' && /^[-_a-zA-Z0-9]{1,36}$/.test(value);\n }\n\n static isValidProduct(value) {\n return typeof value === 'string' && /^[-_a-zA-Z0-9]{1,20}$/.test(value);\n }\n\n static generateId() {\n const id = uuid(); // Dash positions are fixed so they don't add to uniqueness.\n // Remove them to save space in the encoded form.\n\n return id.replace(/-/g, '');\n }\n\n static createEmpty() {\n return new EmptyOriginTracer();\n }\n\n static createMalformed() {\n return new MalformedOriginTracer();\n }\n\n static fromUrl(url) {\n let params = new (getEnv().URLSearchParams)();\n replaceQuery(url, queryString => {\n params = new (getEnv().URLSearchParams)(queryString);\n });\n return OriginTracer.fromEncoded(params.get(originParamName));\n }\n\n static fromEncoded(encoded) {\n if (!encoded) {\n return OriginTracer.createEmpty();\n }\n\n try {\n return OriginTracer.decode(encoded);\n } catch (e) {\n return OriginTracer.createMalformed();\n }\n }\n\n static removeFromUrl(url) {\n return replaceQuery(url, queryString => {\n const params = new (getEnv().URLSearchParams)(queryString);\n params.delete(originParamName);\n return params.toString();\n });\n }\n\n static decode(encodedOrigin) {\n const originData = decode(encodedOrigin);\n return new OriginTracer(originData);\n }\n\n encode() {\n return encode({\n id: this.id,\n product: this.product\n });\n }\n\n addToUrl(url) {\n return replaceQuery(url, originalQueryString => {\n const params = new (getEnv().URLSearchParams)(originalQueryString);\n params.set(originParamName, this.encode());\n return params.toString();\n });\n }\n\n isEmpty() {\n return false;\n }\n\n isMalformed() {\n return !this.isEmpty() && !this.isValid();\n }\n\n isValid() {\n return true;\n }\n\n toAnalyticsAttributes({\n transformValue = v => v === null ? undefined : v,\n hasGeneratedId = false\n } = {}) {\n // `originIdGenerated` should be used in analytic events that generated this originId.\n // Subsequent events should use `originId`.\n // No two events should have the same value of originIdGenerated.\n const originIdProp = hasGeneratedId ? 'originIdGenerated' : 'originId';\n return {\n [originIdProp]: transformValue(this.id),\n originProduct: transformValue(this.product),\n ...originVersioningAttributes\n };\n }\n\n validate() {\n if (!OriginTracer.isValidId(this.id)) {\n throw new TypeError('Invalid Origin id');\n }\n\n if (!OriginTracer.isValidProduct(this.product)) {\n throw new TypeError('Missing/invalid Origin product');\n }\n }\n\n}\n\nclass EmptyOriginTracer extends OriginTracer {\n constructor() {\n super({\n id: null,\n product: null,\n dangerouslySkipValidation: true\n });\n }\n\n isValid() {\n return false;\n }\n\n isEmpty() {\n return true;\n }\n\n toAnalyticsAttributes() {\n return { ...originVersioningAttributes\n };\n }\n\n}\n\nclass MalformedOriginTracer extends OriginTracer {\n constructor() {\n super({\n id: null,\n product: null,\n dangerouslySkipValidation: true\n });\n }\n\n isValid() {\n return false;\n }\n\n isEmpty() {\n return false;\n }\n\n toAnalyticsAttributes() {\n return {\n originMalformed: true,\n ...originVersioningAttributes\n };\n }\n\n}\n\nfunction replaceQuery(url, replacer) {\n const urlWithQueryStringRegex = /(^[^?#]*)(?:\\?)?([^#]*?)(#.*|$)$/; // If we get passed window.location, we don't want to call window.location.replace()\n\n const urlString = String(url);\n return urlString.replace(urlWithQueryStringRegex, (wholeMatch, beforeQuery, queryString, afterQuery) => {\n let newQueryString = replacer(queryString);\n\n if (newQueryString) {\n newQueryString = `?${newQueryString}`;\n }\n\n return `${beforeQuery}${newQueryString}${afterQuery}`;\n });\n}","/**\n * This file converts between Base64 and Base 64 Encoding with URL and Filename Safe Alphabet,\n * the latter of which has URL-safe characters only (drops =, + and /).\n *\n * Why not use a library? The popular libs use Buffer to be able to\n * encode any data to base64. We don't need this capability, and it causes\n * Webpack to include 30KB of a Buffer polyfill.\n * Webpack's/UglifyJS's Tree Shaking seems to be unable to drop it.\n *\n * See: RFC 4648 section 5 (https://tools.ietf.org/html/rfc4648#section-5)\n */\nexport function base64ToBase64Url(base64) {\n if (base64 == null) {\n return '';\n }\n\n return String(base64).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n}\nexport function base64UrlToBase64(base64url) {\n if (base64url == null) {\n return '';\n }\n\n const base64 = String(base64url).replace(/-/g, '+').replace(/_/g, '/');\n const padLength = (4 - base64url.length % 4) % 4;\n const pad = '==='.slice(0, padLength);\n return base64 + pad;\n}","class SignupContextBuilder {\n\n static getActiveExperiments() {\n if (window['optimizely'] && window['optimizely'].activeExperiments) {\n return window['optimizely'].activeExperiments;\n }\n return [];\n }\n\n static getVarationMapForExperiment(experimentId) {\n return window['optimizely'].data.state.variationMap[experimentId];\n }\n\n static getVariationIdForExperiment(experimentId, variationIndex) {\n return window['optimizely'].data.experiments[experimentId].variation_ids[variationIndex];\n }\n\n static getOptimizelyVariations() {\n const optimizelyExperiments = SignupContextBuilder.getActiveExperiments();\n return optimizelyExperiments.map(experimentId => {\n const variationIndex = SignupContextBuilder.getVarationMapForExperiment(experimentId);\n return SignupContextBuilder.getVariationIdForExperiment(experimentId, variationIndex);\n });\n }\n\n constructor() {\n const optimizelyVariations = SignupContextBuilder.getOptimizelyVariations();\n let metadata = [];\n\n return {\n withMetadata: function (metadataString) {\n if (typeof metadataString !== 'string') {\n throw new Error('Unable to add metadata which is not a string');\n }\n metadata.push(metadataString);\n return this;\n },\n withMetadataArray: function (metadataArray) {\n for (const metadataItem of metadataArray) {\n if (typeof metadataItem !== 'string') {\n throw new Error('Unable to add metadata which is not a string');\n }\n }\n metadata = metadata.concat(metadataArray);\n return this;\n },\n build: function () {\n const signupContext = {\n 'safeData': {\n 'optimizelyVariations': optimizelyVariations,\n 'metadata': metadata\n },\n 'unsafeData': {}\n };\n return JSON.stringify(signupContext);\n }\n }\n }\n}\n\nmodule.exports = SignupContextBuilder;\n","const ENV_DEV = 'dev';\nconst ENV_STAGING = 'staging';\nconst ENV_PRODUCTION = 'production';\n\nexport default class Environment {\n\n static getEnvironment() {\n let env = ENV_PRODUCTION;\n const hostname = window.location.hostname.split('.')[0];\n const forceStaging = window.location.search.includes('forceProdTesting=true');\n \n if (forceStaging) {\n return ENV_PRODUCTION;\n }\n \n switch (hostname) {\n case 'wac':\n case 'qa-wac':\n case 'author':\n case 'proof':\n env = ENV_STAGING;\n break;\n case 'localhost':\n case 'local':\n env = ENV_DEV;\n break;\n case \"truth\":\n case \"www\":\n case \"atlassian\":\n case \"bitbucket\":\n case \"sourcetreeapp\":\n case \"agile\": \n case \"git\":\n case \"software\":\n return ENV_PRODUCTION;\n default:\n /* for omlet instances */\n env = ENV_STAGING;\n }\n return env;\n }\n\n static production() {\n return ENV_PRODUCTION;\n }\n\n static staging() {\n return ENV_STAGING;\n }\n\n static dev() {\n return ENV_DEV;\n }\n}\n","import Client from \"./ConsentClient\";\n\nexport type ConsentHelperParams = {\n formId?: string;\n needsConsent?: boolean;\n isAllowSetCustomLocale?: boolean;\n selectedLocale?: string;\n forceShowConsentMessaging?: boolean;\n gdprId?: string;\n consentLabelEUCAN?: string;\n consentLabel?: string;\n privacyPolicy?: string;\n site?: string;\n source?: string;\n subscriptionKey: string;\n eapTermsOfService?: string;\n consentKey?: string;\n};\n\nexport interface ConsentHelperForm extends HTMLElement {\n jquery?: boolean;\n 0: ConsentHelperForm; // TODO: Factor this out\n}\n\nclass ConsentHelper extends Client {\n params: ConsentHelperParams;\n form: ConsentHelperForm;\n submitButtonWrapper?: ParentNode | null;\n configPromise: Promise;\n\n constructor(params: ConsentHelperParams, form: ConsentHelperForm) {\n super();\n this.params = params;\n const isJquery = !!(form instanceof jQuery || (form && form.jquery));\n this.form = isJquery ? form[0] : form;\n this.submitButtonWrapper =\n this.form.querySelector('[type=\"submit\"]')?.parentNode;\n\n // A promise is expected for some legacy GDPR logic\n this.configPromise = this.init();\n\n return this;\n }\n\n async init() {\n const {\n needsConsent,\n isAllowSetCustomLocale,\n selectedLocale,\n forceShowConsentMessaging,\n } = this.params;\n\n try {\n await this.requestConfig();\n\n if (needsConsent) {\n if (isAllowSetCustomLocale && selectedLocale) {\n this.config.locale = selectedLocale;\n }\n this.insertConsent(forceShowConsentMessaging);\n }\n } catch (error) {\n if (needsConsent) {\n this.config = {\n locale: \"\",\n localeRequiresMarketingCommunicationOptIn: true,\n };\n\n this.insertConsent();\n }\n }\n\n return this;\n }\n\n buildConsentMarkup(requiresOptIn: boolean) {\n const { gdprId, consentLabelEUCAN, consentLabel, privacyPolicy } =\n this.params;\n\n const wrapperDiv = document.createElement(\"div\");\n\n wrapperDiv.className = `gdpr-checkbox${requiresOptIn ? \" gdpr-checkbox--optin\" : \"\"\n }`;\n wrapperDiv.innerHTML = `\n
${privacyPolicy}
\n \n `;\n return wrapperDiv;\n }\n\n insertConsent(forceShowConsent = false) {\n const markup = this.buildConsentMarkup(\n !!(forceShowConsent || this.config.localeRequiresMarketingCommunicationOptIn)\n );\n if (this.submitButtonWrapper && this.submitButtonWrapper.parentNode) {\n this.submitButtonWrapper.parentNode.insertBefore(\n markup,\n this.submitButtonWrapper\n );\n } else {\n this.form.appendChild(markup);\n }\n }\n\n getConsentCheckboxValue() {\n const checkbox = this.form.querySelector(`#${this.params.gdprId}`);\n return checkbox ? checkbox.checked : true;\n }\n\n async submitForm(onSuccess: () => void, onFail: (error: unknown) => void) {\n try {\n if (!this.params.formId) {\n throw 'formId cannot be undefined or null'\n }\n\n const email = (this.form.querySelector('input[type=\"email\"]'))?.value || '';\n\n await this.updatePreferences({\n paramsLocale: this.params.paramsLocale,\n formId: this.params.formId,\n site: this.params.site,\n source: this.params.source,\n email,\n formUrl: window.location.href,\n consentLabelText: this.params.consentLabel?.replace(/\"/g, '\\\\\"'),\n privacyPolicyText: this.params.privacyPolicy?.replace(/\"/g, '\\\\\"'),\n consentCheckboxValue: this.getConsentCheckboxValue(),\n ndaText: document.getElementById('nda-text')?.innerText.replace(/\"/g, '\\\\\"')\n });\n onSuccess();\n } catch (error: unknown) {\n console.error(error);\n onFail(error);\n }\n }\n}\n\nexport default ConsentHelper;\n","import * as Logger from './logger';\nimport axios from 'axios';\nimport * as OptimizelyHelpers from './optimizelyHelpers';\n\n\nlet capturedEventsPromise: Array = [];\nlet onAnalyticsLoad = () => {\n Promise.all(capturedEventsPromise.map(fn => fn()));\n};\n\nexport const trackEvent = function (event: string, data: Record) {\n // First try to use the atl-global wrapper\n if (typeof ace !== \"undefined\") {\n ace.analytics.Tracking.trackEvent(event, data);\n } else {\n capturedEventsPromise.push(\n () => new Promise((resolve) => {\n trackEvent(event, data);\n resolve(null);\n })\n );\n\n window.segmentPageReady = onAnalyticsLoad;\n\n Logger.log({\n event,\n data,\n }, 'Analytics wrapper track event');\n }\n};\n\nexport const trackOptimizely = function (name: string) {\n if (typeof window.optimizely !== 'undefined') {\n window.optimizely.push({\n type: 'event',\n eventName: name\n });\n }\n};\n/**\n* Iterates through event keys, ensures that values are lowercase,\n* and replaces whitespace with `-` character\n**/\nexport const sanitizeEventProperties = function (propertiesObj) {\n let result = {};\n Object.keys(propertiesObj).map(key => {\n // do a quick check just in case values are null\n result[key] = propertiesObj[key] && propertiesObj[key].replace(/\\s+/g, '-').toLowerCase();\n });\n return result;\n}\n\nexport const trackGas = function (postBody) {\n const analyticsApiUrl = 'https://mgas.prod.public.atl-paas.net/v1/event';\n const options = {\n headers: {\n 'content-type': 'application/json'\n },\n withCredentials: true\n };\n\n postBody['properties']['optimizelyCohorts'] = OptimizelyHelpers.getOptimizelyCohorts();\n postBody['properties']['optimizelySegments'] = OptimizelyHelpers.getOptimizelySegments();\n postBody['properties']['optimizelyEndUserId'] = OptimizelyHelpers.getOptimizelyEndUserId();\n return axios.post(analyticsApiUrl, postBody, options)\n .then(() => Promise.resolve());\n};\n","import stgConfig from \"../../../../config\";\nimport axios from \"axios\";\n\nimport Environment from \"../../buyer-experience/common/environment\";\n\nconst DEV_ENV = Environment.dev();\nconst STAGING_ENV = Environment.staging();\nconst PRODUCTION_ENV = Environment.production();\n\nconst BXP_EXPRESS_ENDPOINT: { [key: string]: string } = {};\nBXP_EXPRESS_ENDPOINT[PRODUCTION_ENV] = \"https://www.atlassian.com/endpoint\";\nBXP_EXPRESS_ENDPOINT[STAGING_ENV] = `${window.location.hostname.indexOf(\"qa-wac\") > -1\n ? \"https://qa-wac.internal.atlassian.com\"\n : stgConfig.stgWacInternalUrl\n }/endpoint`;\nBXP_EXPRESS_ENDPOINT[DEV_ENV] = BXP_EXPRESS_ENDPOINT[STAGING_ENV];\n\nexport type Consent = {\n key: string;\n displayedText: string;\n granted: boolean;\n};\n\nexport type SubscriptionKey = string;\n\nexport type Subscription = {\n key: SubscriptionKey;\n subscribed: boolean;\n};\n\ntype SubsciberDetails = { [key: string]: string };\n\n// Should match `UpdatePreferencesPayload` in `bxp-express`\ntype UpdatePreferencesPayload = {\n formId: string;\n site?: string;\n source?: string;\n email: string;\n locale: string;\n formUrl: string;\n subscriberDetails?: SubsciberDetails;\n consentLabelText?: string;\n consentCheckboxValue: boolean;\n privacyPolicyText?: string;\n ndaText?: string;\n};\n\ntype UpdatePreferencesParams = {\n formId: string;\n site?: string;\n source?: string;\n email: string;\n locale?: string;\n paramsLocale?: string;\n formUrl: string;\n consentLabelText?: string;\n consentCheckboxValue: boolean;\n privacyPolicyText?: string;\n ndaText?: string;\n};\n\nconst requiredProps = [\"email\", \"site\", \"locale\", \"formUrl\"];\n\nclass ConsentHubClient {\n config: {\n locale?: string;\n localeRequiresMarketingCommunicationOptIn?: boolean;\n };\n bxpExpressEndpoint: string;\n\n constructor() {\n this.config = {};\n\n this.bxpExpressEndpoint = BXP_EXPRESS_ENDPOINT[Environment.getEnvironment()];\n }\n\n /**\n * Set a user's subscriptions & consents (for a specific mailing list).\n */\n async updatePreferences(params: UpdatePreferencesParams) {\n const paramsLocale = params.paramsLocale ? params.paramsLocale : \"UNKNOWN\";\n const postData: UpdatePreferencesPayload = { locale: (this.config.locale || paramsLocale), ...params };\n\n // eslint-disable-next-line no-prototype-builtins\n if (!requiredProps.every((prop) => postData.hasOwnProperty(prop))) {\n throw `Invalid parameters. Required: {${requiredProps.toString()}}`;\n }\n\n const endpoint = `${this.bxpExpressEndpoint}/preferencesV2/update`;\n const response = await axios.post(endpoint, postData, {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n return response.status;\n }\n\n /**\n * Get \"config\" data from ConsentHub\n */\n async requestConfig() {\n return this.config = (await axios.post(\n `${this.bxpExpressEndpoint}/preferencesV2/consent-config`\n )).data;\n }\n}\n\nexport default ConsentHubClient;\n","import stgConfig from \"../../../config\";\nconst ENV_DEV = \"dev\";\nconst ENV_STAGING = \"staging\";\nconst ENV_PRODUCTION = \"production\";\nconst ENV_AUTHOR = \"author\";\n\nexport default class Environment {\n static getWindowLocation() {\n return window.location;\n }\n\n static getSubdomain() {\n const urlParts = this.getWindowLocation().hostname.split(\".\");\n\n if (urlParts[1] === \"dev\") {\n return \"localhost\";\n }\n\n return urlParts[0];\n }\n\n static getSubdirectory() {\n const urlParts = this.getWindowLocation().pathname.split(\"/\");\n if (urlParts[1] === \"wac\") {\n return urlParts.length > 1 ? urlParts[2] : \"\";\n } else {\n return urlParts[1];\n }\n }\n\n static isStagingPublicEnvironment() {\n return (\n this.getWindowLocation().hostname.indexOf(\"wac.stg.internal.atlassian\") >\n -1 || this.getWindowLocation().hostname.indexOf(\"qa-wac.atlassian\") > -1\n );\n }\n\n static getEnvironment() {\n const forceStaging = window.location.search.includes('forceProdTesting=true');\n \n if (forceStaging) {\n return ENV_PRODUCTION;\n }\n switch (this.getSubdomain()) {\n case \"wac\":\n case \"qa-wac\":\n case \"author\":\n case \"proof\":\n return ENV_STAGING;\n case \"localhost\":\n case \"local\":\n return ENV_DEV;\n case \"truth\":\n case \"www\":\n case \"atlassian\":\n case \"bitbucket\":\n case \"sourcetreeapp\":\n case \"agile\": \n case \"git\":\n case \"software\":\n return ENV_PRODUCTION;\n default:\n /* for omlet instances */\n return ENV_STAGING;\n }\n }\n\n static getInternationalSubdomain() {\n const hostnameSubdomain = this.getSubdomain();\n const validLocales = [\n \"cn\",\n \"cs\",\n \"de\",\n \"es\",\n \"fr\",\n \"it\",\n \"ko\",\n \"hu\",\n \"nl\",\n \"ja\",\n \"pl\",\n \"br\",\n \"ro\",\n \"fi\",\n \"ru\",\n ];\n\n if (validLocales.indexOf(hostnameSubdomain) === -1) {\n return false;\n }\n\n return hostnameSubdomain;\n }\n\n static getInternationalSubdirectory() {\n const subdirectory = this.getSubdirectory();\n const validLocales = [\n \"zh\",\n \"cs\",\n \"de\",\n \"es\",\n \"fr\",\n \"it\",\n \"ko\",\n \"hu\",\n \"nl\",\n \"ja\",\n \"pl\",\n \"br\",\n \"ro\",\n \"fi\",\n \"ru\",\n ];\n\n if (validLocales.indexOf(subdirectory) === -1) {\n return false;\n }\n\n return subdirectory;\n }\n\n static isInternationalSubdomain() {\n return !!this.getInternationalSubdomain();\n }\n\n static production() {\n return ENV_PRODUCTION;\n }\n\n static staging() {\n return ENV_STAGING;\n }\n\n static dev() {\n return ENV_DEV;\n }\n\n static author() {\n return ENV_AUTHOR;\n }\n\n static isProduction() {\n return this.getEnvironment() === this.production();\n }\n\n static isStaging() {\n return this.getEnvironment() === this.staging();\n }\n\n static isDev() {\n return this.getEnvironment() === this.dev();\n }\n\n static isAuthor() {\n return this.getSubdomain() === this.author();\n }\n\n static getIdentityBaseUrl() {\n if (this.isStaging() || this.isDev()) {\n return \"https://id.stg.internal.atlassian.com\";\n } else {\n return \"https://id.atlassian.com\";\n }\n }\n\n static getLoginUrl(skipEncoding: boolean) {\n const continueUrl = this.getWindowLocation().href;\n if (!skipEncoding) {\n return `${this.getIdentityBaseUrl()}/login?continue=${encodeURIComponent(\n continueUrl\n )}`;\n } else {\n return `${this.getIdentityBaseUrl()}/login?continue=${continueUrl}`;\n }\n }\n\n static getLogoutUrl() {\n const continueUrl = this.getWindowLocation().href;\n return `${this.getIdentityBaseUrl()}/logout?continue=${encodeURIComponent(\n continueUrl\n )}`;\n }\n\n static getSwitchAccountURL(continueUrlParam?: string) {\n const continueUrl = continueUrlParam ? continueUrlParam : this.getWindowLocation().href;\n return `${this.getIdentityBaseUrl()}/login/select-account?continue=${encodeURIComponent(\n continueUrl\n )}`;\n }\n \n static getManageProfileUrl(userEmail: string) {\n const applicationParam = encodeURIComponent(\"wac\")\n const continueUrlParam = encodeURIComponent(`${this.getIdentityBaseUrl()}/manage-profile`)\n const loginHintParam = encodeURIComponent(userEmail)\n \n return `${this.getIdentityBaseUrl()}/login?application=${applicationParam}&continue=${continueUrlParam}&login_hint=${loginHintParam}`;\n }\n\n static getMacUrl() {\n if (this.isStaging() || this.isDev()) {\n return \"https://my.stg.internal.atlassian.com\";\n } else {\n return \"https://my.atlassian.com\";\n }\n }\n\n static getStartUrl() {\n if (this.isStaging() || this.isDev()) {\n return \"https://start.stg.atlassian.com\";\n } else {\n return \"https://start.atlassian.com\";\n }\n }\n\n static getAPIPrivateURL() {\n if (this.isStaging() || this.isDev()) {\n return \"https://wac.stg.internal.atlassian.com/gateway/api\";\n }\n\n return \"https://www.atlassian.com/gateway/api\";\n }\n\n static getWacIntegrationUrl() {\n if (this.isStaging() || this.isDev()) {\n const useQaWAC =\n window.location.hostname.indexOf(\"qa-wac\") > -1 ||\n window.location.hostname.indexOf(\"author\") > -1;\n return `${useQaWAC\n ? \"https://qa-wac.internal.atlassian.com\"\n : stgConfig.stgWacInternalUrl\n }`;\n } else {\n return \"https://www.atlassian.com\";\n }\n }\n\n static getBBIntegrationUrl() {\n if (this.isStaging() || this.isDev()) {\n return \"https://integration.bb-inf.net\";\n } else {\n return \"https://bitbucket.org\";\n }\n }\n}\n","import _ from 'underscore';\nimport axios from 'axios';\nimport Environment from '../environment';\nimport stgConfig from \"../../../../config\";\nimport { hamletUser } from './hamlet-user';\n\nexport class HamletApi {\n\n constructor() {\n this.baseDomain = this.getBaseDomain();\n }\n\n getBaseDomain() {\n if (!Environment.isProduction()) {\n return `${window.location.hostname.indexOf('qa-wac') > -1 ? 'https://qa-wac.internal.atlassian.com' : stgConfig.stgWacInternalUrl}`;\n }\n\n return 'https://www.atlassian.com';\n }\n\n getHamletPath() {\n if (!Environment.isProduction()) {\n return `${this.baseDomain}/apis/stg/hamlet`;\n }\n\n return `${this.baseDomain}/hamlet`;\n }\n\n getCofsPath() {\n if (!Environment.isProduction()) {\n return `${this.baseDomain}/apis/stg/cofs`;\n }\n\n return `${this.baseDomain}/apis/prod/cofs`;\n }\n\n getCnasPath() {\n if (!Environment.isProduction()) {\n return `${this.baseDomain}/apis/stg/cnas`;\n }\n\n return `${this.baseDomain}/apis/prod/cnas`;\n }\n\n getBxpPath() {\n return `${this.baseDomain}/endpoint`;\n }\n\n hamletRequest(params, useCofsPath) {\n\n let basePath = useCofsPath ? this.getCofsPath() : this.getHamletPath();\n\n let request = {\n url: `${basePath}${params.url}`,\n method: params.method || 'GET',\n headers: params.headers || {},\n params: params.params\n };\n\n if (request.method === 'GET') {\n request.params = {cacheBuster: new Date().getTime(), ...params.params };\n }\n\n if (request.method === 'POST') {\n request.headers['Content-Type'] = 'application/json';\n request.data = params.data || '';\n }\n\n if (params.authenticated && hamletUser.getToken()) {\n request.headers['ATL-XSRF-Token'] = hamletUser.getToken();\n request.withCredentials = true;\n }\n\n return axios(request);\n }\n\n bxpRequest(params) {\n\n let request = {\n url: `${params.url.startsWith('http') ? '' : this.getBxpPath()}${params.url}`,\n method: params.method || 'GET',\n headers: params.headers || {},\n params: params.params\n };\n\n if (request.method === 'GET') {\n request.params = { cacheBuster: new Date().getTime(), ...params.params };\n }\n\n if (request.method === 'POST') {\n request.headers['Content-Type'] = 'application/json';\n request.data = params.data || '';\n }\n\n if (params.authenticated && hamletUser.getToken()) {\n request.withCredentials = true;\n }\n\n return axios(request);\n }\n\n get(data) {\n let options = { method: 'GET' };\n\n if (_.isString(data)) {\n options.url = data;\n } else if (_.isObject(data)) {\n Object.assign(options, data);\n }\n\n return this.hamletRequest(options);\n }\n\n post(data) {\n let options = { method: 'POST' };\n\n if (_.isString(data)) {\n options.url = data;\n } else {\n Object.assign(options, data);\n }\n\n return this.hamletRequest(options);\n }\n\n /**\n * Generic request wrapper\n */\n request(options) {\n return axios(options);\n }\n\n}\n\nexport let hamletApi = new HamletApi();\n","import Environment from '../environment';\nimport { hamletApi } from './hamlet-api';\n\nconst ProductKey = [];\nProductKey[\"CONFLUENCE\"] = \"confluence.ondemand\";\nProductKey[\"JIRA_CORE\"] = \"jira-core.ondemand\";\nProductKey[\"JIRA_BUSINESS\"] = \"jira-core.ondemand\";\nProductKey[\"JIRA_SOFTWARE\"] = \"jira-software.ondemand\";\nProductKey[\"JIRA_SERVICE_DESK\"] = \"jira-servicedesk.ondemand\";\nProductKey[\"BITBUCKET\"] = \"com.atlassian.bitbucket\";\nProductKey[\"OPSGENIE\"] = \"opsgenie\";\nProductKey[\"STATUSPAGE\"] = \"statuspage\";\nProductKey[\"TRELLO\"] = \"trello\";\n\nexport const transformAvailableProductsIntoAvailableSites = (availableProductsSites) => {\n return availableProductsSites.map(site => {\n return {\n adminAccess: site.adminAccess,\n products: site.availableProducts.map(availableProduct => ProductKey[availableProduct.productType]),\n cloudId: site.cloudId,\n displayName: site.displayName,\n avatarUrl: site.avatar,\n url: site.url,\n };\n });\n}\n\nexport class HamletUser {\n\n constructor() {\n\n this.token = null;\n this.initialized = false;\n\n this.user = {\n contactDetails: {\n firstName: '',\n lastName: '',\n email: ''\n },\n organisationDetails: {\n address1: '',\n address2: '',\n city: '',\n state: '',\n postcode: '',\n isoCountryCode: '',\n organisationName: '',\n organisationType: null,\n payOnAccount: false,\n taxId: ''\n },\n lassoDetails: {\n firstName: '',\n lastName: '',\n username: '',\n displayName: ''\n },\n myDetails: {\n aaid: null,\n avatar: null,\n email: '',\n name: '',\n firstName: '',\n lastName: ''\n },\n isLoggedIn: false\n };\n\n this.sites = [];\n this.performanceBoostExperiment = false;\n\n }\n\n initUser(performanceBoostExperiment, enableAisAvailableProducts) {\n\n if (this.initialized) {\n return Promise.resolve(this.user);\n }\n this.initialized = true;\n\n return Promise.all([\n this.retrieveXsrfToken(),\n this.getStargateProfile(performanceBoostExperiment, false, enableAisAvailableProducts)\n ])\n .then(() => {\n return Promise.resolve(this.user);\n })\n .catch(() => {\n return Promise.resolve(this.user);\n });\n }\n\n retrieveXsrfToken() {\n\n const options = {\n url: `${hamletApi.getHamletPath()}/1.0/auth/xsrf/plain`,\n method: 'GET',\n withCredentials: true\n };\n\n return hamletApi.request(options)\n .then((response) => {\n\n if (response.data && response.data !== '') {\n\n this.setToken(response.data);\n this.user.isLoggedIn = true;\n\n return Promise.resolve();\n }\n\n this.user.isLoggedIn = false;\n return Promise.reject();\n })\n .catch(() => {\n\n this.user.isLoggedIn = false;\n return Promise.reject();\n });\n }\n\n getStargateProfile(performanceBoostExperiment, debugAllSites) {\n\n if (performanceBoostExperiment) {\n this.performanceBoostExperiment = true;\n }\n\n return Promise.all([\n this.retrieveMe(),\n this.retrieveSitesData(debugAllSites)\n ])\n .then(([identityData, sitesData]) => {\n\n if (identityData && sitesData) {\n Object.assign(this.user.myDetails, identityData);\n this.setSites(sitesData);\n this.user.isLoggedIn = true;\n }\n\n return Promise.resolve();\n })\n .catch(() => {\n\n this.user.isLoggedIn = false;\n return Promise.resolve();\n });\n }\n\n retrieveCurrentUser(params) {\n params.url = '/1.0/public/contact/currentUser';\n\n return hamletApi.hamletRequest(params);\n }\n\n retrieveUserDetails(params) {\n params.url = '/1.0/public/auth/user/details'\n\n return hamletApi.hamletRequest(params);\n }\n\n retrieveMe() {\n const hostname = Environment.getAPIPrivateURL();\n const url = `${hostname}/me`;\n\n const options = {\n url: url,\n method: 'GET',\n withCredentials: true\n };\n\n return hamletApi.request(options)\n .then(result => {\n\n if (!result.data) {\n return Promise.reject();\n }\n\n // clean up any names that are emails here\n let name = result.data.name;\n if (name.indexOf('@') > -1) {\n name = name.split('@')[0];\n }\n\n const stargateData = {\n aaid: (result.data.account_id),\n avatar: (result.data.picture),\n email: (result.data.email),\n name: (name),\n firstName: (this.getFirstName(name)),\n lastName: (this.getLastName(name))\n };\n\n return Promise.resolve(stargateData);\n })\n .catch(() => {\n\n this.user.isLoggedIn = false;\n return Promise.reject();\n });\n }\n\n retrieveSitesData(debugAllSites) {\n return this.retrieveAvailableProductsData(debugAllSites).then(availableProductsSites => {\n const sitesData = transformAvailableProductsIntoAvailableSites(availableProductsSites);\n return sitesData;\n }).catch(() => {\n this.user.isLoggedIn = false;\n });\n }\n\n retrieveAvailableProductsData(debugAllSites) {\n let url = `${Environment.getAPIPrivateURL()}/ais/available-products`;\n const options = {\n url: url,\n method: 'GET',\n withCredentials: true\n };\n\n return (hamletApi.request(options)).then(result => {\n\n if (!result.data) {\n return [];\n }\n const sitesResult = result.data.sites || [];\n const availableProductsSites = debugAllSites ? sitesResult : sitesResult.filter((site) => this.isValidSite(site));\n return Promise.resolve(availableProductsSites);\n }).catch(() => {\n this.user.isLoggedIn = false;\n return Promise.reject();\n });\n }\n\n checkExtendedTrialAvailability(migrationSourceUuid, productKey, cloudIds) {\n const options = {\n url: `${hamletApi.getHamletPath()}/1.0/public/account/${migrationSourceUuid}/extendedTrial/availability`,\n method: 'POST',\n data: {\n productKey,\n cloudIds,\n },\n withCredentials: true\n };\n\n return hamletApi.request(options)\n .then((response) => {\n if (response.data && response.data !== '') {\n this.setExtendedTrialAvailability(response.data);\n return Promise.resolve(response.data);\n }\n\n return Promise.resolve();\n })\n .catch(() => {\n return Promise.resolve();\n });\n }\n\n getExtendedTrialAvailability() {\n return this.extendedTrialAvailability;\n }\n\n setExtendedTrialAvailability(extendedTrialAvailability) {\n this.extendedTrialAvailability = extendedTrialAvailability;\n }\n\n setToken(token) {\n this.token = token;\n }\n\n getToken() {\n return this.token;\n }\n\n setUser(options) {\n Object.assign(this.user, options);\n }\n\n getUser() {\n return this.user;\n }\n\n setSites(sites) {\n this.sites = sites;\n }\n\n getSites() {\n return this.sites;\n }\n\n getSitesByProduct(availableProducts) {\n\n let groupSitesByProduct = {};\n\n this.sites.forEach((site) => {\n site.products.forEach((product) => {\n (groupSitesByProduct[product] = groupSitesByProduct[product] || []).push({\n cloudId: site.cloudId,\n displayName: site.displayName,\n url: site.url,\n avatarUrl: site.avatarUrl || '',\n isVertigo: site.isVertigo || false,\n })\n })\n });\n\n let result = [];\n for (var product in groupSitesByProduct) {\n\n if (product.length) {\n result.push({\n name: availableProducts[product].name,\n icon: availableProducts[product].login_logo_url || '',\n sites: groupSitesByProduct[product].map((site) => site.url)\n });\n }\n }\n return result;\n }\n\n getDisplayName() {\n return this.user.myDetails.name;\n }\n\n getFirstName(fullName = '') {\n return fullName.trim().split(' ')[0];\n }\n\n getLastName(fullName = '') {\n let lastName = '';\n let names = fullName.trim().split(' ');\n\n if (names.length > 1) {\n names.shift();\n lastName = names.join(' ');\n }\n\n return lastName;\n }\n\n getUserEmail() {\n return this.user.myDetails.email || '';\n }\n\n getUserAaid() {\n return this.user.myDetails.aaid || '';\n }\n\n getAvatar() {\n return this.user.myDetails.avatar;\n }\n\n isLoggedIn() {\n return this.user.isLoggedIn && this.user.myDetails.email.length > 0;\n }\n\n isExpert() {\n return this.organisationDetails.organisationType === 'EXPERT';\n }\n\n isReseller() {\n return this.organisationDetails.organisationType === 'RESELLER';\n }\n\n isPlatinumExpert() {\n return this.organisationDetails.organisationType === 'EXPERT' && this.organisationDetails.payOnAccount;\n }\n\n isValidSite(site) {\n\n const ignoreSiteNames = [\n 'servicedog',\n 'ecosystem',\n 'atlassiantraining',\n 'Atlassian Stride',\n 'volunteerhub',\n 'atlassiantraining',\n 'hello-staging',\n 'ecosystem',\n 'riskmanagement',\n 'hello-staging3',\n 'hello-staging6',\n 'hello-staging9',\n 'jdog',\n 'sre-ehlo',\n 'trello',\n 'Trello',\n 'bitbucket',\n 'Bitbucket'\n ];\n\n if (ignoreSiteNames.indexOf(site.displayName) > -1) {\n return false;\n }\n\n if (site.cloudId.startsWith('DUMMY')) {\n return false;\n }\n\n if (site.displayName.toUpperCase().match(\".*-SANDBOX-\\\\d{3}$\")) {\n return false\n }\n\n return true;\n }\n\n}\n\nexport let hamletUser = new HamletUser();\n","import Environment from './environment';\n\nconst debug = Environment.isDev();\n\nexport const log = function (msg, title = '') {\n if (debug) {\n console.log(msg, title);\n }\n};\n\nexport const todo = function (msg) {\n if (debug) {\n console.log(`%c todo: ${msg}`, 'background: #2684FF; color: #fff; padding-right: 10px;');\n }\n};\n\nexport const warn = function (msg) {\n if (debug) {\n console.warn(msg);\n }\n};\n\nexport const error = function (msg, title = '') {\n if (debug) {\n console.error(msg, title);\n } else {\n // @todo: track error somewhere\n }\n};\n\n","export const getOptimizelyEndUserId = function () {\n if (typeof window.optimizely !== 'undefined' && typeof window.optimizely.get === 'function') {\n return window.optimizely.get('visitor_id').randomId;\n }\n return '';\n};\n\nexport const getOptimizelyCohorts = function () {\n if (typeof window.optimizely !== 'undefined' && typeof window.optimizely.get === 'function') {\n const variations = optimizely.get('state').getVariationMap();\n let buckets = {};\n\n for (let key in variations) {\n buckets[key] = variations[key].id;\n }\n\n buckets = JSON.stringify(buckets);\n return buckets;\n }\n return '';\n};\n\nexport const getOptimizelySegments = function () {\n if (typeof window.optimizely !== 'undefined' && typeof window.optimizely.get === 'function') {\n const custom = optimizely.get('visitor').custom;\n let segments = {};\n\n for (var key in custom) {\n // Sometimes it's encoded and has extra quotes\n var val = decodeURIComponent(custom[key].value);\n val = val.replace(/^\"(.*)\"$/, '$1');\n segments[custom[key].id] = val;\n }\n\n segments = JSON.stringify(segments);\n return segments;\n }\n return '';\n};\n\n// Get experiments+cohort that the user is enrolled in formatted for consumption by MEP Provisioning Provider\n// Returns (possibly empty) array of objects with experimentId and cohortId properties\nexport const getAllOptimizelyCohortsAsObjects = function () {\n if (typeof window.optimizely !== 'undefined' && typeof window.optimizely.get === 'function') {\n const variations = optimizely.get('state').getVariationMap();\n\n return Object.keys(variations).map( key => ({ experimentId: key, cohortId: variations[key].id}));\n }\n return [];\n};\n\n// Extend getAllOptimizelyCohortsAsObjects function to return null if array is empty\nexport const getMappedOptimizelyCohorts = function () {\n const cohorts = getAllOptimizelyCohortsAsObjects();\n return cohorts.length ? cohorts : null;\n};\n","import { trackAllPlatforms } from './platforms';\n\nclass Tracking {\n /**\n * Process the value attribute to remove newlines, if the value attribute exists.\n *\n * @param {any} attributes\n */\n processAttributes(attributes) {\n if (!attributes) return {};\n\n let { value, ...additionalAttributes } = attributes;\n if (value) {\n value = value.replace(/\\r?\\n|\\r/g, \"\");\n }\n return { value, ...additionalAttributes };\n }\n\n /**\n * Send a tracking event to any tracking platforms defined in the `trackAllPlatforms` array.\n *\n * @param {string} category The event category, e.g. \"cart-cloud\" or \"bxp.formCloudSignup\".\n * @param {string} action The action name, e.g. \"page-unload\" or \"time-to-form-ready\".\n * @param {string} label An event label, e.g. \"form-event\" or \"signup-social-login\". Not used by all platforms.\n * @param {any} attributes Additional attributes passed to the tracking platform.\n * @param {string} optimizelyValue A plain string to pass to Optimizely as the event name. Deprecated.\n * @param {boolean} isNonInteraction Whether or not the event is a non-interaction event (Google Analytics). See also, https://support.google.com/analytics/answer/1033068#NonInteractionEvents\n */\n trackAll(category, action, label, attributes = {}, optimizelyValue, isNonInteraction) {\n const attrs = this.processAttributes(attributes);\n\n trackAllPlatforms.forEach(platform => {\n platform.track({\n category,\n action,\n label,\n attributes: attrs,\n optimizelyValue,\n isNonInteraction,\n });\n })\n }\n}\n\nexport { Tracking };\n\nexport default new Tracking();\n","export default {\n categories: {\n none: 'no-category',\n optimizelyTracking: 'optimizely-tracking',\n googleAnalyticsTracking: 'google-analytics-tracking',\n gasv2Tracking: 'gas-v2-tracking',\n },\n actions: {\n none: 'no-action',\n inferredNameMatch: 'inferred-name-match',\n inferredNameMismatch: 'inferred-name-mismatch',\n noNameProvided: 'no-name-provided',\n trackingFailure: 'tracking-failure',\n },\n labels: {\n none: 'no-label',\n },\n reasons: {\n trackingNotLoaded: 'tracking-not-loaded',\n },\n urls: {\n gasv2Url: 'https://mgas.prod.public.atl-paas.net/v1/event',\n },\n};\n","import axios from 'axios';\nimport * as Logger from '../../logger';\nimport { getOptimizelyCohorts, getOptimizelyEndUserId, getOptimizelySegments } from '../../optimizelyHelpers';\nimport Constants from '../constants';\n\nclass GASv2 {\n constructor() {\n this.hasShownWarning = false;\n }\n\n track(postBody) {\n if (!this.hasShownWarning) {\n this.hasShownWarning = true;\n Logger.warn('GASv2 is deprecated! Please migrate to GASv3 when possible.');\n }\n\n let options = {\n headers: {\n 'content-type': 'application/json'\n },\n withCredentials: true\n };\n\n postBody['properties']['optimizelyCohorts'] = getOptimizelyCohorts();\n postBody['properties']['optimizelySegments'] = getOptimizelySegments();\n postBody['properties']['optimizelyEndUserId'] = getOptimizelyEndUserId();\n\n return axios.post(Constants.urls.gasv2Url, postBody, options)\n .then(d => {\n return d;\n })\n .catch(e => {\n return Promise.reject(e);\n });\n }\n}\n\nexport { GASv2 };\n\nexport default new GASv2();\n","class GASv3 {\n track() {\n return Promise.reject('Not yet implemented.');\n }\n}\n\nexport { GASv3 };\n\nexport default new GASv3();\n","class GoogleAnalytics {\n track(data) {\n const { action, attributes, category, label, isNonInteraction } = data;\n const { value } = (attributes || {});\n\n if (typeof ga !== 'undefined') {\n ga('send', 'event', category, action, label, value, {\n nonInteraction: isNonInteraction\n });\n }\n }\n}\n\nexport { GoogleAnalytics };\n\nexport default new GoogleAnalytics();\n","class Optimizely {\n inferName(data) {\n const normalize = (str) => str.toLowerCase().replace(/\\s/g, '-');\n\n return `${normalize(data.category)}.${normalize(data.action)}.${normalize(data.label)}`;\n }\n\n track(data) {\n const name = data.optimizelyValue;\n const inferredName = this.inferName(data);\n\n if (typeof window.optimizely !== 'undefined') {\n window.optimizely.push({\n type: 'event',\n eventName: name || inferredName\n });\n }\n }\n}\n\nexport { Optimizely };\n\nexport default new Optimizely();\n","import tracking from '../../../utils/tracking';\nimport url from '../../../utils/url';\nimport { getOptimizelyCohorts, getOptimizelyEndUserId, getOptimizelySegments } from '../../optimizelyHelpers';\n\nclass Segment {\n track(data) {\n if (!imkt || !imkt.utils) {\n return;\n }\n\n const { action, attributes, category, label } = data;\n const { value, ...additionalAttributes } = (attributes || {});\n\n var eventProperties = {\n category,\n label,\n value,\n eventAction: action,\n urlParams: url.getUrlParams() || {},\n optimizelyCohorts: getOptimizelyCohorts(),\n optimizelySegments: getOptimizelySegments(),\n optimizelyEndUserId: getOptimizelyEndUserId(),\n ...additionalAttributes\n };\n tracking.trackEvent(action, eventProperties);\n }\n}\n\nexport { Segment };\n\nexport default new Segment();\n","import GASv2 from './gasv2';\nimport GASv3 from './gasv3';\nimport GoogleAnalytics from './googleAnalytics';\nimport Optimizely from './optimizely';\nimport Segment from './segment';\n\n// platforms to send to when Tracking.trackAll() is called.\nexport const trackAllPlatforms = [Optimizely, GoogleAnalytics, Segment];\n\n// all supported platforms.\nexport {\n GASv2,\n GASv3,\n GoogleAnalytics,\n Optimizely,\n Segment,\n};\n","import _ from 'underscore';\n\nexport default class CloudFamily {\n\n constructor() {\n this.JIRA_KEY = 'jira-software.ondemand';\n this.CONFLUENCE_KEY = 'confluence.ondemand';\n\n this.ROLE_BASED_PRICING_PRODUCTS = ['jira-servicedesk.ondemand', 'com.atlassian.servicedesk.ondemand'];\n\n this.DEPRECATED = [\n 'bamboo.ondemand',\n 'com.atlassian.bitbucket',\n 'com.atlassian.hipchat'\n ];\n\n this.JIRA_FAMILY = {\n family: 'jira',\n primaryParent: this.JIRA_KEY,\n products: [\n this.JIRA_KEY,\n 'jira-servicedesk.ondemand',\n 'jira-core.ondemand',\n 'com.radiantminds.roadmaps-jira.ondemand',\n 'bonfire.jira.ondemand'\n ]\n };\n\n this.CONFLUENCE_FAMILY = {\n family: 'confluence',\n primaryParent: this.CONFLUENCE_KEY,\n products: [\n this.CONFLUENCE_KEY,\n 'com.atlassian.confluence.plugins.confluence-questions.ondemand',\n 'team.calendars.confluence.ondemand'\n ]\n };\n\n }\n\n getFamilies() {\n return _.union([this.JIRA_FAMILY], [this.CONFLUENCE_FAMILY]);\n }\n\n getProductKeys() {\n return _.flatten(_.pluck(this.getFamilies(), 'products'));\n }\n\n getDeprecatedProductKeys() {\n return this.DEPRECATED;\n }\n\n getFamiliesPrimaryKey() {\n let primaryKeys = {};\n\n _.each(this.getFamilies(), (family) => {\n primaryKeys[family.family] = family.primaryParent;\n });\n\n return primaryKeys;\n }\n\n isParent(product) {\n return !!(product && product.parentKeys &&\n (_.isEmpty(product.parentKeys) || _.contains(product.parentKeys, 'atlassian.ondemand')));\n }\n\n getByKey(objects, key) {\n return _.findWhere(objects, {productKey: key});\n }\n\n hasKey(objects, key) {\n return !!this.getByKey(objects, key);\n }\n\n isRoleBasedProduct(product) {\n return _.include(this.ROLE_BASED_PRICING_PRODUCTS, product.productKey);\n }\n\n}\n","export default class AtlUrl {\n\n static getParameter(paramName) {\n const searchString = window.location.search.substring(1);\n const params = searchString.split(\"&\");\n\n for (let i=0; i < params.length; i++) {\n let val = params[i].split(\"=\");\n\n if (val[0] === paramName) {\n return val[1];\n }\n }\n\n return null;\n }\n\n}\n","import _ from 'underscore';\n\nexport default class OrderableItem {\n\n constructor(options, product) {\n var defaults = {\n amount: 0,\n description: null,\n editionDescription: null,\n editionId: null,\n enterprise: false,\n billingType: null,\n licenseType: null,\n monthsValid: 12,\n orderableItemId: null,\n publiclyAvailable: true,\n renewalAmount: 0,\n saleType: null,\n starter: false,\n unitCount: 0,\n unitLabel: 'USER'\n };\n\n Object.assign(this, defaults, options, _.pick(product, 'productKey', 'parentKey', 'productType', 'productDescription', 'parentDescription', 'billingType'));\n\n this.unitCount = (this.unitCount === 987654321) ? -1 : this.unitCount;\n this.editionDescription = this.editionDescription.replace(/enterprise /i, '');\n this.description = this.description.replace(/enterprise /i, '');\n }\n}\n","import _ from 'underscore';\n\nexport default class PricingBlock {\n\n constructor(options, product) {\n Object.assign(this, options, _.pick(product, 'productKey', 'parentKey', 'productType', 'productDescription', 'parentDescription'));\n this.amount = this.price;\n this.renewalAmount = this.price;\n this.unitLabel = 'USER';\n\n switch(this.productKey) {\n case 'com.atlassian.servicedesk.ondemand':\n case 'jira-servicedesk.ondemand':\n this.unitLabel = 'AGENT';\n this.rolePricing = 'Per Service Desk agent';\n break;\n case 'com.atlassian.hipchat':\n this.rolePricing = 'Per Hipchat user';\n break;\n }\n }\n}\n","import _ from 'underscore';\nimport OrderableItem from './hamlet-product-model-orderable-item';\nimport PricingBlock from './hamlet-product-model-pricing-block';\n\n\nexport default class HamletProductModel {\n\n constructor(options, productContentData) {\n\n var defaults = {\n productKey: null, // jira\n productDescription: null, // Jira\n productType: null, // PERPETUAL, HOSTED, ADDON, HOSTED_ADDON, EVALUATION, SUBSCRIPTION\n parentKeys: null,\n parentDescription: null,\n userCountEnforced: false,\n marketplaceAddon: false,\n lastModified: (new Date()).toISOString(),\n contactSalesForAdditionalPricing: false,\n orderableItems: [], // User-tier based pricing will have orderable items\n annual: [], // agent/role based pricing will have monthly/annual blocks defining the block limits\n monthly: [],\n billingType: null\n };\n\n Object.assign(this, defaults, options);\n this.productDescription = this.productDescription ? this.productDescription.replace(/\\s*\\((Server|Cloud)\\)/, '') : null;\n this.parentDescription = this.parentDescription ? this.parentDescription.replace(/\\s*\\((Server|Cloud)\\)/, '') : null;\n\n if (this.productKey === 'com.atlassian.servicedesk' || this.productKey === 'com.atlassian.servicedesk.ondemand') {\n this.userCountEnforced = false;\n }\n\n // Get Content Data\n this.productContentData = productContentData;\n if (this.productContentData.has(this.productKey)) {\n this.contentData = this.productContentData.get(this.productKey);\n } else {\n this.contentData = this.productContentData.createFromHamletApi(this);\n }\n\n if (this.contentData.overrides) {\n this.orderableItems = this.contentData.overrides.orderableItems ? this.contentData.orderableItems : this.orderableItems;\n this.monthly = this.contentData.overrides.monthly ? this.contentData.overrides.monthly : this.monthly;\n this.annual = this.contentData.overrides.annual ? this.contentData.overrides.annual : this.annual;\n }\n\n if (this.productType === 'ADDON' || this.productType === 'HOSTED_ADDON') {\n if (_.isEmpty(this.parentKeys)) {\n this.parentKeys = this.parentKey && [this.parentKey] || [];\n\n // Multiple parent compatibility hack (for data center)\n switch (this.parentKey) {\n\n case 'jira':\n this.parentKeys.push('jira-data-center');\n break;\n\n case 'confluence':\n this.parentKeys.push('confluence-data-center');\n break;\n\n case 'stash':\n this.parentKeys.push('stash-data-center');\n break;\n }\n }\n }\n\n var self = this;\n var orderables = _.uniq(this.orderableItems, 'orderableItemId');\n this.orderableItems = [];\n this.$renewalItems = [];\n this.$upgradeItems = [];\n _.each(orderables, function (item) {\n var orderable = new OrderableItem(item, self);\n if (orderable.saleType === 'RENEWAL') {\n self.$renewalItems.push(orderable);\n } else if (orderable.saleType === 'UPGRADE') {\n self.$upgradeItems.push(orderable);\n } else {\n self.orderableItems.push(orderable);\n }\n });\n this.orderableItems = this.orderableItems.sort(this.sortOrderables);\n this.$renewalItems = this.$renewalItems.sort(this.sortOrderables);\n this.$upgradeItems = this.$upgradeItems.sort(this.sortOrderables);\n this.setLicenseItems();\n\n _.each([ 'monthly', 'annual' ], function (section) {\n var original = self[section];\n self[section] = [];\n _.each(original, function (block) {\n self[section].push(new PricingBlock(block, self));\n });\n });\n }\n\n sortOrderables(a,b) {\n var key = (a.$tierHierarchy === b.$tierHierarchy) ? 'amount' : '$tierHierarchy';\n return a[key] - b[key];\n }\n\n findOrderables(id) {\n var matches = [];\n matches = matches.concat( _.where (this.orderableItems, { orderableItemId: id }));\n matches = matches.concat( _.where (this.$renewalItems, { orderableItemId: id }));\n matches = matches.concat( _.where (this.$upgradeItems, { orderableItemId: id }));\n return matches;\n }\n\n hasAnyOrderables() {\n return this.orderableItems.length > 0;\n }\n\n hasOrderable(id) {\n return this.findOrderables(id).length > 0;\n }\n\n getOrderable(id) {\n return this.findOrderables(id)[0];\n }\n\n addOrderable(item) {\n if (!this.hasOrderable(item.orderableItemId)) {\n var orderable = new OrderableItem(item, this);\n if (orderable.saleType === 'RENEWAL') {\n this.$renewalItems.push(orderable);\n } else if (orderable.saleType === 'UPGRADE') {\n this.$upgradeItems.push(orderable);\n } else {\n this.orderableItems.push(orderable);\n }\n this.orderableItems = this.orderableItems.sort(this.sortOrderables);\n this.$renewalItems = this.$renewalItems.sort(this.sortOrderables);\n this.$upgradeItems = this.$upgradeItems.sort(this.sortOrderables);\n this.setLicenseItems();\n }\n }\n\n setLicenseItems() {\n var self = this,\n items = _.groupBy(this.orderableItems, 'licenseType');\n\n this.$licenseItems = this.$licenseItems || {};\n _.each(items, function (list, key) {\n self.$licenseItems[key] = list.sort(self.sortOrderables);\n });\n }\n\n isCompatibleWith(parent) {\n return _.contains(this.parentKeys, parent);\n }\n\n hasTheseLicenses(types) {\n\n var currentLicenses = _.uniq(_.pluck(this.orderableItems, 'licenseType')),\n licenseTypes = _.map(types, function (type) { return type.toUpperCase(); }),\n difference = _.difference(licenseTypes, currentLicenses);\n\n if (_.contains([ 'clover' ], this.productKey)) {\n return _.has(this.$licenseItems, 'COMMERCIAL') && _.has(this.$licenseItems, 'ACADEMIC');\n } else if (/university/.test(this.productKey) || /training/.test(this.productKey)) {\n return _.has(this.$licenseItems, 'COMMERCIAL');\n } else {\n return difference.length === 0;\n }\n }\n}\n","import _ from 'underscore';\n\nexport default class ProductConstants {\n\n constructor() {\n this.products = this.initialProducts();\n\n this.products['com.atlassian.hipchat.data-center'] = {\n 'productLongDescription': {\n 'default': 'Hipchat is a hosted private chat service for your company and team. Share ideas and files in persistent group chat rooms, video chats, and more. Get your team off AIM, Google Talk, and Skype – Hipchat is built for business.'\n },\n 'productTagLine': {\n 'default': 'Chat and share'\n },\n 'images': {\n 'xxx' : '/sc-shared/img/productLogos/Hipchat-blue.svg',\n 'xx' : '/sc-shared/img/productLogos/Hipchat-blue.svg'\n },\n 'onDemand': {\n 'available': true,\n 'url': 'https://www.hipchat.com/sign_up?utm_source=atlassian&utm_medium=wac-order-form&utm_campaign=hipchat-launch'\n },\n 'url': 'product/com.atlassian.hipchat.data-center',\n 'productName': 'Hipchat',\n 'productGroup': 'com.atlassian.hipchat',\n 'editionName': 'dataCenter'\n };\n\n\n this.products['crowd.data-center'] = {\n 'productLongDescription': {\n 'default': 'Identity management for your users, web apps, and directory servers.'\n },\n 'productTagLine': {\n 'default': 'Identity management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Crowd-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Crowd-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/crowd/overview',\n 'onDemand': {\n 'available': false,\n 'key': null\n },\n 'url': 'product/crowd',\n 'productName': 'Crowd Data Center',\n 'productGroup': 'crowd',\n 'editionName': 'dataCenter'\n };\n\n this.products['premier-support'] = {\n 'productLongDescription': {\n 'default': 'Our highest level of support, including coverage for all of your Atlassian applications and 24/7 access to a team of dedicated senior support engineers.'\n },\n 'productTagLine': {\n 'default': 'Account-level coverage'\n },\n 'support': {\n 'description': 'Premier Support connects our top tier engineers with the customer. In order to ensure the best outcomes, we limit the number of individuals within an account to three named contacts.'\n },\n 'url': 'product/premier-support',\n 'productName': 'Premier Support',\n 'productGroup': 'premierSupport',\n 'editionName': 'support'\n };\n\n var prioritySupport = {\n 'productLongDescription': {\n 'default': 'Ensure your mission-critical Atlassian Server and Data Center applications scale successfully.'\n },\n 'productTagLine': {\n 'default': 'Flexible coverage'\n },\n 'support': {\n 'description': 'Priority Support for Atlassian Server ensures your mission-critical Atlassian Server and Data Center applications scale successfully.'\n },\n 'productName': 'Priority Support',\n 'productGroup': 'prioritySupport'\n };\n\n this.products['priority-support.server'] = _.defaults({\n 'url': 'product/priority-support.server',\n 'editionName': 'server'\n }, prioritySupport);\n\n this.products['priority-support.data-center'] = _.defaults({\n 'url': 'product/priority-support.data-center',\n 'editionName': 'dataCenter'\n }, prioritySupport);\n }\n\n initialProducts() {\n return {\n 'jira': {\n 'productLongDescription': {\n 'default': 'Enable development and IT teams to capture issues, plan work, and resolve requests. Spend less time managing work and more time building great software.'\n },\n 'productTagLine': {\n 'default': 'Plan, track, work'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira-blue.svg'\n },\n 'recommendedProducts': ['com.pyxis.greenhopper.jira', 'com.atlassian.servicedesk', 'confluence', 'stash', 'com.radiantminds.roadmaps-jira'],\n 'moreLink': 'https://www.atlassian.com/software/jira',\n 'onDemand': {\n 'available': true,\n 'key': 'jira.ondemand'\n },\n 'url': 'product/jira',\n store: false,\n 'productName': 'Jira'\n },\n 'jira-data-center': {\n 'productLongDescription': {\n 'default': 'Enable development and IT teams to capture issues, plan work, and resolve requests. Spend less time managing work and more time building great software.'\n },\n 'productTagLine': {\n 'default': 'Plan, track, work'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/jira',\n 'onDemand': null,\n 'productName': 'Jira Data Center'\n },\n 'com.pyxis.greenhopper.jira': {\n 'productLongDescription': {\n 'default': 'Agile project management for scrum or kanban teams.'\n },\n 'productTagLine': {\n 'default': 'Agile project management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/jiraagile_blue_xxxsmall.png',\n 'xx': '/sc-shared/img/productLogos/jiraagile_blue_xxsmall.png'\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://www.atlassian.com/software/jira-agile/overview',\n 'onDemand': {\n 'available': true,\n 'key': 'greenhopper.jira.ondemand'\n },\n 'url': 'addon/com.pyxis.greenhopper.jira',\n store: false,\n 'productName': 'Jira Agile'\n },\n 'com.atlassian.servicedesk': {\n 'productLongDescription': {\n 'default': 'Deliver an effortless service experience with powerful ticket management, an intuitive self-service portal, advanced SLAs and real-time reporting.'\n },\n 'productTagLine': {\n 'default': 'Service and support',\n 'jira': ' '\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg'\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://www.atlassian.com/software/jira/service-desk',\n 'onDemand': {\n 'available': true,\n 'key': 'com.atlassian.servicedesk.ondemand'\n },\n 'url': 'software/com.atlassian.servicedesk',\n store: false,\n 'productName': 'Jira Service Desk'\n },\n 'com.atlassian.bonfire.plugin': {\n 'productLongDescription': {\n 'default': 'Rapid bug reporting for exploratory and session-based testing.'\n },\n 'productTagLine': {\n 'default': 'Exploratory testing'\n },\n 'images': {\n 'xxx': null,\n 'xx': null\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://www.atlassian.com/software/jira-capture/overview',\n 'onDemand': {\n 'available': true,\n 'key': 'bonfire.jira.ondemand'\n },\n 'url': 'addon/com.atlassian.bonfire.plugin',\n 'productName': 'Capture for Jira',\n addon: true,\n 'productGroup': 'com.atlassian.bonfire.plugin',\n 'editionName': 'server'\n },\n 'com.radiantminds.roadmaps-jira': {\n 'productLongDescription': {\n 'default': 'Know when you can deliver, react to change and keep everyone on the same page.'\n },\n 'productTagLine': {\n 'default': 'See the big picture: Plan across multiple projects and teams'\n },\n 'images': {\n 'xxx': null,\n 'xx': null\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://marketplace.atlassian.com/plugins/com.radiantminds.roadmaps-jira',\n 'onDemand': {\n 'available': true,\n 'key': 'com.radiantminds.roadmaps-jira.ondemand'\n },\n 'url': 'addon/com.radiantminds.roadmaps-jira',\n 'productName': 'Portfolio for Jira',\n addon: true,\n 'productGroup': 'com.radiantminds.roadmaps-jira',\n 'editionName': 'server'\n },\n 'confluence': {\n 'productLongDescription': {\n 'default': 'Give your team one place to share, find, and collaborate on information they need to get work done.'\n },\n 'productTagLine': {\n 'default': 'Create & collaborate'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Confluence-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Confluence-blue.svg'\n },\n 'recommendedProducts': [ 'com.atlassian.confluence.plugins.confluence-questions', 'com.atlassian.confluence.extra.team-calendars', 'jira', 'jira-software' ],\n 'moreLink': 'https://www.atlassian.com/software/confluence',\n 'onDemand': {\n 'available': true,\n 'key': 'confluence.ondemand'\n },\n 'url': 'product/confluence',\n 'productName': 'Confluence',\n 'productGroup': 'confluence',\n 'editionName': 'server'\n },\n 'confluence-data-center': {\n 'productLongDescription': {\n 'default': 'Give your team one place to share, find, and collaborate on information they need to get work done.'\n },\n 'productTagLine': {\n 'default': 'Create & collaborate'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Confluence-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Confluence-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/confluence',\n 'onDemand': null,\n 'productName': 'Confluence Data Center',\n 'productGroup': 'confluence',\n 'editionName': 'dataCenter'\n },\n 'com.atlassian.confluence.plugins.confluence-questions': {\n 'productLongDescription': {\n 'default': 'Capture, learn from, and retain the collective knowledge of your organization as it grows.'\n },\n 'productTagLine': {\n 'default': 'Share knowledge'\n },\n 'images': {\n 'xxx': null,\n 'xx': null\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://marketplace.atlassian.com/plugins/com.atlassian.confluence.plugins.confluence-questions',\n 'onDemand': {\n 'available': true,\n 'key': 'com.atlassian.confluence.plugins.confluence-questions.ondemand'\n },\n 'url': 'addon/com.atlassian.confluence.plugins.confluence-questions',\n 'productName': 'Questions for Confluence',\n addon: true,\n 'productGroup': 'com.atlassian.confluence.plugins.confluence-questions',\n 'editionName': 'server'\n },\n 'com.atlassian.confluence.extra.team-calendars': {\n 'productLongDescription': {\n 'default': 'Your team\\'s single source of truth for managing team leave, tracking Jira projects, and planning events. Confluence Team Calendars connects Confluence and Jira like never before.'\n },\n 'productTagLine': {\n 'default': 'Shared calendars',\n 'confluence': ' '\n },\n 'images': {\n 'xxx': null,\n 'xx': null,\n 'xxx_short': null,\n 'xx_short': null\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://www.atlassian.com/software/confluence/team-calendars',\n 'onDemand': {\n 'available': true,\n 'key': 'team.calendars.confluence.ondemand'\n },\n 'url': 'addon/com.atlassian.confluence.extra.team-calendars',\n 'productName': 'Team Calendars for Confluence',\n addon: true,\n 'productGroup': 'com.atlassian.confluence.extra.team-calendars',\n 'editionName': 'server'\n },\n 'stash': {\n 'productLongDescription': {\n 'default': 'Collaborate on code with inline comments and pull requests. Manage and share your Git repositories. Build and ship as a team.'\n },\n 'productTagLine': {\n 'default': 'Git-based code collaboration and management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Bitbucket-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Bitbucket-blue.svg'\n },\n 'recommendedProducts': [ 'jira', 'bamboo', 'jira-software' ],\n 'moreLink': 'https://www.atlassian.com/software/bitbucket/overview',\n 'onDemand': {\n 'available': true,\n 'url' : 'https://www.bitbucket.org/plans?utm_source=WAC&utm_medium=Button&utm_content=purchase_form&utm_campaign=BB',\n 'key': 'bitbucket.ondemand',\n 'crossSell': null\n },\n 'url': 'product/bitbucket',\n 'productName': 'Bitbucket',\n 'productGroup': 'stash',\n 'editionName': 'server'\n },\n 'stash-data-center': {\n 'productLongDescription': {\n 'default': 'Collaborate on code with inline comments and pull requests. Manage and share your Git repositories. Build and ship as a team.'\n },\n 'productTagLine': {\n 'default': 'Git-based code collaboration and management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Bitbucket-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Bitbucket-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/bitbucket/overview',\n 'onDemand': {\n 'available': true,\n 'url' : 'https://www.bitbucket.org/plans?utm_source=WAC&utm_medium=Button&utm_content=purchase_form&utm_campaign=BB',\n 'key': 'bitbucket.ondemand',\n 'crossSell': null\n },\n 'url': 'product/stash-data-center',\n 'productName': 'Bitbucket Data Center',\n 'productGroup': 'stash',\n 'editionName': 'dataCenter'\n },\n /** When Bitbucket rebranding is on, stash data will mainly be used for displaying info in shopping cart\n * Note that the product key is stash, so where we want to access data from productConstants for bitbucket server we should be using the\n * stash product key. This is also the product key if we want to access Bitbucket Server data from Hams/Hamlet.\n * TODO remove all properties except productKey in PUR-4703\n */\n 'bitbucket': {\n 'productLongDescription': {\n 'default': 'Collaborate on code with inline comments and pull requests. Manage and share your Git repositories. Build and ship as a team.'\n },\n 'productTagLine': {\n 'default': 'Git-based code collaboration and management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Bitbucket-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Bitbucket-blue.svg'\n },\n 'recommendedProducts': [ 'jira', 'bamboo', 'jira-software' ],\n 'moreLink': 'https://www.atlassian.com/software/bitbucket/overview',\n 'onDemand': {\n 'available': true,\n 'key': 'bitbucket.ondemand'\n },\n 'url': 'product/bitbucket',\n 'productName': 'Bitbucket',\n 'productKey' : 'stash'\n },\n // similar to bitbucket, this exists to get the product config page to display stash-data-center info while the url says bitbucket-data-center\n 'bitbucket-data-center': {\n 'productKey' : 'stash-data-center'\n },\n 'fisheye': {\n 'productLongDescription': {\n 'default': 'Search, monitor, and track your Subversion repositories.'\n },\n 'productTagLine': {\n 'default': 'Browse & search code'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Fisheye-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Fisheye-blue.svg'\n },\n 'recommendedProducts': [ 'crucible' ],\n 'moreLink': 'https://www.atlassian.com/software/fisheye/overview',\n 'onDemand': {\n 'available': false,\n 'key': null,\n 'crossSell': null\n },\n 'url': 'product/fisheye',\n 'productName': 'Fisheye',\n 'productGroup': 'fisheye',\n 'editionName': 'server'\n },\n 'crucible': {\n 'productLongDescription': {\n 'default': 'Find bugs and improve code quality through peer code review.'\n },\n 'productTagLine': {\n 'default': 'Peer code review'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Crucible-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Crucible-blue.svg'\n },\n 'recommendedProducts': [ 'fisheye' ],\n 'moreLink': 'https://www.atlassian.com/software/crucible/overview',\n 'onDemand': {\n 'available': false,\n 'key': null,\n 'crossSell': null\n },\n 'url': 'product/crucible',\n 'productName': 'Crucible',\n 'productGroup': 'crucible',\n 'editionName': 'server'\n },\n 'bamboo': {\n 'productLongDescription': {\n 'default': 'Continuous integration, deployment, and release management.'\n },\n 'productTagLine': {\n 'default': 'Continuous integration'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Bamboo-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Bamboo-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/bamboo/overview',\n 'onDemand': {\n 'available': false,\n 'key': null\n },\n 'url': 'product/bamboo',\n 'productName': 'Bamboo',\n 'productGroup': 'bamboo',\n 'editionName': 'server'\n },\n 'crowd': {\n 'productLongDescription': {\n 'default': 'Identity management for your users, web apps, and directory servers.'\n },\n 'productTagLine': {\n 'default': 'Identity management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Crowd-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Crowd-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/crowd/overview',\n 'onDemand': {\n 'available': false,\n 'key': null\n },\n 'url': 'product/crowd',\n 'productName': 'Crowd',\n 'productGroup': 'crowd',\n 'editionName': 'server'\n },\n 'atlassian.university.confluence': {\n 'productLongDescription': null,\n 'productTagLine': null,\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg',\n 'xx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg'\n },\n 'productName': 'Atlassian University for Confluence'\n },\n 'atlassian.university.jira': {\n 'productLongDescription': null,\n 'productTagLine': null,\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg',\n 'xx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg'\n },\n 'productName': 'Atlassian University for Jira'\n },\n 'atlassian.university.greenhopper': {\n 'productLongDescription': null,\n 'productTagLine': null,\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg',\n 'xx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg'\n },\n 'productName': 'Atlassian University for Jira Agile'\n },\n 'jira.ondemand': {\n 'productLongDescription':{\n 'default': 'Enable development and IT teams to capture issues, plan work, and resolve requests. Spend less time managing work and more time building great software.'\n },\n 'productTagLine':{\n 'default': 'Plan, track, work'\n },\n 'images':{\n 'xxx': '/sc-shared/img/productLogos/Jira-blue.svg',\n 'xx':'/sc-shared/img/productLogos/Jira-blue.svg'\n },\n 'listOrder': 0,\n 'moreLink':'http://www.atlassian.com/en/software/jira'\n },\n 'greenhopper.jira.ondemand': {\n 'productLongDescription':{\n 'default': 'Agile project management for scrum or kanban teams.'\n },\n 'productTagLine':{\n 'default': 'Agile project management'\n },\n 'images':{\n 'xxx': '/sc-shared/img/productLogos/jiraagile_blue_xxxsmall.png',\n 'xx':'/sc-shared/img/productLogos/jiraagile_blue_xxsmall.png'\n },\n 'listOrder': 10,\n 'moreLink':'http://www.atlassian.com/en/software/jira/agile'\n },\n 'com.atlassian.servicedesk.ondemand': {\n 'productLongDescription':{\n 'default': 'Deliver an effortless service experience with powerful ticket management, an intuitive self-service portal, advanced SLAs and real-time reporting.'\n },\n 'productTagLine':{\n 'default': 'Service and support'\n },\n 'images':{\n 'xxx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg'\n },\n 'listOrder': 20,\n 'moreLink':'http://www.atlassian.com/en/software/jira/service-desk'\n },\n 'com.radiantminds.roadmaps-jira.ondemand': {\n 'productLongDescription': {\n 'default': 'Know when you can deliver, react to change and keep everyone on the same page.'\n },\n 'productTagLine': {\n 'default': 'Project portfolio management'\n },\n 'images': {\n 'xxx': null,\n 'xx': null\n },\n 'listOrder': 30,\n 'moreLink': 'https://marketplace.atlassian.com/plugins/com.radiantminds.roadmaps-jira',\n 'productGroup': 'com.radiantminds.roadmaps-jira',\n 'editionName': 'cloud'\n },\n 'bonfire.jira.ondemand': {\n 'productLongDescription':{\n 'default': 'Rapid bug reporting for exploratory and session-based testing.'\n },\n 'productTagLine':{\n 'default': 'Exploratory testing'\n },\n 'images':{\n 'xxx': null,\n 'xx': null\n },\n 'listOrder': 40,\n 'moreLink':'http://www.atlassian.com/en/software/jira-capture/overview',\n 'productGroup': 'com.atlassian.bonfire.plugin',\n 'editionName': 'cloud'\n },\n 'com.atlassian.bitbucket': {\n 'productLongDescription':{\n 'default': 'Your code, in the cloud. Manage, review, and share your Git and Mercurial source code with free unlimited private repositories.'\n },\n 'productTagLine':{\n 'default': 'Git & Mercurial code hosting'\n },\n 'images':{\n 'xxx': '/sc-shared/img/productLogos/Bitbucket-blue.svg',\n 'xx':'/sc-shared/img/productLogos/Bitbucket-blue.svg'\n },\n 'listOrder': 60,\n 'moreLink':'https://www.atlassian.com/en/software/bitbucket/overview',\n 'productGroup': 'stash',\n 'editionName': 'cloud'\n },\n 'confluence.ondemand': {\n 'productLongDescription':{\n 'default': 'Give your team one place to share, find, and collaborate on information they need to get work done.'\n },\n 'productTagLine':{\n 'default': 'Create & collaborate'\n },\n 'images':{\n 'xxx': '/sc-shared/img/productLogos/Confluence-blue.svg',\n 'xx':'/sc-shared/img/productLogos/Confluence-blue.svg'\n },\n 'listOrder': 0,\n 'moreLink':'https://www.atlassian.com/en/software/confluence',\n 'productGroup': 'confluence',\n 'editionName': 'cloud',\n 'instanceRedirectSuffix': '/wiki'\n },\n 'com.atlassian.confluence.plugins.confluence-questions.ondemand': {\n 'productLongDescription': {\n 'default': 'Capture, learn from, and retain the collective knowledge of your organization as it grows.'\n },\n 'productTagLine': {\n 'default': 'Share knowledge'\n },\n 'images': {\n 'xxx': null,\n 'xx': null\n },\n 'listOrder': 10,\n 'recommendedProducts': [],\n 'moreLink': 'https://www.atlassian.com/en/software/confluence/questions',\n 'productGroup': 'com.atlassian.confluence.plugins.confluence-questions',\n 'editionName': 'cloud'\n },\n 'team.calendars.confluence.ondemand': {\n 'productLongDescription':{\n 'default': 'Your team\\'s single source of truth for managing team leave, tracking Jira projects, and planning events. Confluence Team Calendars connects Confluence and Jira like never before.'\n },\n 'productTagLine':{\n 'default': ' '\n },\n 'images':{\n 'xxx' : null,\n 'xx' : null\n },\n 'listOrder': 20,\n 'moreLink':'http://www.atlassian.com/en/software/confluence/team-calendars',\n 'productGroup': 'com.atlassian.confluence.extra.team-calendars',\n 'editionName': 'cloud'\n },\n 'com.atlassian.hipchat': {\n 'productLongDescription': {\n 'default': 'Hipchat is a hosted private chat service for your company and team. Share ideas and files in persistent group chat rooms, video chats, and more. Get a free month of Hipchat Plus with your Atlassian Cloud subscription.'\n },\n 'productTagLine': {\n 'default': 'Chat and share'\n },\n 'images': {\n 'xxx' : '/sc-shared/img/productLogos/Hipchat-blue.svg',\n 'xx' : '/sc-shared/img/productLogos/Hipchat-blue.svg'\n },\n 'marketplace': false,\n 'listOrder': 10,\n 'moreLink':'http://www.atlassian.com/en/software/hipchat',\n 'url': 'https://www.hipchat.com/sign_up?utm_source=atlassian&utm_medium=wac-order-form&utm_campaign=hipchat-launch',\n 'overrides': {\n monthly: [{\n editionType: \"role-tier\",\n editionTypeIsDeprecated: true,\n price: 0,\n unitBlockSize: 987654321,\n unitLabel: \"USER\",\n unitLimit: -1,\n unitStart: 1\n }]\n },\n 'featured': true,\n 'productGroup': 'com.atlassian.hipchat',\n 'editionName': 'cloud'\n },\n 'jira-software': {\n 'productLongDescription': {\n 'default': 'The #1 software development tool used by agile teams. Plan, track, and release world-class software.'\n },\n 'productTagLine': {\n 'default': 'Issue tracking and code integration'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Software-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Software-blue.svg'\n },\n 'recommendedProducts': ['com.radiantminds.roadmaps-jira', 'jira-servicedesk', 'confluence', 'stash'],\n 'onDemand': {\n 'available': true,\n 'key': 'jira-software.ondemand'\n },\n url: 'product/jira-software',\n 'store': false,\n productName: 'Jira Software',\n 'productGroup': 'jira-software',\n 'editionName': 'server'\n },\n 'jira-software.data-center': {\n 'productLongDescription': {\n 'default': 'The #1 software development tool used by agile teams. Plan, track, and release world-class software.'\n },\n 'productTagLine': {\n 'default': 'Issue tracking and code integration'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Software-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Software-blue.svg'\n },\n 'onDemand': {\n 'available': true,\n 'key': 'jira-software.ondemand'\n },\n url: 'product/jira-software',\n 'store': false,\n productName: 'Jira Software Data Center',\n 'productGroup': 'jira-software',\n 'editionName': 'dataCenter'\n },\n 'jira-core': {\n 'productLongDescription': {\n 'default': 'Simplify projects, from marketing campaigns, HR onboarding, to purchasing approvals and legal document reviews.'\n },\n 'productTagLine': {\n 'default': 'Project management for business teams'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Core-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Core-blue.svg'\n },\n 'onDemand': {\n 'available': true,\n 'key': 'jira-core.ondemand'\n },\n url: 'product/jira-core',\n store: false,\n productName: 'Jira Core',\n 'productGroup': 'jira-core',\n 'editionName': 'server'\n },\n 'jira-servicedesk': {\n 'productLongDescription': {\n 'default': 'Give your customers an easy way to ask for help and your agents a fast way to resolve incidents.'\n },\n 'productTagLine': {\n 'default': 'IT support and self-service'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg'\n },\n 'recommendedProducts': ['confluence'],\n 'onDemand': {\n 'available': true,\n 'key': 'jira-servicedesk.ondemand'\n },\n 'message': {\n 'userTier': 'Choose your Jira Service Desk agent tier'\n },\n url: 'product/jira-servicedesk',\n store: false,\n productName: 'Jira Service Desk',\n 'productGroup': 'jira-servicedesk',\n 'editionName': 'server'\n },\n 'jira-servicedesk.data-center': {\n 'productLongDescription': {\n 'default': 'Give your customers an easy way to ask for help and your agents a fast way to resolve incidents.'\n },\n 'productTagLine': {\n 'default': 'IT support and self-service'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg'\n },\n 'onDemand': {\n 'available': true,\n 'key': 'jira-servicedesk.ondemand'\n },\n 'message': {\n 'userTier': 'Choose your Jira Service Desk agent tier'\n },\n url: 'product/jira-servicedesk',\n store: false,\n productName: 'Jira Service Desk Data Center',\n 'productGroup': 'jira-servicedesk',\n 'editionName': 'dataCenter'\n },\n 'jira-software.ondemand': {\n 'productLongDescription': {\n 'default': 'The #1 software development tool used by agile teams. Plan, track, and release world-class software.'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Software-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Software-blue.svg'\n },\n 'listOrder': 0,\n 'moreLink': '/software/jira',\n 'productGroup': 'jira-software',\n 'editionName': 'cloud'\n },\n 'jira-servicedesk.ondemand': {\n 'productLongDescription': {\n 'default': 'Give your customers an easy way to ask for help and your agents a fast way to resolve incidents.'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg'\n },\n 'listOrder': 1,\n 'moreLink': '/software/jira/service-desk',\n 'productGroup': 'jira-servicedesk',\n 'editionName': 'cloud'\n },\n 'jira-core.ondemand': {\n 'productLongDescription': {\n 'default': 'Simplify projects, from marketing campaigns, HR onboarding, to purchasing approvals and legal document reviews.'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Core-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Core-blue.svg'\n },\n 'listOrder': 2,\n 'moreLink': '/software/jira/core',\n 'productGroup': 'jira-core',\n 'editionName': 'cloud'\n },\n // Deprecated product left behind to support existing Hipchat (Server) accounts (renew/upgrade pages), and to support the old Hipchat url (to redirect)\n 'com.atlassian.hipchat.server': {\n 'productLongDescription': {\n 'default': 'Hipchat is a hosted private chat service for your company and team. Share ideas and files in persistent group chat rooms, video chats, and more. Get your team off AIM, Google Talk, and Skype – Hipchat is built for business.'\n },\n 'productTagLine': {\n 'default': 'Chat and share'\n },\n 'images': {\n 'xxx' : '/sc-shared/img/productLogos/Hipchat-blue.svg',\n 'xx' : '/sc-shared/img/productLogos/Hipchat-blue.svg'\n },\n 'url': 'product/com.atlassian.hipchat.server',\n 'productName': 'Hipchat',\n 'editionName': 'server'\n }\n };\n }\n\n updateProductDescriptions() {\n // stubbed\n }\n\n}\n","export default function(options) {\n\n const defaults = {\n productTagLine: {\n 'default': null\n },\n productLongDescription: {\n 'default': null\n },\n marketplace: false,\n listOrder: 99,\n eula: null,\n moreLink: null,\n universityParent: null,\n recommendedProducts: [],\n images: {\n xxx: null,\n xx: null\n },\n onDemand: {\n available: false,\n key: null,\n crossSell: null\n }\n };\n\n return Object.assign(this, defaults, options);\n}\n","import _ from 'underscore';\nimport AtlStorage from './atl-storage';\nimport ProductConstants from './hamlet-product-constants';\nimport ProductContentDataModel from './hamlet-product-content-data-model';\n\nexport default class ProductContentData {\n\n constructor() {\n this.storage = new AtlStorage();\n this.stored = this.storage.local.get('common.constants') || {};\n this.productConstants = new ProductConstants();\n\n this.products = { ...this.stored };\n _.each(this.productConstants.products, (data, key) => {\n this.products[key] = new ProductContentDataModel(data);\n });\n }\n\n has(productKey) {\n return !!this.products[productKey];\n }\n\n get(productKey) {\n return this.products[productKey];\n }\n\n create(product) {\n if (_.has(product, 'productKey')) {\n return this.add(product.productKey, this.createFromHamletApi(product));\n } else if (_.has(product, 'pluginKey')) {\n this.add(product.pluginKey + '.ondemand', this.createFromMarketplaceApi(product));\n return this.add(product.pluginKey, this.createFromMarketplaceApi(product));\n }\n }\n\n /*\n * Create a new entry based on a Product Object from the Hamlet API\n * If the product is a marketplace product, will use the productDescription (name)\n * and productKey to create a generic plugin entry. Will not contain a meaningful\n * description of the plugin :(\n * If it is not a marketplace plugin (highly unlikely), it will add an empty model\n */\n createFromHamletApi(product) {\n if (product.productType === 'ADDON' || product.productType === 'HOSTED_ADDON') {\n return {\n productTagLine: {\n 'default': product.productDescription\n },\n productLongDescription: {\n 'default': product.productDescription\n },\n marketplace: true,\n listOrder: 99,\n images: {\n xxx: '/sc-shared/img/mpac-icon.png',\n xx: 'https://marketplace.atlassian.com/plugins/' + product.productKey + '/icon'\n },\n moreLink: 'https://marketplace.atlassian.com/plugins/' + product.productKey,\n onDemand: {\n available: false,\n key: product.productKey + '.ondemand'\n }\n };\n }\n return {};\n }\n\n /*\n * Create a new entry based on a Plugin Object from the MPAC API. Will contain a\n * verbose description, potentially a populated OnDemand object with/without cross-sell\n * text and/or a eula.\n */\n createFromMarketplaceApi(plugin) {\n\n var content = {\n productTagLine: {\n 'default': plugin.name\n },\n productLongDescription: {\n 'default': plugin.summary\n },\n marketplace: true,\n listOrder: 99,\n images: {\n xxx: '/sc-shared/img/mpac-icon.png',\n xx: 'https://marketplace.atlassian.com/plugins/' + plugin.pluginKey + '/icon'\n },\n moreLink: 'https://marketplace.atlassian.com/plugins/' + plugin.pluginKey,\n onDemand: {\n available: false,\n key: null\n }\n };\n\n // Check for a EULA\n if (_.has(plugin, 'version') && _.has(plugin.version, 'links')) {\n var eula = _.where(plugin.version.links, { 'rel': 'eula' });\n if (eula.length > 0) {\n content.eula = eula[0].href;\n }\n }\n\n // Check for OnDemand deployment\n if (_.isObject(plugin.deployment) &&\n plugin.deployment.onDemand &&\n _.isObject(plugin.version) &&\n _.isObject(plugin.version.marketplaceType) &&\n _.isString(plugin.version.marketplaceType.type)) {\n\n if (plugin.version.marketplaceType.type === 'Paid via Atlassian') {\n content.onDemand = {\n available: true,\n key: plugin.pluginKey + '.ondemand'\n };\n } else if (plugin.version.marketplaceType.type === 'Free') {\n content.onDemand = {\n available: false,\n crossSell: 'This add-on is free and pre-installed on your Cloud instance.',\n key: null\n };\n } else if (plugin.version.marketplaceType.type === 'Paid via Vendor') {\n content.onDemand = {\n available: false,\n crossSell: 'This add-on is pre-installed on your Cloud instance. Contact the vendor for a license.',\n key: null\n };\n }\n }\n\n return content;\n }\n\n /*\n * Provided a productKey and a contentData object, add a new entry to the list\n * and update the localStorage\n */\n add(productKey, data) {\n this.products[productKey] = new ProductContentDataModel(data);\n this.storage.local.set('common.constants', this.products);\n return this.products[productKey];\n }\n\n}\n","import _ from 'underscore';\nimport axios from 'axios';\nimport AtlStorage from './atl-storage';\nimport HamletProductModel from './hamlet-product-model';\nimport ProductContentData from './hamlet-product-content-data';\nimport { hamletApi } from '../../common/hamlet/hamlet-api';\n\n\n\nexport default class HamletProducts {\n\n constructor() {\n this.products = [];\n this.options = [];\n this.storage = new AtlStorage();\n this.productContentData = new ProductContentData();\n\n this.hamletProductsSessionKey = 'hamlet.api.products';\n this.hamletProductsClearReasonSessionKey = 'hamlet.api.products.clear.reason';\n\n const lastProductsClearReason = this.storage.session.get(this.hamletProductsClearReasonSessionKey) || '';\n const currentProductsClearReason = 'PUR-8984';\n\n let stored = this.storage.session.get(this.hamletProductsSessionKey) || [];\n if (lastProductsClearReason !== currentProductsClearReason) {\n this.storage.session.remove(this.hamletProductsSessionKey);\n this.storage.session.set(this.hamletProductsClearReasonSessionKey, currentProductsClearReason);\n stored = [];\n }\n\n _.each(stored, (product) => {\n if (product.orderableItems.length > 0) {\n this.addProduct(product);\n }\n });\n\n }\n\n /*\n * Query Hamlet for the given products/licenseTypes. If the given products already\n * exist locally, then resolve with those products. Otherwise, hit the API, and\n * store the results in our local cache\n */\n queryProducts(providedOptions) {\n const options = {\n products: [],\n licenseTypes: [ 'commercial' ],\n ...providedOptions,\n };\n\n let params = {\n licenseType: options.licenseTypes,\n productKey: [],\n requestingApplication: 'WAC'\n };\n\n let cached = [];\n\n if (_.has(options, 'monthsValid')) {\n params.monthsValid = [ options.monthsValid ];\n }\n\n /*\n * Loop through the provided productKeys and see which ones we have in the\n * cache already. Create a list for each\n */\n _.each(_.uniq(options.products), productKey => {\n\n let product = this.findByKey(productKey);\n\n if (!(product && product.hasTheseLicenses(options.licenseTypes))) {\n params.productKey.push(productKey);\n } else {\n cached.push(product);\n }\n });\n\n /*\n * If all the products are already in the cache, return the product\n * list from the cache\n *\n * Else\n * Hit the Hamlet API for the products not already cached. Concat the cached\n * ones we already had to the results\n */\n if (params.productKey.length === 0) {\n return Promise.resolve({\n products: cached\n });\n } else {\n\n const qstring = this.createQueryStringParamsForHamlet(params);\n const url = `${hamletApi.getHamletPath()}/1.0/public/pricing/query?${qstring}`;\n\n return axios.get(url)\n .then( result => {\n\n _.each(result.data.products, (product) => {\n cached.push(this.addProduct(product));\n });\n\n return Promise.resolve({\n products: cached\n });\n })\n .catch( e => {\n return Promise.reject(e);\n });\n }\n }\n\n createQueryStringParamsForHamlet(params) {\n let qStringParams = {};\n let qStringBuilder = [];\n\n _.each(params, function (value, key) {\n if (Array.isArray(value)) {\n qStringParams[key] = _.map(value, function (item) {\n return key + '=' + item;\n });\n } else {\n qStringParams[key] = [key + '=' + value];\n }\n });\n\n _.each(qStringParams, (item) => {\n qStringBuilder.push(item);\n });\n\n return _.flatten(qStringBuilder).join('&');\n }\n\n findByKey(key) {\n return _.where (this.products, { productKey: key })[0];\n }\n\n /*\n * Add a new product to the list. If the product already exists in the list, check each\n * orderable to make sure all orderable items are accounted for. Once done, save to\n * local storage for later retrieval to prevent redundant API calls\n */\n addProduct(product) {\n\n const existing = this.findByKey(product.productKey);\n if (!existing) {\n let p = new HamletProductModel(product, this.productContentData);\n this.products.push(p);\n } else {\n for (var i=0,l=product.orderableItems.length; i {\n\n if (_.keys(urlProducts).length > 0) {\n urlProducts = _.omit(urlProducts, deprecatedProductKeys);\n\n _.each(urlProducts, (unitCount, productKey) => {\n\n const product = this.hamletProducts.findByKey(productKey);\n let orderable = null;\n\n if (product) {\n if (product.parentKey === 'atlassian.ondemand' || product.productType === 'HOSTED_ADDON' || unitCount !== 0) {\n orderable = _.where(product.orderableItems, { unitCount: unitCount })[0];\n }\n if (!orderable) {\n orderable = product.monthly.length > 0 ? product.monthly[0] : product.orderableItems[0];\n }\n }\n\n if (product && orderable) {\n const tier = {\n ...orderable,\n amount: orderable.renewalAmount,\n eula: product.contentData.eula,\n mpac: (product.marketplaceAddon === true)\n };\n this.items.push(tier);\n }\n });\n\n }\n\n return Promise.resolve(this.items);\n })\n .catch( e => {\n console.error(e);\n return Promise.reject();\n });\n }\n\n getItems() {\n return this.items;\n }\n\n setItems(itemList) {\n this.items = itemList;\n }\n\n getUtmSource() {\n return this.utmSource;\n }\n\n getAllURLProducts(jiraKey, confluenceKey) {\n\n let products = {};\n const DEFAULT_PRODUCT_COUNT = '10';\n\n let queryProducts = AtlUrl.getParameter('product');\n if (!queryProducts) {\n queryProducts = AtlUrl.getParameter('products') || '';\n }\n queryProducts = queryProducts.split(',');\n\n // if JSM in-url, change to JSD productKey\n queryProducts = queryProducts.map(function(product) {\n return product === 'jira-service-management.ondemand'\n ? 'jira-servicedesk.ondemand' : product;\n });\n\n let unitCounts = AtlUrl.getParameter('unitCount') || DEFAULT_PRODUCT_COUNT;\n unitCounts = unitCounts.split(',').map( count => parseInt(count, 10) );\n\n for (let i = 0; i < queryProducts.length; i++) {\n let key = queryProducts[i];\n let count = 10;\n\n if (unitCounts.length === 1) {\n if (key === jiraKey || key === confluenceKey) {\n count = unitCounts[0];\n }\n } else if (unitCounts.length === queryProducts.length) {\n count = unitCounts[i];\n }\n\n if (key) {\n products[key] = count;\n }\n }\n\n return products;\n }\n\n /*\n * Whether you have any MARKETPLACE addons in your cart\n */\n MPACAddons() {\n return _.where(this.items, { mpac: true }).length > 0;\n }\n\n /*\n * A list of products in your basket that have role=based pricing\n */\n roleBasedProducts() {\n return _.where(this.items, { unitBlockSize: 1 });\n }\n\n /*\n * Whether you have any addons in your cart\n */\n addons() {\n return _.where(this.items, { productType: 'HOSTED_ADDON' }).length > 0;\n }\n\n /*\n * Which addons in your cart\n */\n getAddons() {\n return _.where(this.items, { productType: 'HOSTED_ADDON' });\n }\n\n /*\n * Which core products in your cart\n */\n getCoreProducts() {\n return _.filter(this.items, function(item) {\n return item.productType !== 'HOSTED_ADDON';\n });\n }\n\n /**\n * Returns array of deprecated products attempted to be added to the cart\n * @returns {Array}\n */\n getDeprecatedProductsInCart() {\n return this.deprecatedItems;\n }\n\n /*\n * Returns an array of product keys for all items in the cart\n */\n productsInCart() {\n return _.reduce(this.items, function (memo, item) {\n memo.push(item.productKey);\n return memo;\n }, []);\n }\n\n /*\n * Get a list of cart items that have third-part eulas\n */\n getEulas() {\n return _.filter(this.items, function (item) {\n return _.has(item, 'eula') && !!item.eula;\n });\n }\n\n /*\n * Wipe out everything in the ondemand form fields and in local storage. Complete data reset\n * for completed and successful orders after they're done.\n */\n clearFields() {\n this.storage.session.clear();\n this.storage.cookie.remove('ONDEMANDCART');\n this.items = [];\n this.utmSource = null;\n }\n\n}\n","import CartService from './cart-service';\nimport { hamletApi } from '../../common/hamlet/hamlet-api';\nimport { hamletUser } from '../../common/hamlet/hamlet-user';\n\nexport default class Hamlet {\n\n constructor() {\n this.identifiedProducts = [];\n this.cartService = new CartService();\n }\n\n init(cachingEnabled) {\n const initPromises = [this.getUser(cachingEnabled)];\n\n return Promise.all(initPromises)\n .then((response) => {\n const user = response[0];\n return Promise.resolve(user);\n })\n .catch(() => {\n // @todo: refactor main.js handle a reject state\n return Promise.reject();\n });\n }\n\n getUser(cachingEnabled, enableAisAvailableProducts = false) {\n return hamletUser.initUser(cachingEnabled, enableAisAvailableProducts);\n }\n\n getUserXsrfToken(cb) {\n return hamletUser.retrieveXsrfToken()\n .then(() => {\n cb();\n })\n .catch(() => {\n cb();\n });\n }\n\n isLoggedIn() {\n return hamletUser.getToken() && hamletUser.isLoggedIn();\n }\n\n getSites() {\n return hamletUser.getSites();\n }\n\n getSitesByProduct(availableProducts) {\n return hamletUser.getSitesByProduct(availableProducts);\n }\n\n checkExtendedTrialAvailability(migrationSourceUuid, productKey, cloudSiteIds) {\n return hamletUser.checkExtendedTrialAvailability(migrationSourceUuid, productKey, cloudSiteIds);\n }\n\n getExtendedTrialAvailability() {\n return hamletUser.getExtendedTrialAvailability();\n }\n\n getExtendedTrialAvailableSites() {\n const result = this.getExtendedTrialAvailability();\n if (!result || !result.cloudCreation.available) {\n return [];\n }\n return Object.keys(result.sites).filter(cloudId => result.sites[cloudId].available);\n }\n\n validateEmail(email) {\n\n const options = {\n url: `/1.0/public/aid/exists/${email}`\n };\n\n return hamletApi.post(options)\n .then((response) => {\n return Promise.resolve(response.data);\n })\n .catch((e) => {\n return Promise.reject(e);\n });\n }\n\n mapHamletData(formData) {\n\n return {\n \"contactDetails\": {\n \"email\": formData.email,\n \"firstName\": formData.firstName,\n \"lastName\": formData.lastName\n },\n \"organisationDetails\": null,\n \"onDemandAccountDetails\": {\n \"accountName\": formData.accountName,\n \"adminUsername\": \"admin\",\n \"adminPassword\": formData.aodPass,\n \"productKeys\": formData.productKeys,\n \"timeZone\": null\n },\n \"termsOfServiceAccepted\": true,\n \"creditCardDetails\": null\n };\n }\n\n identifyProducts() {\n return this.cartService.init()\n .then(products => {\n this.setIdentifiedProducts(products);\n return Promise.resolve(products);\n })\n .catch(() => Promise.reject());\n }\n\n getIdentifiedProducts() {\n return this.identifiedProducts;\n }\n\n setIdentifiedProducts(products) {\n this.identifiedProducts = products;\n }\n\n getCartServiceItems() {\n return this.cartService.getItems();\n }\n\n setCartServiceItems(items) {\n this.cartService.setItems(items);\n }\n\n hasAddons() {\n return this.cartService.addons();\n }\n\n getAddons() {\n return this.cartService.getAddons();\n }\n\n getCoreProducts() {\n return this.cartService.getCoreProducts();\n }\n\n getEulas() {\n return this.cartService.getEulas();\n }\n\n}\n","import _ from \"underscore\";\nimport Environment from \"../../common/environment\";\nimport jstz from \"jstimezonedetect\";\nimport { ProductKey } from '@atlassiansox/bxpkit-core';\nimport expSignupContextBuilder from \"@atlassiansox/signup-context-builder\";\nimport { hamletApi } from \"../../common/hamlet/hamlet-api\";\nimport storage from \"../../utils/storage\";\n\nexport default class Cofs {\n constructor(\n paramsBaseDomain,\n paramsBaseCofsPath,\n hamlet,\n jQuery,\n experiments,\n environment = null\n ) {\n const ACCOUNT_NAME_MAX = 50;\n const ACCOUNT_NAME_MIN = 3;\n // COFS /cloud api requires that the signup context has a maximum size\n // see: https://cofs.prod.public.atl-paas.net/api.html#cloud_post\n const SIGNUP_CONTEXT_MAX_LENGTH = 8192;\n new expSignupContextBuilder();\n const RESEND_DATA = 'r.e.d';\n\n return {\n init: function () {\n // Nothing used here yet\n },\n\n /**\n * Test accounts/tenants are targeted by a specific environment and account name pattern.\n * @see https://extranet.atlassian.com/jira/browse/WCF-384\n *\n * @param {String} accountName\n * @return {Boolean}\n */\n isTestTenant(accountName) {\n return (\n this.isTestTenantByAccountName(accountName) &&\n this.isTestTenantByEnvironment()\n );\n },\n\n /**\n * Test accounts/tenants should only be targeted in the \"staging\" environment.\n * @see https://extranet.atlassian.com/jira/browse/WCF-384\n *\n * @param {String} environment\n * @return {boolean}\n */\n isTestTenantByEnvironment() {\n return environment === Environment.staging();\n },\n\n /**\n * Test accounts/tenants are identified by a specific account name pattern.\n * @see https://extranet.atlassian.com/jira/browse/WCF-384\n *\n * @param {String} accountName\n * @return {boolean}\n */\n isTestTenantByAccountName(accountName) {\n const TEST_TENANT_PATTERN = /^atl-vertigo--(((?:jira|j|rolex|stg)+-jira-branch-[^-]+--)|(conf-(conf|stg)-proxy-\\w+--[\\w-]+)).*$/;\n return TEST_TENANT_PATTERN.test(accountName);\n },\n\n validateCNAS: function (name) {\n const accountName = name.toLowerCase();\n const basePath = hamletApi.getCnasPath();\n const options = {\n url: `${basePath}/shopping-cart/name-availability/queries`,\n method: \"POST\",\n headers: {\n ContentType: \"application/json\"\n },\n data: {\n cloudName: accountName\n }\n };\n\n return hamletApi\n .request(options)\n .then(response => {\n if (response.data && response.data.availability) {\n if (response.data.availability === \"AVAILABLE\") {\n return Promise.resolve({ available: true });\n }\n }\n return Promise.resolve({ available: false });\n })\n .catch(() => {\n return this.validateCofsAccountName(accountName);\n });\n },\n\n validateCofsAccountName: function (name) {\n const accountName = name.toLowerCase();\n const basePath = hamletApi.getCofsPath();\n const options = {\n url: `${basePath}/nameAvailability`,\n method: \"POST\",\n headers: {\n ContentType: \"application/json\"\n },\n data: {\n name: accountName\n }\n };\n\n return hamletApi\n .request(options)\n .then(response => {\n if (response.data && response.data.success) {\n return Promise.resolve({ available: true });\n }\n return Promise.resolve({ available: false });\n })\n .catch(() => {\n return Promise.resolve({ available: false });\n });\n },\n\n validateCoupon: function (coupon) {\n const options = {\n url: \"/validateCoupon\",\n method: \"POST\",\n data: {\n coupon: coupon\n }\n };\n\n const useCofsPath = true;\n let result = { success: false };\n\n return hamletApi\n .hamletRequest(options, useCofsPath)\n .then(response => {\n if (response.status === 200) {\n result.success = true;\n result.eligibleProducts = response.data.eligibleProducts;\n\n return Promise.resolve(result);\n }\n return Promise.reject(result);\n })\n .catch(() => {\n return Promise.reject(result);\n });\n },\n\n createCloud: function (cofsData, submitThroughBxp = false, isLoggedIn = false) {\n const options = {\n url: \"/cloud\",\n method: \"POST\",\n data: cofsData,\n authenticated: true,\n headers: {},\n };\n\n const useCofsPath = true;\n const defaultError = {\n createRequest: \"Cloud request error\"\n };\n\n if (submitThroughBxp) {\n options.url = `${\n isLoggedIn ? Environment.getAPIPrivateURL() : ''\n }/cloud/signup${\n isLoggedIn ? '' : 'Anon'\n }`;\n\n const atlCookies = {\n _ga: storage.getCookie('_ga') || '',\n seg_xid: storage.getLocalStorage('seg_xid') || '',\n __atl_path: storage.getCookie('__atl_path') || '',\n ajs_anonymous_id: storage.getCookie('ajs_anonymous_id') || '',\n optimizelyBuckets: storage.getCookie('optimizelyBuckets') || '',\n optimizelySegments: storage.getCookie('optimizelySegments') || '',\n optimizelyEndUserId: storage.getCookie('optimizelyEndUserId') || '',\n };\n\n options.headers['atl-cookies'] = JSON.stringify(atlCookies);\n\n return hamletApi.bxpRequest(options).then(response => {\n if (response.data && response.data.progressUri) {\n return Promise.resolve(response.data);\n }\n return Promise.reject(defaultError);\n })\n .catch(() => {\n return;\n });\n }\n // Bxp Express does not need this header\n options.headers[\"X-ATL-SOURCE\"] = window.location.href;\n\n return hamletApi\n .hamletRequest(options, useCofsPath)\n .then(response => {\n if (response.data && response.data.progressUri) {\n return Promise.resolve(response.data);\n }\n\n return Promise.reject(defaultError);\n })\n .catch(() => {\n return Promise.reject(defaultError);\n });\n },\n\n checkCloudNameMin: function (value) {\n return value.length >= ACCOUNT_NAME_MIN;\n },\n\n checkCloudNameMax: function (value) {\n return value.length < ACCOUNT_NAME_MAX;\n },\n\n isValidCloudNamePattern: function (value) {\n return (\n value.length >= ACCOUNT_NAME_MIN &&\n /^[a-z0-9]+[a-z0-9-]+[a-z0-9]+$/.test(value)\n );\n },\n\n isCloudIdAnnual: function (cloudId, userId) {\n const options = {\n url: \"/cloud\",\n method: \"GET\",\n authenticated: true\n };\n const defaultError = {\n validationRequest: \"isCloudIdAnnual request error\"\n };\n\n options.url += `/isCloudIdAnnual/${cloudId}?user_id=${userId}`;\n\n return hamletApi\n .bxpRequest(options)\n .then(response => {\n if (\n response.data &&\n typeof response.data.isCloudIdAnnual === \"boolean\"\n ) {\n return Promise.resolve(response.data.isCloudIdAnnual);\n }\n return Promise.reject(defaultError);\n })\n .catch(() => {\n return Promise.reject(defaultError);\n });\n },\n\n mapValidateData: function (formData) {\n let result = {\n contactDetails: {\n email: formData.email,\n firstName: formData.firstName,\n lastName: formData.lastName\n },\n organisationDetails: null,\n onDemandAccountDetails: {\n accountName: formData.accountName,\n adminUsername: \"admin\",\n adminPassword: formData.aodPass,\n productKeys: formData.productKeys,\n timeZone: jstz.determine().name()\n },\n termsOfServiceAccepted: true,\n creditCardDetails: null\n };\n\n return result;\n },\n\n mapCofsData: function (formData, features) {\n let productData = [];\n _.each(formData.productKeys, function (productKey) {\n let thisProduct = {\n product: productKey,\n accountName: formData.accountName\n };\n\n if (formData.edition) {\n thisProduct.edition = formData.edition;\n }\n\n if (formData.migrationSourceUuid) {\n thisProduct.migrationSourceUuid = formData.migrationSourceUuid;\n }\n\n productData.push(thisProduct);\n });\n\n let result = {\n adminUsername: \"admin\",\n adminPassword: formData.aodPass,\n cloudName: formData.accountName,\n email: formData.email,\n timezone: jstz.determine().name(),\n firstName: formData.firstName,\n lastName: formData.lastName,\n products: productData\n };\n\n // Extract templateid and optimizely cohorts for signupContext, if available\n let signupContext = {};\n // Check for templateid param to pass in to provisioning\n if (\n formData.templateId &&\n this.isValidTemplateId(formData.templateId)\n ) {\n signupContext.templateId = formData.templateId;\n\n if (!formData.productKeys.includes(ProductKey.CONFLUENCE)) {\n if (!result.advancedSettings) {\n result.advancedSettings = {};\n }\n if (!result.advancedSettings.additionalProvisioningData) {\n result.advancedSettings.additionalProvisioningData = {};\n }\n result.advancedSettings.additionalProvisioningData.hideUserSegmentation = true;\n }\n }\n\n // Check for optimizely cohorts to pass in to provisioning\n if (formData.optimizelyActiveCohorts) {\n signupContext.optimizelyCohorts = formData.optimizelyActiveCohorts;\n }\n\n if (features.enableAutogenSiteName) {\n signupContext.autogenSiteName = 1;\n result.cloudName = null;\n }\n\n if (features.enableAutogenSiteName && !features.useSocialLogin) {\n signupContext.pagePath = 'rename/site';\n }\n\n // Confluence account set up flow\n if (features.enableConfluenceAccountSetup) {\n signupContext.pagePath = 'account/setup';\n }\n\n if (features.allowResendVerificationEmail && signupContext.pagePath) {\n var resendEmailData = {};\n resendEmailData['pagePath'] = signupContext.pagePath;\n sessionStorage.setItem(RESEND_DATA, JSON.stringify(resendEmailData));\n }\n\n if (Object.entries(signupContext).length > 0) {\n // Enforce COFS /cloud API restriction on signupContext size\n // see: https://cofs.prod.public.atl-paas.net/api.html#cloud_post\n let signupContextString = JSON.stringify(signupContext);\n if (signupContextString.length <= SIGNUP_CONTEXT_MAX_LENGTH) {\n result.signupContext = signupContextString;\n } else {\n // Please log to let us know when signupContext field is empty because it was too long\n // Waiting on a front end logger. https://hello.atlassian.net/browse/WPI-344\n // Backlog project to add log event when logger is available: https://hello.atlassian.net/browse/NUX-123\n }\n }\n\n // Coupon will be added to formdata if available\n if (formData.coupon) {\n result.coupon = formData.coupon;\n }\n\n // Consent will be added to formdata if available\n if (formData.consent) {\n result.consent = formData.consent;\n }\n\n // Data Region and Initial Product URL for Opsgenie Signup will be added if available\n if (formData.dataRegion || formData.initialProductURL) {\n const { dataRegion, initialProductURL } = formData;\n if (!result.advancedSettings) {\n result.advancedSettings = {};\n }\n if (!result.advancedSettings.additionalProvisioningData) {\n result.advancedSettings.additionalProvisioningData = {};\n }\n if (dataRegion) {\n result.advancedSettings.additionalProvisioningData.dataRegion = dataRegion;\n }\n if (initialProductURL) {\n result.advancedSettings.initialProductURL = initialProductURL;\n }\n }\n\n // Statuspage Signups\n const isStatusPageSignup = productData.some(\n ({ product }) => product === 'statuspage',\n );\n\n if (isStatusPageSignup) {\n if (!result.advancedSettings) {\n result.advancedSettings = {};\n }\n if (!result.advancedSettings.additionalProvisioningData) {\n result.advancedSettings.additionalProvisioningData = {};\n }\n result.advancedSettings.initialProductURL = (\n Environment.isStaging()\n ? 'manage.statuspagestaging.com'\n : 'manage.statuspage.io'\n );\n result.advancedSettings.additionalProvisioningData.signupLocation = 'WAC';\n result.advancedSettings.additionalProvisioningData.spProduct = 'public';\n }\n\n // Add Captcha Token\n if (formData.responseToken && features.submitThroughBxp) {\n result.gRecaptchaResponse = formData.responseToken;\n }\n\n // map experiment data to experiment object for cofs create endpoint\n if (formData.experimentKey || formData.experimentAttribute) {\n result.experiment = {};\n\n if (formData.experimentKey) {\n result.experiment.experimentKey = formData.experimentKey;\n }\n if (formData.experimentAttribute) {\n result.experiment.experimentAttribute =\n formData.experimentAttribute;\n }\n }\n\n // @see https://extranet.atlassian.com/jira/browse/WCF-384\n if (this.isTestTenant(formData.accountName)) {\n result.testingPurposes = true;\n }\n\n return result;\n },\n\n isValidTemplateId: function (templateString) {\n const validTestPattern = /^([\\\\.:a-zA-Z0-9_-]+)$/;\n return templateString && validTestPattern.test(templateString);\n },\n\n /**\n * Progress Uri structure includes request id needed for confirmation page status check\n * Object data: Progress json data\n * String progressUri: e.g. /cloud//status/\n */\n getRequestId: function (progressUri) {\n const pattern = new RegExp(/cloud\\/[\\w-]+\\/status\\/([\\w-]+)$/);\n const matches = pattern.exec(progressUri);\n\n return matches ? matches[1] : \"\";\n }\n };\n }\n}\n","import * as $ from \"jquery\";\nimport imkt from '../../imkt';\nimport tracking from '../../utils/tracking';\nimport storage from \"../../utils/storage\";\n\nexport default class CloudGrowthTracker {\n\n constructor() {\n this.VERSION = 'prd';\n }\n\n sendTrackVisitCounter(cookieName) {\n let visitCounter = storage.getCookie(cookieName) || 0;\n\n if (visitCounter) {\n visitCounter = parseInt(visitCounter, 10);\n }\n\n if (visitCounter < 0) {\n visitCounter = 0;\n }\n\n visitCounter++;\n storage.setCookie(cookieName, visitCounter);\n\n this.sendTrack('signupPageVisitCount', { visitCount: visitCounter} );\n }\n\n sendTrackSubmitCounter(cookieName) {\n let submitCounter = storage.getCookie(cookieName) || 0;\n\n if (submitCounter) {\n submitCounter = parseInt(submitCounter, 10);\n }\n\n if (submitCounter < 0) {\n submitCounter = 0;\n }\n\n submitCounter++;\n storage.setCookie(cookieName, submitCounter);\n\n this.sendTrack('repeat_submit', { 'submitCount': submitCounter});\n }\n\n sendTrackSubmitSuccess(cookieName) {\n\n let counter = storage.getCookie(cookieName) || 0;\n\n if (counter) {\n counter = parseInt(counter, 10);\n }\n\n if (counter < 0) {\n counter = 0;\n }\n\n counter++;\n storage.setCookie(cookieName, counter);\n\n this.sendTrack('form_submit_signup_success', { 'submitCount': counter});\n }\n\n sendTrack(eventName, props) {\n // standardize event name\n const standardEventName = `grow.expevt.prd.${eventName}`;\n\n this.sendToOptimizely(standardEventName);\n this.sendToGAS(standardEventName, props);\n this.sendToSegmentJS(standardEventName, props);\n }\n\n sendToOptimizely(eventName) {\n if (window.optimizely) {\n\n window.optimizely.push({\n type: \"event\",\n eventName: eventName\n });\n }\n }\n\n sendToSegmentJS(e_name, props) {\n let data = {\n 'eventAction': e_name,\n 'product': 'wac',\n 'page_path': window.location.pathname,\n 'page_url': window.location.href,\n 'referrer': document.referrer,\n 'version': this.VERSION\n };\n\n if (props) {\n Object.assign(data, props);\n }\n\n try {\n tracking.trackEvent(e_name, data);\n } catch(e) {\n this.sendToGAS(`ERR: ${e.toString()}` );\n }\n }\n\n sendToSegmentHTTP(e_name, props) {\n const anonId = decodeURIComponent(storage.getCookie('ajs_user_id')).replace(/\"/g, '');\n\n let data = {\n 'anonymousId': anonId,\n 'event': e_name,\n 'timestamp': new Date(),\n 'writeKey': 'kiv6wyh2nw',\n 'properties': {\n 'product': 'wac',\n 'page_path': window.location.pathname,\n 'page_url': window.location.href,\n 'referrer': document.referrer,\n 'version': this.VERSION\n }\n };\n\n if (props) {\n Object.assign(data.properties, props);\n }\n\n $.ajax({\n type: 'POST',\n url: 'https://api.segment.io/v1/track',\n data: JSON.stringify(data),\n contentType: 'application/json'\n })\n .fail( () => {\n this.sendToOptimizely('segmentHTTP_fail');\n this.sendToGAS('segmentHTTP_fail');\n });\n }\n\n sendToGAS() {\n // Noop - GasV2 events are deprecated; 'https://analytics.atlassian.com/analytics/event' endpoint throws 422.\n }\n}\n","export default class Experiments {\n\n constructor(imktStorageUtils) {\n const CUSTOM_EXPERIMENTS_ITEM_KEY = \"custom.experiment.opts\";\n let storageUtils = imktStorageUtils;\n\n return {\n\n experimentKey: undefined,\n experimentAttribute: undefined,\n simplifiedAdminPassword: undefined,\n bypassEmailCheck: undefined,\n blockRedirect: undefined,\n\n init: function() {\n // nothing at the moment\n },\n\n insertExperimentProperties: function (data) {\n\n if (this.experimentKey) {\n Object.assign(data, {experimentKey: this.experimentKey});\n }\n\n if (this.experimentAttribute) {\n Object.assign(data, {experimentAttribute: this.experimentAttribute});\n }\n\n if (this.simplifiedAdminPassword) {\n Object.assign(data.onDemandAccountDetails, {adminPassword: this.simplifiedAdminPassword});\n }\n },\n\n getExperimentsNotificationOpts: function(accountName, productKeys) {\n var opts = {\n onDemandAccountName: accountName,\n onDemandProductKeys: productKeys,\n customExperimentOpts: this.getExperimentDataStored()\n };\n\n return opts;\n },\n\n getExperimentDataStored: function() {\n let data = storageUtils.getLocalStorage(CUSTOM_EXPERIMENTS_ITEM_KEY);\n\n if (data) {\n return JSON.parse(data);\n }\n return null;\n },\n\n clearExperimentDataStored: function() {\n storageUtils.removeLocalStorage(CUSTOM_EXPERIMENTS_ITEM_KEY);\n },\n\n enableEmailCheckBypass: function() {\n // PUR-8609: for users not logged in, bypass check email route\n this.bypassEmailCheck = true;\n },\n\n enableSimplifiedAdminPassword: function() {\n // PUR-6032: generate random password to prefill form for validation purposes\n this.simplifiedAdminPassword = Math.random().toString(36);\n },\n\n enableBlockRedirect: function() {\n this.blockRedirect = true;\n },\n\n setExperimentKey: function (key) {\n this.experimentKey = key;\n },\n\n setExperimentAttribute: function (attr) {\n this.experimentAttribute = attr;\n }\n\n };\n }\n}\n","export default class PasswordStrength {\n\n constructor() {\n const zxcvbnUrl = '//common-admin-cdn.atlassian.com/zxcvbn/f2a8cda/zxcvbn.js';\n\n return {\n\n init: function(inputElement, passwordScores) {\n this.passwordElement = inputElement;\n this.passwordScores = passwordScores; // CMS driven labels\n\n if (typeof window.zxcvbn === 'undefined') {\n // load zxcvbn script\n let zxcvbnScript = document.createElement('script');\n zxcvbnScript.type = 'text/javascript';\n zxcvbnScript.charset = 'utf-8';\n zxcvbnScript.async = true;\n zxcvbnScript.src = zxcvbnUrl;\n document.getElementsByTagName(\"head\")[0].appendChild(zxcvbnScript);\n }\n },\n\n evaluatePasswordStrength: function(val) {\n return typeof window.zxcvbn !== 'undefined' ? window.zxcvbn(val).score : null;\n },\n\n };\n }\n}\n","import _ from 'underscore';\nimport Environment from \"../../common/environment\";\nimport Tracking from '../../common/tracking';\nimport OriginTracing from '@atlassiansox/origin-tracing';\nimport tracking from '../../utils/tracking';\n\nexport default class SocialLogin {\n constructor(\n baseDomain,\n baseIdDomain,\n hamlet,\n jQuery,\n imktUtils,\n localeParam,\n urlRenameSitePath\n ) {\n\n const URL_CONFIRMATION_PATH = '/ondemand/signup/confirmation';\n const URL_LOGIN_GOOGLE_PATH = '/login/initiate/google';\n const URL_LOGIN_MICROSOFT_PATH = '/login/initiate/microsoft';\n const URL_RENAME_SITE_PATH = urlRenameSitePath;\n const URL_SIGNUP_SOCIAL_LOGIN_PATH = '/try/cloud/signup-social-login';\n const URL_TRY_CLOUD_SIGNUP_PATH = '/try/cloud/signup';\n const URL_IDENTITY_LOGOUT_PATH = '/logout';\n\n const SIGNUP_ATLLOGO_CONTAINER_CLASS = 'atl-logo';\n const SIGNUP_CONTENT_CONTAINER_CLASS = 'signup-content';\n const SOCIAL_LOGIN_WAIT_CONTAINER_CLASS = 'social-login-wait-banner';\n const SOCIAL_LOGIN_ERROR_CONTAINER_CLASS = 'social-login-error-display';\n const SOCIAL_LOGIN_CHECKING_WAIT_TEXT_CLASS = 'checking-wait-text';\n const SOCIAL_LOGIN_PREPARING_WAIT_TEXT_CLASS = 'preparing-wait-text';\n const SOCIAL_LOGIN_ERROR_TRYAGAIN_ID = '#try-signup-again';\n\n const CMS_PAGE_VARIANT_SOCIAL_LOGIN = 'signup_social_login';\n\n const WAC_SIGNUP_GOOGLE = 'wac-signup-google';\n const loginGoogleOrigin = new OriginTracing({ product: WAC_SIGNUP_GOOGLE });\n\n const WAC_SIGNUP_MICROSOFT = 'wac-signup-microsoft';\n const loginMicrosoftOrigin = new OriginTracing({ product: WAC_SIGNUP_MICROSOFT });\n\n const WAC_TRY_SIGNUP = 'wac-try-signup';\n const trySignupOrigin = new OriginTracing({ product: WAC_TRY_SIGNUP });\n\n const SS_SOCIAL_LOGIN_CLOUDDATA_KEY = 'w.s.l.c.d';\n\n return {\n init: function () {\n if (!this.detectSocialLoginPage()) {\n this.sessionStorageClearCloudData();\n }\n },\n\n sessionStorageSaveCloudData: function (userDetails, cloudDetails) {\n window.sessionStorage.setItem(SS_SOCIAL_LOGIN_CLOUDDATA_KEY, window.btoa(JSON.stringify({ userDetails, cloudDetails })));\n },\n\n sessionStorageGetCloudData: function () {\n const cloudData = window.sessionStorage.getItem(SS_SOCIAL_LOGIN_CLOUDDATA_KEY);\n if (cloudData) {\n try {\n return JSON.parse(window.atob(cloudData));\n } catch (e) {\n return JSON.parse(window.atob({ cloudData }));\n }\n }\n return undefined;\n },\n\n sessionStorageClearCloudData: function () {\n window.sessionStorage.removeItem(SS_SOCIAL_LOGIN_CLOUDDATA_KEY);\n },\n\n /**\n * Determine search params\n * - if the form settings have products AND/OR edition set\n * - we are going to replace the current paraems with the dialog's\n */\n determineSearchParams: function (products, edition) {\n var urlParams = new URLSearchParams(this.getCurrentSearchParam());\n\n // delete bundle\n urlParams.delete(\"bundle\");\n urlParams.set('product', products);\n\n if (edition) {\n urlParams.set('edition', edition);\n }\n return urlParams.toString();\n },\n\n /**\n * Render social login UI components:\n * - Continue with Google\n * - Sign up with email\n */\n renderSocialLogin: function ({\n enableContinueWithGoogle,\n enableContinueWithMicrosoft,\n labels,\n products,\n edition\n }) {\n const self = this;\n const searchParams = self.determineSearchParams(products, edition);\n if (enableContinueWithGoogle && enableContinueWithMicrosoft) {\n self.renderGoogleAndMicrosoftLogin(labels, searchParams);\n }\n else if (enableContinueWithGoogle) {\n self.renderGoogleLogin(labels, searchParams);\n }\n else if (enableContinueWithMicrosoft) {\n self.renderMicrosoftLogin(labels, searchParams);\n }\n },\n\n /**\n * Render Google login UI components:\n * - Continue with Google\n * - Sign up with email\n */\n renderGoogleLogin: function (labels, searchParams) {\n const self = this;\n\n const formContainer = jQuery('.imkt--cloud-signup');\n const socialHeading = formContainer.find('.heading--social-show');\n formContainer.addClass('social-login');\n\n // Hide the full signup form\n const fullForm = jQuery('.imkt--cloud-signup__form');\n fullForm.detach();\n fullForm.addClass('hidden');\n\n // Construct the new social login form from template\n const googleSignInFormTemplate = _.template(jQuery('.template--cloud-signup__form--continue-with-google').html());\n const newForm = jQuery('
');\n newForm\n .append(googleSignInFormTemplate({ labels: labels }))\n .append(fullForm)\n .insertAfter('.imkt--cloud-signup .heading--products');\n\n // Continue with Google button\n const googleSigninButton = newForm.find('#google-signup');\n googleSigninButton.prop('href', this.getContinueWithGoogleUrl(searchParams));\n googleSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Google Button\", {}, false);\n tracking.trackEvent(WAC_SIGNUP_GOOGLE, loginGoogleOrigin.toAnalyticsAttributes({ hasGeneratedId: true }));\n });\n\n // Continue with email button\n const emailSigninButton = newForm.find('.btn.email-signup');\n\n // WCF-1796 we need to add more bottom margin to account for the heading\n // TO-DO add same treatment to Microsoft and both in the furture\n if (socialHeading) {\n emailSigninButton.css(\"margin-bottom\", \"20px\");\n }\n\n emailSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Email Button\", {}, false);\n formContainer.addClass('form-shown');\n emailSigninButton.addClass('clicked');\n fullForm.removeClass('hidden');\n socialHeading.remove();\n });\n },\n\n\n /**\n * Render Microsoft login UI components:\n * - Continue with Microsoft\n * - Sign up with email\n */\n renderMicrosoftLogin: function (labels, searchParams) {\n const self = this;\n\n const formContainer = jQuery('.imkt--cloud-signup');\n formContainer.addClass('social-login');\n\n // Hide the full signup form\n const fullForm = jQuery('.imkt--cloud-signup__form');\n fullForm.detach();\n fullForm.addClass('hidden');\n\n // Construct the new social login form from template\n const microsoftSignInFormTemplate = _.template(jQuery('.template--cloud-signup__form--continue-with-microsoft').html());\n const newForm = jQuery('
');\n newForm\n .append(microsoftSignInFormTemplate({ labels: labels }))\n .append(fullForm)\n .insertAfter('.imkt--cloud-signup .heading--products');\n\n // Continue with Microsoft button\n this.renderMicrosoftButton(newForm, searchParams);\n\n // Continue with email button\n const emailSigninButton = newForm.find('.btn.email-signup');\n emailSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Email Button\", {}, false);\n formContainer.addClass('form-shown');\n emailSigninButton.addClass('clicked');\n fullForm.removeClass('hidden');\n });\n },\n\n /**\n * Render Google and Microsoft login UI components:\n * - Continue with Google\n * - Continue with Microsoft\n * - Sign up with email\n */\n renderGoogleAndMicrosoftLogin: function (labels, searchParams) {\n const self = this;\n\n const formContainer = jQuery('.imkt--cloud-signup');\n formContainer.addClass('social-login');\n\n // Hide the full signup form\n const fullForm = jQuery('.imkt--cloud-signup__form');\n fullForm.detach();\n fullForm.addClass('hidden');\n\n // Construct the new social login form from template\n const socialSignInFormTemplate = _.template(jQuery('.template--cloud-signup__form--continue-with-google-and-microsoft').html());\n const newForm = jQuery('
');\n newForm\n .append(socialSignInFormTemplate({ labels: labels }))\n .append(fullForm)\n .insertAfter('.imkt--cloud-signup .heading--products');\n\n // Continue with Google button\n this.renderGoogleButton(newForm, searchParams);\n\n // Continue with Microsoft button\n this.renderMicrosoftButton(newForm, searchParams);\n\n // Continue with email button\n const emailSigninButton = newForm.find('.btn.email-signup');\n emailSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Email Button\", {}, false);\n formContainer.addClass('form-shown');\n emailSigninButton.addClass('clicked');\n fullForm.removeClass('hidden');\n });\n },\n\n /**\n * Render Continue with Google button\n */\n renderGoogleButton: function (newForm, searchParams) {\n const self = this;\n\n // Continue with Google button\n const googleSigninButton = newForm.find('#google-signup');\n googleSigninButton.prop('href', this.getContinueWithGoogleUrl(searchParams));\n googleSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Google Button\", {}, false);\n tracking.trackEvent(WAC_SIGNUP_GOOGLE, loginGoogleOrigin.toAnalyticsAttributes({ hasGeneratedId: true }));\n });\n },\n\n /**\n * Render Continue with Microsoft button\n */\n renderMicrosoftButton: function (newForm, searchParams) {\n const self = this;\n\n // Continue with Microsoft button\n const microsoftSigninButton = newForm.find('#microsoft-signup');\n microsoftSigninButton.prop('href', this.getContinueWithMicrosoftUrl(searchParams));\n microsoftSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Microsoft Button\", {}, false);\n tracking.trackEvent(WAC_SIGNUP_MICROSOFT, loginMicrosoftOrigin.toAnalyticsAttributes({ hasGeneratedId: true }));\n });\n },\n\n /**\n * Determine whether the current flow is part of a social login\n */\n detectSocialLoginPage: function () {\n return (window.location.pathname.indexOf(URL_SIGNUP_SOCIAL_LOGIN_PATH) >= 0 && window.cmsPageVariant === CMS_PAGE_VARIANT_SOCIAL_LOGIN);\n },\n\n /**\n * Determine if the user is on signup-social-login page with email, firstName and lastName info\n */\n isValidSocialLoginUser: function (user) {\n const isUserLoggedIn = hamlet.isLoggedIn();\n const isValidUser = (\n this.detectSocialLoginPage() &&\n hamlet.isLoggedIn() &&\n user && user.myDetails &&\n user.myDetails.email &&\n user.myDetails.firstName &&\n user.myDetails.lastName);\n if (!isValidUser) {\n this.sendTrackingAnalytics(\"Detected Invalid User\", { isUserLoggedIn });\n }\n return isValidUser;\n },\n\n /**\n * Determine if the user is in social login flow\n */\n isSocialLogin: function (user, productKeys, newUsersOnlyRestriction, existingUserCloudData) {\n if (this.detectSocialLoginPage()) {\n this.sendTrackingAnalytics(\"Viewed Checking Page\", { productKeys });\n\n try {\n const cloudData = this.sessionStorageGetCloudData();\n if (cloudData) {\n if (cloudData.cloudDetails && cloudData.userDetails &&\n user.myDetails && cloudData.userDetails.email === user.myDetails.email) {\n // Back to this signup social login page using the same account,\n // should proceed to rename site page directly.\n this.sendTrackingAnalytics(\"Detected Back Same Account\", { cloudDetails: cloudData.cloudDetails });\n if (existingUserCloudData) {\n existingUserCloudData.cloudDetails = cloudData.cloudDetails;\n }\n return true;\n } else {\n // Back to this signup social login page using a different account,\n // should proceed to N2E signup form.\n this.sendTrackingAnalytics(\"Detected Back Diff Account\", { cloudDetails: cloudData.cloudDetails });\n }\n } else {\n const eligibleSites = this.getEligibleSites(user, productKeys);\n if (eligibleSites && eligibleSites.length) {\n // Has eligible sites -> N2E\n const eventProps = { numEligibleSites: eligibleSites.length, productKeys };\n this.sendTrackingAnalytics(\"Found Eligible Sites\", eventProps);\n } else {\n // No eligible sites, check all existing sites\n const existingSites = hamlet.getSites();\n if (existingSites && existingSites.length) {\n // Has existing sites but none are eligible for the target product\n const eventProps = { numExistingSites: existingSites.length, productKeys };\n this.sendTrackingAnalytics(\"Found Existing Sites\", eventProps);\n return !newUsersOnlyRestriction;\n } else {\n // No existing sites -> N2N\n this.sendTrackingAnalytics(\"Found No Sites\", {});\n return true;\n }\n }\n }\n // eslint-disable-next-line no-empty\n } catch (e) { }\n\n // A N2E user is detected\n this.showSignupForm();\n }\n\n return false;\n },\n\n /**\n * Display the signup form.\n */\n showSignupForm: function () {\n // Hide social login containers\n this.updateElementsByClassName(SOCIAL_LOGIN_WAIT_CONTAINER_CLASS, 'display', 'none');\n this.updateElementsByClassName(SOCIAL_LOGIN_ERROR_CONTAINER_CLASS, 'display', 'none');\n\n // Show signup form containers\n this.updateElementsByClassName(SIGNUP_ATLLOGO_CONTAINER_CLASS, 'display', 'block');\n this.updateElementsByClassName(SIGNUP_CONTENT_CONTAINER_CLASS, 'display', 'block');\n\n this.sendTrackingAnalytics(\"Viewed Signup Form\", {});\n },\n\n /**\n * Replace checking message with preparing message\n */\n showPreparingCloudMessage: function () {\n // Hide checking... text\n this.updateElementsByClassName(SOCIAL_LOGIN_CHECKING_WAIT_TEXT_CLASS, 'display', 'none');\n\n // Show preparing... text\n this.updateElementsByClassName(SOCIAL_LOGIN_PREPARING_WAIT_TEXT_CLASS, 'display', 'block');\n },\n\n /**\n * Display the sogical login error message\n */\n showSocialLoginError: function (errorType) {\n try {\n // Update try signup again href\n const self = this;\n const linkTrySignupAgain = jQuery(`${SOCIAL_LOGIN_ERROR_TRYAGAIN_ID} a`);\n linkTrySignupAgain.prop('href', this.getTrySignupAgainUrl());\n linkTrySignupAgain.click(() => {\n self.sendTrackingAnalytics(\"Clicked Try Signup Button\", {}, false);\n tracking.trackEvent(WAC_TRY_SIGNUP, trySignupOrigin.toAnalyticsAttributes({ hasGeneratedId: true }));\n });\n // eslint-disable-next-line no-empty\n } catch (e) { }\n\n // Hide social login wait container\n this.updateElementsByClassName(SOCIAL_LOGIN_WAIT_CONTAINER_CLASS, 'display', 'none');\n\n // Hide signup form container\n this.updateElementsByClassName(SIGNUP_CONTENT_CONTAINER_CLASS, 'display', 'none');\n\n // Show atlassian logo and social login error containers\n this.updateElementsByClassName(SIGNUP_ATLLOGO_CONTAINER_CLASS, 'display', 'block');\n this.updateElementsByClassName(SOCIAL_LOGIN_ERROR_CONTAINER_CLASS, 'display', 'block');\n\n this.sendTrackingAnalytics(\"Viewed Error Message\", { errorType });\n },\n\n /**\n * Update the html elements style by class name\n */\n updateElementsByClassName: function (className, stylePropName, stylePropValue) {\n try {\n const allElems = document.getElementsByClassName(className);\n for (let i = 0; i < allElems.length; i++) {\n allElems[i].style[stylePropName] = stylePropValue;\n }\n // eslint-disable-next-line no-empty\n } catch (e) { }\n },\n\n /**\n * Determine the eligible sites for the user to add the new product\n */\n getEligibleSites: function (user, productKeys) {\n let eligibleSites = [];\n\n try {\n if (!user || !hamlet.isLoggedIn()) {\n return eligibleSites;\n }\n\n // sites as Free edition or regular trial should be eligible to be overlaid\n const extendedTrialOverridableSites = hamlet.getExtendedTrialAvailableSites();\n\n // filter users sites by products keys being signed up for\n eligibleSites = hamlet.getSites().filter((site) => {\n return !_.some(site.products, (product) => productKeys.indexOf(product) > -1) || extendedTrialOverridableSites.includes(site.cloudId);\n });\n // eslint-disable-next-line no-empty\n } catch (e) { }\n\n return eligibleSites;\n },\n\n getCurrentSearchParam: function () {\n const location = Environment.getWindowLocation();\n const internationalSubdomain = Environment.getInternationalSubdomain();\n\n let search = location.search;\n if (internationalSubdomain && !localeParam) {\n search = search.length ? `${search}&lang=${internationalSubdomain}` : `?lang=${internationalSubdomain}`;\n }\n\n return search;\n },\n\n /**\n * Compute the Identity login with Google Url.\n */\n getContinueWithGoogleUrl: function (searchParams) {\n // Get Identity initiate Google url\n const loginGoogleUrl = `${baseIdDomain}${URL_LOGIN_GOOGLE_PATH}?`;\n\n // Get WAC signup social login url\n const signupSocialUrl = `${baseDomain}${URL_SIGNUP_SOCIAL_LOGIN_PATH}?${searchParams}`;\n\n const cobranding = `application=wac`;\n const atlOrigin = `&atlOrigin=${loginGoogleOrigin.encode()}`;\n const continueUrl = `&continue=${encodeURIComponent(signupSocialUrl)}`;\n return `${loginGoogleUrl}${cobranding}${atlOrigin}${continueUrl}`;\n },\n\n /**\n * Compute the Identity login with Microsoft Url.\n */\n getContinueWithMicrosoftUrl: function (searchParams) {\n // Get Identity initiate Microsoft url\n const loginMicrosoftUrl = `${baseIdDomain}${URL_LOGIN_MICROSOFT_PATH}?`;\n\n // Get WAC signup social login url\n const signupSocialUrl = `${baseDomain}${URL_SIGNUP_SOCIAL_LOGIN_PATH}?${searchParams}`;\n\n const cobranding = `application=wac`;\n const atlOrigin = `&atlOrigin=${loginMicrosoftOrigin.encode()}`;\n const continueUrl = `&continue=${encodeURIComponent(signupSocialUrl)}`;\n return `${loginMicrosoftUrl}${cobranding}${atlOrigin}${continueUrl}`;\n },\n\n /**\n * Compute the site rename page Url.\n */\n getRenameSiteUrl: function ({ cloudId, cloudName, requestId, productKeys, isPermitted }) {\n // Build redirect confirmation url (user segmentation)\n const confirmationParams = {\n \"ondemandurl\": cloudName,\n \"products\": productKeys.join(\",\"),\n \"cloudId\": cloudId,\n \"requestId\": requestId,\n };\n const confirmationUrlParams = jQuery.param(confirmationParams);\n const confirmationUrl = baseDomain + URL_CONFIRMATION_PATH + \"?\" + confirmationUrlParams;\n\n // Build rename site url\n const renameSiteParams = {\n \"cloudId\": cloudId,\n \"requestId\": requestId,\n \"redirecturl\": encodeURIComponent(confirmationUrl),\n \"isPermitted\": isPermitted,\n };\n const renameSiteUrlParams = jQuery.param(renameSiteParams);\n return `${baseDomain}${URL_RENAME_SITE_PATH}?${renameSiteUrlParams}`;\n },\n\n /**\n * Computes WAC try cloud signup Url\n */\n getWacTryCloudSignupUrl: function () {\n return `${baseDomain}${URL_TRY_CLOUD_SIGNUP_PATH}${this.getCurrentSearchParam()}`;\n },\n\n /**\n * Compute try signup again Url.\n */\n getTrySignupAgainUrl: function () {\n // Get Identity ATL account logout url\n const logoutAtlUrl = `${baseIdDomain}${URL_IDENTITY_LOGOUT_PATH}?`;\n\n // Get WAC try cloud signup url\n const trySignupUrl = this.getWacTryCloudSignupUrl();\n\n const atlOrigin = `atlOrigin=${trySignupOrigin.encode()}`;\n const continueUrl = `&continue=${encodeURIComponent(trySignupUrl)}`;\n return `${logoutAtlUrl}${atlOrigin}${continueUrl}`;\n },\n\n /**\n * Send analytics data.\n */\n sendTrackingAnalytics: function (eventAction, eventProps, isNonInteraction = true) {\n const anonymous_id = imktUtils.storage.getCookie('ajs_anonymous_id') || '-'; // Anonymous user, otherwise send the userID\n const opt_id = imktUtils.storage.getCookie('optimizelyEndUserId') || 'unknown';\n const cross_domain_id = imktUtils.storage.getCookie('seg_xid') || '';\n\n const eventCategory = 'cart-cloud';\n const eventLabel = 'signup-social-login';\n const optimizelyValue = `${eventCategory}.${eventLabel}.${eventAction.replace(/\\s+/g, '-').toLowerCase()}`;\n try {\n Tracking.trackAll(\"cart-cloud\", eventAction, eventLabel, { ...eventProps, anonymous_id, opt_id, cross_domain_id }, optimizelyValue, isNonInteraction);\n // eslint-disable-next-line no-empty\n } catch (e) { }\n },\n\n };\n }\n}\n","import * as $ from \"jquery\";\nimport _ from 'underscore';\nimport Tracking from \"../../common/tracking\";\n\nexport default class CombinedBundles {\n\n constructor() {\n\n const COMBINED_BUNDLE_JSW =\n {name: \"Jira Software\", feature: \"Agile project management\", bundles:[\n {name:\"\", feature:\"\", isPopular: false, value: \"jira-software\"},\n {name: \"Confluence\", feature: \"documentation\", isPopular: true, value: \"jira-software-confluence\"},\n {name: \"Jira Service Desk\", feature: \"IT service management\", isPopular: false, value: \"jira-software-jira-service-desk\"}\n ]};\n\n const COMBINED_BUNDLE_CONFLUENCE =\n {name: \"Confluence\", feature: \"Document collaboration\", bundles:[\n {name:\"\", feature:\"\", isPopular: false, value: \"confluence\"},\n {name: \"Jira Software\", feature: \"agile project management\", isPopular: true, value: \"confluence-jira-software\"},\n {name: \"Jira Service Desk\", feature: \"IT service management\", isPopular: false, value: \"confluence-jira-service-desk\"}\n ]};\n\n const COMBINED_BUNDLE_JIRA_CORE =\n {name: \"Jira Core\", feature: \"Business project management\", bundles:[\n {name:\"\", feature:\"\", isPopular: false, value: \"jira-core\"},\n {name: \"Confluence\", feature: \"documentation\", isPopular: true, value: \"jira-core-confluence\"},\n ]};\n\n const COMBINED_BUNDLE_JSD =\n {name: \"Jira Service Desk\", feature: \"IT service management\", bundles:[\n {name:\"\", feature:\"\", isPopular: false, value: \"jira-service-desk\"},\n {name: \"Confluence\", feature: \"documentation collaboration\", isPopular: true, value: \"jira-service-desk-confluence\"},\n ]};\n\n const COMBINED_BUNDLE = {\n \"jira-software\": COMBINED_BUNDLE_JSW,\n \"confluence\": COMBINED_BUNDLE_CONFLUENCE,\n \"jira-core\": COMBINED_BUNDLE_JIRA_CORE,\n \"jira-service-desk\": COMBINED_BUNDLE_JSD\n }\n\n return {\n\n renderCombinedBundlesForm: function () {\n\n // url health check\n var urlParams = new URLSearchParams(window.location.search);\n if (!urlParams.get(\"edition\") || urlParams.get(\"edition\").toLocaleLowerCase() !== 'free') {\n window.location.href = '/try/cloud/signup' + window.location.search;\n Tracking.trackAll(\n \"cart-cloud\",\n \"Invalid Edition Redirect\",\n \"combined-bundles-signup-page\",\n { selectedEdition: urlParams.get(\"edition\") },\n \"cart-cloud.invalid-edition-redirect.combined-bundles-signup-page\",\n false\n );\n }\n\n // get bundle information\n var bundle = this.getBundle();\n\n // Hide the full signup form\n const fullForm = $('.trial-info-data.combined-bundles');\n fullForm.detach();\n fullForm.addClass('hidden');\n\n // Construct the new combined bundle form from template\n const combinedBundleFormTemplate = _.template($('.template--cloud-combined-bundle-feature-list').html());\n const newForm = $('
');\n newForm\n .append(combinedBundleFormTemplate({ combinedBundles: COMBINED_BUNDLE[bundle] }))\n .insertAfter('.imkt--cloud-signup .trial-info-data-combined-bundle');\n\n // set first focus and urls when user land or refresh on the page\n this.setFirstFocus();\n this.resetDownloadLink();\n\n // additional UI changers\n this.additionalUIChanges();\n\n\n },\n\n getBundle: function () {\n var bundle = new URLSearchParams(window.location.search).get(\"bundle\");\n if ( bundle === \"confluence\" || bundle === \"confluence-jira-software\" || bundle === \"confluence-jira-service-desk\"){\n return \"confluence\";\n }\n else if ( bundle === \"jira-core\" || bundle === \"jira-core-confluence\") {\n return \"jira-core\";\n }\n else if ( bundle === \"jira-service-desk\" || bundle === \"jira-service-desk-confluence\" ) {\n return \"jira-service-desk\";\n }\n else {\n return \"jira-software\";\n }\n },\n\n setFirstFocus: function () {\n var bundle = new URLSearchParams(window.location.search).get(\"bundle\");\n if (bundle === \"confluence-jira-software\" || bundle === \"jira-software-confluence\" || bundle === \"jira-core-confluence\" || bundle === \"jira-service-desk-confluence\" ){\n $('input[name=\"bundles[1]\"]').parent().addClass(\"selected\");\n $('.combined-bundle-products:nth-child(2)').addClass(\"selected\");\n }\n else if ( bundle === \"confluence-jira-service-desk\" || bundle === \"jira-software-jira-service-desk\") {\n $('input[name=\"bundles[2]\"]').parent().addClass(\"selected\");\n $('.combined-bundle-products:nth-child(3)').addClass(\"selected\");\n }\n else {\n $('input[name=\"bundles[0]\"]').parent().addClass(\"selected\");\n $('.combined-bundle-products:first-child').addClass(\"selected\");\n }\n },\n\n resetDownloadLink: function () {\n var bundle = new URLSearchParams(window.location.search).get(\"bundle\");\n var downloadLinkId = '#host_on_server_link_download';\n if ( bundle === \"confluence\" ){\n $(downloadLinkId).prop('href', \"/software/confluence/download\");\n }\n else if ( bundle === \"jira-core\") {\n $(downloadLinkId).prop('href', \"/software/jira/core/download\");\n }\n else if ( bundle === \"jira-service-desk\" ) {\n $(downloadLinkId).prop('href', \"/software/jira/service-desk/download\");\n }\n else if (bundle === \"jira-software-confluence\" || bundle === \"jira-software-jira-service-desk\" ||\n bundle === \"jira-core-confluence\" ||\n bundle === \"jira-service-desk-confluence\" ||\n bundle === \"confluence-jira-software\" || bundle === \"confluence-jira-service-desk\"){\n $(downloadLinkId).prop('href', \"/download\");\n }\n else {\n $(downloadLinkId).prop('href', \"/software/jira/download\");\n }\n },\n\n additionalUIChanges: function () {\n var bundle = new URLSearchParams(window.location.search).get(\"bundle\");\n if (bundle === \"jira-service-desk\") {\n $('.trial-info-data__features-heading').html(\"Free for up to 3 agents\");\n }\n if (bundle === \"jira-core\" || bundle === \"jira-core-confluence\") {\n $('#combined-bundles-bottom-feature-list').html(\"Accounts for 10 users · 2 GB storage · community support\")\n }\n if ( bundle === \"confluence\" || bundle === \"confluence-jira-software\" || bundle === \"confluence-jira-service-desk\"){\n $('#host_on_server_link_pricing').prop(\"href\", \"/software/confluence/pricing#feature-comparison\");\n }\n else if ( bundle === \"jira-core\" || bundle === \"jira-core-confluence\") {\n $('#host_on_server_link_pricing').prop(\"href\", \"/software/jira/core/pricing#feature-comparison\");\n }\n else if ( bundle === \"jira-service-desk\" || bundle === \"jira-service-desk-confluence\" ) {\n $('#host_on_server_link_pricing').prop(\"href\", \"/software/jira/service-desk/pricing#feature-comparison\");\n }\n }\n };\n }\n}\n","import * as $ from \"jquery\";\nimport { ConsentHubClient } from \"../common/ConsentHubV2\";\nimport Environment from \"../common/environment\";\nimport _ from \"underscore\";\nimport Hamlet from \"./modules/hamlet\";\nimport Cofs from \"./modules/cofs\";\nimport CloudGrowthTracker from \"./modules/growth-tracker\";\nimport Experiments from \"./modules/experiments\";\nimport PasswordStrength from \"./modules/passwordstrength\";\nimport SocialLogin from \"./modules/social-login\";\nimport CombinedBundles from \"./modules/combined-bundles\";\nimport { getAllOptimizelyCohortsAsObjects } from \"../common/optimizelyHelpers\";\nimport Tracking from \"../common/tracking\";\nimport { GASv2, GoogleAnalytics, Segment } from \"../common/tracking/platforms\";\nimport OriginTracing from \"@atlassiansox/origin-tracing\";\nimport retry from \"async-retry\";\nimport onThrottled from \"../utils/event\";\nimport imkt from '../imkt';\nimport storage from \"../utils/storage\";\nimport tracking from '../utils/tracking';\nimport url from '../utils/url';\n\nvar FORCE_RECAPTCHA_COOKIE = \"bxp.force.captcha\";\nvar MICROSOFT_SIGN_UP_EXPERIMENT_COOKIE = \"NUXAPOLLO-257\";\n\nvar CONFLUENCE_ACCOUNT_SETUP_EXPERIMENT_COOKIE = \"NUXAPOLLO-210\";\nvar CONFLUENCE_PRODUCT_KEY = \"confluence.ondemand\";\nconst RESEND_DATA = \"r.e.d\";\n\nimkt.cx = imkt.cx || {};\n\nconst performanceStartTime = performance.now();\n\nimkt.cx.FormCloudSignup = function (domRoot, params) {\n this.PRODUCTS_STORAGE_KEY = \"wac_cofs_products\";\n this.URL_CONFIRMATION_PATH = \"/ondemand/signup/confirmation\";\n this.URL_CHECKEMAIL_PATH = \"/ondemand/signup/checkemail\";\n this.URL_BUY_SIGNUP_PATH = \"/buy/signup\";\n this.URL_ACCOUNT_SETUP_PATH = \"/signup/account/setup\";\n\n this.STATUS_PROCESSING_COMPLETE_REVIEW_REQUIRED =\n \"PROCESSING_COMPLETE_REVIEW_REQUIRED\";\n this.STATUS_PROCESSING_COMPLETE = \"PROCESSING_COMPLETE\";\n this.STATUS_INCOMPLETE = \"INCOMPLETE\";\n this.STATUS_ERROR = \"ERROR\";\n this.ERROR_CLASS = \"has-error\";\n\n // Is a developer account for the Ecosystem developer signup flow\n this.isDeveloper = false;\n\n this.$domRoot = $(domRoot);\n this.params = params;\n this.labels = this.params.labels || {};\n\n // Set WAC Base domain\n this.baseDomain = Environment.getWacIntegrationUrl();\n\n // GDPR Enabled\n this.useGDPR = this.params.useGDPR;\n\n // Opsgenie\n this.opsgenieSignupIsActive = false;\n\n // Identify products\n this.availableProducts = this.params.availableProducts || [];\n this.possiblyPremium = this.availableProducts.some(\n (product) => product.premium_enabled === true\n );\n this.products = this.params.products || \"\";\n this.isBundle = this.params.isBundle || false;\n this.bundleData = this.params.bundleData;\n\n // Use Alternate Layout if enabled in params\n this.trialBundleData = this.params.trialBundle || null;\n this.useAlternateLayout =\n this.trialBundleData && this.trialBundleData.useTrialInfo ? true : false;\n\n this.consentLabelMarketing = this.params.consentLabelMarketing;\n\n // Id base per environment\n this.baseIdDomain = this.params.baseIdDomain || \"https://id.atlassian.com\";\n\n // Template ID\n this.templateId = this.params.templateId || this.getTemplateFromUrl();\n\n this.formData = {};\n\n this.userSubmittedWithCaptcha = false;\n this.features = {\n allowCoupon: this.params.allowCoupon || false,\n allowBitbucket: this.params.allowBitbucket || false,\n allowDeveloperMode: this.params.allowDeveloperMode || false,\n recaptcha: !!(\n this.params.allowCaptcha &&\n (Environment.isProduction() ||\n storage.getCookie(FORCE_RECAPTCHA_COOKIE) !== null)\n ),\n simpleForm: this.params.allowSimpleForm || false,\n /* Enforce Captcha for all forms */\n invisibleRecaptcha: true,\n enableAutogenSiteName: !!this.params.allowEnableAutogenSiteName,\n performanceBoost: this.params.allowPerformanceBoost || false,\n enableContinueWithGoogle:\n this.params.allowEnableContinueWithGoogle || false,\n enableContinueWithMicrosoft: !!(\n this.params.allowEnableContinueWithMicrosoft &&\n storage.getCookie(MICROSOFT_SIGN_UP_EXPERIMENT_COOKIE) !== null\n ),\n enableFirstImpressions: this.params.allowFirstImpressions || false,\n enableCombinedBundles: !!this.params.allowCombinedBundles,\n enableConfluenceAccountSetup: !!(\n this.params.allowConfluenceAccountSetup &&\n storage.getCookie(\n CONFLUENCE_ACCOUNT_SETUP_EXPERIMENT_COOKIE\n ) !== null\n ),\n allowResendVerificationEmail:\n this.params.allowResendVerificationEmail || false,\n enableAisAvailableProducts: this.params.enableAisAvailableProducts || false,\n };\n\n this.availableEditions = {\n standard: \"standard\",\n premium: \"premium\",\n free: \"free\",\n };\n this.edition = null;\n\n this.migrationSourceUuid = null;\n\n this.simplifiedSiteSelected = \"\";\n this.user = null;\n this.accounts = [];\n this.simpleFormAdminPath = (this.params.simpleFormAdminPath || \"\").trim();\n this.simpleFormExperienceVersion = (\n this.params.simpleFormExperienceVersion || \"\"\n ).trim();\n this.coupon = false;\n this.useSocialLogin = false;\n\n this.consentHub = new ConsentHubClient();\n\n this.environment = Environment.getEnvironment();\n\n // Origin IDs\n this.loginOrigin = new OriginTracing({ product: \"wac-signup-login\" });\n this.switchOrigin = new OriginTracing({ product: \"wac-signup-switch\" });\n\n // Initialize Component\n this.init();\n};\n\n// used for tracking purposes\nvar captchaFilled = false;\n\nimkt.cx.FormCloudSignup.prototype = {\n init: async function () {\n // Switch on WCF-459\n if (this.useAlternateLayout) {\n this.activateFormVariation();\n }\n\n // Cache dom queries for elements\n this.bindElements();\n\n // Update id urls for existing email accounts\n this.updateIdUrls();\n\n // Update for i18n tranlsated text\n this.updateLocaleText();\n\n this.updateFormReady();\n\n if (!this.features.simpleForm) {\n $(\".icon--cohort-pending\").remove();\n this.$domRoot.find(\".cohort-pending\").removeClass(\"cohort-pending\");\n }\n\n // Initialize base modules\n this.experiments = new Experiments(storage, _);\n this.hamlet = new Hamlet();\n this.cofs = new Cofs(\n this.baseDomain,\n this.params.baseCofsPath,\n this.hamlet,\n $,\n this.experiments,\n this.environment\n );\n this.growthTracker = new CloudGrowthTracker();\n this.pw = new PasswordStrength();\n this.socialLogin = new SocialLogin(\n this.baseDomain,\n this.baseIdDomain,\n this.hamlet,\n $,\n imkt.utils,\n this.getLocaleParam(),\n this.params.urlRenameSitePath\n );\n this.combinedBundles = new CombinedBundles($);\n this.cofs.init();\n this.pw.init();\n this.experiments.init();\n this.socialLogin.init();\n\n // Enable Developer signup flow for Atlassian Connect devs\n if (this.features.allowDeveloperMode) {\n this.isDeveloper = !!(url.getUrlParams() || {}).developer;\n if (this.isDeveloper) {\n this.experiments.setExperimentKey(\"PUR-7747\");\n this.developerWarning.show().removeClass(\"hide-all, display-none\");\n }\n }\n\n // Initialize Products\n this.selectedProducts = [];\n this.selectedAddons = [];\n this.hamletProducts = [];\n this.hamletCoreProducts = [];\n this.hamletAddonProducts = [];\n\n //Disable invisible recaptcha\n window.addEventListener(\"DOMContentLoaded\", () => {\n this.disableSubmitButton(true);\n });\n window.onbeforeunload = (e) => {\n const optimizelyValue = \"cart-cloud.page-unload\";\n const eventLabel = \"form event\";\n try {\n //if the user leaves the page before the hamlet call was completed, the event will be fired with isExistingUser = false\n const isExistingUser = this.hamlet.isLoggedIn();\n let properties = {\n existingUser: isExistingUser,\n firstNameFilled: Boolean(e.target.querySelector(\"#firstName\").value),\n lastNameFilled: Boolean(e.target.querySelector(\"#lastName\").value),\n emailFilled: isExistingUser\n ? true\n : Boolean(e.target.querySelector(\"#email\").value),\n passwordFilled: isExistingUser\n ? false\n : Boolean(e.target.querySelector(\"#aod-password\").value),\n siteNameFilled: Boolean(e.target.querySelector(\"#accountName\").value),\n reCaptchaFilled: captchaFilled,\n };\n if (Environment.isProduction())\n this.fireBeaconAnalyticsEvent(properties, false);\n Tracking.trackAll(\n \"cart-cloud\",\n \"Page unload\",\n eventLabel,\n properties,\n optimizelyValue,\n false\n );\n } catch (e) {\n if (Environment.isProduction()) this.fireBeaconAnalyticsEvent({}, true);\n Tracking.trackAll(\n \"cart-cloud\",\n \"Page unload error\",\n eventLabel,\n {},\n optimizelyValue,\n false\n );\n }\n };\n\n // Check for GDPR locale\n if (this.params.useGDPR) {\n // default config\n this.consentConfig = {\n locale: \"UNKNOWN\",\n localeRequiresMarketingCommunicationOptIn: true,\n };\n\n // get/request config from ConsentHub\n this.consentHub = new ConsentHubClient();\n try {\n this.consentConfig = await this.consentHub.requestConfig();\n } catch (_error) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"ConsentHub config request error\",\n \"cloud\",\n {},\n \"cart-cloud.consenthub.error\",\n false\n );\n }\n\n this.renderMarketingConsent(\n this.consentConfig.localeRequiresMarketingCommunicationOptIn,\n this.consentLabelMarketing\n );\n }\n\n if (this.features.allowCoupon) {\n this.checkUrlCouponKey();\n }\n\n if (this.features.recaptcha) {\n $(document).on(\"ReCaptchaReady\", () => this.renderCaptcha());\n }\n\n if (this.features.invisibleRecaptcha) {\n $(document).on(\"InvReCaptchaReady\", () => this.renderInvCaptcha());\n $(document).on(\"recaptchaApproved\", () => {\n this.submitHandler();\n });\n }\n\n this.hamlet\n .identifyProducts()\n .then(() => {\n this.setProducts();\n this.renderProductSelections();\n this.initUser();\n })\n .catch(() => {\n this.setProducts();\n this.renderProductSelections();\n this.initUser();\n });\n },\n\n initUser: function () {\n var self = this;\n\n this.hamlet\n .init(this.features.performanceBoost)\n .then(() => {\n if (!this.migrationSourceUuid) {\n return Promise.resolve();\n }\n // If migrationSourceUuid is set, we need to check in HAMLET which of the user sites\n // is eligible for it.\n const productKey = this.productKeys[0]; // ECTL is allowed only if one prod is set\n const cloudIds = this.hamlet.getSites().map((site) => site.cloudId);\n return this.hamlet.checkExtendedTrialAvailability(\n this.migrationSourceUuid,\n productKey,\n cloudIds\n );\n })\n .then(() => this.hamlet.getUser())\n .then((user) => {\n if (this.migrationSourceUuid) {\n const extendedTrialAvailability =\n this.hamlet.getExtendedTrialAvailability();\n if (extendedTrialAvailability) {\n this.renderExtendedTrialBullets(\n extendedTrialAvailability.usageLimit,\n extendedTrialAvailability.usageType\n );\n const status = extendedTrialAvailability.cloudCreation;\n if (!status.available) {\n return this.renderExtendedTrialError(status.reason);\n }\n } else {\n return this.renderExtendedTrialError();\n }\n }\n\n if (\n this.socialLogin.detectSocialLoginPage() &&\n !this.socialLogin.isValidSocialLoginUser(user)\n ) {\n // User is on signup-social-login page with invalid user details\n window.location.replace(this.socialLogin.getWacTryCloudSignupUrl());\n return;\n }\n\n if (this.hamlet.isLoggedIn()) {\n /**\n * NUXAPOLLO-611 redirect user back to sign up page if user is logged in\n */\n if (this.features.enableCombinedBundles) {\n window.location.href = \"/try/cloud/signup\" + window.location.search;\n Tracking.trackAll(\n \"cart-cloud\",\n \"Logged-In User Redirect\",\n \"combined-bundles-signup-page\",\n { existingUser: true },\n \"cart-cloud.loggedin-user-redirect.combined-bundles-signup-page\",\n true\n );\n }\n\n self.user = user;\n const newUsersOnlyRestriction =\n this.productKeys.indexOf(\"com.atlassian.bitbucket\") !== -1\n ? true\n : false;\n const existingUserCloudData = {};\n const isSocialLogin = this.socialLogin.isSocialLogin(\n user,\n this.productKeys,\n newUsersOnlyRestriction,\n existingUserCloudData\n );\n if (isSocialLogin) {\n if (existingUserCloudData.cloudDetails) {\n // Back to this signup social login page using the same account,\n // should proceed to rename site or account setup page directly.\n if (this.features.enableConfluenceAccountSetup) {\n this.goToAccountSetup(\n existingUserCloudData.cloudDetails.cloudId,\n existingUserCloudData.cloudDetails.requestId,\n existingUserCloudData.cloudDetails.cloudName\n );\n } else {\n window.location.replace(\n this.socialLogin.getRenameSiteUrl(\n existingUserCloudData.cloudDetails\n )\n );\n }\n } else {\n this.continueWithSocialLogin(user);\n }\n } else {\n if (newUsersOnlyRestriction) {\n // BB can only handle new users for now, not existing users that\n // might already have BB, JSW or both.\n const products = this.productKeys\n .join(\",\")\n .replace(\"com.atlassian.bitbucket\", \"bitbucket.ondemand\");\n const url =\n this.baseDomain +\n this.URL_BUY_SIGNUP_PATH +\n \"?product=\" +\n products;\n window.location = url;\n } else {\n this.formRenderLoggedIn(user);\n }\n }\n } else {\n self.user = null;\n this.formRenderLoggedOut();\n }\n this.updateSignupDomainLabels();\n })\n .catch(() => {\n if (this.socialLogin.detectSocialLoginPage()) {\n this.socialLogin.showSocialLoginError(\"init-user-error\");\n } else {\n this.formRenderLoggedOut();\n this.updateSignupDomainLabels();\n }\n });\n },\n\n /**\n * Continue with social login\n */\n continueWithSocialLogin: function (user) {\n this.useSocialLogin = true;\n this.socialLogin.showPreparingCloudMessage();\n\n // Populate form data\n this.formData[\"email\"] = user.myDetails.email;\n this.formData[\"firstName\"] = user.myDetails.firstName;\n this.formData[\"lastName\"] = user.myDetails.lastName;\n this.formData[\"productKeys\"] = this.productKeys;\n this.submitCloud();\n },\n\n /**\n * On successful cloud creation, redirect to rename site page\n */\n goToRenameSite: function ({ progressUri, cloudId, cloudName = \"\" }) {\n if (!progressUri) {\n console.error(\"undefined progressUri\");\n return;\n }\n\n try {\n // Send finish analytics\n const trackingProps = {\n value: cloudId,\n isSocialLogin: this.useSocialLogin,\n isRecaptchaV2: this.features.recaptcha,\n isInvisibleRecaptcha: this.features.invisibleRecaptcha,\n existingUser: this.hamlet.isLoggedIn(),\n };\n Tracking.trackAll(\n \"cart-cloud\",\n \"Completed Checkout Step\",\n \"complete-signup-page\",\n trackingProps,\n \"cart-cloud.completed-checkout-step.complete-signup-page\",\n true\n );\n this.trackAnalyticsProduct(\n 0,\n \"Confirmed Evaluation\",\n \"cart-cloud.confirmed-evaluation.\"\n );\n this.growthTracker.sendTrack(\"navigatedToRenameSite\");\n // eslint-disable-next-line no-empty\n } catch (e) {}\n\n // Redirect to rename site\n const requestId = this.cofs.getRequestId(progressUri);\n const cloudDetails = {\n cloudId,\n cloudName,\n requestId,\n productKeys: this.productKeys,\n };\n\n // NUXAPOLLO-510 check if the user is permitted to rename the site before redirecting the user to the rename site page\n this.checkPerms(cloudId)\n .then((res) => {\n cloudDetails.isPermitted = res.permitted;\n Tracking.trackAll(\n \"cart-cloud\",\n \"Completed permissions check\",\n \"complete-social-signup-page\",\n {\n cloudId,\n status: 200,\n permitted: res.permitted,\n },\n \"cart-cloud.complete-permissions-check.complete-social-signup-page\",\n true\n );\n window.location.replace(\n this.socialLogin.getRenameSiteUrl(cloudDetails)\n );\n })\n .catch((e) => {\n cloudDetails.isPermitted = false;\n Tracking.trackAll(\n \"cart-cloud\",\n \"Failed permissions check\",\n \"complete-social-signup-page\",\n {\n cloudId,\n message: e.message,\n },\n \"cart-cloud.failed-permissions-check.complete-social-signup-page\",\n true\n );\n window.location.replace(\n this.socialLogin.getRenameSiteUrl(cloudDetails)\n );\n });\n },\n\n setResendEmailParams: function (cloudId, requestId, autoGeneratedCloudName) {\n if (\n this.features.allowResendVerificationEmail &&\n !this.opsgenieSignupIsActive\n ) {\n try {\n var data = sessionStorage.getItem(RESEND_DATA)\n ? JSON.parse(sessionStorage.getItem(RESEND_DATA))\n : {};\n if (this.formData.email) {\n data[\"email\"] = this.formData.email;\n }\n if (cloudId && requestId) {\n data[\"cloudId\"] = cloudId;\n data[\"requestId\"] = requestId;\n }\n if (autoGeneratedCloudName) {\n data[\"cloudName\"] = autoGeneratedCloudName;\n }\n sessionStorage.setItem(RESEND_DATA, window.btoa(JSON.stringify(data)));\n } catch (e) {\n sessionStorage.removeItem(RESEND_DATA);\n }\n } else {\n sessionStorage.removeItem(RESEND_DATA);\n }\n },\n\n fireBeaconAnalyticsEvent: function (data, error) {\n if (typeof ace !== \"undefined\") {\n ace.analytics.Tracking.trackUnloadEvent(\n error ? \"unload beacon error\" : \"unload beacon\",\n data\n );\n }\n },\n\n activateFormVariation: function () {\n this.reorderFormFields();\n\n // to be deprecated with an event emitted in wrapper when segment is available\n window.segmentPageReady = function () {\n tracking.trackEvent(\"wcf-459-signup-shown\", {});\n };\n },\n\n reorderFormFields: function () {\n const emailField = $(this.params.fieldIds.emailId);\n const passwordField = $(this.params.fieldIds.passwordId);\n const fullnameField = $(this.params.fieldIds.fullnameId);\n const sitenameField = $(this.params.fieldIds.sitenameId);\n const dataRegionFieldContainer = $(this.params.fieldIds.dataRegionId);\n\n const sitenameLoadingIcon = sitenameField.find(\"span.loading\").first();\n const sitenameValidationIcon = sitenameField\n .find(\"span.validation-success\")\n .first();\n const signupDomainSpan = sitenameField.find(\"span.signup-domain\").first();\n\n const greeting = $(\n `
${this.params.trialBundle.signupFormGreeting}
`\n );\n\n emailField.insertBefore(sitenameField);\n passwordField.insertBefore(sitenameField);\n fullnameField.insertBefore(sitenameField);\n dataRegionFieldContainer.insertBefore(sitenameField);\n\n // Add first and last name labels instead of full name\n fullnameField.find('label[for=\"firstName\"]').remove();\n fullnameField\n .find(\".half.left\")\n .prepend(\n ``\n );\n fullnameField\n .find(\".half.right\")\n .prepend(\n ``\n );\n\n // Add greeting and post submit text\n greeting.insertBefore(emailField);\n\n // Update site name label\n sitenameField\n .find('label[for=\"accountName\"] > span')\n .text(this.params.altLabels.siteNameLabel);\n\n // move site name loading and validation success icons after signup domain span\n sitenameLoadingIcon.remove();\n sitenameValidationIcon.remove();\n signupDomainSpan.after([sitenameLoadingIcon, sitenameValidationIcon]);\n\n // fix tabs after reordering\n emailField.find(\"input\").attr(\"tabindex\", \"0\");\n passwordField.find(\"input\").attr(\"tabindex\", \"0\");\n fullnameField.find(\"input\").attr(\"tabindex\", \"0\");\n sitenameField.find(\"input\").attr(\"tabindex\", \"0\");\n passwordField.find(\"input[type=checkbox]\").attr(\"tabindex\", \"-1\");\n\n this.changeSiteNameVisibility();\n },\n\n changeSiteNameVisibility: function () {\n const sitenameField = $(this.params.fieldIds.sitenameId);\n if (this.features.enableAutogenSiteName) {\n sitenameField.css(\"display\", \"none\");\n sitenameField.attr(\"aria-hidden\", true);\n\n // the sitename field is still required. adding a value to the field will ensure that we pass form validation.\n sitenameField.find(\"input\").val(\"nuxsignup-default\");\n } else {\n sitenameField.removeAttr(\"style\");\n sitenameField.removeAttr(\"aria-hidden\");\n sitenameField.find(\"input\").val(\"\");\n }\n },\n\n // First Impression UI changes\n enableFirstImpression: function () {\n const self = this;\n\n // class changes\n $(\".imkt--cloud-signup\").addClass(\"firstimpression\");\n $(\".column--cloud-signup-bundle\").addClass(\"firstimpression\");\n $(\".with-bundle\").addClass(\"firstimpression\");\n $(\".trial-info-data__features\").addClass(\"firstimpression\");\n $(\".trial-info-data__download\").addClass(\"firstimpression\");\n $(\".heading--products--hide\").addClass(\"firstimpression\");\n $(\".row\").removeClass(\"reduced-row\");\n\n // css changes\n $(\".imkt--cloud-signup\").css(\"background-color\", \"transparent\");\n $(\"#invisible_recaptcha_text\").css(\"margin-top\", \"0px\");\n //$(\".already-sign-in\").css(\"display\", \"block\");\n $(\".firstimpression-right\").css(\"display\", \"block\");\n $(\".firstimpression-left\").css(\"display\", \"none\");\n $(\".firstimpression-left-img\").css(\"display\", \"block\");\n $(\".post-submit-text\").css(\"display\", \"none\");\n\n // html changes\n //$(\".trial-info-data__features-heading\").html(\"Free 7 Day Trial - No Credit Card\");\n $(\".trial-info-data__features ul li:nth-child(2)\").html(\n \"No credit card needed\"\n );\n $(\".trial-info-data__features ul li:nth-child(4)\").html(\n \"Access to support\"\n );\n\n // metrics\n const signinLink = $(\".already-sign-in\").find(\"p a:first\");\n if (signinLink) {\n // update url with OriginTracing\n signinLink.attr(\"href\", this.getIdSigninAccountUrl());\n\n signinLink.on(\"click\", function () {\n // publish metrics events\n try {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Clicked Existing User Sign In\",\n \"first-impressions-signup-page\",\n { existingUser: self.hamlet.isLoggedIn() },\n \"cart-cloud.clicked-existing-user-signin.first-impressions-signup-page\",\n false\n );\n tracking.trackEvent(\n \"wac-signup-first-impressions-existing-user-signin\",\n self.loginOrigin.toAnalyticsAttributes({ hasGeneratedId: true })\n );\n } catch (err) {}\n });\n }\n },\n\n getIdSigninAccountUrl: function () {\n const signinUrl = `${this.baseIdDomain}/login?`;\n const atlOrigin = `atlOrigin=${this.loginOrigin.encode()}`;\n return signinUrl + atlOrigin;\n },\n\n formRenderLoggedOut: function () {\n if (\n this.features.enableContinueWithGoogle ||\n this.features.enableContinueWithMicrosoft\n ) {\n this.socialLogin.renderSocialLogin({\n enableContinueWithGoogle: this.features.enableContinueWithGoogle,\n enableContinueWithMicrosoft: this.features.enableContinueWithMicrosoft,\n labels: this.labels,\n products: this.products,\n edition: this.edition,\n });\n }\n\n /**\n * NUXAPOLLO-611 enable combined bundles\n */\n if (this.features.enableCombinedBundles) {\n // enable first impression changes for UI backbone\n this.enableFirstImpression();\n\n // render UI changes for left form\n this.combinedBundles.renderCombinedBundlesForm();\n\n var _this = this;\n\n // define click event\n var combinedBundleProducts = $(\".combined-bundle-products\");\n\n $(combinedBundleProducts).click(function () {\n // update class\n $(combinedBundleProducts)\n .not(this)\n .each(function () {\n $(this).find(\".custom-radio\").removeClass(\"selected\");\n $(this).removeClass(\"selected\");\n });\n $(this).find(\".custom-radio\").addClass(\"selected\");\n $(this).addClass(\"selected\");\n\n // track click events for selectors\n try {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Clicked Bundle Selector\",\n \"combined-bundles-signup-page\",\n { selectedBundle: $(this).attr(\"data-value\") },\n \"cart-cloud.clicked-bundle-selector.combined-bundles-signup-page\",\n false\n );\n // eslint-disable-next-line no-empty\n } catch (err) {}\n\n // rewrite url and reset product keys\n var newUrl =\n document.location.href.split(\"?\")[0] +\n \"?bundle=\" +\n $(this).attr(\"data-value\") +\n \"&edition=free\";\n history.replaceState(null, null, newUrl);\n\n //reset google login url\n $(\"#google-signup\").prop(\n \"href\",\n _this.socialLogin.getContinueWithGoogleUrl()\n );\n\n //reset download link\n _this.combinedBundles.resetDownloadLink($(this).attr(\"data-value\"));\n\n //reset log in url\n var loginUrl = _this.getLoginAccountUrl();\n $(\".login-account-url\").attr(\"href\", loginUrl);\n\n // reset products before calling create cloud\n _this.setProducts();\n });\n }\n\n if (this.features.enableFirstImpressions) {\n // enable NUXAPOLLO-273 First Impression only for JSW and Logged Out users.\n this.enableFirstImpression();\n }\n\n $(\".icon--cohort-pending\").remove();\n this.$domRoot.find(\".cohort-pending\").removeClass(\"cohort-pending\");\n this.growthTracker.sendTrack(\"onload.notloggedin\");\n $(this.$domRoot)\n .find(\"label .icon--help\")\n .mouseover(() => {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Tooltip displayed\",\n \"?\",\n { labelContainer: \"help\", existingUser: false },\n \"cart-cloud.tooltip-displayed.?\",\n false\n );\n });\n $(\"#host_on_server_link a\").click((e) => {\n if (e.target.href.match(\".*/download\"))\n Tracking.trackAll(\n \"cart-cloud\",\n \"Link clicked\",\n \"host this on your own server?\",\n { labelContainer: \"cloudSignupBundle\", existingUser: false },\n \"cart-cloud.link-clicked.host-this-on-your-own-server-?\",\n false\n );\n var urlParams = new URLSearchParams(window.location.search);\n if (e.target.href.match(\".*/pricing\"))\n Tracking.trackAll(\n \"cart-cloud\",\n \"Clicked Large Team Link\",\n \"buy for a large team?\",\n { selectedBundle: urlParams.get(\"bundle\") },\n \"cart-cloud.link-clicked.buy-for-a-large-team-?\",\n false\n );\n });\n //add disableSubmitButton call here as the `g-recaptcha` in the submit button class enables it when page loads\n this.disableSubmitButton(true);\n this.formRenderReady();\n },\n\n renderExtendedTrialBullets(usageLimit, usageType) {\n const humanUsageType = (usageType) => {\n switch (usageType) {\n case \"remote-agent-tier\":\n case \"bamboo-agent-tier\":\n case \"servicedesk-agent-tier\":\n return \"agents\";\n default:\n return \"users\";\n }\n };\n const features = [\n ...this.selectedProducts.map(\n (product) => `Try ${product.name} cloud at no cost`\n ),\n ...(!!usageLimit && [`Up to ${usageLimit} ${humanUsageType(usageType)}`]),\n \"No impact to your existing self-hosted products\",\n ];\n $(\".trial-info-data__features > ul\", self.$domRoot).append(\n features.map((feature) => `
  • ${feature}
  • `)\n );\n\n // Show the trial heading\n $(\".trial-info-data__features-heading\").addClass(\"active\");\n },\n\n renderExtendedTrialError(reason) {\n $(\".icon--cohort-pending\").remove();\n this.$domRoot.find(\".cohort-pending\").removeClass(\"cohort-pending\");\n this.form.hide();\n if (reason === \"ALREADY_CLAIMED\") {\n $(\".extended-trial-error__claimed\").show();\n } else {\n $(\".extended-trial-error__invalid\").show();\n }\n },\n\n //Set Invisible recaptcha for N2N if features.invisibleRecaptcha is enabled and disable recaptcha or N2E\n setInvisibleRecaptcha: function () {\n if (this.hamlet.isLoggedIn()) {\n $(\"#inv-recaptcha-signup_submit\").hide();\n $(\"#invisible_recaptcha_text\").hide();\n $(\"#signup_submit\").show();\n this.features.recaptcha = false;\n this.captchaContainer.remove();\n this.features.invisibleRecaptcha = false;\n } else {\n if (this.features.invisibleRecaptcha) {\n $(\"#inv-recaptcha-signup_submit\").show();\n $(\"#signup_submit\").hide();\n } else {\n $(\"#inv-recaptcha-signup_submit\").remove();\n $(\"#invisible_recaptcha_text\").hide();\n $(\".grecaptcha-badge\").remove();\n $(\"#signup_submit\").show();\n }\n }\n this.disableSubmitButton(true);\n },\n\n formRenderReady: function () {\n this.setInvisibleRecaptcha();\n // Bind User Interactions\n this.bindEvents();\n\n // Pass initial page view for custom tracking\n if (this.$domRoot.is(\":visible\")) {\n // Tracking used by Optimizely\n this.growthTracker.sendTrack(\"signup.init\", {\n productCount: this.selectedProducts.length,\n referrer: document.referrer,\n });\n this.growthTracker.sendTrackVisitCounter(\"bxp_form_visit\");\n\n const cartedProducts = this.products.split(\",\");\n const productAttributes = {\n cartedProducts,\n intendedProduct: cartedProducts[0],\n };\n Tracking.trackAll(\n \"cart-cloud\",\n \"Viewed Checkout Step\",\n \"view-signup-page\",\n productAttributes,\n \"cart-cloud.viewed-checkout-step.view-signup-page\",\n true\n );\n this.trackAnalyticsProduct(\n 0,\n \"Added Product\",\n \"cart-cloud.added-product.\"\n );\n }\n\n // Show the trial duration now that we know the duration (logged in / logged out)\n $(\".trial-info-data__features-heading\").addClass(\"active\");\n\n // Track the time from init to form ready state\n const performanceDuration = performance.now() - performanceStartTime;\n tracking.trackEvent(\"bxp.formCloudSignup.timeToFormReady\", {\n performanceDuration: performanceDuration,\n performanceBoosted: this.features.performanceBoost,\n isLoggedIn: this.hamlet.isLoggedIn(),\n });\n },\n\n setProducts: function () {\n this.showBundle = this.params.showBundle || false;\n if (this.products && !this.showBundle) {\n this.productKeys =\n this.productKeys || _.without(this.products.split(\",\"), \"\");\n this.assignSelectedProducts(this.productKeys);\n this.productKeys = _.uniq(this.productKeys);\n return;\n }\n\n this.hamletProducts = this.hamlet.getIdentifiedProducts();\n this.hamletCoreProducts = this.hamlet.getCoreProducts();\n this.hamletAddonProducts = this.hamlet.getAddons();\n\n this.activeBundle = null;\n if (this.showBundle) {\n if (!this.hamletProducts.length) {\n this.activeBundle = this.checkUrlBundleKey();\n } else {\n let productKeyMatch = _.pluck(\n this.hamletCoreProducts,\n \"productKey\"\n ).join(\", \");\n this.activeBundle = this.findBundleWithProductsKeys(productKeyMatch);\n }\n\n this.activeBundle =\n this.activeBundle || this.params.bundleData[\"default\"];\n this.products = this.activeBundle.bundleProductKeys || \"\";\n this.products = this.products.replace(/ /g, \"\");\n } else {\n this.products = _.pluck(this.hamletCoreProducts, \"productKey\").join(\",\");\n }\n\n this.productKeys =\n this.productKeys || _.without(this.products.split(\",\"), \"\");\n\n /**\n NUXAPOLLO-611 reset product keys based on url\n */\n if (this.features.enableCombinedBundles) {\n this.productKeys = _.without(this.products.split(\",\"), \"\");\n }\n\n this.assignSelectedProducts(this.productKeys);\n this.assignSelectedExternalProducts();\n\n this.productKeys = _.uniq(this.productKeys);\n this.productKeys = this.productKeys.concat(\n _.pluck(this.hamletAddonProducts, \"productKey\")\n );\n // Override for no products/addons still after checking all sources - JSW + Confluence default;\n if (\n this.availableProducts.length &&\n !this.selectedProducts.length &&\n !this.selectedAddons.length\n ) {\n this.assignSelectedProducts([\n \"jira-software.ondemand\",\n \"confluence.ondemand\",\n ]);\n }\n if (this.showBundle) {\n this.renderBundle(this.activeBundle);\n }\n },\n\n findBundleWithProductsKeys: function (matchKey) {\n const bundles = this.params.bundleData;\n let result = null;\n\n Object.keys(bundles).map((bundleKey) => {\n let bundle = bundles[bundleKey];\n if (bundle.bundleProductKeys === matchKey) {\n result = bundle;\n }\n });\n return result;\n },\n\n getCurrentUrl: function () {\n const location = Environment.getWindowLocation();\n const internationalSubdomain = Environment.getInternationalSubdomain();\n var newLocation = location.pathname;\n if (\n this.features.enableCombinedBundles &&\n newLocation.includes(\"/signup-bundles\")\n ) {\n newLocation = location.pathname.replace(\"signup-bundles\", \"signup\");\n }\n let search = location.search;\n if (internationalSubdomain && !this.getLocaleParam()) {\n search = search.length\n ? `${search}&lang=${internationalSubdomain}`\n : `?lang=${internationalSubdomain}`;\n }\n\n return encodeURIComponent(`${this.baseDomain}${newLocation}${search}`);\n },\n\n getLoginAccountUrl: function () {\n const loginUrl = `${this.baseIdDomain}/login?`;\n const currentUrl = this.getCurrentUrl();\n const atlOrigin = `atlOrigin=${this.loginOrigin.encode()}`;\n const continueUrl = `&continue=${currentUrl}`;\n return loginUrl + atlOrigin + continueUrl;\n },\n\n getSwitchAccountUrl: function () {\n const logoutUrl = `${this.baseIdDomain}/logout?continue=`;\n const loginUrl = `${this.baseIdDomain}/login?`;\n const currentUrl = `&continue=${this.getCurrentUrl()}`;\n const atlOrigin = `atlOrigin=${this.switchOrigin.encode()}`;\n\n let continueUrl = currentUrl;\n if (this.socialLogin && this.socialLogin.detectSocialLoginPage()) {\n continueUrl = `&continue=${encodeURIComponent(\n this.socialLogin.getWacTryCloudSignupUrl()\n )}`;\n }\n\n return logoutUrl + encodeURIComponent(loginUrl + atlOrigin + continueUrl);\n },\n\n bindElements: function () {\n this.form = $(\"form\", this.$domRoot);\n this.cofsListContainer = $(\n \".heading--products .products-list\",\n this.$domRoot\n );\n this.fields = $(\"input:input, textarea:input\", this.form);\n this.emailField = this.fields.filter(\"[name=email]\");\n this.accountNameField = this.fields.filter(\"[name=accountName]\");\n this.firstNameField = this.fields.filter(\"[name=firstName]\");\n this.lastNameField = this.fields.filter(\"[name=lastName]\");\n this.passwordField = this.fields.filter(\"[name=aodPass]\");\n this.showPasswordField = this.fields.filter(\"#show-password-checkbox\");\n this.submitButton = this.form.find(\".imkt--cloud-signup__button--submit\");\n this.timeoutWarnings = $(\".timeout-warnings\", this.$domRoot);\n this.passwordScoreTemplateTarget = this.form.find(\n \".passwordstrength--wrapper\"\n );\n this.developerWarning = this.form.find(\".developer-container\");\n this.captchaContainer = this.form.find(\".g-recaptcha-container\");\n this.marketingConsentContainer = this.form.find(\n \".marketing-consent--container\"\n );\n this.eulaContainer = this.form.find(\".eula-container\");\n this.annualSubscriptionContent = $(\"#annual-subscription-chat-link\");\n this.linkLoginUser = this.emailField.parent().find(\".login-account-url\");\n this.linkExistingUser = this.emailField\n .parent()\n .find(\".switch-account-url\");\n this.dataRegionField = this.form.find(\"input[type=radio][name=dataRegion]\");\n },\n\n updateSignupDomainLabels: function () {\n const signupDomainLabels = this.form\n .parent()\n .find(\".signup-domain, .site-domain-radix, .signupDomain\");\n\n if (!Environment.isProduction() && signupDomainLabels.length) {\n signupDomainLabels.text(\".jira-dev.com\");\n }\n\n // test to see if we are on an opsgenie signup page\n if (this.opsgenieSignupIsActive) {\n const siteInputDomain = this.form.parent().find(\".signup-domain\");\n var siteHost = this.getOpsgenieSiteHostName();\n siteInputDomain.addClass(\"opsgenie-signup-domain\");\n siteInputDomain.text(siteHost);\n this.accountNameField.addClass(\"opsgenie-signup-domain\");\n }\n },\n\n updateIdUrls: function () {\n this.linkLoginUser.attr(\"href\", this.getLoginAccountUrl());\n this.linkExistingUser.attr(\"href\", this.getSwitchAccountUrl());\n },\n\n bindEvents: function () {\n var self = this;\n\n // data center region change handler, update site domain on change\n self.dataRegionField.change(function () {\n // test to see if we are on an opsgenie signup page\n if (self.opsgenieSignupIsActive) {\n const signupDomainLabels = self.form.parent().find(\".signup-domain\");\n\n const siteHost = self.getOpsgenieSiteHostName();\n\n signupDomainLabels.text(siteHost);\n Segment.track({\n category: \"wac\",\n action: \"Opsgenie data region\",\n label: this.value,\n });\n }\n });\n\n onThrottled(this.passwordField,\n \"input\",\n function (e) {\n self.checkPasswordField(self.passwordField);\n self.renderPasswordStrength(\n self.pw.evaluatePasswordStrength(e.currentTarget.value)\n );\n self.updateFormReady();\n },\n 300\n );\n this.showPasswordField.on(\"click\", this.togglePasswordShow.bind(this));\n\n // Generic Track Link directive\n $(\"a[track-link-ga]\").on(\"click\", function () {\n GoogleAnalytics.track({\n category: \"cart-cloud\",\n action: \"Clicked\",\n label: $(this).attr(\"track-link-ga\"),\n });\n });\n\n // Hamlet validation required on these user inputs\n onThrottled(this.emailField,\n \"input\",\n this.validateEmailField.bind(this),\n 300\n );\n\n onThrottled(this.accountNameField,\n \"input\",\n this.validateAccountField.bind(this),\n 300\n );\n\n // Check form ready state on throttled input of first and last name fields\n onThrottled(this.firstNameField,\n \"input\",\n () => {\n this.checkNameField(this.firstNameField, true);\n this.updateFormReady();\n },\n 300\n );\n onThrottled(this.lastNameField,\n \"input\",\n () => {\n this.checkNameField(this.lastNameField, true);\n this.updateFormReady();\n },\n 300\n );\n\n this.form.on(\"submit\", (e) => {\n e.preventDefault();\n this.submitHandler();\n });\n\n $(document).on(\"triggerFormInitTracking\", function () {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Viewed Checkout Step\",\n \"view-signup-page\",\n {},\n \"cart-cloud.viewed-checkout-step.view-signup-page\",\n true\n );\n self.trackAnalyticsProduct(\n 0,\n \"Added Product\",\n \"cart-cloud.added-product.\"\n );\n });\n\n // Simplified form events\n if (this.features.simpleForm) {\n $(document).on(\n \"click\",\n \".imkt--cloud-signup__form--simplified .simplified-switch-site\",\n function (e) {\n e.preventDefault();\n\n $(\".imkt--cloud-signup__form--simplified .site-chooser-1\").hide();\n $(\".imkt--cloud-signup__form--simplified .site-chooser-2\").show();\n }\n );\n\n $(document).on(\n \"click\",\n \".imkt--cloud-signup__form--simplified .simplified-start-new\",\n function (e) {\n e.preventDefault();\n\n // Experiment for 'wcf-459'\n if (\n self.useAlternateLayout &&\n !self.possiblyPremium &&\n !self.migrationSourceUuid &&\n !self.opsgenieSignupIsActive\n ) {\n $(\".trial-info-data__trial-length\", self.$domRoot).text(\n self.trialBundleData.signupOfferingTrialLengthTextNewSite\n );\n }\n if (\n self.useAlternateLayout &&\n self.possiblyPremium &&\n !self.migrationSourceUuid &&\n self.edition !== self.availableEditions.free\n ) {\n $(\".trial-info-data__features-heading\", self.$domRoot).text(\n self.trialBundleData.signupOfferingTrialLengthTextNewSite\n );\n }\n // (End) Experiment for 'wcf-459'\n\n $(\".imkt--cloud-signup__form--simplified\").hide();\n $(\".imkt--cloud-signup__form\").show();\n\n self.trackOptimizedFormEvents(\"grow.wcf.n2eform.start-new-clicked\");\n }\n );\n\n $(document).on(\n \"change\",\n \".imkt--cloud-signup__form--simplified input[name='imkt--selected-site']\",\n function () {\n var radioButtons = $(\n \".imkt--cloud-signup__form--simplified input[name='imkt--selected-site']\"\n );\n var selectedIndex = radioButtons.index(\n radioButtons.filter(\":checked\")\n );\n self.simplifiedSiteSelected = self.accounts[selectedIndex];\n if ($(this)[0]) {\n self.validateFreeAnnual($(this)[0].value);\n }\n self.trackOptimizedFormEvents(\"grow.wcf.n2eform.switched\");\n }\n );\n\n $(document).on(\n \"click\",\n \".imkt--cloud-signup__form--simplified .imkt--cloud-signup__button--submit\",\n function (e) {\n e.preventDefault();\n self.disableSubmitButtonSimplified();\n self.submitSimplifiedForm(\n self.simplifiedSiteSelected,\n self.productKeys\n );\n }\n );\n\n $(document).on(\n \"click\",\n \".imkt--cloud-signup__form--simplified .switch-account-url-n2e\",\n function (e) {\n e.preventDefault();\n tracking.trackEvent(\n \"wac-signup-existing-user-switch\",\n self.switchOrigin.toAnalyticsAttributes({ hasGeneratedId: true })\n );\n window.location.href = self.getSwitchAccountUrl();\n }\n );\n }\n\n self.linkExistingUser.on(\"click\", function (e) {\n e.preventDefault();\n tracking.trackEvent(\n \"wac-signup-existing-user-switch\",\n self.switchOrigin.toAnalyticsAttributes({ hasGeneratedId: true })\n );\n window.location.href = self.getSwitchAccountUrl();\n });\n\n self.linkLoginUser.on(\"click\", function (e) {\n e.preventDefault();\n tracking.trackEvent(\n \"wac-signup-existing-user-signin\",\n self.loginOrigin.toAnalyticsAttributes({ hasGeneratedId: true })\n );\n window.location.href = self.getLoginAccountUrl();\n });\n },\n\n submitHandler: function () {\n this.disableSubmitButton();\n this.trackOnSubmitEvents();\n this.validateForm();\n },\n\n formRenderLoggedIn: function (user) {\n //WCF-1796 we need to remove the social heading when the user is logged in\n $(\".heading--social-show\").remove();\n this.formRenderReady();\n\n if (user.myDetails.email) {\n // Update email address field and disable it\n this.emailField.val(user.myDetails.email);\n this.emailField.attr(\"disabled\", \"disabled\").addClass(\"disabled\");\n this.emailField\n .nextAll(\".error-message, .aui-icon, .hamlet-error-message\")\n .hide();\n this.emailField.parent().find(\".inform-message.logged-in\").show();\n this.passwordField.parent().remove();\n\n if (this.possiblyPremium && this.edition === \"premium\") {\n $(this.params.fieldIds.sitenameId).find(\"label .help\").replaceWith(`\n
    \n
    \n \n ${this.trialBundleData.premiumUpgradeHelpTooltipTrigger}\n
    \n
    \n ${this.trialBundleData.premiumUpgradeHelpTooltipText}\n
    \n
    \n `);\n }\n\n if (!this.accountNameField.val()) {\n this.accountNameField.parent().find(\".inform-message.logged-in\").show();\n }\n\n // Hide captcha\n if (this.features.recaptcha) {\n this.features.recaptcha = false;\n this.captchaContainer.remove();\n }\n\n // Update name fields\n this.firstNameField.val(user.myDetails.firstName);\n this.lastNameField.val(user.myDetails.lastName);\n\n // No random generated site name for logged in users\n this.features.enableAutogenSiteName = false;\n this.changeSiteNameVisibility(); // force site name to be visible if we've already hidden it\n\n // NUXAPOLLO-273 No first impression for logged in users.\n this.features.enableFirstImpressions = false;\n\n // NUXAPOLLO-611 No combined bundles signup for logged in users.\n this.features.enableCombinedBundles = false;\n\n // NUXAPOLLO-210 No Confluence account setup for logged in users.\n this.features.enableConfluenceAccountSetup = false;\n\n this.validateEmailField();\n this.updateFormReady();\n\n this.growthTracker.sendTrack(\"onload.loggedin\");\n\n if (\n this.features.simpleForm &&\n this.validateN2EProducts() &&\n !this.isDeveloper\n ) {\n // sites as Free edition or regular trial should be eligible to be overlaid\n const extendedTrialOverridableSites =\n this.hamlet.getExtendedTrialAvailableSites();\n\n // filter users sites by products keys being signed up for\n let filteredSites = this.hamlet.getSites().filter((site) => {\n return (\n !_.some(\n site.products,\n (product) => this.productKeys.indexOf(product) > -1\n ) || extendedTrialOverridableSites.includes(site.cloudId)\n );\n });\n\n const sortByKey = (array, key) => {\n return array.sort((a, b) => {\n let x = a[key];\n let y = b[key];\n return x < y ? -1 : x > y ? 1 : 0;\n });\n };\n this.accounts = sortByKey(filteredSites, \"displayName\");\n this.renderOptimizedFlowForm(\n user.myDetails.email,\n user.myDetails.firstName\n );\n }\n\n // Free: check if first site is on annual billing\n if (\n this.accounts &&\n this.accounts.length > 0 &&\n this.edition == this.availableEditions.free\n ) {\n this.validateFreeAnnualOnLoad(this.accounts[0]);\n }\n }\n\n $(\".icon--cohort-pending\").remove();\n this.$domRoot.find(\".cohort-pending\").removeClass(\"cohort-pending\");\n $(this.$domRoot)\n .find(\"label .icon--help\")\n .mouseover(() => {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Tooltip displayed\",\n \"?\",\n { labelContainer: \"help\", existingUser: true },\n \"cart-cloud.tooltip-displayed.?\",\n false\n );\n });\n $(\"#host_on_server_link a\").click((e) => {\n if (e.target.href.match(\".*/download\"))\n Tracking.trackAll(\n \"cart-cloud\",\n \"Link clicked\",\n \"host this on your own server?\",\n { labelContainer: \"cloudSignupBundle\", existingUser: true },\n \"cart-cloud.link-clicked.host-this-on-your-own-server-?\",\n false\n );\n });\n },\n\n isJsdStandalone: function (bundle) {\n return (\n (bundle.queryParam &&\n (bundle.queryParam === \"jira-service-desk\" ||\n bundle.queryParam === \"jira-service-management\")) ||\n (bundle.bundleProductKeys &&\n (bundle.bundleProductKeys === \"jira-servicedesk.ondemand\" ||\n bundle.bundleProductKeys === \"jira-service-management.ondemand\"))\n );\n },\n\n renderBundle: function (bundle) {\n var template = _.template(\n $(\".template--cloud-signup__form--bundle\").html()\n );\n\n var getFeatureList = (edition) => {\n // Opsgenie only supports one edition\n if (this.opsgenieSignupIsActive) {\n return this.trialBundleData.featureIncludesFreeOpsgenie;\n }\n\n if (bundle.queryParam === \"statuspage\") {\n return this.trialBundleData.featureIncludesStatuspage;\n }\n\n switch (edition) {\n case this.availableEditions.free:\n if (bundle.queryParam) {\n if (this.isJsdStandalone(bundle)) {\n // free bundle, just JSD/JSM\n return this.trialBundleData.featureIncludesFreeJSD;\n } else if (\n bundle.queryParam.indexOf(\"jira-service-desk\") > -1 ||\n bundle.queryParam.indexOf(\"jira-service-management\") > -1 ||\n bundle.bundleProductKeys.indexOf(\"jira-servicedesk.ondemand\") >\n -1 ||\n bundle.bundleProductKeys.indexOf(\n \"jira-service-management.ondemand\"\n ) > -1\n ) {\n // free bundle that includes JSD\n return this.trialBundleData.featureIncludesFreeBundleJSD;\n }\n }\n return this.trialBundleData.featureIncludesFree;\n case this.availableEditions.premium:\n if (this.isJsdStandalone(bundle)) {\n return this.trialBundleData.featureIncludesPremiumJSD;\n }\n return this.trialBundleData.featureIncludesPremium;\n case this.availableEditions.standard:\n if (this.isJsdStandalone(bundle)) {\n return this.trialBundleData.featureIncludesStandardJSD;\n }\n return this.trialBundleData.featureIncludesStandard;\n default:\n if (this.isJsdStandalone(bundle)) {\n return this.trialBundleData.featureIncludesStandardJSD;\n }\n return this.trialBundleData.featureIncludesStandard;\n }\n };\n\n $(\".column--cloud-signup-bundle\").append(\n template({\n useAlternateLayout: this.useAlternateLayout, // Experiment for 'wcf-459'\n trialData: this.trialBundleData, // Experiment for 'wcf-459'\n featureList: getFeatureList(this.edition),\n data: bundle,\n bundleProducts: this.selectedProducts,\n addons: this.hamletAddonProducts,\n edition: this.edition,\n isPremiumEdition: this.edition === \"premium\",\n possiblyPremium: this.possiblyPremium,\n isExtendedTrial: !!this.migrationSourceUuid,\n isOpsgenie: this.opsgenieSignupIsActive,\n isStatuspage: this.activeBundle.queryParam === \"statuspage\",\n })\n );\n\n // We swap out trail length info for Opsgenie\n if (this.opsgenieSignupIsActive) {\n $(\".trial-info-data__edition-text\", this.$domRoot).text(\n this.trialBundleData.signupOfferingTrialLengthTextNewSiteOpsgenie\n );\n }\n },\n\n /**\n * Enable simplified signup form if all true:\n * - feature is turned on in CMS\n * - hamlet returned accounts for user\n * - only one selected product (no bundles allowed yet)\n */\n renderOptimizedFlowForm: function (email, firstName) {\n var productsIncludeStride = this.productKeys.indexOf(\"hipchat.cloud\") > -1;\n\n if (this.accounts.length && !productsIncludeStride) {\n this.simplifiedSiteSelected = this.accounts[0];\n\n var simpleTemplate = _.template(\n $(\".template--cloud-signup__form--simplified\").html()\n );\n this.form.hide();\n this.form.parent().append(\n simpleTemplate({\n useAlternateLayout: this.useAlternateLayout, // Experiment for 'wcf-459'\n trialData: this.trialBundleData, // Experiment for 'wcf-459'\n accounts: this.accounts,\n labels: this.labels,\n email: email,\n firstName: firstName, // Experiment for 'wcf-459'\n switchAccountUrl: this.getSwitchAccountUrl(),\n isPremiumEdition: this.edition === \"premium\",\n possiblyPremium: this.possiblyPremium,\n isExtendedTrial: !!this.migrationSourceUuid,\n })\n );\n\n if (\n this.useAlternateLayout &&\n this.possiblyPremium &&\n this.edition !== this.availableEditions.free &&\n !this.migrationSourceUuid &&\n !this.opsgenieSignupIsActive &&\n this.activeBundle.bundleProductKeys !== \"statuspage\"\n ) {\n $(\".trial-info-data__features-heading\", this.$domRoot).text(\n this.trialBundleData.signupOfferingTrialLengthTextExistingSite\n );\n }\n\n this.trackOptimizedFormEvents(\"grow.wcf.n2eform.loaded\");\n } else {\n this.trackOptimizedFormEvents(\"grow.wcf.n2eform.no-valid-sites\");\n }\n },\n\n // Check the form to see if we should enable the submit button\n updateFormReady: function () {\n if (this.isFormReady()) {\n this.enableSubmitButton();\n } else {\n var preventSubmitActionText = true;\n this.disableSubmitButton(preventSubmitActionText);\n }\n },\n\n // Form is ready for submit if fields are valid\n isFormReady: function () {\n // if form has empty text fields\n var emptyFields = false;\n\n this.form.find(\".required\").each((i, item) => {\n if (!$(item).val()) {\n emptyFields = true;\n return false;\n }\n });\n\n if (emptyFields) {\n return false;\n }\n\n // if form has errors\n if (this.form.find(\".has-error\").length) {\n return false;\n }\n\n return true;\n },\n\n trackOptimizedFormEvents: function (eventName) {\n var anonymous_id = storage.getCookie(\"ajs_anonymous_id\") || \"-\";\n var opt_id =\n storage.getCookie(\"optimizelyEndUserId\") || \"unknown\";\n var cohort = this.productKeys.length > 1 ? \"control\" : \"variation-home\";\n\n var siteHost = Environment.isProduction()\n ? \".atlassian.net\"\n : \".jira-dev.com\";\n if (this.opsgenieSignupIsActive) {\n siteHost = this.getOpsgenieSiteHostName();\n }\n\n var selectedSiteFull = this.simplifiedSiteSelected.displayName + siteHost;\n\n var postBody = {\n name: eventName,\n properties: {\n variationValue: cohort,\n formId: \"wcf\",\n opt_id: opt_id,\n pathname: window.location.pathname || \"\",\n products: this.productKeys.join(\",\"),\n },\n cloud_id: this.simplifiedSiteSelected.cloudId || \"\",\n server: selectedSiteFull,\n serverTime: Date.now(),\n product: \"wac\",\n user: anonymous_id,\n };\n\n GASv2.track(postBody);\n },\n\n // this takes the products in productkeys and check availableProducts for their N2E properties\n // if ALL the products have N2E enabled, then we pass the check\n validateN2EProducts: function () {\n var self = this;\n var enableOptimizedFlow = true;\n this.productKeys.forEach(function (product) {\n var matchingProduct = _.find(self.availableProducts, {\n product_key: product,\n });\n if (matchingProduct) {\n enableOptimizedFlow =\n enableOptimizedFlow && matchingProduct.n2e_enabled;\n }\n });\n return enableOptimizedFlow;\n },\n\n validateEmailField: function () {\n var self = this;\n var email = this.emailField.val();\n\n // reset error messages\n this.emailField\n .nextAll(\".error-message, .hamlet-error-message, .aui-icon\")\n .hide();\n this.emailField.removeClass(this.ERROR_CLASS);\n\n // Experiment for 'wcf-459'\n if (this.useAlternateLayout) {\n this.emailField.removeClass(\"is-success\");\n }\n\n // Fail fast if email was filled in from logged in session\n // Note: if user is logged in, email should be already assigned and disabled\n if (email && this.hamlet.isLoggedIn()) {\n this.updateFormReady();\n return;\n }\n\n // test for valid email syntax\n var re =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (!re.test(email)) {\n this.emailField.nextAll(\".error-message\").show();\n this.emailField.addClass(this.ERROR_CLASS);\n this.growthTracker.sendTrack(\"email.errors\");\n this.updateFormReady();\n return false;\n }\n\n // show spinner icon\n this.emailField\n .nextAll(\".aui-iconfont-build\")\n .css(\"display\", \"inline-block\");\n\n // Check hamlet for existing email\n var successApi = function (res) {\n self.emailField.nextAll(\".aui-iconfont-build\").hide();\n\n // Success response means that email exists, which we dont want here...\n var success = res && !res.success;\n if (!success && res.message) {\n self.emailField.nextAll(\".hamlet-error-message\").show();\n self.emailField.addClass(self.ERROR_CLASS);\n self.growthTracker.sendTrack(\"email.errors\");\n } else {\n self.emailField\n .nextAll(\".email-validation-success\")\n .css(\"display\", \"inline-block\");\n\n // Experiment for 'wcf-459'\n if (self.useAlternateLayout) {\n self.emailField.addClass(\"is-success\");\n }\n }\n self.updateFormReady();\n };\n var failApi = function () {\n self.emailField.nextAll(\".hamlet-error-message\").show();\n self.emailField.addClass(self.ERROR_CLASS);\n self.emailField.nextAll(\".aui-iconfont-build\").hide();\n self.growthTracker.sendTrack(\"email.errors\");\n self.updateFormReady();\n };\n\n this.hamlet\n .validateEmail(email)\n .then((result) => successApi(result))\n .catch((e) => failApi(e));\n },\n\n validateAccountField: function () {\n var self = this;\n var value = this.accountNameField.val();\n\n this.accountNameField\n .nextAll(\".error-message, .aui-icon, .inform-message\")\n .hide();\n this.accountNameField.removeClass(this.ERROR_CLASS);\n\n // Experiment for 'wcf-459'\n if (this.useAlternateLayout) {\n this.accountNameField.removeClass(\"is-success\");\n }\n\n if (!value) {\n this.updateFormReady();\n return false;\n }\n\n if (\n !this.cofs.checkCloudNameMin(value) ||\n !this.cofs.isValidCloudNamePattern(value)\n ) {\n this.accountNameField.nextAll(\".error-message.domain-length-min\").show();\n this.accountNameField.addClass(this.ERROR_CLASS);\n this.updateFormReady();\n return false;\n }\n if (!this.cofs.checkCloudNameMax(value)) {\n this.accountNameField.nextAll(\".error-message.domain-length-max\").show();\n this.accountNameField.addClass(this.ERROR_CLASS);\n this.updateFormReady();\n return false;\n }\n\n this.accountNameField\n .nextAll(\".aui-iconfont-build\")\n .css(\"display\", \"inline-block\");\n\n var successApi = function (res) {\n var success = res && res.available;\n self.accountNameField.nextAll(\".aui-iconfont-build\").hide();\n\n // Show user the domain is in use\n if (success) {\n // domain is available\n self.accountNameField\n .nextAll(\".validation-success\")\n .css(\"display\", \"inline-block\");\n\n // Experiment for 'wcf-459'\n if (self.useAlternateLayout) {\n self.accountNameField.addClass(\"is-success\");\n }\n } else {\n self.accountNameField\n .nextAll(\".error-message.domain-unavailable\")\n .show();\n self.accountNameField.addClass(self.ERROR_CLASS);\n\n // Experiment for 'wcf-459'\n if (this.useAlternateLayout) {\n this.accountNameField.removeClass(\"is-success\");\n }\n\n // If user is logged in ask them if they want to add products their domain\n if (self.hamlet.isLoggedIn()) {\n self.accountNameField\n .nextAll(\".inform-message.domain-unavailable.logged-in\")\n .show();\n }\n\n self.growthTracker.sendTrack(\"accountName.errors\");\n }\n self.updateFormReady();\n };\n\n var failApi = function () {\n self.accountNameField.nextAll(\".aui-iconfont-build\").hide();\n self.accountNameField.nextAll(\".error-message.domain-unavailable\").show();\n self.accountNameField.addClass(self.ERROR_CLASS);\n self.growthTracker.sendTrack(\"accountName.errors\");\n self.updateFormReady();\n };\n\n this.cofs\n .validateCNAS(value)\n .then((result) => successApi(result))\n .catch(() => failApi());\n },\n\n validateForm: function () {\n var self = this;\n\n if (!this.validateClientSide()) {\n return false;\n }\n\n // Track form submit attempt (pre-server validation)\n var productTrackingValue = {\n value: `cart-cloud.submitted.${this.selectedProducts[0].product_key}`,\n };\n var bxpProductTrackingValue = { value: \"cart-cloud.submitted.bxp\" };\n\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted\",\n \"cloud\",\n productTrackingValue,\n productTrackingValue.value,\n false\n );\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted.user.status\",\n \"form event\",\n { existingUser: this.hamlet.isLoggedIn() },\n null,\n false\n );\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted BXP Form\",\n \"cloud\",\n bxpProductTrackingValue,\n bxpProductTrackingValue.value,\n false\n );\n\n // Disable submit while server side validating\n if (!this.features.performanceBoost) {\n this.disableSubmitButton();\n }\n\n // Popup warning for external products signup\n if (self.selectedAddons.length) {\n self.popupReminderExternalProducts();\n }\n\n // Validate server side\n this.formData = _.object(\n this.form.serializeArray().map(function (v) {\n return [v.name, v.value];\n })\n );\n this.formData[\"productKeys\"] = this.productKeys;\n if (typeof this.formData[\"email\"] === \"undefined\") {\n this.formData[\"email\"] = this.emailField.val();\n }\n\n if (this.features.enableAutogenSiteName) {\n this.formData[\"accountName\"] = `NUXSIGNUP-default-${Date.now()}`;\n }\n\n this.submitCloud();\n },\n\n validateClientSide: function () {\n // reset main error message\n this.form.find(\".validation-error-message, .error-message\").hide();\n this.hideErrorCaptcha();\n\n this.checkField(this.firstNameField, true);\n this.checkField(this.lastNameField, true);\n this.checkAccountField(this.accountNameField);\n this.checkField(this.emailField);\n this.checkPasswordField(this.passwordField);\n\n // Find visible field errors\n var errors = $(\".error-message, .hamlet-error-message\").filter(\":visible\");\n if (errors.length) {\n this.form.find(\".validation-error-message\").show();\n\n // Send each client-side validation error to analytics\n $(errors).each(function () {\n var errorMsg = $(this)\n .text()\n .toLowerCase()\n .replace(/ /g, \"-\")\n .replace(/,/g, \"\");\n if (errorMsg) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with validation Error\",\n \"cloud\",\n { value: errorMsg },\n \"cart-cloud.submitted-with-validation-error.\" + errorMsg,\n false\n );\n }\n });\n\n return false;\n }\n\n return true;\n },\n\n submitSimplifiedForm: function (site, productKeys) {\n const startUrl = Environment.getStartUrl();\n let startSearch = `?startTrialProduct=${productKeys[0]}&startTrialCloudId=${\n site.cloudId\n }&startTrialInstance=${site.url.replace(\"https://\", \"\")}`;\n\n if (this.edition) {\n startSearch += `&edition=${this.edition}`;\n }\n if (this.migrationSourceUuid) {\n startSearch += `&migrationSourceUuid=${this.migrationSourceUuid}`;\n }\n\n const adminPath = \"/admin/billing/applications\";\n const adminSearch = \"\";\n\n let url = `${site.url}${adminPath}${adminSearch}`;\n let cohort = \"control\";\n\n if (productKeys.length === 1) {\n url = `${startUrl}${startSearch}`;\n cohort = \"variation-start\";\n }\n\n const anonymous_id =\n storage.getCookie(\"ajs_anonymous_id\") || \"-\";\n const opt_id =\n storage.getCookie(\"optimizelyEndUserId\") || \"unknown\";\n\n const eventName = \"grow.wcf.n2eform.submit\";\n\n const postBody = {\n name: eventName,\n properties: {\n variationValue: cohort,\n formId: \"wcf\",\n opt_id: opt_id,\n pathname: window.location.pathname || \"\",\n products: productKeys.join(\",\"),\n },\n cloud_id: site.cloudId || \"\",\n server: url,\n serverTime: Date.now(),\n product: \"wac\",\n user: anonymous_id,\n };\n\n var redirectCallback = function () {\n window.location.href = url;\n };\n\n GASv2.track(postBody).then(redirectCallback).catch(redirectCallback);\n },\n\n isCloudIdAnnualAsync: function (options, errCallback) {\n const { cloudId, cloudName, userId } = options;\n $(\".site-switcher label\").removeClass(\"error-active\");\n\n this.cofs\n .isCloudIdAnnual(cloudId, userId)\n .then((result) => {\n if (result === true) {\n $(`.site-switcher label[for='${cloudName}']`).addClass(\n \"error-active\"\n );\n this.disableSubmitButtonSimplified();\n if (errCallback) errCallback();\n } else {\n this.enableSubmitButtonSimplified();\n }\n })\n .catch((e) => console.error(e));\n },\n\n validateFreeAnnualOnLoad: function (cloudObj) {\n const opts = {\n cloudId: cloudObj.cloudId,\n cloudName: cloudObj.displayName,\n userId: this.user?.myDetails?.aaid,\n };\n\n if (!opts.cloudId || !opts.cloudName || !opts.userId) {\n return;\n }\n\n this.isCloudIdAnnualAsync(opts, function () {\n $(\".imkt--cloud-signup__form--simplified .site-chooser-1\").hide();\n $(\".imkt--cloud-signup__form--simplified .site-chooser-2\").show();\n });\n },\n\n // validate that Free is not annual\n validateFreeAnnual: function (inputId) {\n var userId = this.user?.myDetails?.aaid;\n var cloudId = this.simplifiedSiteSelected.cloudId;\n\n if (\n !userId ||\n !cloudId ||\n !inputId ||\n this.edition !== this.availableEditions.free\n )\n return;\n\n this.isCloudIdAnnualAsync({\n cloudId,\n cloudName: inputId,\n userId,\n });\n },\n\n submitCloud: function () {\n this.cofsCreateCloud();\n },\n\n cofsCreateCloud: function () {\n var self = this;\n var data = this.formData;\n const submitThroughBxp = this.params.submitBxpExpress || false;\n\n // Data Center Region\n // remove if we are not dealing with opsgenie product\n if (!this.opsgenieSignupIsActive) {\n data.dataRegion = null;\n } else {\n data.initialProductURL = this.getOpsgenieInitialProductURL();\n }\n\n // Insert coupon if its valid/exists\n if (this.coupon) {\n data.coupon = this.coupon;\n }\n\n // Insert template id if it exists\n if (this.templateId) {\n data.templateId = this.templateId;\n }\n\n // Insert Users Captcha token\n if (!this.hamlet.isLoggedIn()) {\n data.responseToken = grecaptcha.getResponse();\n this.userSubmittedWithCaptcha = true;\n }\n\n // Insert Optimizely cohorts if it exists\n let optimizelyExperiments = getAllOptimizelyCohortsAsObjects();\n if (Object.entries(optimizelyExperiments).length > 0) {\n data.optimizelyActiveCohorts = optimizelyExperiments;\n }\n\n // Insert consent payload if gdpr enabled\n if (this.params.useGDPR) {\n if (this.useSocialLogin) {\n // In social login flow, Identity will capture and send the marketing consent\n // info to the ConsentHub once the user confirms the ATL account creation.\n // Setting consent data to undefined in the payload to COFS create cloud API\n // will allow COFS to skip the CONSENTHUB_SEND_CONSENT step and avoid overriding\n // the marketing consent info captured by Identity.\n delete data.consent;\n } else {\n var consent = this.buildConsentPayload();\n\n if (consent) {\n data.consent = consent;\n }\n }\n }\n\n // Insert edition property if it exists\n if (this.edition) {\n data.edition = this.edition;\n }\n\n // Insert migrationSourceUuid property if it exists\n if (this.migrationSourceUuid) {\n data.migrationSourceUuid = this.migrationSourceUuid;\n }\n\n this.experiments.insertExperimentProperties(data);\n var cofsData = this.cofs.mapCofsData(data, {\n submitThroughBxp,\n enableAutogenSiteName:\n this.features.enableAutogenSiteName || this.useSocialLogin,\n useSocialLogin: this.useSocialLogin,\n enableConfluenceAccountSetup: this.features.enableConfluenceAccountSetup,\n allowResendVerificationEmail: this.features.allowResendVerificationEmail,\n });\n\n var fail = function (error) {\n if (self.useSocialLogin) {\n self.socialLogin.showSocialLoginError(\"create-cloud-error\");\n return;\n }\n\n if (submitThroughBxp && error.response && error.response.data) {\n if (error.response.data.cloudName) {\n self.accountNameField\n .nextAll(\".error-message.domain-length-min\")\n .show();\n self.accountNameField.addClass(self.ERROR_CLASS);\n }\n if (error.response.data.firstName) {\n self.firstNameField.nextAll(\".error-message\").show();\n self.firstNameField.addClass(self.ERROR_CLASS);\n }\n if (error.response.data.lastName) {\n self.lastNameField.nextAll(\".error-message\").show();\n self.lastNameField.addClass(self.ERROR_CLASS);\n }\n if (error.response.data.email) {\n self.emailField.nextAll(\".error-message\").show();\n self.emailField.addClass(self.ERROR_CLASS);\n }\n if (error.response.data.adminPassword) {\n self.passwordField.nextAll(\".error-message\").show();\n self.passwordField.addClass(self.ERROR_CLASS);\n }\n }\n\n self.timeoutWarnings.find(\".error-message.timeout-error\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with Error\",\n \"cloud\",\n {},\n \"cart-cloud.submitted-with-error\",\n false\n );\n\n // Additional tracking for field error keys when server error\n self.trackServerValidationFieldErrors(error);\n\n return;\n };\n\n this.cofs\n .createCloud(cofsData, submitThroughBxp, this.hamlet.isLoggedIn())\n .then((resData) => {\n const cloudName = resData.cloudName\n ? resData.cloudName\n : cofsData.cloudName;\n const clientName = this.formData[\"accountName\"];\n const cloudId = resData.cloudId || null;\n\n try {\n if (this.useSocialLogin) {\n // Save social login cloud data to session storage to prevent additional cloud\n // creation if the user navigates back to the signup social login page via\n // the BACK button\n this.socialLogin.sessionStorageSaveCloudData(this.user.myDetails, {\n cloudId,\n cloudName,\n requestId: this.cofs.getRequestId(resData.progressUri),\n productKeys: this.productKeys,\n });\n }\n // eslint-disable-next-line no-empty\n } catch (e) {}\n\n if (this.useSocialLogin && this.features.enableConfluenceAccountSetup) {\n this.updateStatusResults(resData.progressUri, cloudName, clientName);\n } else if (this.useSocialLogin) {\n this.goToRenameSite(resData);\n } else {\n this.updateStatusResults(resData.progressUri, cloudName, clientName);\n }\n })\n .catch((e) => fail(e));\n },\n\n buildConsentPayload: function () {\n var consentEulaText = this.form\n .find(\".eula-container\")\n .html()\n .replace(/\"/g, '\\\\\"')\n .trim();\n var generalMarketingOptInLabel = this.form\n .find(\".marketing-consent--container\")\n .text()\n .replace(/\"/g, '\\\\\"')\n .trim();\n var marketingConsentGranted = this.form\n .find(\"#marketing_consent\")\n .is(\":checked\");\n\n if (!this.consentConfig.localeRequiresMarketingCommunicationOptIn) {\n generalMarketingOptInLabel = \"general consent captured\";\n marketingConsentGranted = true;\n }\n\n if (\n !this.consentConfig.locale ||\n !consentEulaText ||\n !generalMarketingOptInLabel\n ) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"ConsentHub payload error\",\n \"cloud\",\n {},\n \"cart-cloud.consenthub.payload-error\",\n false\n );\n return false;\n }\n\n return {\n site: \"atlassian\",\n locale: this.consentConfig.locale,\n formUrl: encodeURIComponent(window.location.href),\n consents: [\n {\n key: \"termsOfService\",\n displayedText: consentEulaText,\n granted: true,\n },\n {\n key: \"privacyPolicy\",\n displayedText: consentEulaText,\n granted: true,\n },\n {\n key: \"generalMarketingOptIn\",\n displayedText: generalMarketingOptInLabel,\n granted: marketingConsentGranted,\n },\n ],\n };\n },\n\n cancelSignupTimeoutEvents: function () {\n clearTimeout(this.timerWarning);\n clearTimeout(this.timerError);\n clearInterval(this.tryAgain);\n\n this.timerWarning = 0;\n this.timerError = 0;\n this.tryAgain = 0;\n },\n\n /**\n * Track Analytics for complete signup\n */\n sendFinishAnalytics: function (cloudId, cloudName, requestId, callback) {\n this.growthTracker.sendTrack(\"form_submit_signup_success\");\n Tracking.trackAll(\n \"cart-cloud\",\n \"form_submit_signup_success.user.status\",\n \"form event\",\n { existingUser: this.hamlet.isLoggedIn() },\n null,\n false\n );\n this.growthTracker.sendTrackSubmitSuccess(\"bxp_form_success\");\n\n var anonymous_id = storage.getCookie(\"ajs_anonymous_id\") || \"-\"; // Anonymous user, otherwise send the userID\n var opt_id =\n storage.getCookie(\"optimizelyEndUserId\") || \"unknown\";\n var cross_domain_id = storage.getCookie(\"seg_xid\") || \"\";\n\n if (typeof analytics !== \"undefined\") {\n var properties = {\n cloud_id: cloudId,\n request_id: requestId,\n product_list: this.productKeys.join(\",\"),\n cloud_name: cloudName,\n source: window.location.pathname,\n cross_domain_id: cross_domain_id,\n anonymous_id: anonymous_id,\n opt_id: opt_id,\n edition: this.edition || \"\",\n };\n tracking.trackEvent(\n \"create_cloud_embedded_form_wac\",\n properties\n );\n }\n\n Tracking.trackAll(\n \"cart-cloud\",\n \"Completed Checkout Step\",\n \"complete-signup-page\",\n {\n value: cloudId,\n requestId: requestId,\n isRecaptchaV2: this.features.recaptcha,\n isInvisibleRecaptcha: this.features.invisibleRecaptcha,\n existingUser: this.hamlet.isLoggedIn(),\n },\n \"cart-cloud.completed-checkout-step.complete-signup-page\",\n true\n );\n this.trackAnalyticsProduct(\n 0,\n \"Confirmed Evaluation\",\n \"cart-cloud.confirmed-evaluation.\"\n );\n Tracking.trackAll(\n \"cart-cloud\",\n \"Confirmed Evaluation.user.status\",\n \"form event\",\n { existingUser: this.hamlet.isLoggedIn() },\n null,\n false\n );\n\n setTimeout(function () {\n callback();\n }, 800);\n },\n\n /**\n * Gets setup status using progressURI from cloud api request\n */\n updateStatusResults: function (progressUri, cloudName, clientName) {\n var self = this;\n if (!progressUri) {\n self.timeoutWarnings.find(\".error-message.timeout-error\").show();\n\n return;\n }\n\n if (typeof self.tryAgain === \"undefined\") {\n self.tryAgain = setInterval(function () {\n self.updateStatusResults(progressUri, cloudName, clientName);\n }, 1000);\n }\n\n if (typeof self.timerWarning === \"undefined\") {\n // Set timeouts to log slow account creations on first call\n self.timerWarning = setTimeout(function () {\n self.timeoutWarnings.find(\".error-message.timeout-warning\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"Waited\",\n \"Sign-up page submitted >15s\",\n {},\n \"cart-cloud.submitted-timeout.waited-15s\",\n false\n );\n }, 15 * 1000);\n\n self.timerError = setTimeout(function () {\n self.timeoutWarnings.find(\".error-message.timeout-error\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"Waited\",\n \"Sign-up page submitted >60s\",\n {},\n \"cart-cloud.submitted-timeout.waited-60s\",\n false\n );\n clearInterval(self.tryAgain);\n }, 60 * 1000);\n }\n\n $.ajax({\n url: progressUri,\n type: \"GET\",\n success: $.proxy(function (res) {\n var status =\n res.bestStatuses[\"HAMS_CREATE_CLOUD\"] !== \"SKIPPED\"\n ? res.bestStatuses[\"HAMS_CREATE_CLOUD\"]\n : res.bestStatuses[\"BAG_CREATE_CLOUD\"];\n\n switch (status) {\n case \"COMPLETE_SUCCESS\":\n case \"COMPLETE_MANUAL_SUCCESS\":\n self.cancelSignupTimeoutEvents();\n\n var cloudId = res.cloudId || null;\n var callback = function () {\n if (\n self.useSocialLogin &&\n self.features.enableConfluenceAccountSetup\n ) {\n self.goToAccountSetup(res.cloudId, res.requestId, cloudName);\n } else if (\n self.hamlet.isLoggedIn() ||\n self.experiments.bypassEmailCheck\n ) {\n self.goToConfirmation(res, progressUri, cloudName, clientName);\n } else {\n self.goToCheckEmail(res.cloudId, res.requestId, cloudName);\n }\n };\n\n self.sendFinishAnalytics(\n cloudId,\n cloudName,\n res.requestId,\n callback\n );\n return;\n\n case \"COMPLETE_ERROR\":\n self.cancelSignupTimeoutEvents();\n self.timeoutWarnings.find(\".error-message.timeout-error\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"Progress Error\",\n \"cloud\",\n {},\n \"cart-cloud.progress-error\",\n false\n );\n\n return;\n\n default:\n // Re-Try via tryAgain interval\n return;\n }\n }, this),\n error: $.proxy(function () {\n self.timeoutWarnings.find(\".error-message.timeout-error\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"Progress Error\",\n \"cloud\",\n {},\n \"cart-cloud.progress-error\",\n false\n );\n }, this),\n });\n },\n\n trackServerValidationFieldErrors: function (err) {\n try {\n if (_.has(err, \"fieldErrors\")) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with Error Field Errors\",\n \"cloud\",\n { value: JSON.stringify(err.fieldErrors) },\n \"cart-cloud.submitted-with-error.field-errors\",\n false\n );\n } else if (_.has(err, \"error\")) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with Error Server Error\",\n \"cloud\",\n { value: JSON.stringify(err.error) },\n \"cart-cloud.submitted-with-error.general-error\",\n false\n );\n }\n } catch (e) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with Error Response\",\n \"cloud\",\n {},\n \"cart-cloud.submitted-with-error.response-error\",\n false\n );\n }\n },\n\n /**\n * On successful account creation, redirect to Confluence account setup\n */\n goToAccountSetup: function (cloudId, requestId, cloudName) {\n this.growthTracker.sendTrack(\"navigatedToAccountSetup\");\n\n if (!cloudId) {\n this.timeoutWarnings.find(\".error-message.timeout-error\").show();\n return false;\n }\n\n const ondemandurl = cloudName;\n const products = this.productKeys.join(\",\");\n var queryParams = {\n cloudId,\n ondemandurl,\n products,\n requestId,\n };\n\n var urlParams = $.param(queryParams);\n var nextUrl =\n this.baseDomain + this.URL_ACCOUNT_SETUP_PATH + \"/?\" + urlParams;\n\n window.location = nextUrl;\n return;\n },\n\n /**\n * On successful account creation, redirect to cloud success page\n */\n goToConfirmation: function (data, progressUri, cloudName) {\n this.growthTracker.sendTrack(\"navigatedToConfirmation\");\n\n if (!data) {\n this.timeoutWarnings.find(\".error-message.timeout-error\").show();\n return false;\n }\n\n let ondemandUrl = this.formData.accountName;\n if (cloudName) {\n ondemandUrl = cloudName;\n }\n\n var queryParams = {\n ondemandurl: ondemandUrl,\n products: this.productKeys.join(\",\"),\n cloudId: data.cloudId,\n requestId: this.cofs.getRequestId(progressUri),\n };\n\n if (this.opsgenieSignupIsActive) {\n queryParams.dataRegion = this.dataRegionField.filter(\":checked\").val();\n }\n\n var urlParams = $.param(queryParams);\n var nextUrl =\n this.baseDomain + this.URL_CONFIRMATION_PATH + \"/?\" + urlParams;\n\n window.location = nextUrl;\n return;\n },\n checkPerms: function (cloudId) {\n return retry(\n async (bail) => {\n // if anything throws, we retry\n let postBody = {\n dontRequirePrincipalInSite: \"true\",\n permissionId: \"manage\",\n resourceId: `ari:cloud:platform::site/${cloudId}`,\n };\n\n let options = {\n headers: {\n \"content-type\": \"application/json\",\n },\n method: \"POST\",\n body: JSON.stringify(postBody),\n };\n let perms = await fetch(\n `${Environment.getAPIPrivateURL()}/permissions/permitted`,\n options\n );\n\n if (\n 403 === perms.status ||\n 401 === perms.status ||\n 500 === perms.status\n ) {\n bail(new Error(\"Unauthorized or Server error\"));\n return;\n }\n //retry if Perms returned http != 200\n if (200 !== perms.status) {\n throw new Error(\n \"bxp.cloud-signup.rename.site.permissions.check.failed\"\n );\n }\n\n const data = await perms.json();\n //retry if Perms returned http 200 with permitted=false\n if (true !== data.permitted) {\n throw new Error(\n \"bxp.cloud-signup.rename.site.permissions.check.false\"\n );\n }\n return data;\n },\n {\n retries: 4,\n minTimeout: 1000,\n maxTimeout: 1000,\n }\n );\n },\n /**\n * On successful account creation, but user not logged in\n */\n goToCheckEmail: function (cloudId, requestId, autoGeneratedCloudName) {\n this.growthTracker.sendTrack(\"navigatedToCheckEmail\");\n\n var queryParams = {\n accountName: this.formData.accountName,\n products: this.productKeys.join(\",\"),\n };\n\n if (this.features.enableAutogenSiteName) {\n if (this.features.allowResendVerificationEmail) {\n queryParams.accountName = autoGeneratedCloudName;\n } else {\n delete queryParams.accountName;\n }\n }\n\n /**\n * @todo: $scope.email = MemoryStorage.checkEmailAddress;\n * ... used by ondemand app in the checkemail controller, but not sure what MemoryStorage is setting.\n */\n this.setResendEmailParams(cloudId, requestId, autoGeneratedCloudName);\n var urlParams = $.param(queryParams);\n var nextUrl = this.baseDomain + this.URL_CHECKEMAIL_PATH + \"/?\" + urlParams;\n\n window.location = nextUrl;\n return;\n },\n\n /**\n * Server Validation failed, prompt user to check fields and reset submit button\n */\n showInvalidForm: function (adminErrors) {\n var self = this;\n\n self.submitButton.find(\".submit--initial-text\").show();\n self.submitButton.find(\".submit--processing-text\").hide();\n self.submitButton.removeAttr(\"disabled\");\n self.form.find(\".validation-error-message\").show();\n\n self.form.find(\".admin-error-message\").empty();\n $.each(adminErrors, function (k, v) {\n self.form\n .find(\".admin-error-message\")\n .append(\"
    \" + v)\n .show();\n\n // Track a server side validation error (FOR EACH FIELD)\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with validation Error\",\n \"cloud\",\n {},\n \"cart-cloud.submitted-with-validation-error.\" + k,\n false\n );\n });\n },\n\n /**\n * Check client side for missing input\n */\n checkField: function ($field, clearErrors) {\n if (!$field.val().length) {\n $field.nextAll(\".error-message\").show();\n $field.addClass(this.ERROR_CLASS);\n } else if (clearErrors) {\n $field.nextAll(\".error-message\").hide();\n $field.removeClass(this.ERROR_CLASS);\n }\n },\n\n /**\n * First and last name must pass a validation pattern in COFS\n */\n checkNameField: function ($field, clearErrors) {\n const invalidNamePattern =\n /((http(s)?|ftp|callto|mailto|skype|magnet):)|www\\.|:\\/\\/|@|\\$/i;\n var fieldName = $field.attr(\"name\");\n if (invalidNamePattern.test($field.val())) {\n $field.nextAll(\".error-message\").show();\n $field.addClass(this.ERROR_CLASS);\n this.growthTracker.sendTrack(\"fullName.errors\");\n\n // NUXAPOLLO-452 add tracking for firstname and lastname error\n Tracking.trackAll(\n \"cart-cloud\",\n \"Typed \" + fieldName + \" Error\",\n \"cloud\",\n {},\n \"cart-cloud.typed-\" + fieldName + \"-error\",\n false\n );\n } else if (clearErrors) {\n $field.nextAll(\".error-message\").hide();\n $field.removeClass(this.ERROR_CLASS);\n\n // NUXAPOLLO-452 add tracking for firstname and lastname success\n Tracking.trackAll(\n \"cart-cloud\",\n \"Typed \" + fieldName + \" Success\",\n \"cloud\",\n {},\n \"cart-cloud.typed-\" + fieldName + \"-success\",\n false\n );\n }\n },\n\n checkPasswordField: function ($field) {\n if ($field.val().length < 8) {\n $field.nextAll(\".error-message\").show();\n $field.addClass(this.ERROR_CLASS);\n\n // NUXAPOLLO-452 add tracking for password error\n Tracking.trackAll(\n \"cart-cloud\",\n \"Typed Password Error\",\n \"cloud\",\n {},\n \"cart-cloud.typed-password-error\",\n false\n );\n } else {\n $field.nextAll(\".error-message\").hide();\n $field.removeClass(this.ERROR_CLASS);\n\n // NUXAPOLLO-452 add tracking for password success\n Tracking.trackAll(\n \"cart-cloud\",\n \"Typed Password Success\",\n \"cloud\",\n {},\n \"cart-cloud.typed-password-success\",\n false\n );\n }\n },\n\n /**\n * check for empty account/domain field\n */\n checkAccountField: function ($field) {\n if (this.features.enableAutogenSiteName) {\n return;\n }\n\n if (!$field.val().length) {\n $field.nextAll(\".domain-length-min\").show();\n $field.addClass(this.ERROR_CLASS);\n }\n },\n\n /**\n * Render ReCaptcha with callback properties\n */\n renderCaptcha: function () {\n if (!this.features.recaptcha) {\n return;\n }\n\n var captchaOptions = {\n sitekey: \"6LePw0oUAAAAAFjgRJCH0IGJeoXmYxWbsKpTHRMx\",\n callback: this.updateCaptcha.bind(this),\n \"expired-callback\": this.resetCaptcha.bind(this),\n };\n var captchaRenderElement = document.getElementById(\"g-recaptcha-render\");\n $(captchaRenderElement).parent().addClass(\"rendered\");\n\n grecaptcha.render(captchaRenderElement, captchaOptions);\n },\n\n renderInvCaptcha: function () {\n if (!this.features.invisibleRecaptcha) {\n return;\n }\n\n var captchaRenderElement = document.getElementById(\n \"inv-recaptcha-signup_submit\"\n );\n\n grecaptcha.render(captchaRenderElement);\n this.disableSubmitButton(true);\n },\n\n /**\n * Captcha callback on user interaction success\n */\n updateCaptcha: function () {\n captchaFilled = true;\n this.hideErrorCaptcha();\n this.updateFormReady();\n },\n\n /**\n * Reset ReCaptcha when a user idles too long\n */\n resetCaptcha: function () {\n grecaptcha.reset();\n this.updateFormReady();\n this.captchaContainer.removeClass(this.ERROR_CLASS);\n Tracking.trackAll(\n \"cart-cloud\",\n \"ReCaptcha Reset\",\n \"cloud\",\n {},\n \"cart-cloud.recaptcha.reset\",\n false\n );\n },\n\n showErrorCaptcha: function () {\n this.captchaContainer.addClass(this.ERROR_CLASS);\n this.captchaContainer.find(\".error-message\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"ReCaptcha Error\",\n \"cloud\",\n {},\n \"cart-cloud.recaptcha.error\",\n false\n );\n },\n\n hideErrorCaptcha: function () {\n this.captchaContainer.removeClass(this.ERROR_CLASS);\n this.captchaContainer.find(\".error-message\").hide();\n },\n\n /**\n * Sanitize client side product keys to match server side available products\n */\n assignSelectedProducts: function (items) {\n const self = this;\n\n _.each(items, function (productKey) {\n const product = _.find(self.availableProducts, {\n product_key: productKey,\n });\n if (product) {\n // test for opsgenie product\n if (productKey === \"opsgenie\") {\n self.opsgenieSignupIsActive = true;\n const dataRegionFieldContainer = $(self.params.fieldIds.dataRegionId);\n dataRegionFieldContainer.show();\n\n // NUXSIGNUP-7 disable experiment for opsgenie signup\n self.features.enableAutogenSiteName = false;\n self.changeSiteNameVisibility(); // force site name to be visible if we've already hidden it\n\n // NUXAPOLLO-210 No Confluence account setup for logged in users.\n self.features.enableConfluenceAccountSetup = false;\n }\n\n if (productKey === \"opsgenie\" || productKey.includes(\"bitbucket\")) {\n // NUXAPOLLO-54 disable experiment for opsgenie and bitbucket signup\n self.features.enableContinueWithGoogle = false;\n self.features.enableContinueWithMicrosoft = false;\n self.features.enableFirstImpressions = false;\n // NUXAPOLLO-611 disable combined bundles signup\n self.features.enableCombinedBundles = false;\n }\n\n if (product.cofs_enabled) {\n if (\n productKey === \"bitbucket.ondemand\" &&\n !self.features.allowBitbucket\n ) {\n self.selectedAddons.push(product);\n } else {\n self.selectedProducts.push(product);\n self.productKeys.push(product.product_key);\n }\n } else {\n self.selectedAddons.push(product);\n }\n\n const urlEdition = self.checkUrlEditionKey();\n self.edition = urlEdition\n ? self.sanitizeEditionForProduct(urlEdition, product)\n : null;\n\n self.migrationSourceUuid = self.checkUrlMigrationSourceUuidKey();\n }\n });\n\n if (!items || !items.length || items[0] != CONFLUENCE_PRODUCT_KEY) {\n // Confluence has to be the base target product\n self.features.enableConfluenceAccountSetup = false;\n }\n\n // Remove the edition and migrationSourceUuid property if more than one product in signup\n if (self.selectedProducts.length > 1) {\n // do not remove the (set to standard) edition if this signup is for free\n if (self.edition !== this.availableEditions.free) {\n self.edition = null;\n }\n self.migrationSourceUuid = null;\n }\n\n // We are going to override the edition with the signupEdition from Magnolia Dialog\n if (\n Object.values(this.availableEditions).includes(this.params.signupEdition)\n ) {\n this.edition = this.params.signupEdition;\n }\n },\n\n sanitizeEditionForProduct: function (edition, product) {\n if (edition === this.availableEditions.premium && product.premium_enabled) {\n return this.availableEditions.premium;\n } else if (\n edition === this.availableEditions.free &&\n product.free_enabled\n ) {\n if (\n window.localStorage.getItem(\"bxp_science_sci279\") ||\n window.localStorage.getItem(\"bxp_science_sci280\") ||\n !!(\n imkt.constants &&\n imkt.constants.isFreeEnabled\n )\n ) {\n return this.availableEditions.free;\n }\n return this.availableEditions.standard;\n } else if (edition === this.availableEditions.standard) {\n return this.availableEditions.standard;\n } else {\n return null;\n }\n },\n\n /**\n * Sanitize client side product keys to match server side available external products\n */\n assignSelectedExternalProducts: function () {\n const urlParams = url.getUrlParams() || {};\n const productParam = urlParams[\"product\"] || false;\n\n if (productParam) {\n const items = productParam.split(\",\");\n\n _.each(items, (productKey) => {\n const product = _.find(this.availableProducts, {\n product_key: productKey,\n });\n\n if (\n (product && !product.cofs_enabled) ||\n (productKey === \"bitbucket.ondemand\" && !this.features.allowBitbucket)\n ) {\n this.selectedAddons.push(product);\n }\n });\n }\n },\n\n /**\n * Check for edition key in url\n */\n checkUrlEditionKey: function () {\n const params = url.getUrlParams() || {};\n return params[\"edition\"] || null;\n },\n\n /**\n * Check for migrationSourceUuid key in url\n */\n checkUrlMigrationSourceUuidKey: function () {\n const params = url.getUrlParams() || {};\n return params[\"migrationSourceUuid\"] || null;\n },\n\n /**\n * Check for product keys in url\n */\n checkUrlProductKeys: function () {\n var urlParams = url.getUrlParams() || {};\n var productParam = urlParams[\"product\"] || false;\n\n if (productParam) {\n // Reset any selections for url override\n this.selectedProducts = [];\n this.selectedAddons = [];\n this.productKeys = [];\n\n this.products = productParam;\n this.assignSelectedProducts(this.products.split(\",\"));\n }\n },\n\n /**\n * Check for bundle key in url\n */\n checkUrlBundleKey: function () {\n var urlParams = url.getUrlParams() || {};\n var param = urlParams[\"bundle\"] || false;\n var bundleData = this.bundleData[param];\n if (bundleData) bundleData.queryParam = param;\n return bundleData;\n },\n\n /**\n * Check for coupon key in url\n */\n checkUrlCouponKey: function () {\n var urlParams = url.getUrlParams() || {};\n var coupon = urlParams[\"coupon\"] || false;\n\n if (coupon) {\n this.cofs\n .validateCoupon(coupon)\n .then((result) => {\n this.coupon = coupon;\n this.renderCouponValidateMessage(result);\n })\n .catch((result) => {\n this.renderCouponValidateMessage(result);\n });\n }\n },\n\n /**\n * Check for selected products in local storage\n */\n checkStorageProductKeys: function () {\n var storedProducts = JSON.parse(\n storage.getLocalStorage(this.PRODUCTS_STORAGE_KEY)\n );\n\n this.assignSelectedProducts(storedProducts);\n },\n\n /**\n * Show password strength indicator to user\n */\n renderPasswordStrength: function (score) {\n var labels = {\n passwordstrength: \"Password Strength\",\n passwordstrengthScores: [\"Weak\", \"Weak\", \"Good\", \"Strong\", \"Very Strong\"],\n };\n\n score = this.passwordField.val().length ? score : -1;\n\n // Don't render password strength for invalid passwords\n if (this.passwordField.hasClass(this.ERROR_CLASS)) {\n score = -1;\n }\n\n var tmp = _.template(\n $(\".template__form--product-on-demand--passwordstrength\").html()\n );\n this.passwordScoreTemplateTarget.html(\n tmp({\n score: score,\n labels: labels,\n })\n );\n },\n\n /**\n * update ui with coupon messaging\n */\n renderCouponValidateMessage: function (result) {\n const tmp = _.template(\n $(\".template__form--product-on-demand--coupon-messaging\").html()\n );\n const messageSuccess =\n this.labels.informMessageCouponSuccess || \"Coupon success\";\n const messageError =\n this.labels.informMessageCouponError || \"Coupon unavailable\";\n const message = result.success ? messageSuccess : messageError;\n\n if (result.success && this.labels.labelSubmitCoupon) {\n this.submitButton.text(this.labels.labelSubmitCoupon);\n }\n\n $(\".heading--products\")\n .parent()\n .prepend(\n tmp({\n classResult: result.success ? \"message--success\" : \"message--warning\",\n message: message,\n })\n );\n },\n\n /**\n * update ui with product data for each selected product\n */\n renderProductSelections: function () {\n var self = this;\n\n // Only hide annual subscription content if user signs up for Bitbucket only\n if (\n this.selectedProducts.length === 0 &&\n this.selectedAddons.length === 1 &&\n this.selectedAddons[0].name === \"Bitbucket\"\n ) {\n this.annualSubscriptionContent.hide();\n }\n\n // Render Eula Text based on product selections\n let eulaLabel = this.labels.eulaText;\n if (!this.params.products && this.hamlet.hasAddons()) {\n eulaLabel = this.labels.eulaWithAddonsText || eulaLabel;\n this.eulaContainer.html(eulaLabel);\n }\n\n // Experiment for 'wcf-459' & Premium\n if (!this.useAlternateLayout) {\n // Add indicator to what products are being signed up\n _.each(this.selectedProducts, function (product) {\n var checkedElement = $(\n '
  • ' +\n (product.name || product.productDescription) +\n \"
  • \"\n );\n self.cofsListContainer.append(checkedElement);\n });\n } else {\n const logos = $(\".trial-info-data__logos\", this.$domRoot).clone();\n const editionText = $(\n \".trial-info-data__edition-text\",\n this.$domRoot\n ).clone();\n logos.insertAfter(this.cofsListContainer);\n editionText.insertAfter(logos);\n }\n // (End) Experiment for 'wcf-459' & Premium\n\n // Add indicator to what products are being signed up\n _.each(this.hamletAddonProducts, function (product) {\n var checkedElement = $(\n '
  • ' +\n (product.name || product.productDescription) +\n \"
  • \"\n );\n self.cofsListContainer.append(checkedElement);\n });\n\n // Show indicator to what products are being signed up\n if (this.params.showFormEnabledProducts) {\n self.cofsListContainer.addClass(\"active\");\n }\n\n var productsTemplateTarget = $(\".imkt__list--product-on-demand\");\n var template = $(\".template__list--product-on-demand\");\n\n if (!self.selectedProducts.length) {\n productsTemplateTarget = $(\".imkt--cloud-signup__form\");\n template = $(\".template__list--product-all-external\");\n }\n\n if (!productsTemplateTarget.length || !template.length) {\n return;\n }\n\n var productsTemplate = _.template(template.html());\n productsTemplateTarget.html(\n productsTemplate({\n selectedProducts: this.selectedProducts,\n selectedAddons: this.selectedAddons,\n labels: this.labels,\n isPremiumEdition: this.edition === \"premium\",\n })\n );\n },\n\n renderMarketingConsent: function (requiresCheckbox, label) {\n if (this.params.useGDPR) {\n var marketingLabel = $(``);\n var marketingConsentInput = $(\n ''\n );\n\n if (!requiresCheckbox) {\n marketingConsentInput.prop(\"checked\", true);\n this.marketingConsentContainer.hide();\n } else {\n this.marketingConsentContainer.show();\n }\n\n marketingLabel.append(marketingConsentInput).append(label);\n this.marketingConsentContainer.append(marketingLabel);\n }\n },\n\n disableSubmitButton: function (preventSubmitActionText) {\n // Submit button may be disabled to prevent submitting\n if (!preventSubmitActionText) {\n this.submitButton.find(\".submit--initial-text\").hide();\n this.submitButton.find(\".submit--processing-text\").show();\n }\n\n this.submitButton.attr(\"disabled\", \"disabled\");\n },\n\n enableSubmitButton: function () {\n this.submitButton.find(\".submit--initial-text\").show();\n this.submitButton.find(\".submit--processing-text\").hide();\n this.submitButton.removeAttr(\"disabled\");\n },\n\n disableSubmitButtonSimplified: function () {\n $(\n \".imkt--cloud-signup__form--simplified .imkt--cloud-signup__button--submit\"\n ).attr(\"disabled\", \"disabled\");\n },\n\n enableSubmitButtonSimplified: function () {\n $(\n \".imkt--cloud-signup__form--simplified .imkt--cloud-signup__button--submit\"\n ).removeAttr(\"disabled\");\n },\n\n /**\n * Analytics track event for adding products configured on load / legacy reporting\n */\n trackAnalyticsProduct: function (i, action, optimizelyValue, callback) {\n var products = self.productKeys;\n\n if (products && i < products.length) {\n Tracking.trackAll(\n \"cart-cloud\",\n action,\n `${products[i]}.cloud`,\n {},\n `${optimizelyValue}${products[i]}`,\n false\n );\n this.trackAnalyticsProduct(i + 1, action, optimizelyValue);\n }\n\n if (callback) {\n callback();\n }\n },\n\n /**\n * Popup external signup window as reminder for users\n */\n popupReminderExternalProducts: function () {\n var windowProperties = {\n top: 0,\n left: 0,\n width: 600,\n height: 400,\n };\n\n if (!this.selectedAddons.length) {\n return;\n }\n\n var addonKeys = this.selectedAddons.map(function (product) {\n return product.product_key;\n });\n\n var urlParams = \"?product=\" + addonKeys.join(\",\");\n var externalSignupUrl =\n this.baseDomain + this.params.externalSignupPage + urlParams;\n window.open(\n externalSignupUrl,\n \"Additional Signup\",\n \"top=\" +\n windowProperties.top +\n \",left=\" +\n windowProperties.left +\n \",width=\" +\n windowProperties.width +\n \",height=\" +\n windowProperties.height\n );\n },\n\n /**\n * Toggle password field to show/hide text\n */\n togglePasswordShow: function () {\n if (this.showPasswordField.is(\":checked\")) {\n this.passwordField.attr(\"type\", \"text\");\n } else {\n this.passwordField.attr(\"type\", \"password\");\n }\n },\n\n trackOnSubmitEvents: function () {\n this.growthTracker.sendTrackSubmitCounter(\"bxp_repeat_submit\");\n this.growthTracker.sendTrack(\"signupPressedSubmit\", {\n hostname: this.accountNameField.val(),\n edition: this.edition || \"\",\n });\n this.hamlet.isLoggedIn()\n ? this.growthTracker.sendTrack(\"submit.loggedin\")\n : this.growthTracker.sendTrack(\"submit.notloggedin\");\n },\n\n getLocaleParam: function () {\n const urlParams = url.getUrlParams() || {};\n const langParam = urlParams[\"lang\"] || false;\n\n if (langParam) {\n return langParam;\n }\n return;\n },\n\n updateLocaleText: function () {\n const locale = this.getLocaleParam();\n\n if (!locale) {\n return;\n }\n\n const localizedLabels = this.params.i18nLabels[locale];\n if (!localizedLabels) {\n return;\n }\n\n Object.assign(this.labels, localizedLabels.labels);\n this.consentLabelMarketing =\n localizedLabels.consentLabelMarketing || this.consentLabelMarketing;\n\n if (localizedLabels.bundleData) {\n _.each(this.bundleData, (bundle, bundleKey) => {\n Object.assign(\n this.bundleData[bundleKey],\n localizedLabels.bundleData[bundleKey]\n );\n });\n }\n\n const localElements = this.form.find(\".translate\");\n _.each(localElements, (element) => {\n const translationKey = $(element).attr(\"data-translate-key\");\n const translation = localizedLabels.labels[translationKey];\n\n const translationAttr = $(element).attr(\"data-translate-attr\");\n\n if (translation && translationAttr) {\n $(element).attr(translationAttr, translation);\n } else if (translation) {\n $(element).html(translation);\n }\n });\n },\n\n // Check the browser url for a known templateId param\n // to be passed into COFS and Cloud Provisioning for on-boarding purposes\n getTemplateFromUrl: function () {\n const urlParams = url.getUrlParams() || {};\n const templateParam = urlParams.templateId || false;\n\n return templateParam;\n },\n\n renderN2EModal: function () {\n const mySites = this.hamlet.getSites();\n const existingTargetSites = this.findSitesWithProductKey(\n mySites,\n \"jira-software.ondemand\"\n );\n\n const urlParams = url.getUrlParams() || {};\n const templateParam = urlParams.userstate || \"jsw\";\n\n if (existingTargetSites.length) {\n var tmp = _.template(\n $(`.template--cloud-signup__form--n2emodal--${templateParam}`).html()\n );\n $(\"body\").append(\n tmp({\n existingTargetSites: existingTargetSites,\n })\n );\n $(\"#modal-dismiss-button\").on(\"click\", () =>\n $(\"#signup-bitbucket-jira > div.overlay.in\").remove()\n );\n }\n },\n\n findSitesWithProductKey: function (sites, productKey) {\n return sites.filter((site) => site.products.includes(productKey));\n },\n\n getOpsgenieInitialProductURL: function () {\n const dataRegionValue = this.dataRegionField.filter(\":checked\").val();\n\n var initialProductURL = \"atlassian-app.opsgenie.com\";\n\n if (dataRegionValue == \"main\") {\n initialProductURL = \"atlassian-app.opsgenie.com\";\n if (!Environment.isProduction()) {\n initialProductURL = \"atlassian-app.opsgeni.us\";\n }\n } else if (dataRegionValue == \"europe\") {\n initialProductURL = \"atlassian-app.eu.opsgenie.com\";\n if (!Environment.isProduction()) {\n initialProductURL = \"atlassian-app.opsgeni.us\";\n }\n }\n\n return initialProductURL;\n },\n\n getOpsgenieSiteHostName: function () {\n const dataRegionValue = this.dataRegionField.filter(\":checked\").val();\n\n var siteHost = \".atlassian-app.opsgenie.com\";\n\n if (dataRegionValue == \"main\") {\n siteHost = \".atlassian-app.opsgenie.com\";\n if (!Environment.isProduction()) {\n siteHost = \".atlassian-app.opsgeni.us\";\n }\n } else if (dataRegionValue == \"europe\") {\n siteHost = \".atlassian-app.eu.opsgenie.com\";\n if (!Environment.isProduction()) {\n siteHost = \".atlassian-app.opsgeni.us\";\n }\n }\n\n return siteHost;\n },\n\n getOpsgenieSiteRedirectURL: function () {\n const accountName = this.accountNameField.val();\n const opsgenieHostName = this.getOpsgenieSiteHostName();\n\n return \"https://\" + accountName + opsgenieHostName;\n },\n};\n","import _ from 'underscore';\n\n/*\n * Abstraction library for storing data in the browser. Handles all the actual\n * browser interaction for localStorage, sessionStorage and cookies.\n */\nexport default function () {\n\n /*\n * Create a storage prefix key to use for local/session storage\n * Use a reverse of the site host. ie: atlassian.com prefix will\n * be com.atlassian.angular.storage\n */\n var prefix = window.location.hostname\n .split('.')\n .reverse()\n .join('.') + '.bxp.storage',\n\n $window = window,\n browserSupport = {},\n stringify = JSON.stringify,\n\n supports = function (storageType) {\n if (_.has(browserSupport, storageType)) {\n return browserSupport[storageType];\n }\n if (_.contains(['localStorage', 'sessionStorage'], storageType)) {\n try {\n browserSupport[storageType] = typeof $window[storageType] === 'object' &&\n typeof $window[storageType].setItem === 'function' &&\n typeof $window[storageType].getItem === 'function' &&\n typeof $window[storageType].clear === 'function';\n } catch (e) {\n browserSupport[storageType] = false;\n }\n }\n return browserSupport[storageType];\n };\n\n /*\n * Abstraction over local and session storage. If write error occurs, catch it\n * then clear the storage and disable browserSupport property for that storage\n * type so any further attempts to write to that browser storage don't work.\n * If local/session storage is unsupported, and the stringified value really small\n * then attempt to save it to a cookie as a fallback mechanism\n */\n var setItem = function (storageType, key, value) {\n var storageKey = [ prefix, key ].join('.'),\n outputString = stringify(value);\n\n if (supports(storageType)) {\n try {\n $window[storageType].setItem(storageKey, outputString);\n } catch (e) {\n browserSupport[storageType] = false;\n }\n } else if (outputString.length < 150) {\n this.cookie.set(storageKey, value);\n }\n };\n\n /*\n * Read in the value of a given key from local/session storage.\n * Fallback to cookies instituted here as well should local/session be\n * unavailable\n */\n var getItem = function (storageType, key) {\n var storageKey = [ prefix, key ].join('.');\n if (supports(storageType)) {\n return JSON.parse($window[storageType].getItem(storageKey));\n } else {\n this.cookie.get(storageKey);\n }\n };\n\n /*\n * Wipe out an item from local/session storage with cookie fallback\n */\n var removeItem = function (storageType, key) {\n var storageKey = [ prefix, key ].join('.');\n if (supports(storageType)) {\n $window[storageType].removeItem(storageKey);\n } else {\n this.cookie.remove(storageKey);\n }\n };\n\n /*\n * Clear all local/session storage data for the app\n */\n var clear = function (storageType) {\n if (supports(storageType)) {\n $window[storageType].clear();\n }\n };\n\n /*\n * In-memory cache\n */\n var SESSION_STORAGE = {};\n var LOCAL_STORAGE = {\n timestamp: getItem('localStorage', 'timestamp')\n };\n\n if (LOCAL_STORAGE.timestamp && _.isNumber(LOCAL_STORAGE.timestamp)) {\n var timestamp = new Date(LOCAL_STORAGE.timestamp),\n ageInDays = (new Date() - timestamp) / 1000 / 60 / 60 / 24;\n if (ageInDays > 30) {\n clear('localStorage');\n }\n } else {\n LOCAL_STORAGE = { timestamp: Date.parse(new Date()) };\n setItem('localStorage', 'timestamp', LOCAL_STORAGE.timestamp);\n }\n\n /*\n * Public API\n */\n return {\n local: {\n set: function (key, value) {\n // don't add null or undefined, but 0 and '' and false are okay\n if (!value && value !== 0 && value !== '' && value !== false) {\n return false;\n }\n LOCAL_STORAGE[key] = value;\n setItem('localStorage', key, value);\n },\n get: function (key) {\n LOCAL_STORAGE[key] = getItem('localStorage', key);\n return LOCAL_STORAGE[key] || null;\n },\n remove: function (key) {\n delete LOCAL_STORAGE[key];\n removeItem('localStorage', key);\n },\n clear: function () {\n LOCAL_STORAGE = {};\n clear('localStorage');\n }\n },\n session: {\n set: function (key, value) {\n // don't add null or undefined, but 0 and '' and false are okay\n if (!value && value !== 0 && value !== '' && value !== false) {\n return false;\n }\n SESSION_STORAGE[key] = value;\n setItem('sessionStorage', key, value);\n },\n get: function (key) {\n SESSION_STORAGE[key] = getItem('sessionStorage', key);\n return SESSION_STORAGE[key] || null;\n },\n remove: function (key) {\n delete SESSION_STORAGE[key];\n removeItem('sessionStorage', key);\n },\n clear: function () {\n SESSION_STORAGE = {};\n clear('sessionStorage');\n }\n },\n cookie: {\n set: function (key, value, days) {\n let date = new Date();\n date.setTime(date.getTime() + (days*24*60*60*1000));\n\n if (!days) {\n days = 30;\n }\n let expires = \"; expires=\" + date.toUTCString();\n\n document.cookie = key + \"=\" + value + expires + \"; path=/\";\n },\n get: function (key) {\n const encodedName = encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\");\n const regex = new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodedName + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\");\n return decodeURIComponent(document.cookie.replace(regex, \"$1\")) || null;\n },\n remove: function (key) {\n this.cookie.set(key,'',-1);\n }\n },\n support: browserSupport\n };\n}\n","import api from \"./utils/api\";\nimport browser from \"./utils/browser\";\nimport getScript from \"./utils/get-script\";\nimport tracking from \"./utils/tracking\";\nimport general from \"./utils/general\";\nimport history from \"./utils/history\";\nimport string from \"./utils/string\"\nimport storage from \"./utils/storage\";\nimport url from \"./utils/url\";\n\nconst imkt: { [property: string]: any } = window.imkt = window.imkt || {\n core: {\n /*\n * this parses the DOM and finds any type=\"text/x-component\" scripts and initializes a component for each\n */\n init: async function (domRoot) {\n var self = this;\n\n this.featureDetect();\n\n const LocalizedPricing = (await import(\"./utils/localized-pricing\")).default;\n\n const localizedPricing = new LocalizedPricing();\n\n $(\"script[type='text/x-component']\", domRoot).each(function (i, elem) {\n var componentInfo = JSON.parse(elem.innerHTML.trim()),\n componentRoot = elem.parentNode;\n\n const {\n productKey,\n productKeyArray,\n period,\n offeringSku,\n countryISOCodeReq,\n } = componentInfo.params;\n\n if (productKey) {\n componentInfo.params.pricing = localizedPricing.getPricingPromise(\n productKey,\n period\n );\n }\n\n if (offeringSku) {\n componentInfo.params.pricing = localizedPricing.getPricingPromise(\n null,\n period,\n null,\n null,\n offeringSku\n );\n }\n\n if (productKeyArray) {\n componentInfo.params.pricingObject = productKeyArray.map((product) => {\n return localizedPricing.getPricingPromise(\n product.key,\n product.period,\n product.identifiers,\n product.customCurrency,\n product.offeringSku\n );\n });\n }\n\n if (countryISOCodeReq) {\n componentInfo.params.countryISOCodePromise =\n localizedPricing.getLocale();\n }\n\n try {\n self.componentInit.call(self, componentRoot, componentInfo);\n } catch (e) {\n console.log(e);\n }\n });\n\n localizedPricing.resolvePricingPromises();\n\n // Init component scripts with Smartling Translation\n $(\"script[type='text/x-component-translate']\", domRoot).each(function (\n i,\n elem\n ) {\n var innerHTML = elem.innerHTML\n .trim()\n .replace(\"/* */\", \"\")\n .replace(\"/* */\", \"\");\n var componentInfo = JSON.parse(innerHTML),\n componentRoot = elem.parentNode;\n self.componentInit.call(self, componentRoot, componentInfo);\n });\n\n $(document).trigger(\"appInitialized\");\n this.appInitialized = true;\n },\n onInitialized: function (cb) {\n if (this.appInitialized) {\n cb();\n } else {\n $(document).on(\"appInitialized\", cb);\n }\n },\n featureDetect: function () {\n var bodyClasses = [];\n if (!this.supports.svg()) {\n bodyClasses.push(\"no-svg\");\n }\n if (!this.supports.backgroundSize()) {\n bodyClasses.push(\"no-backgroundsize\");\n }\n if (!this.supports.flexBox()) {\n bodyClasses.push(\"no-flexbox\");\n }\n $(\"body\").addClass(bodyClasses.join(\" \"));\n },\n extend: function (supertype, subtype, overrides = {}) {\n var ctor = function () { },\n name;\n ctor.prototype = supertype.prototype;\n subtype.prototype = new ctor();\n for (name in overrides) {\n subtype.prototype[name] = overrides[name];\n }\n subtype.prototype.constructor = supertype;\n },\n /*\n * this takes a namespaced string like \"imkt.components.tabs\" and returns the actual JS object (if found)\n */\n resolve: function (str, createIfNotExists) {\n var basis = window;\n if (!str) {\n return null;\n } else if (typeof str === \"function\") {\n return str;\n } else {\n var last = basis,\n names = str.split(\".\"),\n name,\n i,\n j;\n for (i = 0, j = names.length; i < j; i++) {\n name = names[i];\n basis = basis[name];\n if (!basis) {\n if (createIfNotExists) {\n basis = last[name] = {};\n } else {\n return null;\n }\n }\n last = basis;\n }\n }\n return basis;\n },\n /*\n * tries to resolve the component name and if so, initializes it\n */\n componentInit: function (componentRoot, componentInfo) {\n var componentType = this.resolve(componentInfo.type);\n if (componentType) {\n return new componentType(\n componentRoot,\n Object.assign({}, componentInfo.params, $(componentRoot).data())\n );\n } else {\n // could not find component\n }\n },\n supports: {\n flexBox: function () {\n return (\n \"flexWrap\" in document.documentElement.style ||\n \"webkitFlexWrap\" in document.documentElement.style\n );\n },\n history: function () {\n return window.history && window.history.pushState;\n },\n svg: function () {\n return document.implementation.hasFeature(\n \"http://www.w3.org/TR/SVG11/feature#Image\",\n \"1.1\"\n );\n },\n backgroundSize: function () {\n return \"backgroundSize\" in document.documentElement.style;\n },\n touch: function () {\n return \"ontouchstart\" in window;\n },\n placeholder: function () {\n var i = document.createElement(\"input\");\n return \"placeholder\" in i;\n },\n localStorage: function () {\n // Bugfix WTF-15606, try/catch for localStorage empty object (private browsers)\n try {\n window.localStorage.setItem(\"hasStorage\", \"1\");\n return (\n window.localStorage &&\n window.localStorage.setItem &&\n window.localStorage.removeItem\n );\n } catch (error) {\n return false;\n }\n },\n transitions: function () {\n var b = document.body || document.documentElement,\n s = b.style,\n p = \"transition\";\n\n if (typeof s[p] == \"string\") {\n return true;\n }\n\n // Tests for vendor specific prop\n var v = [\"Moz\", \"webkit\", \"Webkit\", \"Khtml\", \"O\", \"ms\"];\n p = p.charAt(0).toUpperCase() + p.substr(1);\n\n for (var i = 0; i < v.length; i++) {\n if (typeof s[v[i] + p] == \"string\") {\n return true;\n }\n }\n\n return false;\n },\n },\n is: {\n mobile: function () {\n return imkt.core.supports.touch() && screen.width && screen.width < 768;\n },\n },\n },\n utils: {\n api,\n browser,\n getScript,\n tracking,\n general,\n history,\n string,\n storage,\n url,\n },\n wpl: {\n globals: {\n mediaQueries: {\n \"xs\": { \"minWidth\": 0, \"maxWidth\": 539 },\n \"sm\": { \"minWidth\": 540, \"maxWidth\": 767 },\n \"md\": { \"minWidth\": 768, \"maxWidth\": 1023 },\n \"lg\": { \"minWidth\": 1024, \"maxWidth\": 1439 },\n \"xl\": { \"minWidth\": 1440, \"maxWidth\": null }\n }\n }\n },\n common: {},\n wac: {},\n landing: {},\n experts: {},\n legal: {},\n components: {},\n software: {},\n bxp: {},\n customers: {},\n pages: {},\n teamPatterns: {},\n};\n\nexport default imkt;","import stgConfig from \"../../../config\";\nimport imkt from '../imkt';\n\n/**\n * Get an api endpoint relative to current environment\n * @todo: define what a dev environment is (BizBox?) in this context\n */\n\nexport default {\n urls: {\n apiGetAuthToken: {\n public:\n \"https://www.atlassian.com/hamlet/1.0/auth/xsrf/html?domain=atlassian.com\",\n staging: `${\n window.location.hostname.indexOf(\"qa-wac\") > -1\n ? \"https://qa-wac.internal.atlassian.com\"\n : stgConfig.stgWacInternalUrl\n }/apis/stg/hamlet/1.0/auth/xsrf/html?domain=atlassian.com`,\n dev: \"\",\n },\n apiGetSites: {\n public: \"https://api-private.atlassian.com/available-sites\",\n staging: \"https://api-private.stg.atlassian.com/available-sites\",\n dev: \"\",\n },\n apiGetUser: {\n public: \"https://api-private.atlassian.com/me\",\n staging: \"https://api-private.stg.atlassian.com/me\",\n dev: \"\",\n },\n },\n\n getUrl: function (endpoint) {\n var env = imkt.constants.public ? \"public\" : \"staging\";\n var url =\n typeof this.urls[endpoint] !== \"undefined\"\n ? this.urls[endpoint][env]\n : \"\";\n return url;\n },\n}\n","import imkt from '../imkt';\n\nexport default {\n // Get Browser OS\n getBrowserOs: function () {\n var nAgt = navigator.userAgent;\n\n var clientStrings = [\n { s: 'Windows 10', r: /(Windows 10.0|Windows NT 10.0)/ },\n { s: 'Windows 8.1', r: /(Windows 8.1|Windows NT 6.3)/ },\n { s: 'Windows 8', r: /(Windows 8|Windows NT 6.2)/ },\n { s: 'Windows 7', r: /(Windows 7|Windows NT 6.1)/ },\n { s: 'Windows Vista', r: /Windows NT 6.0/ },\n { s: 'Windows Server 2003', r: /Windows NT 5.2/ },\n { s: 'Windows XP', r: /(Windows NT 5.1|Windows XP)/ },\n { s: 'Windows 2000', r: /(Windows NT 5.0|Windows 2000)/ },\n { s: 'Windows ME', r: /(Win 9x 4.90|Windows ME)/ },\n { s: 'Windows 98', r: /(Windows 98|Win98)/ },\n { s: 'Windows 95', r: /(Windows 95|Win95|Windows_95)/ },\n { s: 'Windows NT 4.0', r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/ },\n { s: 'Windows CE', r: /Windows CE/ },\n { s: 'Windows 3.11', r: /Win16/ },\n { s: 'Android', r: /Android/ },\n { s: 'Open BSD', r: /OpenBSD/ },\n { s: 'Sun OS', r: /SunOS/ },\n { s: 'Linux', r: /(Linux|X11)/ },\n { s: 'iOS', r: /(iPhone|iPad|iPod)/ },\n { s: 'Mac OS X', r: /Mac OS X/ },\n { s: 'Mac OS', r: /(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/ },\n { s: 'QNX', r: /QNX/ },\n { s: 'UNIX', r: /UNIX/ },\n { s: 'BeOS', r: /BeOS/ },\n { s: 'OS/2', r: /OS\\/2/ },\n { s: 'Search Bot', r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\\/Teoma|ia_archiver)/ }\n ];\n\n for (var id in clientStrings) {\n var cs = clientStrings[id];\n if (cs.r.test(nAgt)) {\n return cs.s;\n }\n }\n\n return \"unknown\";\n },\n // Check if browser is windows\n isWindows: function () {\n var os = this.getBrowserOs();\n return os.indexOf(\"Windows\") > -1;\n },\n // NOTE: We have a similar function inside app.js (imkt.core.is.mobile) but the breakpoint is 768px\n // This breakpoint is consistent with imkt.constants.mobileBreakpoint and our CSS breakpoint\n isMobile: function () {\n return (imkt.core.supports.touch() && screen.width && screen.width <= (imkt.constants.mobileBreakpoint));\n }\n};\n","export default function onThrottled(element: JQuery, eventName: string, callback: Function, threshold?: number) {\n let timeout: NodeJS.Timeout;\n element.on(eventName, function (e) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback(e);\n }, threshold || 100);\n });\n}\n","export default {\n // url without any query string\n randomString: function (l) {\n var s = \"\";\n while (s.length < l && l > 0) {\n var r = Math.random();\n s +=\n r < 0.1\n ? Math.floor(r * 100)\n : String.fromCharCode(Math.floor(r * 26) + (r > 0.5 ? 97 : 65));\n }\n return s;\n },\n numberWithCommas: function (n) {\n return n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n },\n elementInViewport: function (el) {\n var top = el.offsetTop;\n var left = el.offsetLeft;\n var width = el.offsetWidth;\n var height = el.offsetHeight;\n\n while (el.offsetParent) {\n el = el.offsetParent;\n top += el.offsetTop;\n left += el.offsetLeft;\n }\n\n return (\n top >= window.pageYOffset &&\n left >= window.pageXOffset &&\n top + height <= window.pageYOffset + window.innerHeight &&\n left + width <= window.pageXOffset + window.innerWidth\n );\n },\n};\n","import * as $ from \"jquery\";\nimport imkt from '../imkt';\n\nvar datepickerRequest = $.Deferred();\nvar select2Request = $.Deferred();\nvar underscoreRequest = $.Deferred();\n\nvar getStyle = function (url: string, params: any) {\n \"use strict\";\n\n // If there is no URL to load, no point in continuing.\n if (typeof url === \"undefined\") {\n return;\n }\n\n // If this stylesheet has already been loaded, no point in continuing.\n if (\n params.hasOwnProperty(\"id\") &&\n $(\"head\").find(\"#\" + params.id).length\n ) {\n return;\n }\n\n var linkAttrs = {\n rel: \"stylesheet\",\n media: \"screen\",\n href: url,\n };\n\n if ($.isPlainObject(params)) {\n linkAttrs = Object.assign({}, linkAttrs, params);\n }\n\n var link = $(\"\").attr(linkAttrs);\n $(\"head\").append(link);\n};\n\nexport default {\n datepicker: function (callback) {\n if (typeof datepickerRequest === \"undefined\") {\n datepickerRequest = $.getScript(\n imkt.constants.libPath +\n \"air-datepicker.js\" +\n imkt.constants.cdnVersionQuery\n );\n getStyle(\n imkt.constants.libPath +\n \"air-datepicker.css\" +\n imkt.constants.cdnVersionQuery,\n {\n id: \"datepicker-style\",\n }\n );\n } else {\n // Select2 already exists\n datepickerRequest.resolve();\n }\n $.when(datepickerRequest).then(callback);\n return this;\n },\n select2: function (callback) {\n // Select2 is a dependency, so load that first\n if (typeof select2Request === \"undefined\") {\n select2Request = $.getScript(\n imkt.constants.libPath + \"select2.js\" + imkt.constants.cdnVersionQuery\n );\n } else {\n // Select2 already exists\n select2Request.resolve();\n }\n $.when(select2Request).then(callback);\n return this;\n },\n underscore: function (callback) {\n // underscore is a dependency, so load that first\n if (typeof underscoreRequest === \"undefined\") {\n underscoreRequest = $.getScript(\n imkt.constants.libPath +\n \"underscore.js\" +\n imkt.constants.cdnVersionQuery\n );\n } else {\n // underscore already exists\n underscoreRequest.resolve();\n }\n $.when(underscoreRequest).then(callback);\n return this;\n },\n};\n","// Wrapping the History API here to push analytics when state is pushed\nexport default {\n supportsHistory: function () {\n return window.history && window.history.pushState;\n },\n pushState: function (data, title, url) {\n if (this.supportsHistory()) {\n window.history.pushState(data, title, url);\n\n // Trigger Analytics\n if (typeof analytics !== \"undefined\") {\n analytics.page();\n }\n }\n },\n pushStateNoTracking: function (data, title, url) {\n if (this.supportsHistory()) {\n window.history.pushState(data, title, url);\n }\n },\n}\n","// Util to handle get/set of local storage\n// @todo: Test need for fallback to cookies\nexport default {\n hasStorage: localStorage && typeof localStorage.getItem === \"function\",\n\n getLocalStorage: function (key) {\n // Get value from local storage or cookies\n\n if (!this.hasStorage) {\n return this.getCookie(key);\n }\n\n var value = localStorage.getItem(key);\n return value;\n },\n setLocalStorage: function (key, value) {\n // Set value in local storage or cookies\n\n if (!this.hasStorage) {\n this.setCookie(key, value);\n }\n\n try {\n localStorage.setItem(key, value);\n } catch (e) {\n // Don't store for private browsing\n console.log(\n \"Local Storage failed, check if browsing in Safari private window.\"\n );\n }\n },\n removeLocalStorage: function (key) {\n if (!this.hasStorage) {\n this.removeCookie(key);\n }\n try {\n localStorage.removeItem(key);\n } catch (e) {\n // Don't remove for private browsing\n console.log(\n \"Local Storage failed, check if browsing in Safari private window.\"\n );\n }\n },\n getSessionStorage: function (key) {\n // Get value from Session storage or cookies\n\n if (!this.hasStorage) {\n return this.getCookie(key);\n }\n\n var value = sessionStorage.getItem(key);\n return value;\n },\n setSessionStorage: function (key, value) {\n // Set value in Session storage or cookies\n\n if (!this.hasStorage) {\n this.setCookie(key, value);\n }\n\n try {\n sessionStorage.setItem(key, value);\n } catch (e) {\n // Don't store for private browsing\n console.log(\n \"Session Storage failed, check if browsing in Safari private window.\"\n );\n }\n },\n removeSessionStorage: function (key) {\n if (!this.hasStorage) {\n this.removeCookie(key);\n }\n try {\n sessionStorage.removeItem(key);\n } catch (e) {\n // Don't remove for private browsing\n console.log(\n \"Session Storage failed, check if browsing in Safari private window.\"\n );\n }\n },\n getCookie: function (key) {\n // Get value from cookie\n\n var encodedName = encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\");\n var regex = new RegExp(\n \"(?:(?:^|.*;)\\\\s*\" + encodedName + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"\n );\n\n return decodeURIComponent(document.cookie.replace(regex, \"$1\")) || null;\n },\n setCookie: function (key, value, days, sameSite, domain) {\n let expires = \"\";\n let domainLevel = ``;\n if (domain) {\n domainLevel = `; domain=${domain}`;\n }\n let sameSiteVal = sameSite ? sameSite.toLowerCase() : false;\n let sameSiteString = `samesite=${\n (sameSiteVal && sameSiteVal == \"strict\") || sameSiteVal == \"lax\"\n ? sameSiteVal\n : \"none\"\n }`;\n if (days) {\n let date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = \"; expires=\" + date.toGMTString();\n }\n document.cookie =\n key + \"=\" + value + \";path=/;\" + sameSiteString + expires + domainLevel;\n },\n removeCookie: function (key) {\n this.setCookie(key, \"\", -1);\n },\n}\n","import general from '../utils/general';\n\nexport default {\n /**\n * Reverse string\n * @param {string} str - String you want to reverse\n * @returns {string} Reverse of str\n * @example\n * // returns \"olleh\"\n * imkt.utils.string.reverse(\"hello\")\n */\n reverse: function (str) {\n if (typeof str !== \"string\") {\n return \"\";\n }\n\n if (str.trim() === \"\") {\n return str;\n }\n\n return str.split(\"\").reverse().join(\"\");\n },\n};\n\nexport const replaceText = (srcObj, inputText, replaceMap) =>\n Object.keys(replaceMap).reduce(\n (outputText, replaceKey) =>\n srcObj[replaceKey]\n ? outputText.replace(`{{${replaceKey}}}`, srcObj[replaceKey])\n : outputText,\n inputText\n );\n\nexport const getStrWithCommas = (input) =>\n general.numberWithCommas(input.toString());\n","import { trackEvent, sanitizeEventProperties } from \"../common/analytics\";\nimport Tracking from \"../common/tracking\";\nimport * as Platforms from \"../common/tracking/platforms\";\n\nexport default class ImktTracking {\n // expose utils for Apollo to call from external experiment code.\n apollo = {\n Tracking,\n Platforms,\n };\n\n // Track events for analytics\n static trackEvent(eventName: string, eventProperties: {}) {\n trackEvent(eventName, eventProperties);\n }\n\n static sanitizeEventProperties(eventProperty) {\n return sanitizeEventProperties(eventProperty);\n }\n\n /* use the below function for tracking content that was not rendered server-side and has thus escaped the purview of the tracking wrapper */\n static trackLateRenderedEvent(eventName: string, eventTarget) {\n if (\n eventTarget.tagName == \"A\" ||\n (eventTarget.tagName == \"BUTTON\" && eventTarget.dataset.uuid)\n ) {\n let attributes = [\n \"uuid\",\n \"event\",\n \"eventComponent\",\n \"eventContainer\",\n \"parentLabel\",\n \"eventColumn\",\n \"schemaVersion\",\n ];\n let eventData = {\n label: eventTarget.dataset.label\n ? eventTarget.dataset.label\n : eventTarget.innerText,\n };\n attributes.forEach((attribute) => {\n eventData[attribute] = eventTarget.dataset[attribute];\n });\n this.trackEvent(eventName, eventData);\n }\n }\n\n static getOptimizelyXData() {\n if (!window.optimizely) {\n return false;\n }\n let campaigns;\n try {\n const state = window.optimizely.get(\"state\");\n const campaignList = state.getCampaignStates({ \"isActive\": true });\n campaigns = Object.keys(campaignList).reduce((acc, key) => {\n const campaign = campaignList[key];\n return {\n ...acc,\n [key]: {\n activeExperiments: [{\n [campaign.experiment.id]: campaign.variation.id,\n }],\n holdbackExperiments: campaign.isInCampaignHoldback ? [campaign.experiment.id] : [],\n }\n };\n }, {});\n } catch (_e) {\n return false;\n }\n\n return campaigns;\n }\n}\n","import history from '../utils/history';\n\nexport default {\n // url without any query string\n getBareUrl: function (url?: string) {\n var questionIndex;\n url = url || window.location.href;\n questionIndex = url.indexOf(\"?\");\n return url.substring(0, questionIndex > -1 ? questionIndex : url.length);\n },\n // url without any hash\n getUnhashedUrl: function (url?: string) {\n var hashIndex;\n url = url || window.location.href;\n hashIndex = url.indexOf(\"#\");\n return url.substring(0, hashIndex > -1 ? hashIndex : url.length);\n },\n getProtocol: function (url?: string) {\n var r = \"\",\n i;\n url = this.getBareUrl(url || window.location.href);\n i = url.indexOf(\"://\");\n if (i > -1) {\n r = url.substring(0, i);\n }\n return r;\n },\n getHostname: function (url?: string) {\n var protocol, start;\n url = this.getBareUrl(url || window.location.href);\n protocol = this.getProtocol(url);\n start = protocol ? protocol.length + 3 : 0;\n return url.substring(start, url.indexOf(\"/\", start));\n },\n // query string only (no question mark)\n getQueryString: function (url?: string) {\n var questionIndex,\n r = window.location.search.substring(1, window.location.search.length);\n if (url) {\n url = this.getUnhashedUrl(url);\n questionIndex = url.indexOf(\"?\");\n r = questionIndex > -1 ? url.substring(questionIndex + 1) : \"\";\n }\n return r;\n },\n updateQueryStringParam: function (key: string, value: string) {\n var baseUrl = [\n location.protocol,\n \"//\",\n location.host,\n location.pathname,\n ].join(\"\"),\n queryString = document.location.search,\n newParam = key + \"=\" + value,\n params = \"?\" + newParam;\n\n if (queryString) {\n var keyRegex = new RegExp(\"([?&])\" + key + \"[^&]*\");\n\n if (queryString.match(keyRegex) !== null) {\n params = queryString.replace(keyRegex, \"$1\" + newParam);\n } else {\n params = queryString + \"&\" + newParam;\n }\n }\n\n history.pushState({}, \"\", baseUrl + params);\n },\n getPathname: function (url?: string) {\n var hostname, questionIndex;\n url = url || window.location.href;\n hostname = this.getHostname(url);\n questionIndex = url.indexOf(\"?\");\n return url.substring(\n url.indexOf(hostname) + hostname.length,\n questionIndex > -1 ? questionIndex : url.length\n );\n },\n // serialize an object literal into a url encoded string\n serialize: function (params: { [key: string]: string }) {\n var r = [],\n tempArray;\n for (var prop in params) {\n if (params[prop] !== null) {\n tempArray = [prop];\n tempArray.push(\"=\");\n tempArray.push(encodeURIComponent(params[prop]));\n r.push(tempArray.join(\"\"));\n }\n }\n return r.join(\"&\");\n },\n htmlEscape: function (str) {\n return String(str)\n .replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(//g, \">\");\n },\n // returns an object literal of the url params on a url\n getUrlParams: function (url?: string) {\n var r: { [key: string]: string } | null = null,\n qs,\n paramPairs,\n keyValuePair,\n i = 0;\n\n qs = this.getQueryString(url);\n\n if (qs) {\n paramPairs = qs.split(\"&\");\n for (i; i < paramPairs.length; i++) {\n if (!r) {\n r = {};\n }\n keyValuePair = paramPairs[i].split(\"=\");\n r[keyValuePair[0]] =\n keyValuePair.length > 1\n ? this.htmlEscape(decodeURIComponent(keyValuePair[1]))\n : null;\n }\n }\n\n return r;\n },\n // returns a url with additional params added (params is an object literal)\n addUrlParams: function (params: {}, url?: string) {\n var r = [],\n qs;\n\n url = url || window.location.href;\n r.push(this.getBareUrl(url));\n params = { ...this.getUrlParams(url), ...params };\n qs = this.serialize(params);\n if (qs) {\n r.push(\"?\");\n r.push(qs);\n }\n\n return r.join(\"\");\n },\n // returns a url with params removed (params is an array of url param keys)\n removeUrlParams: function (params: {}, url?: string) {\n var r = [],\n qs;\n\n url = url || window.location.href;\n r.push(this.getBareUrl(url));\n var currentParams = this.getUrlParams(url);\n for (var i = params.length - 1; i >= 0; i--) {\n if (typeof currentParams[params[i]] !== \"undefined\") {\n delete currentParams[params[i]];\n }\n }\n\n qs = this.serialize(currentParams);\n if (qs) {\n r.push(\"?\");\n r.push(qs);\n }\n\n return r.join(\"\");\n },\n // returns a url without http(s)://(www.) and without trailing slash, optionally with url vars\n getSimpleUrl: function (url: string | null, matchUrlVars?: boolean) {\n url = url || window.location.href;\n\n var simpleMatch = /^((https?|):\\/\\/)?(www\\.)?/;\n var trailingSlashMatch = /\\/$/;\n\n var bareUrl = this.getBareUrl(url);\n var hashUrlArray = bareUrl.split(\"#\");\n var hashUrl = \"\";\n\n bareUrl = hashUrlArray[0];\n if (hashUrlArray.length > 1) {\n hashUrl = \"#\" + hashUrlArray[1];\n }\n\n var result = bareUrl\n .replace(simpleMatch, \"\")\n .replace(trailingSlashMatch, \"\");\n\n if (matchUrlVars) {\n var queryString = this.getQueryString(url);\n\n if (queryString) {\n result += \"?\" + queryString;\n }\n result += hashUrl;\n }\n\n return result;\n },\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*\r\n Copyright (c) 2012 Nevins Bartolomeo \r\n Copyright (c) 2012 Shane Girish \r\n Copyright (c) 2014 Daniel Wirtz \r\n\r\n Redistribution and use in source and binary forms, with or without\r\n modification, are permitted provided that the following conditions\r\n are met:\r\n 1. Redistributions of source code must retain the above copyright\r\n notice, this list of conditions and the following disclaimer.\r\n 2. Redistributions in binary form must reproduce the above copyright\r\n notice, this list of conditions and the following disclaimer in the\r\n documentation and/or other materials provided with the distribution.\r\n 3. The name of the author may not be used to endorse or promote products\r\n derived from this software without specific prior written permission.\r\n\r\n THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\r\n IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r\n OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r\n IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\r\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r\n NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n */\r\n\r\n/**\r\n * @license bcrypt.js (c) 2013 Daniel Wirtz \r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/bcrypt.js for details\r\n */\r\n(function(global, factory) {\r\n\r\n /* AMD */ if (typeof define === 'function' && define[\"amd\"])\r\n define([], factory);\r\n /* CommonJS */ else if (typeof require === 'function' && typeof module === \"object\" && module && module[\"exports\"])\r\n module[\"exports\"] = factory();\r\n /* Global */ else\r\n (global[\"dcodeIO\"] = global[\"dcodeIO\"] || {})[\"bcrypt\"] = factory();\r\n\r\n}(this, function() {\r\n \"use strict\";\r\n\r\n /**\r\n * bcrypt namespace.\r\n * @type {Object.}\r\n */\r\n var bcrypt = {};\r\n\r\n /**\r\n * The random implementation to use as a fallback.\r\n * @type {?function(number):!Array.}\r\n * @inner\r\n */\r\n var randomFallback = null;\r\n\r\n /**\r\n * Generates cryptographically secure random bytes.\r\n * @function\r\n * @param {number} len Bytes length\r\n * @returns {!Array.} Random bytes\r\n * @throws {Error} If no random implementation is available\r\n * @inner\r\n */\r\n function random(len) {\r\n /* node */ if (typeof module !== 'undefined' && module && module['exports'])\r\n try {\r\n return require(\"crypto\")['randomBytes'](len);\r\n } catch (e) {}\r\n /* WCA */ try {\r\n var a; (self['crypto']||self['msCrypto'])['getRandomValues'](a = new Uint32Array(len));\r\n return Array.prototype.slice.call(a);\r\n } catch (e) {}\r\n /* fallback */ if (!randomFallback)\r\n throw Error(\"Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative\");\r\n return randomFallback(len);\r\n }\r\n\r\n // Test if any secure randomness source is available\r\n var randomAvailable = false;\r\n try {\r\n random(1);\r\n randomAvailable = true;\r\n } catch (e) {}\r\n\r\n // Default fallback, if any\r\n randomFallback = null;\r\n /**\r\n * Sets the pseudo random number generator to use as a fallback if neither node's `crypto` module nor the Web Crypto\r\n * API is available. Please note: It is highly important that the PRNG used is cryptographically secure and that it\r\n * is seeded properly!\r\n * @param {?function(number):!Array.} random Function taking the number of bytes to generate as its\r\n * sole argument, returning the corresponding array of cryptographically secure random byte values.\r\n * @see http://nodejs.org/api/crypto.html\r\n * @see http://www.w3.org/TR/WebCryptoAPI/\r\n */\r\n bcrypt.setRandomFallback = function(random) {\r\n randomFallback = random;\r\n };\r\n\r\n /**\r\n * Synchronously generates a salt.\r\n * @param {number=} rounds Number of rounds to use, defaults to 10 if omitted\r\n * @param {number=} seed_length Not supported.\r\n * @returns {string} Resulting salt\r\n * @throws {Error} If a random fallback is required but not set\r\n * @expose\r\n */\r\n bcrypt.genSaltSync = function(rounds, seed_length) {\r\n rounds = rounds || GENSALT_DEFAULT_LOG2_ROUNDS;\r\n if (typeof rounds !== 'number')\r\n throw Error(\"Illegal arguments: \"+(typeof rounds)+\", \"+(typeof seed_length));\r\n if (rounds < 4)\r\n rounds = 4;\r\n else if (rounds > 31)\r\n rounds = 31;\r\n var salt = [];\r\n salt.push(\"$2a$\");\r\n if (rounds < 10)\r\n salt.push(\"0\");\r\n salt.push(rounds.toString());\r\n salt.push('$');\r\n salt.push(base64_encode(random(BCRYPT_SALT_LEN), BCRYPT_SALT_LEN)); // May throw\r\n return salt.join('');\r\n };\r\n\r\n /**\r\n * Asynchronously generates a salt.\r\n * @param {(number|function(Error, string=))=} rounds Number of rounds to use, defaults to 10 if omitted\r\n * @param {(number|function(Error, string=))=} seed_length Not supported.\r\n * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting salt\r\n * @returns {!Promise} If `callback` has been omitted\r\n * @throws {Error} If `callback` is present but not a function\r\n * @expose\r\n */\r\n bcrypt.genSalt = function(rounds, seed_length, callback) {\r\n if (typeof seed_length === 'function')\r\n callback = seed_length,\r\n seed_length = undefined; // Not supported.\r\n if (typeof rounds === 'function')\r\n callback = rounds,\r\n rounds = undefined;\r\n if (typeof rounds === 'undefined')\r\n rounds = GENSALT_DEFAULT_LOG2_ROUNDS;\r\n else if (typeof rounds !== 'number')\r\n throw Error(\"illegal arguments: \"+(typeof rounds));\r\n\r\n function _async(callback) {\r\n nextTick(function() { // Pretty thin, but salting is fast enough\r\n try {\r\n callback(null, bcrypt.genSaltSync(rounds));\r\n } catch (err) {\r\n callback(err);\r\n }\r\n });\r\n }\r\n\r\n if (callback) {\r\n if (typeof callback !== 'function')\r\n throw Error(\"Illegal callback: \"+typeof(callback));\r\n _async(callback);\r\n } else\r\n return new Promise(function(resolve, reject) {\r\n _async(function(err, res) {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n resolve(res);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Synchronously generates a hash for the given string.\r\n * @param {string} s String to hash\r\n * @param {(number|string)=} salt Salt length to generate or salt to use, default to 10\r\n * @returns {string} Resulting hash\r\n * @expose\r\n */\r\n bcrypt.hashSync = function(s, salt) {\r\n if (typeof salt === 'undefined')\r\n salt = GENSALT_DEFAULT_LOG2_ROUNDS;\r\n if (typeof salt === 'number')\r\n salt = bcrypt.genSaltSync(salt);\r\n if (typeof s !== 'string' || typeof salt !== 'string')\r\n throw Error(\"Illegal arguments: \"+(typeof s)+', '+(typeof salt));\r\n return _hash(s, salt);\r\n };\r\n\r\n /**\r\n * Asynchronously generates a hash for the given string.\r\n * @param {string} s String to hash\r\n * @param {number|string} salt Salt length to generate or salt to use\r\n * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash\r\n * @param {function(number)=} progressCallback Callback successively called with the percentage of rounds completed\r\n * (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms.\r\n * @returns {!Promise} If `callback` has been omitted\r\n * @throws {Error} If `callback` is present but not a function\r\n * @expose\r\n */\r\n bcrypt.hash = function(s, salt, callback, progressCallback) {\r\n\r\n function _async(callback) {\r\n if (typeof s === 'string' && typeof salt === 'number')\r\n bcrypt.genSalt(salt, function(err, salt) {\r\n _hash(s, salt, callback, progressCallback);\r\n });\r\n else if (typeof s === 'string' && typeof salt === 'string')\r\n _hash(s, salt, callback, progressCallback);\r\n else\r\n nextTick(callback.bind(this, Error(\"Illegal arguments: \"+(typeof s)+', '+(typeof salt))));\r\n }\r\n\r\n if (callback) {\r\n if (typeof callback !== 'function')\r\n throw Error(\"Illegal callback: \"+typeof(callback));\r\n _async(callback);\r\n } else\r\n return new Promise(function(resolve, reject) {\r\n _async(function(err, res) {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n resolve(res);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Compares two strings of the same length in constant time.\r\n * @param {string} known Must be of the correct length\r\n * @param {string} unknown Must be the same length as `known`\r\n * @returns {boolean}\r\n * @inner\r\n */\r\n function safeStringCompare(known, unknown) {\r\n var right = 0,\r\n wrong = 0;\r\n for (var i=0, k=known.length; i} UTF8 bytes\r\n * @inner\r\n */\r\n function stringToBytes(str) {\r\n var out = [],\r\n i = 0;\r\n utfx.encodeUTF16toUTF8(function() {\r\n if (i >= str.length) return null;\r\n return str.charCodeAt(i++);\r\n }, function(b) {\r\n out.push(b);\r\n });\r\n return out;\r\n }\r\n\r\n // A base64 implementation for the bcrypt algorithm. This is partly non-standard.\r\n\r\n /**\r\n * bcrypt's own non-standard base64 dictionary.\r\n * @type {!Array.}\r\n * @const\r\n * @inner\r\n **/\r\n var BASE64_CODE = \"./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split('');\r\n\r\n /**\r\n * @type {!Array.}\r\n * @const\r\n * @inner\r\n **/\r\n var BASE64_INDEX = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,\r\n 1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1,\r\n -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\r\n 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, -1, 28, 29, 30,\r\n 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\r\n 48, 49, 50, 51, 52, 53, -1, -1, -1, -1, -1];\r\n\r\n /**\r\n * @type {!function(...number):string}\r\n * @inner\r\n */\r\n var stringFromCharCode = String.fromCharCode;\r\n\r\n /**\r\n * Encodes a byte array to base64 with up to len bytes of input.\r\n * @param {!Array.} b Byte array\r\n * @param {number} len Maximum input length\r\n * @returns {string}\r\n * @inner\r\n */\r\n function base64_encode(b, len) {\r\n var off = 0,\r\n rs = [],\r\n c1, c2;\r\n if (len <= 0 || len > b.length)\r\n throw Error(\"Illegal len: \"+len);\r\n while (off < len) {\r\n c1 = b[off++] & 0xff;\r\n rs.push(BASE64_CODE[(c1 >> 2) & 0x3f]);\r\n c1 = (c1 & 0x03) << 4;\r\n if (off >= len) {\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n break;\r\n }\r\n c2 = b[off++] & 0xff;\r\n c1 |= (c2 >> 4) & 0x0f;\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n c1 = (c2 & 0x0f) << 2;\r\n if (off >= len) {\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n break;\r\n }\r\n c2 = b[off++] & 0xff;\r\n c1 |= (c2 >> 6) & 0x03;\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n rs.push(BASE64_CODE[c2 & 0x3f]);\r\n }\r\n return rs.join('');\r\n }\r\n\r\n /**\r\n * Decodes a base64 encoded string to up to len bytes of output.\r\n * @param {string} s String to decode\r\n * @param {number} len Maximum output length\r\n * @returns {!Array.}\r\n * @inner\r\n */\r\n function base64_decode(s, len) {\r\n var off = 0,\r\n slen = s.length,\r\n olen = 0,\r\n rs = [],\r\n c1, c2, c3, c4, o, code;\r\n if (len <= 0)\r\n throw Error(\"Illegal len: \"+len);\r\n while (off < slen - 1 && olen < len) {\r\n code = s.charCodeAt(off++);\r\n c1 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n code = s.charCodeAt(off++);\r\n c2 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n if (c1 == -1 || c2 == -1)\r\n break;\r\n o = (c1 << 2) >>> 0;\r\n o |= (c2 & 0x30) >> 4;\r\n rs.push(stringFromCharCode(o));\r\n if (++olen >= len || off >= slen)\r\n break;\r\n code = s.charCodeAt(off++);\r\n c3 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n if (c3 == -1)\r\n break;\r\n o = ((c2 & 0x0f) << 4) >>> 0;\r\n o |= (c3 & 0x3c) >> 2;\r\n rs.push(stringFromCharCode(o));\r\n if (++olen >= len || off >= slen)\r\n break;\r\n code = s.charCodeAt(off++);\r\n c4 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n o = ((c3 & 0x03) << 6) >>> 0;\r\n o |= c4;\r\n rs.push(stringFromCharCode(o));\r\n ++olen;\r\n }\r\n var res = [];\r\n for (off = 0; off\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/utfx for details\r\n */\r\n var utfx = function() {\r\n \"use strict\";\r\n\r\n /**\r\n * utfx namespace.\r\n * @inner\r\n * @type {!Object.}\r\n */\r\n var utfx = {};\r\n\r\n /**\r\n * Maximum valid code point.\r\n * @type {number}\r\n * @const\r\n */\r\n utfx.MAX_CODEPOINT = 0x10FFFF;\r\n\r\n /**\r\n * Encodes UTF8 code points to UTF8 bytes.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte\r\n */\r\n utfx.encodeUTF8 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src,\r\n src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp < 0x80)\r\n dst(cp&0x7F);\r\n else if (cp < 0x800)\r\n dst(((cp>>6)&0x1F)|0xC0),\r\n dst((cp&0x3F)|0x80);\r\n else if (cp < 0x10000)\r\n dst(((cp>>12)&0x0F)|0xE0),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n else\r\n dst(((cp>>18)&0x07)|0xF0),\r\n dst(((cp>>12)&0x3F)|0x80),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Decodes UTF8 bytes to UTF8 code points.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the\r\n * remaining bytes.\r\n */\r\n utfx.decodeUTF8 = function(src, dst) {\r\n var a, b, c, d, fail = function(b) {\r\n b = b.slice(0, b.indexOf(null));\r\n var err = Error(b.toString());\r\n err.name = \"TruncatedError\";\r\n err['bytes'] = b;\r\n throw err;\r\n };\r\n while ((a = src()) !== null) {\r\n if ((a&0x80) === 0)\r\n dst(a);\r\n else if ((a&0xE0) === 0xC0)\r\n ((b = src()) === null) && fail([a, b]),\r\n dst(((a&0x1F)<<6) | (b&0x3F));\r\n else if ((a&0xF0) === 0xE0)\r\n ((b=src()) === null || (c=src()) === null) && fail([a, b, c]),\r\n dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F));\r\n else if ((a&0xF8) === 0xF0)\r\n ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]),\r\n dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F));\r\n else throw RangeError(\"Illegal starting byte: \"+a);\r\n }\r\n };\r\n\r\n /**\r\n * Converts UTF16 characters to UTF8 code points.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each converted code\r\n * point.\r\n */\r\n utfx.UTF16toUTF8 = function(src, dst) {\r\n var c1, c2 = null;\r\n while (true) {\r\n if ((c1 = c2 !== null ? c2 : src()) === null)\r\n break;\r\n if (c1 >= 0xD800 && c1 <= 0xDFFF) {\r\n if ((c2 = src()) !== null) {\r\n if (c2 >= 0xDC00 && c2 <= 0xDFFF) {\r\n dst((c1-0xD800)*0x400+c2-0xDC00+0x10000);\r\n c2 = null; continue;\r\n }\r\n }\r\n }\r\n dst(c1);\r\n }\r\n if (c2 !== null) dst(c2);\r\n };\r\n\r\n /**\r\n * Converts UTF8 code points to UTF16 characters.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a code point is out of range\r\n */\r\n utfx.UTF8toUTF16 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src, src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp <= 0xFFFF)\r\n dst(cp);\r\n else\r\n cp -= 0x10000,\r\n dst((cp>>10)+0xD800),\r\n dst((cp%0x400)+0xDC00);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Converts and encodes UTF16 characters to UTF8 bytes.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null`\r\n * if there are no more characters left.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.\r\n */\r\n utfx.encodeUTF16toUTF8 = function(src, dst) {\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n utfx.encodeUTF8(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Decodes and converts UTF8 bytes to UTF16 characters.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes.\r\n */\r\n utfx.decodeUTF8toUTF16 = function(src, dst) {\r\n utfx.decodeUTF8(src, function(cp) {\r\n utfx.UTF8toUTF16(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Calculates the byte length of an UTF8 code point.\r\n * @param {number} cp UTF8 code point\r\n * @returns {number} Byte length\r\n */\r\n utfx.calculateCodePoint = function(cp) {\r\n return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes required to store UTF8 code points.\r\n * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively\r\n * `null` if there are no more code points left.\r\n * @returns {number} The number of UTF8 bytes required\r\n */\r\n utfx.calculateUTF8 = function(src) {\r\n var cp, l=0;\r\n while ((cp = src()) !== null)\r\n l += utfx.calculateCodePoint(cp);\r\n return l;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes.\r\n * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1.\r\n */\r\n utfx.calculateUTF16asUTF8 = function(src) {\r\n var n=0, l=0;\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n ++n; l += utfx.calculateCodePoint(cp);\r\n });\r\n return [n,l];\r\n };\r\n\r\n return utfx;\r\n }();\r\n\r\n Date.now = Date.now || function() { return +new Date; };\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var BCRYPT_SALT_LEN = 16;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var GENSALT_DEFAULT_LOG2_ROUNDS = 10;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var BLOWFISH_NUM_ROUNDS = 16;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var MAX_EXECUTION_TIME = 100;\r\n\r\n /**\r\n * @type {Array.}\r\n * @const\r\n * @inner\r\n */\r\n var P_ORIG = [\r\n 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822,\r\n 0x299f31d0, 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377,\r\n 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5,\r\n 0xb5470917, 0x9216d5d9, 0x8979fb1b\r\n ];\r\n\r\n /**\r\n * @type {Array.}\r\n * @const\r\n * @inner\r\n */\r\n var S_ORIG = [\r\n 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed,\r\n 0x6a267e96, 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7,\r\n 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3,\r\n 0xf4933d7e, 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,\r\n 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, 0xc5d1b023,\r\n 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e,\r\n 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda,\r\n 0x55605c60, 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,\r\n 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, 0xa15486af,\r\n 0x7c72e993, 0xb3ee1411, 0x636fbc2a, 0x2ba9c55d, 0x741831f6,\r\n 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, 0x7a325381,\r\n 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,\r\n 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d,\r\n 0xe98575b1, 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5,\r\n 0x0f6d6ff3, 0x83f44239, 0x2e0b4482, 0xa4842004, 0x69c8f04a,\r\n 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,\r\n 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, 0x6eef0b6c,\r\n 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176,\r\n 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3,\r\n 0x3b8b5ebe, 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,\r\n 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, 0x37d0d724,\r\n 0xd00a1248, 0xdb0fead3, 0x49f1c09b, 0x075372c9, 0x80991b7b,\r\n 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, 0x976ce0bd,\r\n 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,\r\n 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f,\r\n 0x9b30952c, 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd,\r\n 0x660f2807, 0x192e4bb3, 0xc0cba857, 0x45c8740f, 0xd20b5f39,\r\n 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,\r\n 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, 0x3c7516df,\r\n 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760,\r\n 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e,\r\n 0xdf1769db, 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,\r\n 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98,\r\n 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, 0x9a53e479, 0xb6f84565,\r\n 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341,\r\n 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,\r\n 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0,\r\n 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64,\r\n 0x8888b812, 0x900df01c, 0x4fad5ea0, 0x688fc31c, 0xd1cff191,\r\n 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,\r\n 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, 0xb4a84fe0,\r\n 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705,\r\n 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5,\r\n 0xfb9d35cf, 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,\r\n 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, 0x2464369b,\r\n 0xf009b91e, 0x5563911d, 0x59dfa6aa, 0x78c14389, 0xd95a537f,\r\n 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, 0x11c81968,\r\n 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,\r\n 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5,\r\n 0x571be91f, 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6,\r\n 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x08ba4799,\r\n 0x6e85076a, 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,\r\n 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, 0xecaa8c71,\r\n 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29,\r\n 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, 0x6b8fe4d6,\r\n 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,\r\n 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f,\r\n 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286,\r\n 0xb79c5305, 0xaa500737, 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec,\r\n 0x5716f2b8, 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,\r\n 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, 0xd19113f9,\r\n 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc,\r\n 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e,\r\n 0xa4751e41, 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,\r\n 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, 0x2cb81290,\r\n 0x24977c79, 0x5679b072, 0xbcaf89af, 0xde9a771f, 0xd9930810,\r\n 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, 0x501adde6,\r\n 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,\r\n 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847,\r\n 0x3215d908, 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451,\r\n 0x50940002, 0x133ae4dd, 0x71dff89e, 0x10314e55, 0x81ac77d6,\r\n 0x5f11199b, 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,\r\n 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, 0x86e34570,\r\n 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa,\r\n 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978,\r\n 0x9c10b36a, 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,\r\n 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, 0x5223a708,\r\n 0xf71312b6, 0xebadfe6e, 0xeac31f66, 0xe3bc4595, 0xa67bc883,\r\n 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, 0x65582185,\r\n 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,\r\n 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830,\r\n 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239,\r\n 0xd59e9e0b, 0xcbaade14, 0xeecc86bc, 0x60622ca7, 0x9cab5cab,\r\n 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,\r\n 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, 0x9b540b19,\r\n 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77,\r\n 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1,\r\n 0x7858ba99, 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,\r\n 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef,\r\n 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, 0x5d4a14d9, 0xe864b7e3,\r\n 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15,\r\n 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,\r\n 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2,\r\n 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492,\r\n 0x47848a0b, 0x5692b285, 0x095bbf00, 0xad19489d, 0x1462b174,\r\n 0x23820e00, 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,\r\n 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, 0x7cde3759,\r\n 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e,\r\n 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc,\r\n 0x800bcadc, 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,\r\n 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, 0xc5c43465,\r\n 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a,\r\n 0xe6e39f2b, 0xdb83adf7, 0xe93d5a68, 0x948140f7, 0xf64c261c,\r\n 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,\r\n 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e,\r\n 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af,\r\n 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0,\r\n 0x31cb8504, 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,\r\n 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, 0x68dc1462,\r\n 0xd7486900, 0x680ec0a4, 0x27a18dee, 0x4f3ffea2, 0xe887ad8c,\r\n 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, 0xce78a399,\r\n 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,\r\n 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74,\r\n 0xdd5b4332, 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397,\r\n 0x454056ac, 0xba489527, 0x55533a3a, 0x20838d87, 0xfe6ba9b7,\r\n 0xd096954b, 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,\r\n 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, 0xfdf8e802,\r\n 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22,\r\n 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4,\r\n 0x5d886e17, 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,\r\n 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2,\r\n 0x02e1329e, 0xaf664fd1, 0xcad18115, 0x6b2395e0, 0x333e92e1,\r\n 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, 0xde720c8c,\r\n 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,\r\n 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341,\r\n 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8,\r\n 0x991be14c, 0xdb6e6b0d, 0xc67b5510, 0x6d672c37, 0x2765d43b,\r\n 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,\r\n 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, 0xbb132f88,\r\n 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979,\r\n 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc,\r\n 0x782ef11c, 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,\r\n 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, 0x44421659,\r\n 0x0a121386, 0xd90cec6e, 0xd5abea2a, 0x64af674e, 0xda86a85f,\r\n 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, 0x60787bf8,\r\n 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,\r\n 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be,\r\n 0xbde8ae24, 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2,\r\n 0xf474ef38, 0x8789bdc2, 0x5366f9c3, 0xc8b38e74, 0xb475f255,\r\n 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,\r\n 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, 0xb90bace1,\r\n 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09,\r\n 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025,\r\n 0x1d6efe10, 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,\r\n 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01,\r\n 0xa70683fa, 0xa002b5c4, 0x0de6d027, 0x9af88c27, 0x773f8641,\r\n 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, 0x006058aa,\r\n 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,\r\n 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409,\r\n 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9,\r\n 0x1ac15bb4, 0xd39eb8fc, 0xed545578, 0x08fca5b5, 0xd83d7cd3,\r\n 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,\r\n 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234,\r\n 0x92638212, 0x670efa8e, 0x406000e0, 0x3a39ce37, 0xd3faf5cf,\r\n 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740,\r\n 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,\r\n 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f,\r\n 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d,\r\n 0xd5730a1d, 0x4cd04dc6, 0x2939bbdb, 0xa9ba4650, 0xac9526e8,\r\n 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,\r\n 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, 0x83c061ba,\r\n 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1,\r\n 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69,\r\n 0x77fa0a59, 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,\r\n 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a,\r\n 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, 0x1f9f25cf, 0xadf2b89b,\r\n 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, 0x47b0acfd,\r\n 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,\r\n 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4,\r\n 0x88f46dba, 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2,\r\n 0x97271aec, 0xa93a072a, 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb,\r\n 0x26dcf319, 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,\r\n 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, 0x4de81751,\r\n 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce,\r\n 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369,\r\n 0x6413e680, 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,\r\n 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd,\r\n 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, 0xdda26a7e, 0x3a59ff45,\r\n 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, 0x8d6612ae,\r\n 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,\r\n 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08,\r\n 0x4eb4e2cc, 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d,\r\n 0x06b89fb4, 0xce6ea048, 0x6f3f3b82, 0x3520ab82, 0x011a1d4b,\r\n 0x277227f8, 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,\r\n 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, 0xe01cc87e,\r\n 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a,\r\n 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c,\r\n 0xe0b12b4f, 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,\r\n 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, 0xfae59361,\r\n 0xceb69ceb, 0xc2a86459, 0x12baa8d1, 0xb6c1075e, 0xe3056a0c,\r\n 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be,\r\n 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,\r\n 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d,\r\n 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891,\r\n 0xce6279cf, 0xcd3e7e6f, 0x1618b166, 0xfd2c1d05, 0x848fd2c5,\r\n 0xf6fb2299, 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,\r\n 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, 0xde966292,\r\n 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a,\r\n 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2,\r\n 0x35bdd2f6, 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,\r\n 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c,\r\n 0xf746ce76, 0x77afa1c5, 0x20756060, 0x85cbfe4e, 0x8ae88dd8,\r\n 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, 0x01c36ae4,\r\n 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,\r\n 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6\r\n ];\r\n\r\n /**\r\n * @type {Array.}\r\n * @const\r\n * @inner\r\n */\r\n var C_ORIG = [\r\n 0x4f727068, 0x65616e42, 0x65686f6c, 0x64657253, 0x63727944,\r\n 0x6f756274\r\n ];\r\n\r\n /**\r\n * @param {Array.} lr\r\n * @param {number} off\r\n * @param {Array.} P\r\n * @param {Array.} S\r\n * @returns {Array.}\r\n * @inner\r\n */\r\n function _encipher(lr, off, P, S) { // This is our bottleneck: 1714/1905 ticks / 90% - see profile.txt\r\n var n,\r\n l = lr[off],\r\n r = lr[off + 1];\r\n\r\n l ^= P[0];\r\n\r\n /*\r\n for (var i=0, k=BLOWFISH_NUM_ROUNDS-2; i<=k;)\r\n // Feistel substitution on left word\r\n n = S[l >>> 24],\r\n n += S[0x100 | ((l >> 16) & 0xff)],\r\n n ^= S[0x200 | ((l >> 8) & 0xff)],\r\n n += S[0x300 | (l & 0xff)],\r\n r ^= n ^ P[++i],\r\n // Feistel substitution on right word\r\n n = S[r >>> 24],\r\n n += S[0x100 | ((r >> 16) & 0xff)],\r\n n ^= S[0x200 | ((r >> 8) & 0xff)],\r\n n += S[0x300 | (r & 0xff)],\r\n l ^= n ^ P[++i];\r\n */\r\n\r\n //The following is an unrolled version of the above loop.\r\n //Iteration 0\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[1];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[2];\r\n //Iteration 1\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[3];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[4];\r\n //Iteration 2\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[5];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[6];\r\n //Iteration 3\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[7];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[8];\r\n //Iteration 4\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[9];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[10];\r\n //Iteration 5\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[11];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[12];\r\n //Iteration 6\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[13];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[14];\r\n //Iteration 7\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[15];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[16];\r\n\r\n lr[off] = r ^ P[BLOWFISH_NUM_ROUNDS + 1];\r\n lr[off + 1] = l;\r\n return lr;\r\n }\r\n\r\n /**\r\n * @param {Array.} data\r\n * @param {number} offp\r\n * @returns {{key: number, offp: number}}\r\n * @inner\r\n */\r\n function _streamtoword(data, offp) {\r\n for (var i = 0, word = 0; i < 4; ++i)\r\n word = (word << 8) | (data[offp] & 0xff),\r\n offp = (offp + 1) % data.length;\r\n return { key: word, offp: offp };\r\n }\r\n\r\n /**\r\n * @param {Array.} key\r\n * @param {Array.} P\r\n * @param {Array.} S\r\n * @inner\r\n */\r\n function _key(key, P, S) {\r\n var offset = 0,\r\n lr = [0, 0],\r\n plen = P.length,\r\n slen = S.length,\r\n sw;\r\n for (var i = 0; i < plen; i++)\r\n sw = _streamtoword(key, offset),\r\n offset = sw.offp,\r\n P[i] = P[i] ^ sw.key;\r\n for (i = 0; i < plen; i += 2)\r\n lr = _encipher(lr, 0, P, S),\r\n P[i] = lr[0],\r\n P[i + 1] = lr[1];\r\n for (i = 0; i < slen; i += 2)\r\n lr = _encipher(lr, 0, P, S),\r\n S[i] = lr[0],\r\n S[i + 1] = lr[1];\r\n }\r\n\r\n /**\r\n * Expensive key schedule Blowfish.\r\n * @param {Array.} data\r\n * @param {Array.} key\r\n * @param {Array.} P\r\n * @param {Array.} S\r\n * @inner\r\n */\r\n function _ekskey(data, key, P, S) {\r\n var offp = 0,\r\n lr = [0, 0],\r\n plen = P.length,\r\n slen = S.length,\r\n sw;\r\n for (var i = 0; i < plen; i++)\r\n sw = _streamtoword(key, offp),\r\n offp = sw.offp,\r\n P[i] = P[i] ^ sw.key;\r\n offp = 0;\r\n for (i = 0; i < plen; i += 2)\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[0] ^= sw.key,\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[1] ^= sw.key,\r\n lr = _encipher(lr, 0, P, S),\r\n P[i] = lr[0],\r\n P[i + 1] = lr[1];\r\n for (i = 0; i < slen; i += 2)\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[0] ^= sw.key,\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[1] ^= sw.key,\r\n lr = _encipher(lr, 0, P, S),\r\n S[i] = lr[0],\r\n S[i + 1] = lr[1];\r\n }\r\n\r\n /**\r\n * Internaly crypts a string.\r\n * @param {Array.} b Bytes to crypt\r\n * @param {Array.} salt Salt bytes to use\r\n * @param {number} rounds Number of rounds\r\n * @param {function(Error, Array.=)=} callback Callback receiving the error, if any, and the resulting bytes. If\r\n * omitted, the operation will be performed synchronously.\r\n * @param {function(number)=} progressCallback Callback called with the current progress\r\n * @returns {!Array.|undefined} Resulting bytes if callback has been omitted, otherwise `undefined`\r\n * @inner\r\n */\r\n function _crypt(b, salt, rounds, callback, progressCallback) {\r\n var cdata = C_ORIG.slice(),\r\n clen = cdata.length,\r\n err;\r\n\r\n // Validate\r\n if (rounds < 4 || rounds > 31) {\r\n err = Error(\"Illegal number of rounds (4-31): \"+rounds);\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n if (salt.length !== BCRYPT_SALT_LEN) {\r\n err =Error(\"Illegal salt length: \"+salt.length+\" != \"+BCRYPT_SALT_LEN);\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n rounds = (1 << rounds) >>> 0;\r\n\r\n var P, S, i = 0, j;\r\n\r\n //Use typed arrays when available - huge speedup!\r\n if (Int32Array) {\r\n P = new Int32Array(P_ORIG);\r\n S = new Int32Array(S_ORIG);\r\n } else {\r\n P = P_ORIG.slice();\r\n S = S_ORIG.slice();\r\n }\r\n\r\n _ekskey(salt, b, P, S);\r\n\r\n /**\r\n * Calcualtes the next round.\r\n * @returns {Array.|undefined} Resulting array if callback has been omitted, otherwise `undefined`\r\n * @inner\r\n */\r\n function next() {\r\n if (progressCallback)\r\n progressCallback(i / rounds);\r\n if (i < rounds) {\r\n var start = Date.now();\r\n for (; i < rounds;) {\r\n i = i + 1;\r\n _key(b, P, S);\r\n _key(salt, P, S);\r\n if (Date.now() - start > MAX_EXECUTION_TIME)\r\n break;\r\n }\r\n } else {\r\n for (i = 0; i < 64; i++)\r\n for (j = 0; j < (clen >> 1); j++)\r\n _encipher(cdata, j << 1, P, S);\r\n var ret = [];\r\n for (i = 0; i < clen; i++)\r\n ret.push(((cdata[i] >> 24) & 0xff) >>> 0),\r\n ret.push(((cdata[i] >> 16) & 0xff) >>> 0),\r\n ret.push(((cdata[i] >> 8) & 0xff) >>> 0),\r\n ret.push((cdata[i] & 0xff) >>> 0);\r\n if (callback) {\r\n callback(null, ret);\r\n return;\r\n } else\r\n return ret;\r\n }\r\n if (callback)\r\n nextTick(next);\r\n }\r\n\r\n // Async\r\n if (typeof callback !== 'undefined') {\r\n next();\r\n\r\n // Sync\r\n } else {\r\n var res;\r\n while (true)\r\n if (typeof(res = next()) !== 'undefined')\r\n return res || [];\r\n }\r\n }\r\n\r\n /**\r\n * Internally hashes a string.\r\n * @param {string} s String to hash\r\n * @param {?string} salt Salt to use, actually never null\r\n * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash. If omitted,\r\n * hashing is perormed synchronously.\r\n * @param {function(number)=} progressCallback Callback called with the current progress\r\n * @returns {string|undefined} Resulting hash if callback has been omitted, otherwise `undefined`\r\n * @inner\r\n */\r\n function _hash(s, salt, callback, progressCallback) {\r\n var err;\r\n if (typeof s !== 'string' || typeof salt !== 'string') {\r\n err = Error(\"Invalid string / salt: Not a string\");\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n }\r\n else\r\n throw err;\r\n }\r\n\r\n // Validate the salt\r\n var minor, offset;\r\n if (salt.charAt(0) !== '$' || salt.charAt(1) !== '2') {\r\n err = Error(\"Invalid salt version: \"+salt.substring(0,2));\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n }\r\n else\r\n throw err;\r\n }\r\n if (salt.charAt(2) === '$')\r\n minor = String.fromCharCode(0),\r\n offset = 3;\r\n else {\r\n minor = salt.charAt(2);\r\n if ((minor !== 'a' && minor !== 'b' && minor !== 'y') || salt.charAt(3) !== '$') {\r\n err = Error(\"Invalid salt revision: \"+salt.substring(2,4));\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n offset = 4;\r\n }\r\n\r\n // Extract number of rounds\r\n if (salt.charAt(offset + 2) > '$') {\r\n err = Error(\"Missing salt rounds\");\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n var r1 = parseInt(salt.substring(offset, offset + 1), 10) * 10,\r\n r2 = parseInt(salt.substring(offset + 1, offset + 2), 10),\r\n rounds = r1 + r2,\r\n real_salt = salt.substring(offset + 3, offset + 25);\r\n s += minor >= 'a' ? \"\\x00\" : \"\";\r\n\r\n var passwordb = stringToBytes(s),\r\n saltb = base64_decode(real_salt, BCRYPT_SALT_LEN);\r\n\r\n /**\r\n * Finishes hashing.\r\n * @param {Array.} bytes Byte array\r\n * @returns {string}\r\n * @inner\r\n */\r\n function finish(bytes) {\r\n var res = [];\r\n res.push(\"$2\");\r\n if (minor >= 'a')\r\n res.push(minor);\r\n res.push(\"$\");\r\n if (rounds < 10)\r\n res.push(\"0\");\r\n res.push(rounds.toString());\r\n res.push(\"$\");\r\n res.push(base64_encode(saltb, saltb.length));\r\n res.push(base64_encode(bytes, C_ORIG.length * 4 - 1));\r\n return res.join('');\r\n }\r\n\r\n // Sync\r\n if (typeof callback == 'undefined')\r\n return finish(_crypt(passwordb, saltb, rounds));\r\n\r\n // Async\r\n else {\r\n _crypt(passwordb, saltb, rounds, function(err, bytes) {\r\n if (err)\r\n callback(err, null);\r\n else\r\n callback(null, finish(bytes));\r\n }, progressCallback);\r\n }\r\n }\r\n\r\n /**\r\n * Encodes a byte array to base64 with up to len bytes of input, using the custom bcrypt alphabet.\r\n * @function\r\n * @param {!Array.} b Byte array\r\n * @param {number} len Maximum input length\r\n * @returns {string}\r\n * @expose\r\n */\r\n bcrypt.encodeBase64 = base64_encode;\r\n\r\n /**\r\n * Decodes a base64 encoded string to up to len bytes of output, using the custom bcrypt alphabet.\r\n * @function\r\n * @param {string} s String to decode\r\n * @param {number} len Maximum output length\r\n * @returns {!Array.}\r\n * @expose\r\n */\r\n bcrypt.decodeBase64 = base64_decode;\r\n\r\n return bcrypt;\r\n}));\r\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nimport copy from 'fast-copy';\n\nvar UNRESOLVED_LINK = {}; // unique object to avoid polyfill bloat using Symbol()\n\n/**\n * isLink Function\n * Checks if the object has sys.type \"Link\"\n * @param object\n */\nvar isLink = function isLink(object) {\n return object && object.sys && object.sys.type === 'Link';\n};\n\n/**\n * Creates a string key for lookup in entityMap\n *\n * @param {*} sys\n * @param {String} sys.type\n * @param {String} sys.id\n * @return {String}\n */\nvar makeLookupKey = function makeLookupKey(sys) {\n return sys.type + '!' + sys.id;\n};\n\n/**\n * getLink Function\n *\n * @param response\n * @param link\n * @return {undefined}\n */\nvar getLink = function getLink(entityMap, link) {\n var _link$sys = link.sys,\n type = _link$sys.linkType,\n id = _link$sys.id;\n\n var lookupKey = makeLookupKey({ type: type, id: id });\n\n return entityMap.get(lookupKey) || UNRESOLVED_LINK;\n};\n\n/**\n * cleanUpLinks Function\n * - Removes unresolvable links from Arrays and Objects\n *\n * @param {Object[]|Object} input\n */\nvar cleanUpLinks = function cleanUpLinks(input) {\n if (Array.isArray(input)) {\n return input.filter(function (val) {\n return val !== UNRESOLVED_LINK;\n });\n }\n for (var key in input) {\n if (input[key] === UNRESOLVED_LINK) {\n delete input[key];\n }\n }\n return input;\n};\n\n/**\n * walkMutate Function\n * @param input\n * @param predicate\n * @param mutator\n * @return {*}\n */\nvar walkMutate = function walkMutate(input, predicate, mutator, removeUnresolved) {\n if (predicate(input)) {\n return mutator(input);\n }\n\n if (input && (typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object') {\n for (var key in input) {\n // eslint-disable-next-line no-prototype-builtins\n if (input.hasOwnProperty(key)) {\n input[key] = walkMutate(input[key], predicate, mutator, removeUnresolved);\n }\n }\n if (removeUnresolved) {\n input = cleanUpLinks(input);\n }\n }\n return input;\n};\n\nvar normalizeLink = function normalizeLink(entityMap, link, removeUnresolved) {\n var resolvedLink = getLink(entityMap, link);\n if (resolvedLink === UNRESOLVED_LINK) {\n return removeUnresolved ? resolvedLink : link;\n }\n return resolvedLink;\n};\n\nvar makeEntryObject = function makeEntryObject(item, itemEntryPoints) {\n if (!Array.isArray(itemEntryPoints)) {\n return item;\n }\n\n var entryPoints = Object.keys(item).filter(function (ownKey) {\n return itemEntryPoints.indexOf(ownKey) !== -1;\n });\n\n return entryPoints.reduce(function (entryObj, entryPoint) {\n entryObj[entryPoint] = item[entryPoint];\n return entryObj;\n }, {});\n};\n\n/**\n * resolveResponse Function\n * Resolves contentful response to normalized form.\n * @param {Object} response Contentful response\n * @param {{removeUnresolved: Boolean, itemEntryPoints: Array}|{}} options\n * @param {Boolean} options.removeUnresolved - Remove unresolved links default:false\n * @param {Array} options.itemEntryPoints - Resolve links only in those item properties\n * @return {Object}\n */\nvar resolveResponse = function resolveResponse(response, options) {\n options = options || {};\n if (!response.items) {\n return [];\n }\n var responseClone = copy(response);\n var allIncludes = Object.keys(responseClone.includes || {}).reduce(function (all, type) {\n return [].concat(_toConsumableArray(all), _toConsumableArray(response.includes[type]));\n }, []);\n\n var allEntries = [].concat(_toConsumableArray(responseClone.items), _toConsumableArray(allIncludes));\n\n var entityMap = new Map(allEntries.map(function (entity) {\n return [makeLookupKey(entity.sys), entity];\n }));\n\n allEntries.forEach(function (item) {\n var entryObject = makeEntryObject(item, options.itemEntryPoints);\n\n Object.assign(item, walkMutate(entryObject, isLink, function (link) {\n return normalizeLink(entityMap, link, options.removeUnresolved);\n }, options.removeUnresolved));\n });\n\n return responseClone.items;\n};\n\nexport default resolveResponse;","import copy from 'fast-copy';\nimport qs from 'qs';\nimport isString from 'lodash.isstring';\nimport pThrottle from 'p-throttle';\nimport isPlainObject from 'lodash.isplainobject';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nfunction isNode() {\n /**\n * Polyfills of 'process' might set process.browser === true\n *\n * See:\n * https://github.com/webpack/node-libs-browser/blob/master/mock/process.js#L8\n * https://github.com/defunctzombie/node-process/blob/master/browser.js#L156\n **/\n return typeof process !== 'undefined' && !process.browser;\n}\nfunction isReactNative() {\n return typeof window !== 'undefined' && 'navigator' in window && 'product' in window.navigator && window.navigator.product === 'ReactNative';\n}\nfunction getNodeVersion() {\n return process.versions && process.versions.node ? \"v\".concat(process.versions.node) : process.version;\n}\nfunction getWindow() {\n return window;\n}\nfunction noop() {\n return undefined;\n}\n\nvar PERCENTAGE_REGEX = /*#__PURE__*/_wrapRegExp(/([0-9]+)(%)/, {\n value: 1\n});\n\nfunction calculateLimit(type) {\n var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 7;\n var limit = max;\n\n if (PERCENTAGE_REGEX.test(type)) {\n var _type$match;\n\n var groups = (_type$match = type.match(PERCENTAGE_REGEX)) === null || _type$match === void 0 ? void 0 : _type$match.groups;\n\n if (groups && groups.value) {\n var percentage = parseInt(groups.value) / 100;\n limit = Math.round(max * percentage);\n }\n }\n\n return Math.min(30, Math.max(1, limit));\n}\n\nfunction createThrottle(limit, logger) {\n logger('info', \"Throttle request to \".concat(limit, \"/s\"));\n return pThrottle({\n limit: limit,\n interval: 1000,\n strict: false\n });\n}\n\nvar rateLimitThrottle = (function (axiosInstance) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';\n var _axiosInstance$defaul = axiosInstance.defaults.logHandler,\n logHandler = _axiosInstance$defaul === void 0 ? noop : _axiosInstance$defaul;\n var limit = isString(type) ? calculateLimit(type) : calculateLimit('auto', type);\n var throttle = createThrottle(limit, logHandler);\n var isCalculated = false;\n var requestInterceptorId = axiosInstance.interceptors.request.use(function (config) {\n return throttle(function () {\n return config;\n })();\n }, function (error) {\n return Promise.reject(error);\n });\n var responseInterceptorId = axiosInstance.interceptors.response.use(function (response) {\n if (!isCalculated && isString(type) && (type === 'auto' || PERCENTAGE_REGEX.test(type)) && response.headers && response.headers['x-contentful-ratelimit-second-limit']) {\n var rawLimit = parseInt(response.headers['x-contentful-ratelimit-second-limit']);\n var nextLimit = calculateLimit(type, rawLimit);\n\n if (nextLimit !== limit) {\n if (requestInterceptorId) {\n axiosInstance.interceptors.request.eject(requestInterceptorId);\n }\n\n limit = nextLimit;\n throttle = createThrottle(nextLimit, logHandler);\n requestInterceptorId = axiosInstance.interceptors.request.use(function (config) {\n return throttle(function () {\n return config;\n })();\n }, function (error) {\n return Promise.reject(error);\n });\n }\n\n isCalculated = true;\n }\n\n return response;\n }, function (error) {\n return Promise.reject(error);\n });\n return function () {\n axiosInstance.interceptors.request.eject(requestInterceptorId);\n axiosInstance.interceptors.response.eject(responseInterceptorId);\n };\n});\n\nvar delay = function delay(ms) {\n return new Promise(function (resolve) {\n setTimeout(resolve, ms);\n });\n};\n\nvar defaultWait = function defaultWait(attempts) {\n return Math.pow(Math.SQRT2, attempts);\n};\n\nfunction rateLimit(instance) {\n var maxRetry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n var _instance$defaults = instance.defaults,\n _instance$defaults$re = _instance$defaults.responseLogger,\n responseLogger = _instance$defaults$re === void 0 ? noop : _instance$defaults$re,\n _instance$defaults$re2 = _instance$defaults.requestLogger,\n requestLogger = _instance$defaults$re2 === void 0 ? noop : _instance$defaults$re2;\n instance.interceptors.request.use(function (config) {\n requestLogger(config);\n return config;\n }, function (error) {\n requestLogger(error);\n return Promise.reject(error);\n });\n instance.interceptors.response.use(function (response) {\n // we don't need to do anything here\n responseLogger(response);\n return response;\n }, function (error) {\n var response = error.response;\n var config = error.config;\n responseLogger(error); // Do not retry if it is disabled or no request config exists (not an axios error)\n\n if (!config || !instance.defaults.retryOnError) {\n return Promise.reject(error);\n } // Retried already for max attempts\n\n\n var doneAttempts = config.attempts || 1;\n\n if (doneAttempts > maxRetry) {\n error.attempts = config.attempts;\n return Promise.reject(error);\n }\n\n var retryErrorType = null;\n var wait = defaultWait(doneAttempts); // Errors without response did not receive anything from the server\n\n if (!response) {\n retryErrorType = 'Connection';\n } else if (response.status >= 500 && response.status < 600) {\n // 5** errors are server related\n retryErrorType = \"Server \".concat(response.status);\n } else if (response.status === 429) {\n // 429 errors are exceeded rate limit exceptions\n retryErrorType = 'Rate limit'; // all headers are lowercased by axios https://github.com/mzabriskie/axios/issues/413\n\n if (response.headers && error.response.headers['x-contentful-ratelimit-reset']) {\n wait = response.headers['x-contentful-ratelimit-reset'];\n }\n }\n\n if (retryErrorType) {\n // convert to ms and add jitter\n wait = Math.floor(wait * 1000 + Math.random() * 200 + 500);\n instance.defaults.logHandler('warning', \"\".concat(retryErrorType, \" error occurred. Waiting for \").concat(wait, \" ms before retrying...\")); // increase attempts counter\n\n config.attempts = doneAttempts + 1;\n /* Somehow between the interceptor and retrying the request the httpAgent/httpsAgent gets transformed from an Agent-like object\n to a regular object, causing failures on retries after rate limits. Removing these properties here fixes the error, but retry\n requests still use the original http/httpsAgent property */\n\n delete config.httpAgent;\n delete config.httpsAgent;\n return delay(wait).then(function () {\n return instance(config);\n });\n }\n\n return Promise.reject(error);\n });\n}\n\nfunction asyncToken(instance, getToken) {\n instance.interceptors.request.use(function (config) {\n return getToken().then(function (accessToken) {\n config.headers = _objectSpread2(_objectSpread2({}, config.headers), {}, {\n Authorization: \"Bearer \".concat(accessToken)\n });\n return config;\n });\n });\n}\n\n// Also enforces toplevel domain specified, no spaces and no protocol\n\nvar HOST_REGEX = /^(?!\\w+:\\/\\/)([^\\s:]+\\.?[^\\s:]+)(?::(\\d+))?(?!:)$/;\n/**\n * Create pre configured axios instance\n * @private\n * @param {AxiosStatic} axios - Axios library\n * @param {CreateHttpClientParams} options - Initialization parameters for the HTTP client\n * @return {ContentfulAxiosInstance} Initialized axios instance\n */\n\nfunction createHttpClient(axios, options) {\n var defaultConfig = {\n insecure: false,\n retryOnError: true,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logHandler: function logHandler(level, data) {\n if (level === 'error' && data) {\n var title = [data.name, data.message].filter(function (a) {\n return a;\n }).join(' - ');\n console.error(\"[error] \".concat(title));\n console.error(data);\n return;\n }\n\n console.log(\"[\".concat(level, \"] \").concat(data));\n },\n // Passed to axios\n headers: {},\n httpAgent: false,\n httpsAgent: false,\n timeout: 30000,\n throttle: 0,\n proxy: false,\n basePath: '',\n adapter: undefined,\n maxContentLength: 1073741824,\n // 1GB\n maxBodyLength: 1073741824 // 1GB\n\n };\n\n var config = _objectSpread2(_objectSpread2({}, defaultConfig), options);\n\n if (!config.accessToken) {\n var missingAccessTokenError = new TypeError('Expected parameter accessToken');\n config.logHandler('error', missingAccessTokenError);\n throw missingAccessTokenError;\n } // Construct axios baseURL option\n\n\n var protocol = config.insecure ? 'http' : 'https';\n var space = config.space ? \"\".concat(config.space, \"/\") : '';\n var hostname = config.defaultHostname;\n var port = config.insecure ? 80 : 443;\n\n if (config.host && HOST_REGEX.test(config.host)) {\n var parsed = config.host.split(':');\n\n if (parsed.length === 2) {\n\n var _parsed = _slicedToArray(parsed, 2);\n\n hostname = _parsed[0];\n port = _parsed[1];\n } else {\n hostname = parsed[0];\n }\n } // Ensure that basePath does start but not end with a slash\n\n\n if (config.basePath) {\n config.basePath = \"/\".concat(config.basePath.split('/').filter(Boolean).join('/'));\n }\n\n var baseURL = options.baseURL || \"\".concat(protocol, \"://\").concat(hostname, \":\").concat(port).concat(config.basePath, \"/spaces/\").concat(space);\n\n if (!config.headers.Authorization && typeof config.accessToken !== 'function') {\n config.headers.Authorization = 'Bearer ' + config.accessToken;\n } // Set these headers only for node because browsers don't like it when you\n // override user-agent or accept-encoding.\n // The SDKs should set their own X-Contentful-User-Agent.\n\n\n if (isNode()) {\n config.headers['user-agent'] = 'node.js/' + getNodeVersion();\n config.headers['Accept-Encoding'] = 'gzip';\n }\n\n var axiosOptions = {\n // Axios\n baseURL: baseURL,\n headers: config.headers,\n httpAgent: config.httpAgent,\n httpsAgent: config.httpsAgent,\n paramsSerializer: qs.stringify,\n proxy: config.proxy,\n timeout: config.timeout,\n adapter: config.adapter,\n maxContentLength: config.maxContentLength,\n maxBodyLength: config.maxBodyLength,\n // Contentful\n logHandler: config.logHandler,\n responseLogger: config.responseLogger,\n requestLogger: config.requestLogger,\n retryOnError: config.retryOnError\n };\n var instance = axios.create(axiosOptions);\n instance.httpClientParams = options;\n /**\n * Creates a new axios instance with the same default base parameters as the\n * current one, and with any overrides passed to the newParams object\n * This is useful as the SDKs use dependency injection to get the axios library\n * and the version of the library comes from different places depending\n * on whether it's a browser build or a node.js build.\n * @private\n * @param {CreateHttpClientParams} httpClientParams - Initialization parameters for the HTTP client\n * @return {ContentfulAxiosInstance} Initialized axios instance\n */\n\n instance.cloneWithNewParams = function (newParams) {\n return createHttpClient(axios, _objectSpread2(_objectSpread2({}, copy(options)), newParams));\n };\n /**\n * Apply interceptors.\n * Please note that the order of interceptors is important\n */\n\n\n if (config.onBeforeRequest) {\n instance.interceptors.request.use(config.onBeforeRequest);\n }\n\n if (typeof config.accessToken === 'function') {\n asyncToken(instance, config.accessToken);\n }\n\n if (config.throttle) {\n rateLimitThrottle(instance, config.throttle);\n }\n\n rateLimit(instance, config.retryLimit);\n\n if (config.onError) {\n instance.interceptors.response.use(function (response) {\n return response;\n }, config.onError);\n }\n\n return instance;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Creates request parameters configuration by parsing an existing query object\n * @private\n * @param {Object} query\n * @return {Object} Config object with `params` property, ready to be used in axios\n */\nfunction createRequestConfig(_ref) {\n var query = _ref.query;\n var config = {};\n delete query.resolveLinks;\n config.params = copy(query);\n return config;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction enforceObjPath(obj, path) {\n if (!(path in obj)) {\n var err = new Error();\n err.name = 'PropertyMissing';\n err.message = \"Required property \".concat(path, \" missing from:\\n\\n\").concat(JSON.stringify(obj), \"\\n\\n\");\n throw err;\n }\n\n return true;\n}\n\n// copied from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\nfunction deepFreeze(object) {\n var propNames = Object.getOwnPropertyNames(object);\n\n var _iterator = _createForOfIteratorHelper(propNames),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var name = _step.value;\n var value = object[name];\n\n if (value && _typeof(value) === 'object') {\n deepFreeze(value);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return Object.freeze(object);\n}\n\nfunction freezeSys(obj) {\n deepFreeze(obj.sys || {});\n return obj;\n}\n\nfunction getBrowserOS() {\n var win = getWindow();\n\n if (!win) {\n return null;\n }\n\n var userAgent = win.navigator.userAgent; // TODO: platform is deprecated.\n\n var platform = win.navigator.platform;\n var macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'];\n var windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'];\n var iosPlatforms = ['iPhone', 'iPad', 'iPod'];\n\n if (macosPlatforms.indexOf(platform) !== -1) {\n return 'macOS';\n } else if (iosPlatforms.indexOf(platform) !== -1) {\n return 'iOS';\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\n return 'Windows';\n } else if (/Android/.test(userAgent)) {\n return 'Android';\n } else if (/Linux/.test(platform)) {\n return 'Linux';\n }\n\n return null;\n}\n\nfunction getNodeOS() {\n var platform = process.platform || 'linux';\n var version = process.version || '0.0.0';\n var platformMap = {\n android: 'Android',\n aix: 'Linux',\n darwin: 'macOS',\n freebsd: 'Linux',\n linux: 'Linux',\n openbsd: 'Linux',\n sunos: 'Linux',\n win32: 'Windows'\n };\n\n if (platform in platformMap) {\n return \"\".concat(platformMap[platform] || 'Linux', \"/\").concat(version);\n }\n\n return null;\n}\n\nfunction getUserAgentHeader(sdk, application, integration, feature) {\n var headerParts = [];\n\n if (application) {\n headerParts.push(\"app \".concat(application));\n }\n\n if (integration) {\n headerParts.push(\"integration \".concat(integration));\n }\n\n if (feature) {\n headerParts.push('feature ' + feature);\n }\n\n headerParts.push(\"sdk \".concat(sdk));\n var platform = null;\n\n try {\n if (isReactNative()) {\n platform = getBrowserOS();\n headerParts.push('platform ReactNative');\n } else if (isNode()) {\n platform = getNodeOS();\n headerParts.push(\"platform node.js/\".concat(getNodeVersion()));\n } else {\n platform = getBrowserOS();\n headerParts.push('platform browser');\n }\n } catch (e) {\n platform = null;\n }\n\n if (platform) {\n headerParts.push(\"os \".concat(platform));\n }\n\n return \"\".concat(headerParts.filter(function (item) {\n return item !== '';\n }).join('; '), \";\");\n}\n\n/**\n * Mixes in a method to return just a plain object with no additional methods\n * @private\n * @param data - Any plain JSON response returned from the API\n * @return Enhanced object with toPlainObject method\n */\n\nfunction toPlainObject(data) {\n return Object.defineProperty(data, 'toPlainObject', {\n enumerable: false,\n configurable: false,\n writable: false,\n value: function value() {\n return copy(this);\n }\n });\n}\n\n/**\n * Handles errors received from the server. Parses the error into a more useful\n * format, places it in an exception and throws it.\n * See https://www.contentful.com/developers/docs/references/errors/\n * for more details on the data received on the errorResponse.data property\n * and the expected error codes.\n * @private\n */\nfunction errorHandler(errorResponse) {\n var config = errorResponse.config,\n response = errorResponse.response;\n var errorName; // Obscure the Management token\n\n if (config && config.headers && config.headers['Authorization']) {\n var token = \"...\".concat(config.headers['Authorization'].substr(-5));\n config.headers['Authorization'] = \"Bearer \".concat(token);\n }\n\n if (!isPlainObject(response) || !isPlainObject(config)) {\n throw errorResponse;\n }\n\n var data = response === null || response === void 0 ? void 0 : response.data;\n var errorData = {\n status: response === null || response === void 0 ? void 0 : response.status,\n statusText: response === null || response === void 0 ? void 0 : response.statusText,\n message: '',\n details: {}\n };\n\n if (isPlainObject(config)) {\n errorData.request = {\n url: config.url,\n headers: config.headers,\n method: config.method,\n payloadData: config.data\n };\n }\n\n if (data && isPlainObject(data)) {\n if ('requestId' in data) {\n errorData.requestId = data.requestId || 'UNKNOWN';\n }\n\n if ('message' in data) {\n errorData.message = data.message || '';\n }\n\n if ('details' in data) {\n errorData.details = data.details || {};\n }\n\n if ('sys' in data) {\n if ('id' in data.sys) {\n errorName = data.sys.id;\n }\n }\n }\n\n var error = new Error();\n error.name = errorName && errorName !== 'Unknown' ? errorName : \"\".concat(response === null || response === void 0 ? void 0 : response.status, \" \").concat(response === null || response === void 0 ? void 0 : response.statusText);\n\n try {\n error.message = JSON.stringify(errorData, null, ' ');\n } catch (_unused) {\n var _errorData$message;\n\n error.message = (_errorData$message = errorData === null || errorData === void 0 ? void 0 : errorData.message) !== null && _errorData$message !== void 0 ? _errorData$message : '';\n }\n\n throw error;\n}\n\nexport { createHttpClient, createRequestConfig, enforceObjPath, errorHandler, freezeSys, getUserAgentHeader, toPlainObject };\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + (commaRoundTrip && isArray(obj) && valuesArray.length === 1 ? '[]' : '') + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createClient = createClient;\n\nvar _axios = _interopRequireDefault(require(\"axios\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nvar _createContentfulApi = _interopRequireDefault(require(\"./create-contentful-api\"));\n\nvar _createGlobalOptions = _interopRequireDefault(require(\"./create-global-options\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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\n/**\n * Create a client instance\n * @func\n * @name createClient\n * @memberof contentful\n * @param {Object} params - Client initialization parameters\n * @prop {string} params.space - Space ID\n * @prop {string} params.accessToken - Contentful CDA Access Token\n * @prop {string} [params.environment=\"master\"] - Contentful Environment ID\n * @prop {boolean=} params.insecure - Requests will be made over http instead of the default https (default: true)\n * @prop {string=} params.host - API host (default: cdn.contentful.com). Also usable with preview.contentful.com.\n * @prop {string=} params.basePath - Path appended to the host to support gateways/proxies with custom urls.\n * @prop {Object=} params.httpAgent - Optional Node.js HTTP agent for proxying (see Node.js docs and https-proxy-agent)\n * @prop {Object=} params.httpsAgent - Optional Node.js HTTP agent for proxying (see Node.js docs and https-proxy-agent)\n * @prop {Object=} params.proxy - Optional Axios proxy (see axios docs )\n * @prop {Object=} params.headers - Optional additional headers\n * @prop {function=} params.adapter - Optional axios request adapter (see axios docs )\n * @prop {boolean=?} params.resolveLinks - If we should resolve links between entries (default: true)\n * @prop {boolean=?} params.removeUnresolved - If we should remove links to entries which could not be resolved (default: false)\n * @prop {boolean=?} params.retryOnError - If we should retry on errors and 429 rate limit exceptions (default: true)\n * @prop {function=} params.logHandler - A log handler function to process given log messages & errors. Receives the log level (error, warning & info) and the actual log data (Error object or string). (The default can be found at: https://github.com/contentful/contentful-sdk-core/blob/master/src/create-http-client.ts)\n * @prop {string=?} params.application - Application name and version e.g myApp/version\n * @prop {string=?} params.integration - Integration name and version e.g react/version\n * @prop {number=} params.timeout in milliseconds - connection timeout (default:30000)\n * @prop {number=} params.retryLimit - Optional number of retries before failure. Default is 5\n * @returns {ContentfulClientAPI.ClientAPI}\n * @example\n * const contentful = require('contentful')\n * const client = contentful.createClient({\n * accessToken: 'myAccessToken',\n * space: 'mySpaceId'\n * })\n */\nfunction createClient(params) {\n if (!params.accessToken) {\n throw new TypeError('Expected parameter accessToken');\n }\n\n if (!params.space) {\n throw new TypeError('Expected parameter space');\n }\n\n const defaultConfig = {\n resolveLinks: true,\n removeUnresolved: false,\n defaultHostname: 'cdn.contentful.com',\n environment: 'master'\n };\n\n const config = _objectSpread(_objectSpread({}, defaultConfig), params);\n\n const userAgentHeader = (0, _contentfulSdkCore.getUserAgentHeader)(`contentful.js/${\"8.5.8\"}`, config.application, config.integration);\n config.headers = _objectSpread(_objectSpread({}, config.headers), {}, {\n 'Content-Type': 'application/vnd.contentful.delivery.v1+json',\n 'X-Contentful-User-Agent': userAgentHeader\n });\n const http = (0, _contentfulSdkCore.createHttpClient)(_axios.default, config);\n const getGlobalOptions = (0, _createGlobalOptions.default)({\n resolveLinks: config.resolveLinks,\n environment: config.environment,\n removeUnresolved: config.removeUnresolved,\n spaceBaseUrl: http.defaults.baseURL,\n environmentBaseUrl: `${http.defaults.baseURL}environments/${config.environment}`\n }); // Append environment to baseURL\n\n http.defaults.baseURL = getGlobalOptions().environmentBaseUrl; // Intercepts response and obscure the token\n\n obscureAuthTokenInResponse(http);\n return (0, _createContentfulApi.default)({\n http,\n getGlobalOptions\n });\n}\n\nfunction obscureAuthTokenInResponse(http) {\n http.interceptors.response.use(response => {\n return response;\n }, error => {\n if (error.response && error.response.config.headers.Authorization) {\n const token = error.response.config.headers.Authorization;\n error.response.config.headers.Authorization = error.response.config.headers.Authorization.replace(token, `Bearer...${token.substr(-5)}`);\n\n if (error.response.request._header) {\n error.response.request._header = error.response.request._header.replace(token, `Bearer...${token.substr(-5)}`);\n }\n }\n\n return Promise.reject(error);\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createContentfulApi;\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nvar _entities = _interopRequireDefault(require(\"./entities\"));\n\nvar _pagedSync = _interopRequireDefault(require(\"./paged-sync\"));\n\nvar _normalizeSelect = _interopRequireDefault(require(\"./utils/normalize-select\"));\n\nvar _validateTimestamp = _interopRequireDefault(require(\"./utils/validate-timestamp\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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\nconst ASSET_KEY_MAX_LIFETIME = 48 * 60 * 60;\n/**\n * Creates API object with methods to access functionality from Contentful's\n * Delivery API\n * @private\n * @param {Object} params - API initialization params\n * @prop {Object} http - HTTP client instance\n * @prop {Object} entities - Object with wrapper methods for each kind of entity\n * @prop {Function} getGlobalOptions - Link resolver preconfigured with global setting\n * @return {ClientAPI}\n */\n\nfunction createContentfulApi({\n http,\n getGlobalOptions\n}) {\n const {\n wrapSpace\n } = _entities.default.space;\n const {\n wrapContentType,\n wrapContentTypeCollection\n } = _entities.default.contentType;\n const {\n wrapEntry,\n wrapEntryCollection\n } = _entities.default.entry;\n const {\n wrapAsset,\n wrapAssetCollection\n } = _entities.default.asset;\n const {\n wrapTag,\n wrapTagCollection\n } = _entities.default.tag;\n const {\n wrapAssetKey\n } = _entities.default.assetKey;\n const {\n wrapLocaleCollection\n } = _entities.default.locale;\n\n const notFoundError = id => {\n const error = new Error('The resource could not be found.');\n error.sys = {\n type: 'Error',\n id: 'NotFound'\n };\n error.details = {\n type: 'Entry',\n id: id,\n environment: getGlobalOptions().environment,\n space: getGlobalOptions().space\n };\n return error;\n };\n\n function errorHandler(error) {\n if (error.data) {\n throw error.data;\n }\n\n if (error.response && error.response.data) {\n throw error.response.data;\n }\n\n throw error;\n }\n /**\n * Gets the Space which the client is currently configured to use\n * @memberof ContentfulClientAPI\n * @return {Promise} Promise for a Space\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n * // returns the space object with the above \n * const space = await client.getSpace()\n * console.log(space)\n */\n\n\n async function getSpace() {\n switchToSpace(http);\n\n try {\n const response = await http.get('');\n return wrapSpace(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a Content Type\n * @memberof ContentfulClientAPI\n * @param {string} id\n * @return {Promise} Promise for a Content Type\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const contentType = await client.getContentType('')\n * console.log(contentType)\n */\n\n\n async function getContentType(id) {\n switchToEnvironment(http);\n\n try {\n const response = await http.get(`content_types/${id}`);\n return wrapContentType(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a collection of Content Types\n * @memberof ContentfulClientAPI\n * @param {Object=} query - Object with search parameters. Check the JS SDK tutorial and the REST API reference for more details.\n * @return {Promise} Promise for a collection of Content Types\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.getContentTypes()\n * console.log(response.items)\n */\n\n\n async function getContentTypes(query = {}) {\n switchToEnvironment(http);\n\n try {\n const response = await http.get('content_types', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapContentTypeCollection(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets an Entry\n * @memberof ContentfulClientAPI\n * @param {string} id\n * @param {Object=} query - Object with search parameters. In this method it's only useful for `locale`.\n * @return {Promise} Promise for an Entry\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const entry = await client.getEntry('')\n * console.log(entry)\n */\n\n\n async function getEntry(id, query = {}) {\n if (!id) {\n throw notFoundError(id);\n }\n\n try {\n const response = await this.getEntries(_objectSpread({\n 'sys.id': id\n }, query));\n\n if (response.items.length > 0) {\n return wrapEntry(response.items[0]);\n } else {\n throw notFoundError(id);\n }\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a collection of Entries\n * @memberof ContentfulClientAPI\n * @param {Object=} query - Object with search parameters. Check the JS SDK tutorial and the REST API reference for more details.\n * @return {Promise} Promise for a collection of Entries\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.getEntries()\n * .console.log(response.items)\n */\n\n\n async function getEntries(query = {}) {\n switchToEnvironment(http);\n const {\n resolveLinks,\n removeUnresolved\n } = getGlobalOptions(query);\n query = (0, _normalizeSelect.default)(query);\n\n try {\n const response = await http.get('entries', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapEntryCollection(response.data, {\n resolveLinks,\n removeUnresolved\n });\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets an Asset\n * @memberof ContentfulClientAPI\n * @param {string} id\n * @param {Object=} query - Object with search parameters. In this method it's only useful for `locale`.\n * @return {Promise} Promise for an Asset\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const asset = await client.getAsset('')\n * console.log(asset)\n */\n\n\n async function getAsset(id, query = {}) {\n switchToEnvironment(http);\n query = (0, _normalizeSelect.default)(query);\n\n try {\n const response = await http.get(`assets/${id}`, (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapAsset(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a collection of Assets\n * @memberof ContentfulClientAPI\n * @param {Object=} query - Object with search parameters. Check the JS SDK tutorial and the REST API reference for more details.\n * @return {Promise} Promise for a collection of Assets\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.getAssets()\n * console.log(response.items)\n */\n\n\n async function getAssets(query = {}) {\n switchToEnvironment(http);\n query = (0, _normalizeSelect.default)(query);\n\n try {\n const response = await http.get('assets', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapAssetCollection(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a Tag\n * @memberof ContentfulClientAPI\n * @param {string} id\n * @return {Promise} Promise for a Tag\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const tag = await client.getTag('')\n * console.log(tag)\n */\n\n\n async function getTag(id) {\n switchToEnvironment(http);\n\n try {\n const response = await http.get(`tags/${id}`);\n return wrapTag(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a collection of Tags\n * @memberof ContentfulClientAPI\n * @param {Object=} query - Object with search parameters.\n * @return {Promise} Promise for a collection of Tags\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.getTags()\n * console.log(response.items)\n */\n\n\n async function getTags(query = {}) {\n switchToEnvironment(http);\n query = (0, _normalizeSelect.default)(query);\n\n try {\n const response = await http.get('tags', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapTagCollection(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Creates an asset key for signing asset URLs (Embargoed Assets)\n * @memberof ContentfulClientAPI\n * @param {number} expiresAt - UNIX timestamp in the future, maximum of 48h from now\n * @return {Promise} Promise for an AssetKey\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const assetKey = await client.getAssetKey()\n * console.log(assetKey)\n */\n\n\n async function createAssetKey(expiresAt) {\n switchToEnvironment(http);\n\n try {\n const now = Math.floor(Date.now() / 1000);\n const currentMaxLifetime = now + ASSET_KEY_MAX_LIFETIME;\n (0, _validateTimestamp.default)('expiresAt', expiresAt, {\n maximum: currentMaxLifetime,\n now\n });\n const params = {\n expiresAt\n };\n const response = await http.post('asset_keys', params);\n return wrapAssetKey(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Gets a collection of Locale\n * @memberof ContentfulClientAPI\n * @param {Object=} query - Object with search parameters. Check the JS SDK tutorial and the REST API reference for more details.\n * @return {Promise} Promise for a collection of Locale\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.getLocales()\n * console.log(response.items)\n */\n\n\n async function getLocales(query = {}) {\n switchToEnvironment(http);\n\n try {\n const response = await http.get('locales', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n return wrapLocaleCollection(response.data);\n } catch (error) {\n errorHandler(error);\n }\n }\n /**\n * Synchronizes either all the content or only new content since last sync\n * See Synchronization for more information.\n * Important note: The the sync api endpoint does not support include or link resolution.\n * However contentful.js is doing link resolution client side if you only make an initial sync.\n * For the delta sync (using nextSyncToken) it is not possible since the sdk wont have access to all the data to make such an operation.\n * @memberof ContentfulClientAPI\n * @param {Object} query - Query object for the sync call. One of initial or nextSyncToken always needs to be specified, but not both.\n * @param {boolean?} query.initial - Indicates if this is the first sync. Use it if you don't have a sync token.\n * @param {string?} query.nextSyncToken - The token you got the last time you used this method. Ensures you only get changed content.\n * @param {string=} query.type - Filter by this type (all (default), Entry, Asset, Deletion, DeletedAsset or DeletedEntry)\n * @param {string=} query.content_type - Filter by this content type id\n * @param {boolean=} query.resolveLinks - When true, links to other Entries or Assets are resolved. Default: true.\n * @param {Object} options\n * @param {boolean=} [options.paginate = true] - Set to false to disable pagination\n * @return {Promise} Promise for the collection resulting of a sync operation\n * @example\n * const contentful = require('contentful')\n *\n * const client = contentful.createClient({\n * space: '',\n * accessToken: ''\n * })\n *\n * const response = await client.sync({\n * initial: true\n * })\n * console.log({\n * entries: response.entries,\n * assets: response.assets,\n * nextSyncToken: response.nextSyncToken\n * })\n */\n\n\n async function sync(query = {}, options = {\n paginate: true\n }) {\n const {\n resolveLinks,\n removeUnresolved\n } = getGlobalOptions(query);\n switchToEnvironment(http);\n return (0, _pagedSync.default)(http, query, _objectSpread({\n resolveLinks,\n removeUnresolved\n }, options));\n }\n /**\n * Parse raw json data into collection of entry objects.Links will be resolved also\n * @memberof ContentfulClientAPI\n * @param {Object} raw json data\n * @example\n * let data = {items: [\n * {\n * sys: {type: 'Entry', locale: 'en-US'},\n * fields: {\n * animal: {sys: {type: 'Link', linkType: 'Animal', id: 'oink'}},\n * anotheranimal: {sys: {type: 'Link', linkType: 'Animal', id: 'middle-parrot'}}\n * }\n * }\n * ],\n * includes: {\n * Animal: [\n * {\n * sys: {type: 'Animal', id: 'oink', locale: 'en-US'},\n * fields: {\n * name: 'Pig',\n * friend: {sys: {type: 'Link', linkType: 'Animal', id: 'groundhog'}}\n * }\n * }\n * ]\n * }\n * }\n * console.log( data.items[0].fields.foo ); // undefined\n * let parsedData = client.parseEntries(data);\n * console.log( parsedData.items[0].fields.foo ); // foo\n */\n\n\n function parseEntries(data) {\n const {\n resolveLinks,\n removeUnresolved\n } = getGlobalOptions({});\n return wrapEntryCollection(data, {\n resolveLinks,\n removeUnresolved\n });\n }\n /*\n * Switches BaseURL to use /environments path\n * */\n\n\n function switchToEnvironment(http) {\n http.defaults.baseURL = getGlobalOptions().environmentBaseUrl;\n }\n /*\n * Switches BaseURL to use /spaces path\n * */\n\n\n function switchToSpace(http) {\n http.defaults.baseURL = getGlobalOptions().spaceBaseUrl;\n }\n\n return {\n getSpace,\n getContentType,\n getContentTypes,\n getEntry,\n getEntries,\n getAsset,\n getAssets,\n getTag,\n getTags,\n createAssetKey,\n getLocales,\n parseEntries,\n sync\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createGlobalOptions;\n\n/**\n * Link resolution can be set globally, or it can be turned off for the methods\n * which make use of it. The local setting always overrides the global setting.\n * @private\n * @param {boolean} globalSetting - Global library setting for link resolution\n * @returns {function} Link resolver method preconfigured with global setting\n */\nfunction createGlobalOptions(globalSettings) {\n /**\n * Link resolver method\n * @param {Object} query - regular query object used for collection endpoints\n */\n return function getGlobalOptions(query) {\n return Object.assign({}, globalSettings, query);\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapAssetKey = wrapAssetKey;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @memberof Entities\n * @typedef AssetKey\n * @prop {string} policy - The asset key's policy\n * @prop {string} secret - The secret for creating a signing token\n * @prop {function(): Object} toPlainObject() - Returns this AssetKey as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw asset key data\n * @return {Asset} Wrapped asset key data\n */\nfunction wrapAssetKey(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapAsset = wrapAsset;\nexports.wrapAssetCollection = wrapAssetCollection;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @memberof Entities\n * @typedef Asset\n * @prop {Entities.Sys} sys - Standard system metadata with additional entry specific properties\n * @prop {string=} sys.locale - If present, indicates the locale which this asset uses\n * @prop {Object} fields - Object with content for each field\n * @prop {string} fields.title - Title for this asset\n * @prop {string} fields.description - Description for this asset\n * @prop {Object} fields.file - File object for this asset\n * @prop {string} fields.file.fileName - Name for the file\n * @prop {string} fields.file.contentType - Mime type for the file\n * @prop {string} fields.file.url - Url where the file is available at.\n * @prop {Object} fields.file.details - Details for the file, depending on file type (example: image size in bytes, etc)\n * @prop {function(): Object} toPlainObject() - Returns this Asset as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw asset data\n * @return {Asset} Wrapped asset data\n */\nfunction wrapAsset(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}\n/**\n * @memberof Entities\n * @typedef AssetCollection\n * @prop {number} total\n * @prop {number} skip\n * @prop {number} limit\n * @prop {Array} items\n * @prop {function(): Object} toPlainObject() - Returns this Asset collection as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw asset collection data\n * @return {AssetCollection} Wrapped asset collection data\n */\n\n\nfunction wrapAssetCollection(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapContentType = wrapContentType;\nexports.wrapContentTypeCollection = wrapContentTypeCollection;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @memberof Entities\n * @typedef ContentType\n * @prop {Entities.Sys} sys - System metadata\n * @prop {string} name\n * @prop {string} description\n * @prop {string} displayField - Field used as the main display field for Entries\n * @prop {string} Array - All the fields contained in this Content Type\n * @prop {function(): Object} toPlainObject() - Returns this Content Type as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw content type data\n * @return {ContentType} Wrapped content type data\n */\nfunction wrapContentType(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}\n/**\n * @memberof Entities\n * @typedef ContentTypeCollection\n * @prop {number} total\n * @prop {number} skip\n * @prop {number} limit\n * @prop {Array} items\n * @prop {function(): Object} toPlainObject() - Returns this Content Type collection as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw content type collection data\n * @return {ContentTypeCollection} Wrapped content type collection data\n */\n\n\nfunction wrapContentTypeCollection(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapEntry = wrapEntry;\nexports.wrapEntryCollection = wrapEntryCollection;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nvar _stringifySafe = _interopRequireDefault(require(\"../mixins/stringify-safe\"));\n\nvar _contentfulResolveResponse = _interopRequireDefault(require(\"contentful-resolve-response\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Types of fields found in an Entry\n * @namespace EntryFields\n */\n\n/**\n * @memberof EntryFields\n * @typedef Symbol\n * @type string\n */\n\n/**\n * @memberof EntryFields\n * @typedef Text\n * @type string\n */\n\n/**\n * @memberof EntryFields\n * @typedef Integer\n * @type number\n */\n\n/**\n * @memberof EntryFields\n * @typedef Number\n * @type number\n */\n\n/**\n * @memberof EntryFields\n * @typedef Date\n * @type string\n */\n\n/**\n * @memberof EntryFields\n * @typedef Boolean\n * @type boolean\n */\n\n/**\n * @memberof EntryFields\n * @typedef Location\n * @prop {string} lat - latitude\n * @prop {string} lon - longitude\n */\n\n/**\n * A Field in an Entry can have one of the following types that can be defined in Contentful. See Field Types for more details.\n * @memberof Entities\n * @typedef Field\n * @type EntryFields.Symbol | EntryFields.Text | EntryFields.Integer | EntryFields.Number | EntryFields.Date | EntryFields.Boolean | EntryFields.Location | Entities.Link | Array | Object\n */\n\n/**\n * @memberof Entities\n * @typedef Entry\n * @prop {Entities.Sys} sys - Standard system metadata with additional entry specific properties\n * @prop {Entities.Link} sys.contentType - Content Type used by this Entry\n * @prop {string=} sys.locale - If present, indicates the locale which this entry uses\n * @prop {Object} fields - Object with content for each field\n * @prop {function(): Object} toPlainObject() - Returns this Entry as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw entry data\n * @return {Entry} Wrapped entry data\n */\nfunction wrapEntry(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}\n/**\n * @memberof Entities\n * @typedef EntryCollection\n * @prop {number} total\n * @prop {number} skip\n * @prop {number} limit\n * @prop {Array} items\n * @prop {Array=} errors - Array of errors that might occur when retrieving entries.\n * @prop {Object=} includes - Object with arrays of includes for Entries and Assets. This will be present if resolveLinks is on, and any linked entries or assets exist. Those links will be resolved in the Entries present in the items array, but they are also present here in raw form.\n * @prop {function(): Object} toPlainObject() - Returns this Entry collection as a plain JS object\n * @prop {function(?function=, space=): Object} stringifySafe(replacer,space) - Stringifies the entry collection, accounting for circular references. Circular references will be replaced with just a Link object, with a circular property set to true. See MDN and json-stringify-safe for more details on the arguments this method can take.\n */\n\n/**\n * Data is also mixed in with link getters if links exist and includes were requested\n * @private\n * @param {Object} data - Raw entry collection data\n * @param {Object} options - wrapper options\n * @return {EntryCollection} Wrapped entry collection data\n */\n\n\nfunction wrapEntryCollection(data, {\n resolveLinks,\n removeUnresolved\n}) {\n const wrappedData = (0, _stringifySafe.default)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n\n if (resolveLinks) {\n wrappedData.items = (0, _contentfulResolveResponse.default)(wrappedData, {\n removeUnresolved,\n itemEntryPoints: ['fields']\n });\n }\n\n return (0, _contentfulSdkCore.freezeSys)(wrappedData);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar space = _interopRequireWildcard(require(\"./space\"));\n\nvar entry = _interopRequireWildcard(require(\"./entry\"));\n\nvar asset = _interopRequireWildcard(require(\"./asset\"));\n\nvar assetKey = _interopRequireWildcard(require(\"./asset-key\"));\n\nvar contentType = _interopRequireWildcard(require(\"./content-type\"));\n\nvar locale = _interopRequireWildcard(require(\"./locale\"));\n\nvar tag = _interopRequireWildcard(require(\"./tag\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = {\n space,\n entry,\n asset,\n assetKey,\n contentType,\n locale,\n tag\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapLocale = wrapLocale;\nexports.wrapLocaleCollection = wrapLocaleCollection;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @memberof Entities\n * @typedef Locale\n * @prop {Entities.Sys} sys - Standard system metadata with additional entry specific properties\n * @prop {string} name - locale name (example: English)\n * @prop {string} code - locale code (example: en-US)\n * @prop {string} fallbackCode - the locale code to fallback to when there is not content for the current locale\n * @prop {boolean} default - If this is the default locale\n * @prop {boolean} optional - If the locale needs to be filled in on entries or not\n * @prop {function(): Object} toPlainObject() - Returns this Locale as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw locale data\n * @return {Locale} Wrapped locale data\n */\nfunction wrapLocale(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}\n/**\n * @memberof Entities\n * @typedef LocaleCollection\n * @prop {number} total\n * @prop {number} skip\n * @prop {number} limit\n * @prop {Array} items\n * @prop {function(): Object} toPlainObject() - Returns this Locale collection as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw locale collection data\n * @return {LocaleCollection} Wrapped locale collection data\n */\n\n\nfunction wrapLocaleCollection(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapSpace = wrapSpace;\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\n/**\n * @memberof Entities\n * @typedef Space\n * @prop {Object} sys - System metadata\n * @prop {string} sys.id - Space id\n * @prop {string} sys.type - Entity type\n * @prop {string} name - Space name\n * @prop {Array} locales - Array with locale codes\n * @prop {function(): Object} toPlainObject() - Returns this Space as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - API response for a Space\n * @return {Space}\n */\nfunction wrapSpace(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)(data));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wrapTag = wrapTag;\nexports.wrapTagCollection = wrapTagCollection;\n\nvar _fastCopy = _interopRequireDefault(require(\"fast-copy\"));\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @memberof Entities\n * @typedef Tag\n * @prop {Entities.Sys} sys - Standard system metadata with additional entry specific properties\n * @prop {string} name - Tag name\n * @prop {function(): Object} toPlainObject() - Returns this tag as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw tag data\n * @return {Tag} Wrapped tag data\n */\nfunction wrapTag(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}\n/**\n * @memberof Entities\n * @typedef TagCollection\n * @prop {number} total\n * @prop {number} skip\n * @prop {number} limit\n * @prop {Array} items\n * @prop {function(): Object} toPlainObject() - Returns this Tag collection as a plain JS object\n */\n\n/**\n * @private\n * @param {Object} data - Raw tag collection data\n * @return {TagCollection} Wrapped tag collection data\n */\n\n\nfunction wrapTagCollection(data) {\n return (0, _contentfulSdkCore.freezeSys)((0, _contentfulSdkCore.toPlainObject)((0, _fastCopy.default)(data)));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = mixinStringifySafe;\n\nvar _jsonStringifySafe = _interopRequireDefault(require(\"json-stringify-safe\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction mixinStringifySafe(data) {\n return Object.defineProperty(data, 'stringifySafe', {\n enumerable: false,\n configurable: false,\n writable: false,\n value: function (serializer = null, indent = '') {\n return (0, _jsonStringifySafe.default)(this, serializer, indent, (key, value) => {\n return {\n sys: {\n type: 'Link',\n linkType: 'Entry',\n id: value.sys.id,\n circular: true\n }\n };\n });\n }\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = pagedSync;\n\nvar _contentfulSdkCore = require(\"contentful-sdk-core\");\n\nvar _contentfulResolveResponse = _interopRequireDefault(require(\"contentful-resolve-response\"));\n\nvar _stringifySafe = _interopRequireDefault(require(\"./mixins/stringify-safe\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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\n/**\n * @memberof Sync\n * @typedef SyncCollection\n * @prop {Array} entries - All existing entries on first sync. New and updated entries on subsequent syncs.\n * @prop {Array} assets - All existing assets on first sync. New and updated assets on subsequent syncs.\n * @prop {Array} deletedEntries - List of deleted Entries since last sync\n * @prop {Array} deletedAssets - List of deleted Assets since last sync\n * @prop {string} nextSyncToken - Token to be sent to the next sync call\n * @prop {function(): Object} toPlainObject() - Returns this Sync collection as a plain JS object\n * @prop {function(?function=, space=): Object} stringifySafe(replacer,space) - Stringifies the Sync collection, accounting for circular references. Circular references will be replaced with just a Link object, with a circular property set to true. See MDN and json-stringify-safe for more details on the arguments this method can take.\n */\n\n/**\n * Deleted Entries are the same as Entries, but only appear on the sync API.\n * @memberof Sync\n * @typedef DeletedEntry\n * @type Entities.Entry\n */\n\n/**\n * Deleted Assets are the same as Assets, but only appear on the sync API.\n * @memberof Sync\n * @typedef DeletedAsset\n * @type Entities.Asset\n */\n\n/**\n * This module retrieves all the available pages for a sync operation\n * @private\n * @param {Object} http - HTTP client\n * @param {Object} query - Query object\n * @param {Object} options - Sync options object\n * @param {boolean} [options.resolveLinks = true] - If links should be resolved\n * @param {boolean} [options.removeUnresolved = false] - If unresolvable links should get removed\n * @param {boolean} [options.paginate = true] - If further sync pages should automatically be crawled\n * @return {Promise}\n */\nasync function pagedSync(http, query, options = {}) {\n if (!query || !query.initial && !query.nextSyncToken && !query.nextPageToken) {\n throw new Error('Please provide one of `initial`, `nextSyncToken` or `nextPageToken` parameters for syncing');\n }\n\n if (query && query.content_type && !query.type) {\n query.type = 'Entry';\n } else if (query && query.content_type && query.type && query.type !== 'Entry') {\n throw new Error('When using the `content_type` filter your `type` parameter cannot be different from `Entry`.');\n }\n\n const defaultOptions = {\n resolveLinks: true,\n removeUnresolved: false,\n paginate: true\n };\n\n const {\n resolveLinks,\n removeUnresolved,\n paginate\n } = _objectSpread(_objectSpread({}, defaultOptions), options);\n\n const syncOptions = {\n paginate\n };\n const response = await getSyncPage(http, [], query, syncOptions); // clones response.items used in includes because we don't want these to be mutated\n\n if (resolveLinks) {\n response.items = (0, _contentfulResolveResponse.default)(response, {\n removeUnresolved,\n itemEntryPoints: ['fields']\n });\n } // maps response items again after getters are attached\n\n\n const mappedResponseItems = mapResponseItems(response.items);\n\n if (response.nextSyncToken) {\n mappedResponseItems.nextSyncToken = response.nextSyncToken;\n }\n\n if (response.nextPageToken) {\n mappedResponseItems.nextPageToken = response.nextPageToken;\n }\n\n return (0, _contentfulSdkCore.freezeSys)((0, _stringifySafe.default)((0, _contentfulSdkCore.toPlainObject)(mappedResponseItems)));\n}\n/**\n * @private\n * @param {Array} items\n * @return {Object} Entities mapped to an object for each entity type\n */\n\n\nfunction mapResponseItems(items) {\n const reducer = type => {\n return (accumulated, item) => {\n if (item.sys.type === type) {\n accumulated.push((0, _contentfulSdkCore.toPlainObject)(item));\n }\n\n return accumulated;\n };\n };\n\n return {\n entries: items.reduce(reducer('Entry'), []),\n assets: items.reduce(reducer('Asset'), []),\n deletedEntries: items.reduce(reducer('DeletedEntry'), []),\n deletedAssets: items.reduce(reducer('DeletedAsset'), [])\n };\n}\n/**\n * If the response contains a nextPageUrl, extracts the sync token to get the\n * next page and calls itself again with that token.\n * Otherwise, if the response contains a nextSyncUrl, extracts the sync token\n * and returns it.\n * On each call of this function, any retrieved items are collected in the\n * supplied items array, which gets returned in the end\n * @private\n * @param {Object} http\n * @param {Array} items\n * @param {Object} query\n * @param {Object} options - Sync page options object\n * @param {boolean} [options.paginate = true] - If further sync pages should automatically be crawled\n * @return {Promise<{items: Array, nextSyncToken: string}>}\n */\n\n\nasync function getSyncPage(http, items, query, {\n paginate\n}) {\n if (query.nextSyncToken) {\n query.sync_token = query.nextSyncToken;\n delete query.nextSyncToken;\n }\n\n if (query.nextPageToken) {\n query.sync_token = query.nextPageToken;\n delete query.nextPageToken;\n }\n\n if (query.sync_token) {\n delete query.initial;\n delete query.type;\n delete query.content_type;\n delete query.limit;\n }\n\n const response = await http.get('sync', (0, _contentfulSdkCore.createRequestConfig)({\n query: query\n }));\n const data = response.data || {};\n items = items.concat(data.items || []);\n\n if (data.nextPageUrl) {\n if (paginate) {\n delete query.initial;\n query.sync_token = getToken(data.nextPageUrl);\n return getSyncPage(http, items, query, {\n paginate\n });\n }\n\n return {\n items: items,\n nextPageToken: getToken(data.nextPageUrl)\n };\n } else if (data.nextSyncUrl) {\n return {\n items: items,\n nextSyncToken: getToken(data.nextSyncUrl)\n };\n } else {\n return {\n items: []\n };\n }\n}\n/**\n * Extracts token out of an url\n * @private\n */\n\n\nfunction getToken(url) {\n const urlParts = url.split('?');\n return urlParts.length > 0 ? urlParts[1].replace('sync_token=', '') : '';\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = normalizeSelect;\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\n/*\n* sdk relies heavily on sys metadata\n* so we cannot omit the sys property on sdk level entirely\n* and we have to ensure that at least `id` and `type` are present\n* */\nfunction normalizeSelect(query) {\n if (!query.select) {\n return query;\n } // The selection of fields for the query is limited\n // Get the different parts that are listed for selection\n\n\n const allSelects = Array.isArray(query.select) ? query.select : query.select.split(','); // Move the parts into a set for easy access and deduplication\n\n const selectedSet = new Set(allSelects); // If we already select all of `sys` we can just return\n // since we're anyway fetching everything that is needed\n\n if (selectedSet.has('sys')) {\n return query;\n } // We don't select `sys` so we need to ensure the minimum set\n\n\n selectedSet.add('sys.id');\n selectedSet.add('sys.type'); // Reassign the normalized sys properties\n\n return _objectSpread(_objectSpread({}, query), {}, {\n select: [...selectedSet].join(',')\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = validateTimestamp;\nexports.ValidationError = void 0;\n\nclass ValidationError extends Error {\n constructor(name, message) {\n super(`Invalid \"${name}\" provided, ` + message);\n this.name = 'ValidationError';\n }\n\n}\n\nexports.ValidationError = ValidationError;\n\nfunction validateTimestamp(name, timestamp, options) {\n options = options || {};\n\n if (typeof timestamp !== 'number') {\n throw new ValidationError(name, `only numeric values are allowed for timestamps, provided type was \"${typeof timestamp}\"`);\n }\n\n if (options.maximum && timestamp > options.maximum) {\n throw new ValidationError(name, `value (${timestamp}) cannot be further in the future than expected maximum (${options.maximum})`);\n }\n\n if (options.now && timestamp < options.now) {\n throw new ValidationError(name, `value (${timestamp}) cannot be in the past, current time was ${options.now}`);\n }\n}","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n","\"use strict\";\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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = require(\"./foreignNames\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for